Adatbázisok I Szemantikai adatmodellek Szendrői Etelka PTE-PMMK Rendszer és Szoftvertechnológiai Tanszék szendroi@pmmk.pte.hu Adatmodellek komponensei Adatmodell: matematikai formalizmus, mely a valóság adatorientált leírására alkalmas Komponensei: strukturális rész: a valóságban megtalálható adattípusok és kapcsolataik leírására szolgál műveleti rész: felhasználásával különböző lekérdezési vagy módosítási tevékenységeket végezhetünk integritási rész: az adatbázisban megvalósuló adattípusokra, adatértékekre és kapcsolatokra, valamint az elvégezhető műveletekre ad megszorítást 2 Adatbázisrendszer-specifikus tervezés Adatbázis modellek típusai az adatrendszerre koncentrál adatbázis megtervezése központi probléma (hatékonyság, korrektség) tervezési célok: információk könnyen kezelhető struktúrában tárolása (felhasználók információ-igénye) gyors művelet végrehajtás kis helyfoglalás 3 4 1
Adatbázis modellek kialakulásának idődiagramja Adatbázis tervezés főbb lépései igényfelmérés és analízis koncepcionális adatbázismodell elkészítése DBMS rendszer kiválasztása A fogalmi modell átkonvertálása adatbázis adatmodellre A fizikai adatmodell megtervezése Adatbázis implementálás 5 6 Szemantikai adatmodellek Általános jellemzők: magasabb absztrakciós szint objektum orientált grafikus Leggyakoribb elemek: elemi objektum : szín, rendszám komplex objektum : autó, ember Asszociáció : tulajdonosa Típusöröklés : jármű és autó Tartalmazás : autó és motor érték megkötés : életkor > 14 Operátorok : tulajdonos átírás műveleti megkötések : átírásnál adóbefizetés Egyed-kapcsolat modell egyszerűsített szemantikai adatmodell, jele: EK (ER) kidolgozója: Chen(1976) csak strukturális részt és elemi statikus integritási részt tartalmaz Egyszerű grafikus jelölésrendszert alkalmaz nem teljes adatmodell, de egyszerűsége révén elterjedt, és ma is széles körben használatos tervezési segédeszköz a relációs adatbázis tervezéséhez 3 főkomponense van: egyedhalmazok kapcsolatok Attribútumok(tulajdonságok) 7 8 2
Egyed elem az EK modellben Egyed: egy objektum típus, egy a külvilág többi részétől egyértelműen megkülönböztetett, önálló léttel bíró dolog, amiről az információkat tárolni kívánjuk. Hasonló egyedek összessége egyedhalmazt alkot. Kérdés: Mire vonatkozó információkat tároljunk a rendszerben? Típusai: normál egyed (önmagában azonosítható): dolgozó, autó gyenge egyed (más egyedhez valókapcsolatán keresztül azonosított): dolgozó felesége, autó motorja Tulajdonság elem az EK modellben Attribútum (Tulajdonság): Az egyedhalmazokhoz attribútumok tartoznak, melyek az egyedek tulajdonságait írják le. Kérdés: Milyen információkat tároljunk az egyedekre vonatkozóan? Típusai: normál: egyértékű ember.szülidő kulcs: azonosító szerepű ember.tajszám összetett: több tagból áll ember.lakcim(irsz,varos) többértékű: több értéke is lehet ember.hobbi származtatott: értéke kiszámítható ember.életkor 9 10 Kapcsolat elem az EK modellben Kapcsolat: két vagy több egyedhalmazt kötnek össze egymással. A kapcsolatok leggyakrabban binárisak, azaz két egyedhalmazt kötnek össze, de az EK modell megengedi a többágú kapcsolatokat is. Kérdés: Milyen kapcsolatban állnak az egyes egyedek egymással? Kötelező jelleg szerinti típusok: opcionális: létezhet olyan egyed-előfordulás, melyhez nem kapcsolódik egyed-előfordulás a kapcsolatban kötelező: minden egyed-előforduláshoz kell kapcsolódnia egyed-előfordulásnak a kapcsolatban Kapcsolat elem az EK modellben Számosság szerinti típusok: 1:1 egy egyed-előforduláshoz maximum egy egyed társul a kapcsolatban, mindkét viszonylatban 1:N (egy-több) egy egyed-előforduláshoz több egyed társulhat, de a másik irányban csak egy kapcsolódó egyed-előfordulás létezhet N:M (több-több) mindkét irányban több kapcsolódó előfordulás létezhet 11 12 3
Példa Filmeket, színészeket és filmstúdiók adatait nyilvántartó adatmodellt készítünk. Tároljuk a film címét, műfaját, hosszát, gyártási évét, a stúdió nevét, címét, a színészek nevét és címét. Készítsük el az adatmodell EK diagramját! Kapcsolatok attribútumai Ha szükséges, a kapcsolatokhoz is rendelhetünk attribútumokat. 13 14 Kapcsolat attribútumának megszüntetése új egyed bevezetésével Sokágú kapcsolat kiváltása egy egyedhalmazzal és bináris kapcsolatokkal 15 16 4
Szerepek a kapcsolatokban Lehetséges, hogy egy egyedhalmaz kétszer vagy többször is szerepel egy kapcsolatban. Ezért meg kell címkézni az éleket, amelyek a kapcsolat és az egyedhalmaz között vannak, és ezeket nevezzük szerepeknek. Példa: Egy folytatásos film, vagy csapatok közötti körmérkőzések, stb. Egy kapcsolat szerepekkel Két filmet különböztet meg a kapcsolat, az egyik, amely az Eredeti szerepben van és az eredeti filmet mutatja, a másik, amely a Folytatás szerepben van, és a folytatást reprezentálja. Feltesszük, hogy a filmnek lehet több folytatása, de minden folytatásnak csak egy eredetije van. Így sok-egy kapcsolatot kapunk. 17 18 Kulcsok Kulcsok: olyan attribútumok, vagy attribútumok olyan halmazai, amelyek egyértelműen azonosítanak egy objektumot az osztályán belül, vagy egy egyedet az egyedhalmazán belül. Azaz, nincs két olyan egyed az egyedhalmazon belül, amelyek tulajdonságértékei megegyeznek minden attribútumon, ami egy kulcsot alkotó halmazba tartozik. Kulcsok Az EK diagramban aláhúzással jelöljük a kulcsok attribútumait. Az EK diagramon csak az elődleges kulcsokat jelöljük. Ha az egyedhalmaznak nincs kulcsa, gyenge egyedhalmazról beszélünk. 19 20 5
Gyenge egyedhalmazok Modellezés menete ER-ben Létrejöttének oka: Egy egyedhalmaz része egy másiknak Sokágú kapcsolatok binárissá alakításakor is keletkezhetnek gyenge egyedek. Jelölése az EK diagramon: dupla keret Gyenge egyedhalmaz kulcsa előáll a saját aláhúzott attribútumaiból és azon egyedhalmazok kulcs attribútumaiból, amelyek dupla kerettel megjelölt sok-egy kapcsolattal kapcsolódnak a gyenge egyedhalmazhoz. 21 22 Modellezési feladat Könyvtár ER modellje Készítsük el egy könyvtár könyvkölcsönzési nyilvántartását az alábbi feladat specifikáció betartása mellett: Tartsuk nyilván a könyveket és jellemzőiket Tartsuk nyilván a könyvtárba beiratkozott személyeket, és azt hogy mikor melyik könyvet kölcsönzik ki A kikölcsönzési dátumból számítsuk ki a visszahozás dátumát (a kölcsönzési idő15 nap); amennyiben a könyvet később hozzák vissza, számoljunk naponta 100 Ft késedelmi díjat 23 24 6
ER modellezés sajátosságai Egy egyedhalmaz többször is szerepel egy kapcsolatban. Példa: Az ER Modellezés sajátosságai Az ER modellben ugyanaz az objektum más-más módon is ábrázolható aszerint, hogy a tervező mit kíván hangsúlyozni. Egy objektum lehet egyed és tulajdonság is: -egyed: önálló lét, fontosság kiemelése -tulajdonság: kapcsolat más egyedekhez ügyosztály: egyed egy vállalati struktúrában, de tulajdonság is lehet a dolgozó mint olvasó egyednél 25 26 ER modellezés sajátosságai (2) Egy objektum megjelenhet kapcsolatként és egyedként is. Az ER modellezés sajátosságai 3 A rugalmasság ellenére, számos esetben nem lehet egzaktul megoldani az adatrendszer leírását. Problémát jelent a specializációk, általánosítások, tartalmazási relációk ábrázolása, hiszen az ER csak az asszociációt ismeri. Egy objektum megjelenhet kapcsolatként vagy tulajdonságként is. 27 Asszociáció ideiglenes szimmetrikus laza Tartalmazás szoros kapcsolat nem szimmetrikus állandósult ember motor jármű autó Specializáció állandósult nem szimmetrikus fogalmi szinten él csak Az egyfajta jelölési mód 28 elmossa a különbségeket. 7
A kiterjesztett EER modell Az ER modell kibővítése a specializáció és a tartalmazás kapcsolat elemekkel. Jele: EER Asszociáció ideiglenes szimmetrikus laza Tartalmazás szoros kapcsolat nem szimmetrikus állandósult ember motor HAS_A autó A tartalmi különbség megmutatkozik a formában is. jármű IS_A (az-egy) Specializáció állandósult nem szimmetrikus fogalmi szinten él csak 29 EER modell - Alosztályok Az öröklési (az-egy) kapcsolatot a hagyományostól eltérően háromszöggel jelöljük, ezzel is kifejezve e kapcsolattípus különlegességét. A háromszög egyik oldalát az alosztállyal kötjük össze, ellenkező oldali csúcsát pedig az ősosztállyal (szuperosztállyal). Minden öröklési kapcsolat egy-egy kapcsolat, de az ezt kifejező nyilakat nem tüntetjük fel a kapcsolaton. 30 Öröklési kapcsolat Relációs adatmodell Korábbi adatbázis modellek: Bonyolult, algoritmussal leírandó lekérdezés, adatkezelés merev struktúra Codd: A Relational Model of Data for Large Shared Data Banks(1970) A relációs modell fő erősségei: rugalmas kapcsolati rendszer Egyszerű struktúra hatékony lekérdező, kezelő műveleti rész 32 8
Codd 12 szabálya 1. Információs szabály: minden információt táblázatokban szereplő értékekkel fejezünk ki. 2. Garantált elérési szabály: minden adat logikailag elérhető a táblázatnév, az oszlopnév és az elsődleges kulcs értékének megadásával. 3. Hiányzó információ szabálya: a null értékek megjelenítése független az adat típusától. 4. Rendszerkatalógus szabálya: az adatbázis logikai leírása úgy áll rendelkezésre, hogy arra jogosult felhasználó ugyanolyan módon kérdezheti le, mint az adatbázisban tárolt adatokat Codd 12 szabálya (folyt.) 5. Széleskörű nyelv szabálya: egy jól definiált szintaxissal bíró, karaktersorozatokkal leírható, magas szintű relációs nyelv áll rendelkezésre, amelynek segítségével leírhatók a következők: adat és nézet definíciója, integritási feltételek, interaktív és programozható adatkezelés, tranzakció-kezdés, -érvényesítés és -elutasítás. 6. Nézetmódosítás szabálya: a rendszer képes végrehajtani minden elméletileg lehetséges módosítást a nézeteken. 33 34 Codd 12 szabálya (folyt.) 7. Halmazszintű módosítás szabálya: a rendszer képes egész táblázatok együttes kezelésére. 8. Fizikai adatfüggetlenség szabálya: a felhasználó és alkalmazói programok tevékenysége független a fizikai adattárolásban vagy adatelérési módszerekben bekövetkező változásoktól. 9. Logikai adatfüggetlenség szabálya: a felhasználó és alkalmazói programok tevékenysége független az adatbázis táblázatainak logikai struktúrájában bekövetkező változásoktól, feltéve, hogy azok nem járnak információvesztéssel. Codd 12 szabálya (folyt.) 10. Integritásfüggetlenségi szabály: az egyed- és hivatkozásintegritási feltételek az 5. szabály által meghatározott relációs nyelv segítségével definiálhatók. 11. Elosztás-függetlenségi szabály: a felhasználó és alkalmazói programok tevékenysége független az adatok elhelyezésétől. 12. Megkerülés-tiltási szabály: egy alacsonyabb szintű eljárásorientált programnyelv használatával nem lehet megkerülni az integritási vagy biztonsági feltételeket. 35 36 9
Néhány elterjedtebb relációs adatbázis-kezelő rendszer (RDBMS) Kereskedelmi szoftverek: Oracle, MS SQL Server, DB2 (IBM) Korlátozott teljesítményű (4GB) ingyenes változatok pl. MS SQL Server Express Nyíltforrású szoftverek: PostgreSQL, MySQL, SQLite Fizetős változatok pl. MySQL Server Enterprise Relációs adatmodell A relációs modell főbb jellemzői: a modell tiszta elméleti háttéren alapul egyszerű strukturális rész, mely könnyen implementálható deklaratív lekérdezési felület, mely könnyen kezelhető hatékony, egyszerű integritási rész Nagyfokú logikai függetlenség egységesség a struktúra és műveleti rész között halmazorientált műveletek egyszerű, elméletileg megalapozott tervezési metodika a belső optimalizálási modul fontos szereppel bír Bővíthető (objektum-relációs, multimédia, ) 37 38 A relációs modell komponensei relációs adatstruktúra relációs műveletek relációs integritási feltételek A relációs modell strukturális része Építőelemei: DOMAIN MEZŐ REKORD RELÁCIÓ ADATBÁZIS 39 40 10
A domain fogalma Domain: értelmezési tartomány, mely megadja az elemhez tartozó értékkészletet, és meghatározza a végrehajtható műveletek körét. Mező, rekord definíciója Mező: az adatbázis struktúra azon egysége, melyből a rekordok felépülnek; a mező rendszerint a legkisebb DB struktúra egység (egyértékű, atomi). A mezők megadásánál meg kell adni a domain-t(típust) és az integritási feltételeket. Rekord: adatbázis struktúra elem, mely a logikailag összetartozó, és egységként kezelhető elemi adatértékek együttesét jelöli. A mezősorrend rögzített (séma), köthetők hozzá integritási feltételek. 41 42 Kulcs, index definíciója Rekordkulcs: a rekord előfordulást egyértelműen azonosító mező vagy mezőcsoport; azaz értéke nem ismétlődik és egyetlen egy rekordban sem üres. Fontosabb típusai: elsődleges kulcs, jelölt kulcs, idegen kulcs, szuper kulcs, index kulcs. Index: az állomány rekordjainak kulcsértékét és a rekord pozíciót tároló szerkezet, melyben a bejegyzések kulcsérték szerinti sorrendben helyezkednek el, gyors keresést lehetővé téve. Reláció, séma Reláció: az azonos szerkezetű rekord előfordulások névvel ellátott halmaza; tárolási egység a relációs adatbázisban. Séma: az adatbázis szerkezeti sémája; az adatbázis elemek, objektumok szerkezetének leírása. 43 44 11
Domain DOMAIN: egy fogalomhoz rendelhető értékek rendszere értékhalmaz, mezőtípus műveletek, operátorok köre konverziós szabályok integritási elvek pl.: életkor értékből nem vonható ki testmagasság érték szabvány domain-ek: NUMBER(n,m) CHAR(n) DATE egyedi domainek Mező, rekord MEZŐ jellemzője: egyértékű lehet normál vagy kulcs elnevezés, domain jellemzi integritási elemek köthetők hozzá tulajdonságként értelmezhető REKORD jellemzője: rögzített mezősorrend szerkezet jellemzi (séma) -integritási elemek köthetők hozzá 45 46 Reláció RELÁCIÓ fogalma: azonos típusú rekordok halmaza - nincs sorrendiség - nincs rekord pozíció - nincs két azonos rekord megadása: - Azonosító név - rekord típus (relációsémája) A Reláció elemeinek magyarázata 13455667 Vuk Fekete István 22334523 Jane Eyre Ch. Brontë 3200 Európa 3500 Magvető 44433366 Emma J. Austen 4000 Helikon ISBN Cím Szerző Ár Kiadó 88885555 A Zahir P. Coelho 2500 Atheneaum Előfordulások Reláció A reláció előfordulása egy táblázattal szemléltethető. 47 48 12
A leképezés alapelve: egy reláció egy egyedtípusnak felel meg. A reláció egy egyedtípus előfordulásait tartalmazza. A reláció neve megegyezik az egyedtípus nevével. A reláció több mezőből épülhet fel, ahogy az egyedtípus is a tulajdonságokból áll össze. Tehát: Az egyedekből készítsünk relációt Az egyedekhez kapcsolódó tulajdonságok legyenek a reláció attribútumai, mezői. A tulajdonság-mező megfeleltetés azonban nem automatikus, mivel a mező csak atomi értéket hordozhat, nem lehetnek összetett adatértékek. A kapcsolatok átalakításánál is különböző nehézségek lépnek fel A relációs modell a kulcs és kapcsoló kulcs segítségével tárolja a kapcsolatokat. Mivel a kapcsoló kulcs csak egy értéket tárol, ezért egy rekord előforduláshoz csak egyetlenegy egyed előfordulás köthető a kapcsolódó egyedtípusból. Tehát az n:m kapcsolatok tárolása nehézséget okoz. Egyed: megfeleltethető egy relációnak Normál egyed: mivel van kulcstulajdonsága, ezért a tulajdonságok alkothatják a reláció mezőit, és nincs szükség kiegészítő mezőkre. Gyenge egyed: mivel tulajdonságai között nincs olyan, amely egyértelműen azonosíthatná az előfordulásokat, ezért a tulajdonságok önmagukban nem elegendőek a relációhoz. A gyenge egyedet egy másik, normál egyedhez fűződő kapcsolatával azonosítjuk. A mezők közé bevisszük a meghatározó egyed előfordulás kulcsértékét. 13
Dolgozó kód Név munkakör Gyerek név Kor szülő Tulajdonság: egy tulajdonság a reláció egy mezőjének feleltethető meg. Egyszerű tulajdonság: az egyszerű tulajdonság elemi skalár értéket vehet fel, tehát megfeleltethető egy mezőnek Kulcs tulajdonság: azonosító szerepű tulajdonság Összetett tulajdonság: nem tárolható egy mezőben. Az összetett tulajdonságot felbontjuk alkotó elemeire, amíg egyszerű tulajdonságot nem kapunk. Többértékű tulajdonság: mivel csak atomi értékeket tároló mezők létezhetnek a relációs modellben, ezért a többértékű mezők közvetlenül nem tárolhatók a relációkban. Szokásos módszer, hogy létrehozunk egy újabb relációt, amelybe a tulajdonságértékeket tároljuk. Gondoskodni kell az összetartozó értékek nyilvántartásáról. Többértékű tulajdonság leképezése: Versenyző kód név kor Versenyszámok versenyző versenyszám 14
EK diagramok leképezése relációkba Származtatott tulajdonság: rendszerint nem tároljuk. Kivételes esetekben normál mezőként tesszük be a relációba, s megadjuk a vonatkozó integritási feltételt. Kapcsolatok: jelzése a kulcskapcsolókulcs párosban tárolt értékek alapján történik. Általános szabály: 1. Vegyünk fel a kapcsolathoz egy relációt, melynek attribútumai a kapcsolódó egyedek (entitások) kulcs attribútumai és a kapcsolat saját attribútumai. 2. Ha ezen reláció kulcsa megegyezik valamely kapcsolódó egyed kulcsával, akkor a kapcsolat reláció az egyed relációjába beolvasztható. 1:1 kapcsolat - Az egyik egyed kulcsának betétele a másik egyed attribútumai közé pl. parkolóhely - jármű 1:n kapcsolat - Az 1 oldali egyed kulcsának betétele az n oldali egyed attribútumai közé pl. osztály - dolgozó n:m kapcsolat - két 1:n kapcsolatra felbontás, a kapcsolatból is egy reláció lesz, mely tartalmazza az összekapcsolt egyedek kulcsát pl. busz - sofőr 58 Példa konverzióra Példa konverzióra A 59 60 15
A konverzió jellegzetességei A számított értékeket nem tároljuk a relációs adatbázis sémában. A modell műveleti részéhez tartozik. A többértékű tulajdonság konverziója: a tulajdonság új relációba kerül és kapcsolatát az eredeti relációval meg kell vizsgálni (1-N vagy N-M). 61 16