590 likes | 800 Views
ADATBÁZIS KEZELÉS – Alapfogalmak. Előadó: Németh Zoltán. Mi az adatbázis?. Az adatbázis az adatok és a köztük lévő összefüggések rendszere, amelyet egymás mellett tárolunk.
E N D
ADATBÁZIS KEZELÉS –Alapfogalmak Előadó: Németh Zoltán
Mi az adatbázis? • Az adatbázis az adatok és a köztük lévő összefüggések rendszere, amelyet egymás mellett tárolunk. • Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők. • Egy meghatározott témakörrel kapcsolatos információk lehetnek például a vevői megrendelések, számlázási vagy készlet-nyilvántartási adatok stb.
Miért használjunk adatbázist? • Adatbázisban tárolhatunk és kezelhetünk nagy mennyiségű, azonos szerkezetű adatot. • Az egymással összefüggő táblák adatait különféle szempontok alapján rendezhetjük, szűrhetjük, csoportosíthatjuk.
Adatbázis kezelő rendszer(DBMS - Database management system) • Az adatbázis-kezelő rendszer olyan program, illetve programcsomag, amely lehetővé teszi az adatbázisok kezelését, az azokon végrehajtható műveletek (adatok lekérdezése, módosítása, törlése, az adatbázis karbantartása) elvégzését. • Az adatbázis-kezelőknek meg kell oldani az adatok rendezését, a köztük lévő kapcsolat nyilvántartását, az adatokhoz való hozzáférés szabályozását, az adatok védelmét, az integritás megőrzését, az adatok módosíthatóságát, lekérdezését, különféle szempontok szerinti kigyűjtését, válogatását és egyéb statisztikai funkciókat is.
Adatbázis kezelő rendszerrel kapcsolatos elvárásaink • biztosítsa nagy mennyiségű adat hatékony kezelését, • egyszerre több felhasználó is használhassa, • őrizze meg az adatok integritását, feleljen meg a megadott szabályoknak, • nyújtson adatvesztés elleni védelmet, • tegye lehetővé az egyes felhasználók hozzáférési jogainak szabályozását, • továbbfejleszthető legyen.
Az adatmodell • Az adatmodell egyértelműen meghatározza az adatbázis szerkezetét, magában foglalja az adatok típusát, kapcsolatát, a korlátozó feltételeket és az adatkezelési műveleteket is. • Az adatmodell mindig szerkezeti és műveleti részből tevődik össze. • Az adatbázisok jellegét, típusát, fajtáját az adatbázis által megvalósított, illetve támogatott adatmodellel/adatmodellekkel szokás megkülönböztetni.
Hierarchikus adatmodell • A hierarchikus adatmodell szerkezetét gráffal adjuk meg, azon belül is fával. • A csomópontok itt is egyedeket jelentenek és a nyilak a kapcsolatokat fejezik ki.
Hálós adatmodell • A hierarchikus adatmodell továbbfejlesztett változata, a bonyolultabb kapcsolatok ábrázolását már jobban lehetővé teszi. • A hierarchikushoz képest itt már nem csak egy szülőhöz tartozhat több gyerek, de egy gyereknek is lehet több szülője. • Az egyedek között tetszőleges kapcsolatok építhetők ki. • A háló tetszőlegesen nagy méretű lehet, ábrázolása több, egymásra hierarchikusan felépülő kisebb egységekkel, setekkel történik.(set = Kétszintű fa amelynek gyökéreleme a tulajdonos, és levélelemei a tagok.)
Relációs adatmodell A relációs adatmodellben az egyedet egy táblázattal adjuk meg, a táblát oszlopai a tulajdonságok. A táblázat sorai az egyed értékei (vagyis a táblázat maga az egyedhalmaz). A táblázat egy-egy sorát a tulajdonságok konkrét értékei adják. Az adatbázisokat több táblázattal adjuk meg (minden tábla egy egyed-halmaz), de a táblázatok (tehát az egyedek) közötti kapcsolatokat nem definiáljuk az adatmodell felírásakor. Ez nem azt jelenti, hogy nincsen közöttük kapcsolat, de ezeket a kapcsolatokat például egyszerűen az fejezi ki, hogy két táblának van közös oszlopa (mindkét táblában szerepel ugyanaz a tulajdonság).
Relációs adatmodell A relációs adatmodellben az adatokat egymással logikai kapcsolatban álló táblákba rendszerezzük. Egy tábla oszlopainak és sorainak a következő feltételeknek kell megfelelniük: • minden oszlopnak egyértelmű neve van, • minden sorban ugyanazok az oszlopok vannak, • az oszlopokban található adatok meghatározott értéket vehetnek fel, • az oszlopok soronként csak egy értéket vehetnek fel, • a táblát a neve egyértelműen azonosítja.
Relációs adatmodell Ez a legelterjedtebb adatmodell, pár példa: • MySQL • Microsoft SQL • DB2 • SQLite
Objektumorientált adatmodell • Olyan adatbázis, amely intelligens elemekből épül fel. • Az intelligencia itt azt jelenti, hogy az egyes adatbázis elemek (objektumok) „tudják”, hogy kik ők, mire használhatók, s miként kapcsolódnak a többi adatbázis-elemhez. • Például:PostgreSQL, Oracle
Tábla • A tábla a logikailag összetartozó adatokat foglalja össze. A tábla oszlopokból és sorokból áll, amelyeket mezőknek, illetve rekordoknak nevezünk.
Rekord • A rekord az adatbázis egy sora. Egy rekordban tároljuk az egymással összefüggő adatokat.
Mező • A mező az adatbázis egy oszlopa, amelyben az egyedek tulajdonságértékeit tároljuk.
Egyed • Az elemi adatok a tábla celláiban szereplő értékek, amelyek az egyed konkrét tulajdonságai. • Az egyed az, amit le akarunk írni, amelynek az adatait tároljuk és gyűjtjük az adatbázisban. Az egyedet idegen szóval entitásnak nevezzük. Egyednek tekinthetünk például egy személyt.
Egyed • Egy adatmodellben valamennyi egyedet egyenként véges számú tulajdonsággal írunk le. Ezek a tulajdonságok együttesen alkotják az egyed belső szerkezetét, és az egyed belső tulajdonságainak hívjuk. • Az egyedek kapcsolatainak összességét az egyed külső tulajdonságoknak hívjuk. • Az attribútum (vagyis tulajdonság) az egyed valamely jellemzője. Az egyed az attribútumok összességével jellemezhető. Egy személy egy jellemzője lehet például a neve.
Egyed • Az egyedre vonatkozóan megadott tulajdonságok összességét egyedtípusnak nevezzük. Egy személy leírható például a nevével, életkorával, testmagasságával, a szeme és haja színével együttesen. • Az egyedre vonatkozóan megadott konkrét tulajdonságokat egyed-előfordulásnak nevezzük. Egy egyed-előfordulás például Kis Ede, aki 29 éves, 183 cm magas, kék szemű, barna hajú.
Reláció • A reláció nem más mint egy táblázat, a táblázat soraiban tárolt adatokkal együtt. • Az egyes relációkat egyedi névvel látjuk el. • A relációk oszlopaiban azonos mennyiségre vonatkozó adatok jelennek meg. Az oszlopok névvel rendelkeznek, melyeknek a reláción belül egyedieknek kell lenniük, de más relációk tartalmazhatnak azonos nevű oszlopokat. • A reláció soraiban tároljuk a logikailag összetartozó adatokat. A reláció sorainak sorrendje közömbös, de ne • A relációktól általában megköveteljük, hogy ne tartalmazzanak más adatokból levezethető vagy kiszámítható információkat.m tartalmazhat két azonos adatokkal kitöltött sort.
Funkcionális kapcsolat • Adatok között akkor áll fenn funkcionális kapcsolat, ha egy vagy több adat konkrét értékéből más adatok egyértelműen következnek. Személyi szám -> Név Személyi szám -> Név, Születési idő, stb.
Funkcionális kapcsolat • Az is előfordulhat, hogy két attribútum kölcsönösen függ egymástól. Férj személyi száma <-> Feleség személyi száma • Összetett meg határozójú függőségről beszélünk, ha több adat szükséges más adatok azonosításához. Hely, Idő -> Hőmérséklet
Adatok közötti többértékű függőség • Az adatok között fennálló kapcsolatok közül nem mindegyik fejezhető ki a funkcionális függőség segítségével. Például minden embernek lehet több szakmája, illetve ugyanazzal a szakmával több ember is rendelkezhet. Ebben az esetben egyik irányban sincs egyértelmű függőség. • Ez egy többértékű függőség, az egyik attribútumhoz egy másik attribútum csoportja, halmaza kapcsolódik. Személyi szám ->> Szakma Személyi szám ->> Szakma , Oklevél kelte
A funkcionális- és többértékű függőség kapcsolata • A funkcionális és a többértékű függőség között kapcsolat van. • Nagyon gyakran ugyanazt a függőségi kapcsolatot kifejezhetjük funkcionális és többértékű függőséggel is. Termék azon., Alkatrész azon. -> Mennyiség Termék azon. ->> Alkatrész azon., Mennyiség
Reláció kulcs • A reláció kulcs a reláció egy sorát azonosítja egyértelműen. A reláció - definíció szerint- nem tartalmazhat két azonos sort, ezért minden relációban létezik kulcs. A reláció kulcsnak a következő feltételeket kell teljesítenie • az attribútumok egy olyan csoportja, melyek csak egy sort azonosítanak (egyértelműség) • a kulcsban szereplő attribútumok egyetlen részhalmaza sem alkot kulcsot • a kulcsban szereplő attribútumok értéke nem lehet definiálatlan (NULL) • A definiálatlan (NULL) értékek tárolását a relációs adatbázis kezelők speciálisan oldják meg. Numerikus értékek esetén a NULL érték és a 0 nem azonos.
Reláció kulcs • Elsődleges kulcs: a tábla rekordjainak egyértelmű azonosítója, értéke egyedi. • Idegen kulcs: olyan azonosító, amelynek segítségével egy másik tábla elsődleges kulcsára hivatkozhatunk. • Összetett kulcs: több mező felhasználásával képezünk. Erre akkor van szükség, ha egyetlen mező egyediségét sem lehet biztosítani.
Kapcsolat a táblák között • A relációs adatbázis-kezelés lényege, hogy az adatokat egymással logikai kapcsolatban álló táblákban tároljuk. • A táblák közti kapcsolatok az egyedek egymáshoz való viszonyát írják le. Az egyedek közti kapcsolatot háromféleképpen írhatjuk le: • 1-1 Egy az egyhez • 1:N Egy a többhöz • N:M Több a töbhöz
Egy-egy (1:1) kapcsolat • Az egyik tábla egy eleméhez a másik tábla pontosan egy eleme kapcsolódik. • Példa: ember, születési dátum
Egy-több (1:N) kapcsolat • Az egyik tábla egy eleméhez a másik tábla több eleme is tartozhat. • Példa: szülő, gyerekek
Több-több (N:M) kapcsolat • Bármely tábla elemeihez a másik tábla tetszőleges számú eleme tartozhat. • Példa: adósok, hitelezők
Redundancia • Redundanciáról akkor beszélünk, ha valamely tényt vagy a többi adatból levezethető mennyiséget ismételten (többszörösen) tároljuk az adatbázisban. • A redundancia, a szükségtelen tároló terület lefoglalása mellett, komplikált adatbázis frissítési és karbantartási műveletekhez vezet, melyek könnyen az adatbázis inkonzisztenciáját okozhatják.
Inkonzisztencia • Egy adatbázis akkor inkonzisztens, ha egymásnak ellentmondó tényeket tartalmaz. • Ilyen esetek jöhetnek létre akkor, ha adatbázist frissítünk, rekordokat módosítunk, törlünk, vagy új értéket rögzítünk, és a kapcsolatban lévő relációk tábláit nem módosítjuk megfelelően. (Ezt nevezzük még anomáliának is.)
Anomáliák • Nem megfelelően felépített adatbázis esetén az adatszerkezetben különféle anomáliák, ellentmondások keletkezhetnek. • Egy relációs adatbázisban a következő anomáliák léphetnek fel: • Bővítési anomália • Törlési anomália • Módosítási anomália
Bővítési anomália • Ha egy rekord felvételekor a már korábban tárolásra került információkat is újra be kell vinni. • Ez akkor jó, ha az adatbázis-kezelő rendszer önműködően megcsinálja. Ha kézzel kell a rekordokat pótolni, akkor számíthatunk arra, hogy egy idő után már nem látjuk át az adatbázis szerkezetét, ezáltal hibázunk, és ellentmondásos adatbázist kapunk.
Törlési anomália • Amikor az elem megszüntetésekor a nem hozzá tartozó információk is elvesznek. • A törlésnél figyelnünk kell arra, hogy a törölt rekordhoz kapcsolódó rekordok ne törlődjenek, csak akkor, ha ezt mi kérjük.
Módosítási anomália • Amikor az elemi adat módosulásakor az adatbázisban az elemi adat összes előfordulási helyén el kell végezni a módosítást. • Ha több helyen tároljuk az adatokat, akkor mindenhol frissíteni, aktualizálni kell a rekordokat.
Tranzakció • A tranzakció a rendszerbe beépített olyan alrendszer, amely az állapotváltozás előtt automatikusan elmenti az állapot-paramétereit, és csak akkor törli az előző állapot elmentett értékeit, ha a tranzakció sikeresen lezajlott, vagyis a cél állapotot elértük. Hiba esetén automatikusan visszaállítja a kiinduló állapotot. • A rendszer inkonzisztensé válását okozhatja, h a nincsenek megfelelően kezelve.
Normalizálás • Az a folyamat, mely során az adatbázis logikai áttekinthetősége, illetve a tárolási igény csökkentése érdekében megszüntetjük a redundanciákat és az anomáliákat. • Az adatbázis-tervezés folyamatában az adatbázisban modellezett rendszert elemezzük, és meghatározzuk a tárolandó adatok körét, azok egymás közötti kapcsolatait és az adatbázissal szemben felmerülő igényeket. • A logikai tervezés célja egy redundanciamentes kapcsolatrendszer, egy relációs adatbázis.
A normál formák • A relációelmélet módszereket tartalmaz a redundancia megszüntetésére az úgynevezett normál formák segítségével. • A normál formák előállítása során a funkcionális és a többértékű függőség, valamint a reláció kulcs fogalmát használjuk fel.
A normál formák • Ötféle normál formát különböztetünk meg. • A különböző normál formák egymásra épülnek, a második normál formában levő reláció például első normál formában is van. • A tervezés során a legmagasabb normál forma elérése a cél. • Az első három normál forma a funkcionális függőségekben található redundanciák, míg a negyedik és ötödik a többértékű függőségekből adódó redundanciák megszüntetésére koncentrál.
Első normál forma (1NF) • Egy reláció első normál formában van, ha minden attribútuma egyszerű, nem összetett adat, vagyis ha minden mezője funkcionálisan függ a kulcsmező csoportjától. • Azaz a mezők függéseinek rendszerében létezik egy kulcs, amelytől minden más mező függ. Minden nem kulcsmező függ a teljes kulcstól egy táblán belül.
Második normál forma (2NF) • Az első normál forma nem elegendő feltétel a redundanciák megszüntetésére. • Egy reláció második normál alakjában nem tartalmazhat tényeket a reláció kulcs egy részére vonatkozóan. A második normál pontos definíciója két kritériumnak tesz eleget: • a reláció első normál formában van, • és a reláció minden nem elsődleges attribútuma teljes funkcionális függőségben van az összes reláció kulccsal. • A gyakorlatban ez azt jelenti, hogy egyszerű értékek szerepelnek a mezőkben és minden másodlagos attribútum teljes funkcionális függőségben van. Következmények: Ha a kulcs egy attribútumból áll, akkor a reláció 2NF. Ha csak egy mező van a relációban, akkor 2NF.
2NF létrehozása • Kiemeljük a kulcsból azokat az attribútumokat, amelyek önállóan is meghatározzák a másodlagos attribútumokat. • Az előző lépés szerint összetartozó elsődleges és másodlagos attribútumokból relációt állítunk elő. • Azokat a másodlagos attribútumokat, amelyek csak a kulcstól függnek, a kulcsban szereplő elsődleges attribútumokkal egy táblába fogjuk össze.
Harmadik normál forma (3NF) • A második normál formájú relációkban nem lehetnek olyan tények, amelyek a reláció kulcs részeihez kapcsolódnak. • Azonban ennek ellenére is lehet bennük redundancia, ha olyan tényeket tartalmaznak, amelyek a nem elsődleges attribútumokkal állnak kapcsolatban. • Ezt a lehetőséget szünteti meg a harmadik normál forma. Egy reláció harmadik normál formában van, ha: • 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.
3NF előállítása • Megszüntetjük a másodlagos attribútumok közötti funkcionális függőséget, azaz szintén több relációra bontjuk az eredeti relációt.