Egyed-kapcsolat formális modell Adatbázisok I Szemantikai adatmodellek Szendrői Etelka PTE-PMMK Rendszer és Szoftvertechnológiai Tanszék szendroi@pmmk.pte.hu E(A1,,An) egyedhalmaz séma, E az egyedhalmaz neve, A1,,An tulajdonságok, DOM(Ai) lehetséges értékek halmaza. például: tanár(név, tanszék). E(A1,,An) sémájú egyedhalmaz előfordulása: E = {e1,,em} egyedek (entitások) halmaza, ahol ei(k) DOM(Ak), semelyik két egyed nem egyezik meg minden attribútumban (az összes tulajdonság szuperkulcs), minimális szuperkulcs = kulcs. Egyed-kapcsolat formális modell K(E1,,Ep) a kapcsolat sémája, K a kapcsolat neve, E1,,Ep egyedhalmazok sémái, p=2 bináris kapcsolat, p>2 többágú kapcsolat, például: tanít(tanár,tárgy). K(E1,,Ep) sémájú kapcsolat előfordulása: K = {(e1,,ep)} egyed p-esek halmaza, ahol ei Ei, a kapcsolat előfordulásaira tett megszorítások határozzák meg a kapcsolat típusát. Kapcsolatok típusai K(E1,E2) bináris kapcsolat, sok-egy (n:1) K {(ei,ej)} alakú előfordulásaiban nem szerepelhet egyszerre (e1,e2) és (e1,e2'), ha e2 és e2' különböznek, másképpen: K előfordulásaiban minden E1-beli egyedhez legfeljebb 1 E2-beli egyed tartozhat, például: született(név,ország). E1 e1 e2 e2' E2
Kapcsolatok típusai K(E1,E2) bináris kapcsolat, egy-sok (1:n) (vagy (1:m)), K {(ei,ej)} alakú előfordulásaiban nem szerepelhet egyszerre (e1,e2) és (e1',e2), ha e1 és e1' különböznek, másképpen: K előfordulásaiban minden E2-beli egyedhez legfeljebb 1 E1-beli egyed tartozhat, például: vb_győztes(ország,rendező_ország). Kapcsolatok típusai K(E1,E2) bináris kapcsolat, sok-sok (n:m), K {(ei,ej)} alakú előfordulásai nincsenek korlátozva, előfordulhat (de nem kötelező, hogy előforduljon) az ábrán látható helyzet, vagyis minden E1-beli egyedhez több E2-beli egyed tartozhat, és fordítva, minden E2-beli egyedhez több E1-beli egyed tartozhat, például: tanul(diák,nyelv). E1 E2 E1 e2' E2 e1 e1' e2 e1 e1' e2 Kapcsolatok típusai K(E1,E2) bináris kapcsolat, egy-egy (1:1), K {(ei,ej)} alakú előfordulásai egyszerre sok-egy és egy- sok típusúak, vagyis minden E1-beli egyedhez legfeljebb egy E2- beli egyed tartozhat, és fordítva, minden E2-beli egyedhez legfeljebb egy E1-beli egyed tartozhat, nem kötelezően szerepel minden egyed a kapcsolatban, például: házaspár(férfi,nő). Kapcsolatok típusai K(E1,E2) bináris kapcsolat, öröklődési kapcsolat ("az egy", ISA), "a PC is a computer" = "a PC az egy számítógép", speciális egy-egy kapcsolat, K {(ei,ej)} alakú előfordulásaiban az összes E1-beli egyed szerepel, például: az_egy(főnök,dolgozó). E1 e2 E2 E1 e2 E2 e1 e1' e2' e1 e1' e2'
Szuperkulcsok, kulcsok, azonosítók Az egyedhalmaz szuperkulcsa olyan tulajdonsághalmaz, amelyről feltehető, hogy az egyedhalmaz előfordulásaiban nem szerepel két különböző egyed, amelyek ezeken a tulajdonságokon megegyeznek. Az összes tulajdonság mindig szuperkulcs. A minimális szuperkulcsot kulcsnak nevezzük Szuperkulcsok, kulcsok, azonosítók Az egyedhalmaz (szuper)kulcsai azonosításra használhatók. Több (szuper)kulcs is lehet. Ezek közül egyet kiválasztunk elsődleges (szuper)kulcsnak, a többi másodlagos (szuper)kulcs. Ha E1 egyedhalmaz szereplő T1,,Tk tulajdonságok halmaza az E2 egyedhalmaz (szuper)kulcsa, akkor azt mondjuk, hogy T1,,Tk idegen (szuper)kulcsa az E1- nek az E2-re nézve, például: hallgató(etr_kód,név,anyja_neve,szül_idő,lakcím) egyedhalmazban a név,anyja_neve,szül_idő idegen kulcs az ösztöndíjasok(név,anyja_neve,szül_idő,év,ösztöndíj) egyedhalmazra nézve. 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 az olvasó egyednél 11 12
13 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. 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 14 elmossa a különbségeket. 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 15 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. 16
17 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 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 17 18 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. 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. 19 20
21 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. 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 22 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, ) A relációs modell komponensei relációs adatstruktúra relációs műveletek relációs integritási feltételek 23 24
25 A relációs modell strukturális része Építőelemei: DOMAIN MEZŐ REKORD RELÁCIÓ ADATBÁZIS 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. 26 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. 27 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. 28
29 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. 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 30 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á 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) 13455667 22334523 44433366 Vuk Jane Eyre Emma Fekete István Ch. Brontë J. Austen 3200 3500 4000 Európa Magvető Helikon ISBN Cím Szerző Ár Kiadó 88885555 A Zahir P. Coelho 2500 Atheneaum Előfordulások Reláció 31 A reláció előfordulása egy táblázattal szemléltethető. 32
33 A Reláció elemeinek magyarázata EK diagramok leképzése relációkba Á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 34 EK diagramok leképzése relációkba Példa konverzióra Többértékű attribútum külön relációba, szerző - könyv Összetett attribútum felbontás attribútumokra pl. cím Gyenge entitás tulajdonos egyed (entitás) kulcsának betétele a gyenge egyedbe 35 36
Példa konverzióra A 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). 37 38