Adatmodellek Minden adatbázis-kezel rendszer egy absztrakt adatmodellel dolgozik, azért, hogy az adatokat ne csak bitek sorozataként lássuk. Egy adatmodell egy matematikai formalizmus mely a következ két részbl áll: egy jelölés az adat leírása érdekében mveletek halmaza, mely az illet adatok kezelésére használatosak
Az adatmodelleket többféleképpen is csoportosíthatjuk. Egyik csoportosítás: értékorientált modellek: relációs, logikai; objektum alapú modellek: hierarchikus, hálós, egyed/kapcsolat és az objektumorientált adatmodell.
Objektumazonosító fogalma: Egy rendszer, mely támogatja az objektumazonosító létezését, képes különbséget tenni két objektum egyenlsége (vagyis elfordulhat, hogy két különböz objektumnak egy adott pillanatban ugyanazon értékei legyenek) és azonossága (két objektum azonos, ha mindig ugyanazok az értékei) között. Egy objektum a következ páros: (<OID>,<érték>), ahol <OID> egy objektumazonosító és <érték> lehet egy egyszer vagy összetett érték. OID az egész rendszerben egyedi kell legyen és nem változhat meg, amíg az objektum létezik, az objektum törlése után, biztosítani kell, hogy egy más objektum se kaphassa ezt az OID-t.
Különbségek az adatmodellek között: 1. Ami a modell célját illeti: a legtöbb adatmodell az adatok szerkezetének egy jelölése, melyen az adatok kezelésére használatos mveletek is alapulnak. Az egyed/kapcsolat adatmodell a fogalmi adatbázis megtervezésére használatos. 2. Érték- vagy objektumorientáltak? 3. Hogyan oldják meg az adatismétlés kiküszöbölését?
2. Érték- vagy objektumorientáltak? 60-as években jelentek meg az els ABKR-ek hálós hierarchikus adatmodellre alapultak. hatékonyan tudtak nagy mennyiség adatot kezelni nem rendelkeztek deklaratív lekérdez nyelvvel objektumalapúak voltak abban az értelemben, hogy támogatták az objektumazonosító létezését, de nem támogatták az absztrakt adattípusokat. nem tevdik fel a lekérdezés optimalizálása.
2. Érték- vagy objektumorientáltak? az értékorientált (relációs és logikai) adatmodellek késbb jelentek meg, 70-es évek támogatják a deklaratívitást lekérdezés optimalizálása. Példa: tábla relációs adatmodellben: Alkamazottak [Név, Részleg] nem tárolhatunk két ('Kovács','informatika') alkalmazottat; egy plusz mezt kell a felhasználónak bevezetnie; Objektumorientált rendszer: meg tudja különböztetni a két 'Kovács'-ot. az objektumazonosítót a felhasználó nem látja.
3. Hogyan oldják meg az adatismétlés kiküszöbölését? Objektumorientált modellek: az objektumot egyszer tárolják, mikor más helyeken szükség van rá egy pointert használnak az illet objektum fele. Relációs adatmodell: normalizálás
Az egyed/kapcsolat adatmodell Egyed: egy olyan dolog, mely létezik és megkülönböztethet. (Vagyis egyik egyed megkülönböztethet a másiktól). Egyedek halmaza: az összes hasonló egyed egyedhalmazt alkot. Egy egyedhalmaznak több attribútuma is van. Minden egyednek az egyedhalmazból megfelel egy-egy érték minden attribútum értékeinek halmazából. Kulcs: egy vagy több attribútum, mely egyértelmen meghatároz egy egyedet az egyedhalmazban minden egyedhalmaznak van kulcsa, mivel feltételeztük, hogy minden egyed megkülönböztethet. ha egy egyedhalmazban nem választunk kulcsot nem fogjuk tudni megkülönböztetni az egyedeket egymástól. plussz attribútum
Specializáló az_egy (Is_a) hierarchiák A az_egy B (A "is_a" B), ha a B egyedhalmaz az A egyedhalmaz egy általánosítása, vagy másképp A egy speciális B. A örökli B attribútumait, és ezek mellett még lehetnek más attribútumai is. B-nek a kulcsa lesz A-nak a kulcsa is.
Kapcsolatok Egyedhalmazok közötti kapcsolat: az egyedhalmazok egy rendezett listája. Egy adott halmaz nem csak egyszer jelenhet meg. Ha R egy reláció az E 1, E 2,...,E k egyedhalmazok között, akkor az R egy példánya (e 1,e 2,...,e k ), ahol e 1 E 1, e 2 E 2,..., e k E k. k a reláció foka. Leggyakrabban használatos a k = 2.
példa: A Személyek között fennálló Szül kapcsolatot E/K diagram segítségével a következképpen ábrázolhatjuk: SzemSzám Név Személyek Szül Két élet rajzoltunk a Szültl a Személyek felé, az egyik a szül, a másik a gyerek. A Szül kapcsolatnak egy aktuális értéke (p 1, p 2 ), ha p 2 a p 1 szüleje.
Kapcsolatok típusai: 1 : 1 Pl. Középiskola: osztály - osztályfnök 1 : n Pl. Középiskola: osztály - diák n : m Pl. Középiskola: tanár tantárgy
Példa: egy nagykeresked cég egyszersített adatbázisa A cég különböz részlegei különböz típusú árukat árulnak. Építanyag nev részleg forgalmaz faárut, ftéshez szükséges árukat, fürdszoba-felszerelést stb. Kozmetikumok nev részleg forgalmaz mosószereket, szappanokat, deot, stb. Az árukat csoportosíthatjuk: Fürdszoba-felszerelések árucsoport: fürdkád, mosdókagyló stb. Szappanok árucsoport: Nivea szappan, Dove szappan, stb.
Az árukat különböz szállítók, különböz árban ajánlhatják, mindig az aktuális ajánlat érdekel. Egy szállító több árut is ajánl, de ugyanazt az árut több cég is ajánlhatja. A vevkkel a cégünk szerzdéseket köt a szállítandó árukra és a szállítási feltételekre vonatkozóan. A szerzdések általánosságokat tartalmaznak. Egy szerzdéshez több tétel is tartozik, amiben rögzítik, hogy melyik áruból mennyit rendelnek meg egy adott dátumig. Ugyanazt az árut többször is kell szállítani egy éven belül, különböz mennyiségekben ugyanazon a szerzdés keretében. Egy tételen belül több különböz árut is megrendelhet a vev egy adott dátumra.
Név SzemSzám Fizetés Név RészlegID Helység Alkalmazottak Dolgozik Részlegek SzülDat az_egy Irányít Árul Managerek CsopID ÁruCsoportok Név ÁruID Tartozik Név MértEgys Áruk MennyRakt RendMenny Ár Szállít Szerepel Név SzállMenny Dátum Szállítók SzállID TételID Tételek UtcaSzám Helység VevID Tartalmaz Név Helység Részletek Vevk Elhelyez Szerzdések UtcaSzám Mérleg SzerzdID Dátum