Egyed-kapcsolat formális modell E(A1,…,An) egyedhalmaz séma,
Adatbázisok I Szemantikai adatmodellek Szendrői Etelka PTE-PMMK Rendszer és Szoftvertechnológiai Tanszék
[email protected]
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.
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.
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
e2 e1
e2'
E2
Kapcsolatok típusai
Kapcsolatok típusai
K(E1,E2) bináris kapcsolat,
K(E1,E2) bináris kapcsolat,
sok-sok (n:m),
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). E1
E2 e1
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'
Kapcsolatok típusai K(E1,E2) bináris kapcsolat,
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 E2beli 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ő). e2 e1 e1'
e2
e1'
Kapcsolatok típusai
E1
e2' E2 e1
e2'
E2
ö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 e1 e1'
e2'
E2
Szuperkulcsok, kulcsok, azonosítók
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 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 E1nek az E2-re nézve,
Az összes tulajdonság mindig szuperkulcs. A minimális szuperkulcsot kulcsnak nevezzük
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.
Az ER Modellezés sajátosságai
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
Egy egyedhalmaz többször is szerepel egy kapcsolatban. Példa:
ügyosztály: egyed egy vállalati struktúrában, de tulajdonság is lehet az olvasó egyednél
11
12
ER modellezés sajátosságai (2)
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.
Egy objektum megjelenhet kapcsolatként és egyedként is.
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.
13
Tartalmazás szoros kapcsolat nem szimmetrikus állandósult
jármű IS_A (az-egy) autó HAS_A
motor
Specializáció állandósult nem szimmetrikus fogalmi szinten él csak
A tartalmi különbség megmutatkozik a formában is.
jármű
autó
motor Az egyfajta jelölési mód elmossa a különbségeket.
Specializáció állandósult nem szimmetrikus fogalmi szinten él csak 14
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.
Az ER modell kibővítése a specializáció és a tartalmazás kapcsolat elemekkel. Jele: EER
ember
Tartalmazás szoros kapcsolat nem szimmetrikus állandósult
ember
EER modell - Alosztályok
A kiterjesztett EER modell
Asszociáció ideiglenes szimmetrikus laza
Asszociáció ideiglenes szimmetrikus laza
15
16
Relációs adatmodell
Codd 12 szabálya
Korábbi adatbázis modellek:
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
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 17 17
18 18
Codd 12 szabálya (folyt.)
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.
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 19
20 20
Néhány elterjedtebb relációs adatbázis-kezelő rendszer (RDBMS)
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.
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
21
Relációs adatmodell
22
A relációs modell komponensei
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,…) 23
relációs adatstruktúra relációs műveletek relációs integritási feltételek
24
A relációs modell strukturális része
A domain fogalma
Építőelemei:
Domain: értelmezési tartomány, mely megadja az elemhez tartozó értékkészletet, és meghatározza a végrehajtható műveletek körét.
DOMAIN MEZŐ REKORD RELÁCIÓ ADATBÁZIS
25
26
Mező, rekord definíciója
Kulcs, index 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.
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. 27
28
Domain
Reláció, séma
DOMAIN: egy fogalomhoz rendelhető értékek rendszere
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.
értékhalmaz, mezőtípus műveletek, operátorok köre konverziós szabályok integritási elvek
Séma: az adatbázis szerkezeti sémája; az adatbázis elemek, objektumok szerkezetének leírása.
pl.: életkor értékből nem vonható ki testmagasság érték szabvány domain-ek: NUMBER(n,m) CHAR(n) DATE
egyedi domainek 29
30
Reláció
Mező, rekord
RELÁCIÓ fogalma: azonos típusú rekordok halmaza
MEZŐ jellemzője:
- nincs sorrendiség - nincs rekord pozíció - nincs két azonos rekord
egyértékű lehet normál vagy kulcs elnevezés, domain jellemzi integritási elemek köthetők hozzá tulajdonságként értelmezhető
megadása: - Azonosító név - rekord típus (relációsémája)
REKORD jellemzője: rögzített mezősorrend szerkezet jellemzi (séma) -integritási elemek köthetők hozzá
13455667
Vuk
Fekete István
3200
Európa
22334523
Jane Eyre
Ch. Brontë
3500
Magvető
44433366
Emma
J. Austen
4000
Helikon
88885555
A Zahir
P. Coelho
2500
Atheneaum
ISBN Cím Szerző Ár
Előfordulások 31
A reláció előfordulása egy táblázattal szemléltethető.
Kiadó
Reláció 32
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 33
34
Példa konverzióra
EK diagramok leképzése relációkba
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