Eddig az adatbázisokkal általános szempontból foglalkoztunk: mire valók, milyen elemekből épülnek fel. Ennek során tisztáztuk, hogy létezik az adatbázis fogalmi modellje (adatbázisterv), amely az egyedek, tulajdonságok és kapcsolatok fogalmi szintű megragadására és definiálására törekszik. Az adatbázissal szemben így megfogalmazott tartalmi és szerkezeti követelményeket azonban valahogyan meg is kell majd valósítani; az egyedek, tulajdonságok és kapcsolatok realizálására, fizikai megoldására valamit ki kellett találni. A kialakult megoldásokat tekintve alapvetően háromféle megoldásról szoktunk beszélni, ezek: a hierarchikus, a hálós és a relációs adatbázismodellek. Mivel mára a relációs modell szinte egyeduralkodóvá vált, a továbbiakban tananyagunkban ezzel foglalkozunk részletesen a másik kettőt csak röviden mutatjuk be. Hierarchikus modell A hierarchikus adatmodell szerkezete leginkább egy fastruktúrához hasonlít, amelyet gráffal adunk meg. Az egyedeket a csomópontok, míg a kapcsolatokat az élek jelzik. Csak azokat az egyedeket kötjük össze élekkel, amelyek között valamilyen kapcsolat van. (Ezt a típusú gráfot fának nevezzük, ugyanis egy gyökércsomópontból minden csomópont csak egyetlen úton érhető el.) 1. ábra Hierarchikus modell A hierarchikus modell volt a legelső az adatbázis-kezelésben és egyben a leginkább korlátozott. Például az IBM IMS adatbázis-kezelő rendszer alkalmazta ezt a modellt. Az adatbázis több egymástól független fából állhat. A fa csomópontjaiban és leveleiben helyezkednek el az adatok. A közöttük levő kapcsolat a szülő gyermek kapcsolatnak felel meg, így ebben a modellben csak egy egy vagy egy több típusú kapcsolatok képezhetők le. A hierarchikus adatmodell alkalmazására a legkézenfekvőbb példa a családfa, a főnök beosztott viszonyok, egy iskola szerkezete vagy a házaló kiskereskedelmi láncok (pl. AMWAY). Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 1
Hálós modell A hálós adatmodell szerkezetét is gráffal adjuk meg, ahol a csomópontok szintén az egyedeket, míg az élek az egyedek közötti kapcsolatokat jelentik. 2. ábra Hálós modell Ebben a modellben egy csomópontból tetszőleges számú él indulhat ki, de egy él csak két csomópontot köthet össze azaz minden egyed tetszőleges más egyeddel lehet kapcsolatban ebben a modellben több több típusú adatkapcsolatok is leírhatók az egy több típusúak mellett. Az egyes egyedek közötti navigációs kapcsolatot pointerek (mutatók) segítségével valósítják meg. Ez az adatmodell sokáig egyeduralkodó volt, majd lassan felváltotta a napjainkban is használt relációs adatmodell. A hierarchikus és a hálós modell elsődlegesen az egyedek és kapcsolataik tárolására koncentrál az adatbázisba fixen beépített kapcsolatok miatt csak a tárolt kapcsolatok segítségével bejárható adat-visszakeresések oldhatók meg hatékonyan (bár sok esetben hatékonyabban, mint más modellekben). További hátrányuk, hogy szerkezetük merev, módosításuk nehézkes. Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 2
A relációs modell A relációs az egyik leginkább áttekinthető, és a 80-as évek elejétől a legelterjedtebb adatbázismodell. Ebben a modellben az adatokat táblázatokban tároljuk. A legfontosabb eltérés az előzőekben bemutatott két modellhez képest az, hogy itt nincsenek előre definiált és tárolt kapcsolatok az egyes egyedek között, hanem csak a kapcsolatok létrehozásához szükséges adatokat tároljuk. Ezzel egy sokkal rugalmasabb és általánosabb szerkezetet kapunk; a táblázatos forma pedig az emberek számára ismerős, áttekinthető. A relációs adatbázis elemei Tananyagunkban a relációs adatbázisokkal foglalkozunk, tehát a továbbiakban leírtak döntően erre az adatbázis típusra érvényesek. Későbbi példáink, részletezettebb fogalmaink (pl. tábla, kulcs-idegenkulcs és az ezeken alapuló kapcsolatok stb.) mind a relációs adatbázisokra vonatkoznak majd. Táblák Egy relációs adatbázis legfőbb összetevői az ún. táblák. A tábla egy kétdimenziós mátrix, melynek sorai és oszlopai vannak. A táblázat minden sora egy-egy egyedelőfordulást ír le; az oszlopok (a sorok elemei) pedig az adott egyed-előfordulás tulajdonságértékeit tartalmazzák (az oszlopokat külön, egyedi nevekkel kell azonosítani). Korábbi telefonkönyv példánkat tekintve, és átalakítva ezt táblázattá: 3. ábra Telefonkönyvrészlet NÉV CÍM TELEFONSZÁM Balázs Géza 1214 Erdősor u. 175/a 277 9894 Balázs György 1023 Felhévízi út 326 3527 Balázs György 1024 Forint u. 12 316 2518 Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 3
A reláció kifejezés ezt a táblázatot jelenti: a reláció nem más, mint egy táblázat, a táblázat soraiban tárolt adatokkal együtt. A reláció fogalmát itt halmazelméleti szempontból kell értelmezni, erről lásd bővebben: Reláció. Egy relációs adatbázis rendszerint több táblából áll. Mindegyik tábla egy-egy egyedelőfordulás-halmaz adatait tartalmazza. Az egyedek közti kapcsolatokat a kapcsolatok definícióját ez az adatbázis nem tárolja, csak a kapcsolatok felépítéséhez szükséges egyed-tulajdonságokat, illetve az ezekhez tartozó konkrét értékeket. Egyik korábbi feladatunkat példaként tekintve: 4. ábra Táblák egy relációs adatbázisban A kapcsolatokat megalapozó attribútumokat színessel jeleztük. Nézetek (táblák lekérdezéseiből nyert eredménytáblák) A nézetek tulajdonképpen állandó, rögzített lekérdezések, amelyek általában több tábla különböző oszlopaiból képzett kimutatások és/vagy számítások. A nézettáblákat az adatbázis-kezelő programok hozzák létre a felhasználó által megadott szűrési, válogatási feltételek alapján. Szükség esetén táblázat formájában el is tárolhatók. Indexek Az indexek a táblákhoz kapcsolódnak, és a sorok különböző rendezettségű megtekintéséhez adnak segítséget (emlékezzünk: telefonkönyv, név és azon belül cím szerinti rendezettség!). Az indexek úgy biztosítják a sorok különböző rendezettségét, hogy az eredeti táblázatban nem szükséges a sorokat valóban, fizikailag átrendezni. Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 4
Ezen kívül az indexeknek jelentős gyorsító szerepük van az adatok visszakeresése során. Megszorítások A megszorítások a táblák egyes oszlopaiba rögzíthető adatokra vonatkoznak, például: a tulajdonság kulcs-e vagy nem (ha kulcs, akkor egyben már kötelezően megadandó és egyedi értékkel bíró); ha nem kulcs, akkor lehet-e üresen hagyni, vagy valamilyen értéknek mindig kell ott lennie; valamilyen értékkel korlátozott-e alulról vagy felülről stb. Műveletek A legtöbb adatbázis-kezelő lehetővé teszi, hogy adott programozási nyelven (általában SQL vagy Java) műveleteket is elhelyezzünk és végrehajtassunk az adatbázisban. Ezek a műveletek adatfeldolgozó programokból történő hívásra vagy valamilyen esemény bekövetkeztére aktiválódnak. Jogosultságok A relációs adatbázisban lehetőség van a hozzáférésre jogosult felhasználók azonosítóinak (felhasználói nevek, jelszavak) tárolására. A relációs adatbázis fent felsorolt elemeivel a későbbiekben részletesebben fogunk foglalkozni. A fizikai és logikai adatbázis elemeinek kapcsolata Most elérkeztünk arra a pontra, ahol megteremthetjük a párhuzamot a korábban tanult általános fogalmak, és egy konkrét adatbázis-megvalósítás között. Amikor adatbázist akarunk létrehozni még ha olyan egyszerűt is, mit a telefonkönyv nem a tábla (vagy táblák) elkészítésével kezdjük a munkát, hanem az adatbázis szerkezetének és tartalmának megtervezésével. A tervezés eredménye az adatmodell lesz, amely az adatbázis adatainak elhelyezkedését és kapcsolatait, vagyis szerkezetét írja le. Az adatmodell egyed-típusokat, tulajdonságokat és kapcsolatokat ír le. A tulajdonságok az egyed-típusokat jellemzik, a kapcsolatok pedig az egyed-típusok közti viszonyokat. Ha relációs adatmodellben valósítjuk meg az adatmodellt, akkor ebben az adatmodell egyed-típusait a táblák, az egyed-típusok tulajdonságait a táblák oszlopai fogják realizálni. A táblák egyes sorai a konkrét egyed-előfordulásokat tartalmazzák (adataikkal). Az adatmodellben definiált kapcsolatokat a relációs adatbázis fizikailag nem tárolja: ezeket az azonosítók segítségével majd az adatbázis-kezelő program építi fel, műveleti szinten. Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 5
Az alábbi táblázatban összefoglaltuk, illetve kiegészítettük a fentieket: Adatmodell fogalom Egyed-típus Tulajdonság Kapcsolat Egyed-előfordulás Tulajdonság-érték, adat További ismeretek: Edgar F. Codd, a relációs adatbázis-modell kidolgozója Relációs adatbázis Relációs adatbázis fogalom Tábla Oszlop Kapcsolathordozó tulajdonságokon keresztül realizálódik Sor Cella (oszlop-sor találkozási pontja) tartalma Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 6