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észb l áll: egy jelölés az adat leírása érdekében m veletek halmaza, mely az illet adatok kezelésére használatosak
Az adatmodelleket csoportosítás:
többféleképpen
is
csoportosíthatjuk.
Egyik
− é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 egyenl sége (vagyis el fordulhat, 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: (
,<érték>), ahol 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 m veletek 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 tev dik 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és bb 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 mez t 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értelm en 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 E1, E2,...,Ek egyedhalmazok között, akkor az R egy példánya (e1,e2,...,ek), ahol e1∈E1, e2∈E2,..., ek∈Ek. 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övetkez képpen ábrázolhatjuk: SzemSzám Személyek
Szül
Név
Két élet rajzoltunk a Szül t l a Személyek felé, az egyik a szül , a másik a gyerek. A Szül kapcsolatnak egy aktuális értéke (p1, p2), ha p2 a p1 szüleje.
Kapcsolatok típusai: 1:1 Pl. Középiskola: osztály - osztályf nö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 egyszer sített adatbázisa A cég különböz részlegei különböz típusú árukat árulnak. „Épít anyag” nev részleg forgalmaz faárut, f téshez szükséges árukat, fürd szoba-felszerelést stb. „Kozmetikumok” nev részleg forgalmaz mosószereket, szappanokat, deot, stb. Az árukat csoportosíthatjuk: Fürd szoba-felszerelések árucsoport: fürd ká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 vev kkel a cégünk szerz déseket köt a szállítandó árukra és a szállítási feltételekre vonatkozóan. A szerz dések általánosságokat tartalmaznak. Egy szerz dé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 szerz dés keretében. Egy tételen belül több különböz árut is megrendelhet a vev egy adott dátumra.
SzemSzám
RészlegID
Fizetés
Név
Helység
Név Alkalmazottak
Dolgozik
az_egy
Irányít
Részlegek
SzülDat
Managerek
Árul
ÁruCsoportok
CsopID
Név Név
Tartozik
ÁruID
MennyRakt
Áruk
MértEgys
RendMenny Ár
Szállít
Szerepel
Név
Dátum
SzállMenny Szállítók
UtcaSzám
SzállID
TételID
Tételek
Helység Tartalmaz
Vev ID Név
Helység Elhelyez
Vev k UtcaSzám
Részletek
Mérleg
Szerz dések Szerz dID
Dátum