2012.05.11.
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
Adatbázisok I Szemantikai adatmodellek Szendrői Etelka PTE-PMMK Rendszer és Szoftvertechnológiai Tanszék
[email protected]
2
Adatbázis modellek típusai
Adatbázisrendszer-specifikus tervezés 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
2012.05.11.
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
Egyed-kapcsolat modell
Általános jellemzők:
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
magasabb absztrakciós szint objektum orientált grafikus
Leggyakoribb elemek:
elemi objektum komplex objektum Asszociáció Típusöröklés Tartalmazás érték megkötés Operátorok műveleti megkötések
: szín, rendszám : autó, ember : tulajdonosa : jármű és autó : autó és motor : életkor > 14 : tulajdonos átírás : átírásnál adóbefizetés
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
2012.05.11.
Tulajdonság elem az EK modellben
Egyed 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:
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
normál: egyértékű kulcs: azonosító szerepű összetett: több tagból áll többértékű: több értéke is lehet származtatott: értéke kiszámítható
ember.szülidő ember.TAJszám ember.lakcim(irsz,varos) ember.hobbi ember.életkor
9
10
Kapcsolat elem az EK modellben
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.
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
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
11
12
3
2012.05.11.
Példa
Kapcsolatok attribútumai
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!
Ha szükséges, a kapcsolatokhoz is rendelhetünk attribútumokat.
13
Kapcsolat attribútumának megszüntetése új egyed bevezetésével
15
14
Sokágú kapcsolat kiváltása egy egyedhalmazzal és bináris kapcsolatokkal
16
4
2012.05.11.
Szerepek a kapcsolatokban
Egy kapcsolat szerepekkel
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.
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
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.
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
2012.05.11.
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
Könyvtár ER modellje
Modellezési feladat 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
2012.05.11.
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 a dolgozó mint olvasó egyednél
25
ER modellezés sajátosságai (2)
26
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.
Asszociáció ideiglenes szimmetrikus laza Tartalmazás szoros kapcsolat nem szimmetrikus állandósult
27
ember
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 28
7
2012.05.11.
EER modell - Alosztályok
A kiterjesztett EER modell
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
Asszociáció ideiglenes szimmetrikus laza Tartalmazás szoros kapcsolat nem szimmetrikus állandósult
ember
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.
Öröklési kapcsolat
29
30
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 32
8
2012.05.11.
Codd 12 szabálya
Codd 12 szabálya (folyt.)
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
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 33
34 34
Codd 12 szabálya (folyt.)
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.
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 35
36
9
2012.05.11.
Néhány elterjedtebb relációs adatbázis-kezelő rendszer (RDBMS)
Relációs adatmodell
Kereskedelmi szoftverek:
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,…)
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
37
A relációs modell komponensei
38
A relációs modell strukturális része Építőelemei:
relációs adatstruktúra relációs műveletek relációs integritási feltételek
DOMAIN MEZŐ REKORD RELÁCIÓ ADATBÁZIS
39
40
10
2012.05.11.
A domain fogalma
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.
Domain: értelmezési tartomány, mely megadja az elemhez tartozó értékkészletet, és meghatározza a végrehajtható műveletek körét.
41
42
Kulcs, index definíciója
Reláció, séma
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ó: 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
2012.05.11.
Domain
Mező, rekord MEZŐ jellemzője:
DOMAIN: egy fogalomhoz rendelhető értékek rendszere
egyértékű lehet normál vagy kulcs elnevezés, domain jellemzi integritási elemek köthetők hozzá tulajdonságként értelmezhető
é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:
REKORD jellemzője: rögzített mezősorrend szerkezet jellemzi (séma) -integritási elemek köthetők hozzá
NUMBER(n,m) CHAR(n) DATE
egyedi domainek 45
Reláció
46
A Reláció elemeinek magyarázata
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
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
A reláció előfordulása egy táblázattal szemléltethető.
Kiadó
Reláció 47
48
12
2012.05.11.
EK diagramok leképzése relációkba
EK diagramok leképzése relációkba
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:
EK diagramok leképzése relációkba
EK diagramok leképzése relációkba
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
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.
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
2012.05.11.
EK diagramok leképzése relációkba
EK diagramok leképzése relációkba
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.
EK diagramok leképzése relációkba
EK diagramok leképzése relációkba
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
2012.05.11.
EK diagramok leképezése relációkba
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ó.
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.
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
2012.05.11.
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