ADATMODELLEK
Az adatmodellek alapelemei
Az egyed fogalma:
Egyednek hívunk minden olyan dolgot (objektumot), ami minden más dologtól (objektumtól) megkülönböztethető és amiről adatokat tárolunk.
Az egyed konkrét dolgok absztrakciója (elvonatkoztatása, elméleti megközelítése), konkrét dolgokat fog egybe. (Például az autó mint egyed sok autót jelent.)
Egy adott egyed által képviselt konkrét elemek halmazát egyedhalmaznak is szokás nevezni. (Például az autó nevű egyed egyedhalmaza az összes autóból áll.)
Egy adott valóságos objektum különböző egyedekkel tükrözhető. (Például egy vállalat a nézőponttól függően lehet vevő, szállító, adós, hitelező stb. egyed.)
Azt, hogy egy konkrét dolog esetén mit tekintünk egyednek, az egyedhalmaz konkrét elemei határozzák meg.
Az egyed egy konkrét értékét az egyedhalmazban az egyed egy előfordulásának nevezzük. Az előfordulást szokás egyedértéknek is nevezni.
A rekordtípus:
Az adatbázis-kezelő rendszerekben általában az egyedtípust rekordtípusnak hívjuk.
Ez a legkisebb címezhető egység az adatbázisban.
A tulajdonság:
Az egyedeket tulajdonságokkal (attribútumokkal) írjuk le.
A tulajdonság az egyed egy jellemzője, amely meghatározza az egyed egy részletét. (Például a dolgozó nevű egyed tulajdonságai lehetnek a személyi szám, a név, a fizetés stb.)
A tulajdonság is egy absztrakció, amely több elemet foglal egybe, tehát konkr 13213r1724n ét értékekből, előfordulásokból áll. (Például a név tulajdonság konkrét elemei az egyes személyek nevei.)
A tulajdonságok lehetnek:
- azonosítók egyértelműen meghatározzák az egyed előfordulásait,
- leírók nem határozzák meg az egyed előfordulásait.
A kulcs:
Amennyiben egy tulajdonság vagy tulajdonságok egy csoportja egyértelműen meghatározza, hogy egy egyed melyik értékéről, előfordulásáról van szó (tehátaz egyedhalmaz melyik eleméről), akkor ezeket a tulajdonságokat együtt kulcsnak nevezzük.
Nyilvánvaló, hogy minden egyedhez értelmezhetünk kulcsot, hiszen az egyedet úgy határoztuk meg, hogy az megkülönböztethető egy másik egyedtől.
Ha nem találunk olyan tulajdonságokat, amelyek meghatározzák az egyedhalmaz elemeit, akkor be kell vezetnünk egy olyan tulajdonságot (sorszámot, kódot, azonosítót), amelyet kulcsként használhatunk.
Többértékű és összetett tulajdonságok:
A tulajdonságok között lehetnek olyanok, amelyeknek több értéke van, ezeket hívjuk többértékű tulajdonságoknak. (Például a végzettség egy dolgozónál, amelyből több is lehet.)
Bizonyos attribútunok lehetnek összetettek. (Például a lakcím állhat irányítószámból, városból stb.)
A relációs adatmodellekben ezek a többértékű, illetve összetett tulajdonságok nem kezelhetők megfelelően.
A kapcsolat fogalma:
Kapcsolatnak nevezzük az egyedek közötti viszonyt.
A kapcsolat mindig valóságos objektumok közötti viszonyt fejez ki, hiszen az egyed ilyen objektumokat képvisel. (pl. személyek mint egy vállalat dolgozói, vevők és rendelések)
A kapcsolatot rombusszal vagy az egyedtípusokat összekötő vonallal jelöljük, a kapcsolat nevét a rombuszba, vagy a vonalra írjuk.
A kapcsolat is absztrakció, két egyed értékei közötti konkrét viszonyt fejez ki.
A konkrét kapcsolatokat a kapcsolat értékeinek (előfordulásainak) nevezzük. (pl. egy konkrét vevőhöz sok rendelés tartozhat.)
A kapcsolat fokai:
Kapcsolat egyidejűleg több egyed között is lehet. Ha a kapcsolat n db egyedet köt össze, akkor n-edfokúnak nevezzük.
A leggyakoribb a bináris (másodfokú) kapcsolat, amikor két egyedet kötünk össze.
Speciális bináris kapcsolat a rekurzív bináris kapcsolat. Ilyenről van szó akkor, ha az egyeden belül az előfordulások vannak kapcsolatban. (pl. a dolgozó egyedben benne vannak a vezetők is.)
Gyakoriak a harmadfokú (ternary) kapcsolatok is, amikor három egyed van kapcsolatban egymással.
A kapcsolatok fajtái:
A kapcsolat típusa attól függ, hogy egy adott egyed egy előfordulásához hány egyedelőfordulás tartozik a másik egyedből.
Egy-egy típusú kapcsolat:
Az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmaznak pontosan egy eleme kapcsolódik.
A két egyedhalmaz egymásba kölcsönösen egyértelműen leképezhető. (pl. személyi szám és személy egyedhalmazok.)
Egy-több típusú kapcsolat:
Ha az egyik egyedhalmaz mindegyik eleméhez a másik egyedhalmazból több elem is tartozhat. (pl. a megye és település egyedhalmazoknál, mindegyik megyéhez több település kapcsolódhat.)
Több-több típusú kapcsolat:
Az egyik egyedhalmaz minden eleméhez a másik egyedhalmazból több egyed is tartozhat, és fordítva. (pl. a színek és a házak egyedhalmaz, minden házhoz tartozhat több szín és minden színhez több ház.)
Példa:
Legyen a személy az egyik egyed. Ekkor pl. a név, a születési dátum, a nem, a foglalkozás tulajdonságok. Legyen a másik egyed a vállalat adott tulajdonságokkal.
A kapcsolat a személy és vállalat közötti foglalkozási viszony. Jelöljük ezt a kapcsolatot vállalat-személy néven.
Ezeknek az absztrakt objektumoknak a konkrét értékei: konkrét személyek, konkrét születési dátum értékek, konkrét nemek, konkrét foglalkozások és konkrét vállalatnevek, címek.
A kardinalitás:
Az egyedek a kapcsolat szempontjából a kardinalitási számmal is jellemezhetők.
Az egyed maximális kardinalitási száma azt adja meg, hogy az egyed egy előfordulásához a másik egyedből legfeljebb hány előfordulás tartozhat.
Hasonló a minimális kardinalitási szám definíciója.
A belső szerkezet:
Az egyedeket egyenként véges számú tulajdonsággal írunk le. Ezek a tulajdonságok alkotják az egyed belső szerkezetét.
A settípus:
A hálós és hierarchikus adatbázis-kezelő rendszerekben két egyedtípust (rekordtípust), a köztük lévő kapcsolattal együtt settípusnak hívunk.
A settípusokat névvel láthatjuk el és így hivatkozhatunk rájuk.
A kapcsolatnak ilyenkort irányt is adunk (rajzban egy nyíllal jelöljük). Az egyik rekordtípust tulajdonosnak (Owner), a másikat tagnak (Member) nevezzük.
A kapcsolatok ábrázolása:
Vonalas összekötés:
A két egyedtípust egy egyenessel kötjük össze, illetve ha a kapcsolat irányát is ábrázolni akarjuk, akkor ezt egy nyíllal jelöljük.
Ebben az ábrázolási módban a kapcsolat típusát nem ábrázoljuk.
Vállalat |
Dolgozó |
|
Chen féle jelölés:
A kapcsolatot egy rombusz jelöli, amelybe beleírjuk a kapcsolat tartalmát, nevét.
Megadjuk a kapcsolat típusát (1:1, 1:N, N:M), és a zérus minimális kardinalitást is jelöljük egy körrel.
A kapcsolat irányát nyíllal jelölhetjük.
"Varjú lábas" ábrázolás:
Egyed-szupertípus, egyed-altípus:
Ha több egyedtípus ugyanazokkal a tulajdonságtípusokkal rendelkezik, akkor ezek az egyedtípusok összevonhatóak egy magasabb szintű egyedtípusba.
Ezt az absztrakciót generalizálásnak nevezzük. (pl. a Dolgozó egyedtípus a Vezető, Mérnök, Titkárnő stb. egyedtípusokból összevonva is előáll.)
Az ilyen egyedtípust, amelyet több típusból generalizálunk egyed-szupertípusnak, az őt alkotó egyedtípusokat pedig egyed-altípusoknak hívjuk.
Más szempontból az egyed-altípusok az egyed-szupertípusok specializációi.
Az egyed-szupertípusok és egyed-altípusok kapcsolati rendszerét generalizációs hierarchiának nevezzük.
Az egyed-altípusok lehetnek diszjunktak, amikor nincs közös elemük, és lehetnek nem diszjunktak (átfedés van köztük). (pl. az előbb említett Dolgozó - Vezető, Mérnök, Titkárnő stb. diszjunktak, míg pl. a Személy - Dolgozó, Vevő nem feltétlenül azok.)
A tulajdonságokat az egyed-altípusok öröklik az egyed-szupertípustól.
Aggregáció:
Az aggregáció egy olyan kapcsolat az egyedtípusok között, amikor a tulajdonságok nem öröklődnek, hanem mindegyik egyednek saját tulajdonságai vannak. (pl. a Szoftvertermékek része a Program és a Felhasználói kézikönyv.)
Az adatmodellek és az adatbázisok
Az adatmodell fogalma:
Az adatmodell egyedek, tulajdonságok és kapcsolatok halmaza, amely absztrakt módon tükrözi a valós objektumoknak, azok jellemzőinek (tulajdonságainak) és viszonyainak (kapcsolatainak) elvont kategóriáit.
Az adatmodell meghatározza az adatbázis szerkezetét.
Az egyedet, a tulajdonságot és a kapcsolatot adatmodell elemeknek nevezzük.
Az adatmodell elemekből különböző módon állíthatjuk össze magát az adatmodellt, és így különböző adatbázisokat hozhatunk létre.
Az adatmodelleknek három alaptípusa terjedt el.
Az adatmodell típusa meghatározza az adatbázis-kezelő rendszert és a használható nyelvet.
Adatmodellek fajtái (a kialakulás sorrendjében):
hierarchikus,
hálós,
relációs.
A hálós adatmodell
Alapjellemzők:
A hálós adatmodell a hierarchikus modell általánosítása.
Az adatmodell szerkezete legjobban egy gráf segítségével írható le, ahol a gráf csúcsai az egyedeket, élei pedig a köztük lévő kapcsolatokat mutatják.
Az egyes egyedeket itt is tulajdonságokkal írjuk le.
Példa a modell szerkezetére:
legyenek az egyedek és tulajdonságaik az alábbiak:
VEVŐ | |||
Vevő-kód |
Vevő-név |
Vevő-cím | |
RENDELÉS | |||
Rendelési-szám |
Rendelési-dátum |
Határidő | |
TERMÉK | |||
Termék-kód |
Terméknév |
Termék-méret |
Egységár |
TÉTEL | |||
Tételszám |
Rendelt-mennyiség |
Index |
ekkor a hálós modell a következő:
VEVŐ |
RENDELÉS |
|||
x x x x x x x |
x x x x x x x x x x x x |
|||
TERMÉK |
|
TÉTEL |
||
x x x x x x x x x x x |
x x x x x x |
|||
A VEVŐ egyed az összes vevő halmaza.
Tekinthetjük csúcsnak a VEVŐ egyedet egészében. de az egyes egyedelőfordulásokat (konkrét vevőket) is.
Minden vevőhöz tartozik egy, vagy több rendelés amelyek a VEVŐ - RENDELÉS kapcsolatot létrehozzák. A kapcsolatot felfoghatjuk úgy is, hogy egy konkrét vevő konkrét rendelései egy csokorba vannak fűzve, és ilyenkor ez az egyedelőfordulások közötti kapcsolat az adott kapcsolat (jelen esetben a VEVŐ - RENDELÉS) értékeit, előfordulásait jelenti.
A gráfban könnyen megkereshető egy konkrét egyed, konkrét rendelésének, konkrét tétele, ha az egyes előfordulásokat összekötő éleken végigmegyünk.
Ezt az utat navigációs útnak nevezzük.
A hálós adatmodellben az egyedek közötti kapcsolatot listaszerkezettel (mutatók segítségével) adhatjuk meg.
A hierarchikus adatmodell
A hálós adatmodell speciális változata.
A leíró gráf egy fa.
1. egyed | ||||||||||||||
1.1 egyed |
1.2 egyed |
1.x egyed |
||||||||||||
1.1.1 egyed |
1.1.2 egyed |
1.1.x egyed | ||||||||||||
A relációs adatmodell
Az előző kettőtől eltérő meggondoláson alapul.
A kapcsolat mint adatmodell-elem nem épül be az adatmodellbe, csak a lehetősége.
A fő hangsúlyt a tulajdonságok kapják, ezek írják le a szerkezetet. (Az előző két modellt leíró gráfban a tulajdonságok nem is szerepeltek.)
Az egyedet egy táblázattal adjuk meg, ahol a táblázat oszlopai a tulajdonságok.
A táblázat sorai (rekordjai) az egyed értékei.
A táblázat tehát maga az egyedhalmaz illetve egyed.
A különböző egyedeket több táblázatban tároljuk, és köztük lévő kapcsolat általában úgy látszik, hogy a tábláknak van közös oszlopuk (azaz az egyedeknek közös tulajdonságuk).
|