Az adatbázissal kapcsolatos tudnivalók Rácskai Benjámin
Adatbázis Az adatbázis az adatok szervezett gyűjteménye,amely lehetővé teszi az adatok tetszőleges szempontok szerinti rendszerezését és visszakeresését.
Adatbázis célja Az adatok megbízható, hosszú távon tartós (idegen szóval: perzisztens) tárolása, és viszonylag gyors visszakereshetőségének biztosítása.
Az adatbázis-kezelő rendszerrel szembeni elvárások: Új adatbázisok létrehozása – adatdefiníciós nyelv segítségével. (DDL) Meglévő adatok lekérdezése, módosítása – lekérdező v. adatmanipulációs nyelv segítségével. (SQL) Támogassa az adatok hosszú időn át történő biztonságos tárolását. Felügyelje a több felhasználó egy időben történő adathozzáférését
Adatbázis fajtái Adatbázis rendszerek az adatkapcsolati modell alapján lehetnek: Hierarchikus szerkezetű (IMS, IMS-VS, DL/1, DL/1 ENTRY, VANDL/1) Hálós szerkezetű (IDMS, DENNIS, CODASYL, SÁMÁN, BANK) Relációs elvű (ORACLE, SQL, SYBASE, DB2, SYSTEM-R, Paradox)
Adatmodell fogalma Adatmodellek az az adatbázisok szerkezetének leírására szolgálnak. Egyedek, tulajdonságok, kapcsolatok halmaza, amely absztrakt módon tükrözi a valós objektumoknak, azok tulajdonságainak és kapcsolatainak elvont kategóriáit.
Adat modellek Hierarchikus Hálós Relációs Objektumorientált
Relációs adatmodell Sémája gráf Az egyes egyedhalmazokhoz tartozó adatokat táblázatokba foglaljuk,ezek az összetartozó táblázatok alkotják az adatbázisokat.
Relációs adatbázis Relációs adatbázisnak nevezzük a relációs adatmodell elvén létrehozott adatok összességét, a relációs adatmodell fogalomrendszerében meghatározott ún. relációk egy véges halmazát.
A relációs modell Edgar Frank Ted Codd dolgozta ki 1971-72-ben. Az volt a célja, hogy kiküszöbölje a hálós struktúra hátrányait. A relációs modellnél a logikai adatszerkezet független a fizikai tárolástól, ennek következtében a logikai kapcsolatok változtatása után nem kell a tárolást újraszervezni. A relációs adatmodell lényege, hogy az adatokat logikailag relációkban ábrázoljuk.
A relációs adatbázis gyakorlati tervezési lépései: Követelményelemzés; Modellezés; Normalizálás; Táblák meghatározása; Táblák szerkezetének kialakítása; Kulcsok kijelölése a táblákban; Indexek kijelölése; Táblák közötti kapcsolatok kialakítása; Táblák közötti kapcsolatok optimalizálása; Tesztelés; Táblák feltöltése; Dokumentálás.
Követelményelemzés Felmérjük, hogy mit vár a felhasználó az adatbázistól: Milyen bemenő adatok állnak rendelkezésre?; Milyen kimenő adatokra van szükség?; Milyen adatmennyiséggel, rekordszámmal kell számolnunk?; Milyen gyakran kerül sor bővítésre, módisításra, törlésre?; Milyen típusú és mennyi lekérdezésre, jelentésre lesz szükség?; Feltétlenül figyelembe kell venni a várható bővítéseket!
Modellezés Az E-T-K (Egyed-Tulajdonság-Kapcsolat) modellel meghatározzuk az adatbázis egyedtípusait, tulajdonságtípusait, illetve az egyedek közötti kapcsolatokat.
Az ETK adatmodell Egyed Egyednek nevezzünk minden olyan dolgot (objektumot), amely minden más egyedtől (objektumtól) jól megkülönböztethető, tulajdonságokkal leírható, és amiről adatokat tárolunk. (Ez a legkisebb egysége az adatbázisnak, amire hivatkozni lehet.) Egyes adatbázis-kezelő rendszerekben az egyedet REKORDnak nevezik. Tulajdonság Az egyedeket tulajdonságokkal, attribútumokkal(=tulajdonság) írjuk le. A tulajdonságok kétfélék: - leíró - kulcs Kapcsolatnak nevezzük az egyedek közötti viszonyt. Kapcsolatok fajtái: 1:1 (egy – több) 1:N (egy – több) N:M (több – több)
Normalizálás Lényege: Az adatbázis optimalizáltsága, azaz a változtatási anomáliák (pl. redundanciák=adat ismétlődés) megszüntetése az adatbázisban. (A logikai adatbázis tervezés egyik fő célja.) A normalizációnak több szintje, típusa létezik. A jól működő adatbázis érdekében legalább a 3. normálformáig el kell jutni.
A normalizálás célja A normalizálás célja a hibaforrást jelentő ún. anomáliák minimálisra csökkentése. Változtatási anomáliának nevezzük a - módosítási, - beírási, - törlési anomáliákat. Módosítási anomália: Egy attribútum értékének megváltozását több helyen kell kijavítani. Ekkor az adatbázis redundáns, azaz valamely tényt vagy a többi adatból levezethető mennyiséget ismételten (többszörösen) tárolunk az adatbázisban. Ez az adatbázis inkonzisztens állapotához vezethet. Beírási anomália: Új egyed előfordulásra vonatkozó információ bevitele nem lehetséges hiányos adatok miatt. Ez információvesztést eredményez. Törlési anomália: Bizonyos adatok törlésével elvesznek olyan adatok (mivel csak egesz sorokat tudunk törölni), amelyekre továbbra is szükség lenne. Ez is információvesztést eredményez.
1. normál forma A 1. normál formában van a séma, ha a mezők függéseinek rendszerében létezik egy kulcs, amelytől minden más mező függ, azaz minden mezője funkcionálisan függ a kulcsmező csoporttól.
2. normál forma A 2. normál formában van a séma, ha teljesíti az első normál forma kritériumait és nincs benne részleges függés, azaz bármely nem kulcs mező a teljes kulcstól függ, de nem függ a kulcs bármely részhalmazától .
3. normál forma A 3. normál formában van a séma, ha teljesíti a második normál forma kritériumait és nem áll fenn tranzitív függőség, azaz a nem kulcs mezők nem függnek egymástól. A reláció második normál formában van. A reláció nem tartalmaz funkcionális függőséget a nem elsődleges attribútumok között.
Tábla meghatározása Logikailag összetartozó adatok sorokból és oszlopokból álló elrendezése.
Táblák szerkezetének kialakítása A szükséges mezők létrehozása A mezők tulajdonságainak beállítása: Mezőnév Adattípus(szöveg,szám,feljegyzés stb.) Mezőméret(karakter hosszúság) Egyéb tulajdonságok
Kulcsok kijelölése a táblákban Elsődleges kulcs kijelölése Idegen kulcs kijelölése
Elsődleges kulcs kijelölése Olyan kulcs, amelyet – a lehetséges kulcsok (kulcsjelöltek) közül – ténylegesen felhasználtunk a sorok azonosítására. A relációs adatbázisban szereplő tábláknak célszerű rendelkezniük elsődleges kulccsal. Az elsődleges kulcs meg kell, hogy feleljen a következő kritériumoknak: Minden sort egyedileg azonosít; Értéke nem lehet üres, vagy null értékű; Értéke nem változik.
Idegen kulcs kijelölése Olyan kulcs, amely egy másik táblában elsődleges kulcs. Itt az aktuális táblában nem elsődleges kulcsként, hanem kapcsolómezőként szerepel, vagyis a táblák közötti kapcsolatok kialakítására szolgál.
Indexek kijelölése Index=A rekordok logikai rendezése valamilyen szempont szerint. Az indexek logikailag egy rendezett listaként foghatóak fel. Fizikailag a rendezett sorrendet indextáblába rendezett mutatók biztosítják. Az indexeléssel történő rendezés tehát nem jár a rekordok tényleges, fizikai rendezésével. A táblákban tárolt információk visszakeresését az indexek nagymértékben meggyorsíthatják. A fentiek miatt a tervezés során nagy hangsúlyt kell fektetni a helyes indexek kiválasztására. Szem előtt kell azonban tartani azt is, hogy az indexek számának növelésével az adatok beviteléhez illetve módosításához szükséges idő – az indexek frissítése miatt –megnövekszik.
Táblák közötti kapcsolatok kialakítása A táblák közti kapcsolatok az egyedek egymáshoz való viszonyát jelölik. A táblák közötti kapcsolatot háromféle lehet: Egy-egy (1:1) kapcsolat Egy-több (1:N) kapcsolat Több-több (N:M) kapcsolat
Egy-egy (1:1) kapcsolat Az egyik tábla egy rekordjához a másik tábla pontosan egy rekordja kapcsolódik. Például: az érvényes személyi számok és a magyar állampolgárok közötti kapcsolat
Egy-több (1:N) kapcsolat Az egyik tábla egy rekordjához a másik tábla több rekordja is tartozhat. Például: a magyarországi megyék és városok közötti viszony.
Több-több (N:M) kapcsolat Bármely tábla rekordjaihoz a másik tábla tetszőleges számú rekordja tartozhat. Például: az autók és a színek kapcsolata
Táblák közötti kapcsolatok optimalizálása Hivatkozási integritás megőrzésének beállítása; Kapcsolt mezők kaszkádolt frissítésének beállítása Kapcsolt mezők kaszkádolt törlésének beállítása Illesztési típus beállítása.
HIVATKOZÁSI INTEGRITÁS A hivatkozási integritás azt jelenti, hogy csak olyan kulcsra hivatkozunk, ami létezik a másik táblában.
HIVATKOZÁSI INTEGRITÁS MEGŐRZÉSE Két tábla összekapcsolásakor bekapcsolhatjuk a hivatkozási integritás megőrzése opciót, aminek hatására automatikusan figyelni fogja a rendszer, hogy ne vihessünk be rossz hivatkozást, vagy ne módosíthassunk illetve törölhessünk ki olyan kulcsot, amire egy másik táblában hivatkoznak. Amennyiben olyan műveletet kezdeményezünk, ami megsértené a hivatkozási integritást, a rendszer figyelmeztetést ad erről, és nem hagyja elvégezni.
KASZKÁDOLT FRISSÍTÉS Ha megváltoztatunk egy kulcsot, akkor mindenhol javítja, ahol hivatkoznak rá.
KASZKÁDOLT TÖRLÉS Ha kitörlünk egy kulcsot, akkor minden olyan rekordot töröl, ami hivatkozott rá.
Tesztelés Ha a táblák és a kapcsolatok rendben vannak, akkor célszerű kevés számú rekorddal letesztelni az adatbázis működését, funkcióit.
Táblák feltöltése Ha a teszt rendben lefut, feltölthetjük a táblát éles adatokkal.
Dokumentálás A dokumentálás a fejlesztés minden fázisában, folyamatosan történjen.
Egy kis humor…:D Két informatikus beszélget: - Neked mi volt eddig a legkomolyabb kapcsolatod? - Egy négy megás ADSL! Hogy hívják a templomok közti hálózatot? - PapLAN Hogy hívják a katonai operációs rendszert? - CommanDos.
Köszönöm a figyelmet!