Adatmodellezés MODELL: a bonyolult (és időben változó) valóság leegyszerűsített mása, egy adott „vizsgálat” céljából. A modellben többnyire a vizsgálat szempontjából releváns jellemzőket (tulajdonságokat) hagyjuk meg, míg a többi jellemzőt elhanyagoljuk.
ADATMODELL: a valóság leképezése adatokra, azok kapcsolataira, felhasználásuk körülményeire, szabályaira. Az adatmodell alapján történik az adatbázis szerkezetének a megtervezése.
Az adatmodell készítés lépései:
1. Fogalmi modell Kiválasztjuk az élet azon területét, amivel a modell foglalkozni fog. Leszűkítés, leegyszerűsítés: ki, mire és hol fogja használni a modellt, a számítógépes adatbázis-kezelő alkalmazást. Feltárjuk, hogy milyen fogalmak lesznek, ezek milyen viszonyban állnak egymással, mik a folyamatok. Az alaprendszer megismerése. Mi lesz a rendszer kimenete, outputja?
2. Logikai modell I. mik lesznek az egyedtípusok (tárgy, személy, v. fogalom)? (egy egyedtípusba az azonos tulajdonságokkal rendelkező egyedek kerülnek)
II. az egyedtípusok milyen attribútumaival (tulajdonságaival) akarunk foglalkozni? (azonosító, leíró attribútumok) III. az egyedtípusok között milyen kapcsolatok vannak? (a kapcsolatok határozzák meg a belső struktúrát)
[egyedhalmazok kapcsolatai]
1:1 típusú kapcsolat - kölcsönösen (mindkét irányban) egyértelmű megfeleltetés - minden egyednek legfeljebb egy „párja” van a másik halmazban - példa: férfi-nő, házasság
1:N típusú kapcsolat (leggyakrabban alkalmazott) - lényeges az irányultság
←
- csak az egyik irányban (többtől az 1 felé) egyértelmű megfeleltetés - a „több” oldalon lévő halmaz egyedeinek legfeljebb egy „párja” van az „1” oldalon lévő halmazban - példa: festő-festmény (lehatárolásokkal)
N:M típusú kapcsolat - egyik irányban sem egyértelmű a megfeleltetés - egy elemnek tetszőleges számú „párja” lehet a másik halmazban - példa: hallgató-tantárgy
N:M kapcsolat felbontása kapcsoló egyedtípussal két, egymásra szimmetrikus 1:N kapcsolatra tantárgy
hallgató
tantárgyfelvétel (fogalmi egyedtípus)
(N:1)
(1:N)
3. Fizikai modell A rendelkezésre álló hardver és szoftver figyelembe vétele (az adatkezelő által biztosított adattípusok, méretek, használók hozzáférési jogosultságai). Feldolgozások megtervezése: egyszerű műveletek (keresés, sorbarendezés, stb.) összetett műveletek (csoportképzés, összegzés, statisztikakészítés, stb.). Gyakran ismétlődő, vagy időszakonként ismétlődő feldolgozások. Fizikai adatfüggetlenség: az adatmodell független a HW, SW feltételektől, bármilyen „környezetben” megvalósítható”. Ezután következik az alkalmazás elkészítése, a programozás.
Relációs adatmodell, adatbázis-tervezés Adatmodellek típusai Relációs adatmodell [attribútumokra helyezi a hangsúlyt] – ma már szinte egyeduralkodó. Tárolás módja: adattáblák. Egy tábla egy egyedtípus tulajdonságait foglalja össze. Az adatmodell egymással kapcsolatban lévő táblákból áll. Többdimenziós (multidimenziós) adatmodell – relációsból fejlődött ki, a jövő útja. Az adatmodell a feldolgozások-típusára, a gyors elemzésre optimalizált (szeletelés módszere). Az adatok többdimenziós változókban vannak tárolva. Pl. Oracle cég fejleszt ilyen szoftvereket. 3 dimenziós adatmodell
területi egység (i)
1. dimenzió (i)
TERÜLETI EGYSÉGEK
3 dimenziós változó
időszak (j)
2. dimenzió (j)
IDŐSZAKOK
Relációs adatmodell database term
A relációs adatmodellben alkalmazott fogalmak
datamodel term
database
connected data tables
data_table
entity type
column
attribute
record (row)
entity
data element (field)
1 attribute of 1 entity
database
data_table_n data_table_3
column_1
column_2
data_table_1 data_table_2
data_table_n
record (row)
field
…
column_n
1. adattáblák szerkezetének definiálása - az oszlopok megadása: név, típus, hossz, érvényességi szabály, érvényesítési szöveg
azonosító, leíró attribútumok kulcs (key): az egyedek (rekordok) egyértelmű azonosítására szolgáló oszlop(ok) egyszerű kulcs
pl. személyi_ig_szám
összetett kulcs
pl. név, lakcím, születési_idő
minimális kulcs (erre kell törekedni)
pl. ld. előző
szuper kulcs (elégségesnél több attribútum, kerülendő) pl. név, lakcím, születési_idő, jogosítvány_szám elsődleges kulcs (primary key) – az adott feldolgozásnál használt kulcs 1. KÖTELEZŐ KITÖLTENI 2. NEM ISMÉTLŐDHET A KULCSOSZLOPBAN ÉRTÉK idegen kulcs (foreign key) – két tábla közötti kapcsolat definiálását szolgálja, a kapcsolat az értékeken, az adatokon keresztül realizálódik. Az adott táblában (a kapcsolt táblában) nem kulcs, de egy másik táblában (a kapcsolótáblában) elsődleges kulcs. elsődleges attribútum másodlagos attribútum
– legalább egy kulcsban szerepel – nem szerepel kulcsban
2. adattáblák közötti kapcsolatok létrehozása (1:N kapcsolattípus) connected records
„1” side column_1
(primary key)
column_2
…
column_n
„N” (more) side column_1
column_2
column_j
(foreign key)
column_n
ID_y ID_x ID_x
ID_z ID_x ID_x
„soft” logical redundancy
same data type and length is required
METAADAT: Az „adatokra vonatkozó adat”, melyek az adatok tárolási jellemzőit, azok szerkezetét írják le. A metaadatok köre az adatbázis-kezelő rendszertől függ. Például, ha az adatbázis-kezelő relációs, akkor a metaadatok között szerepelnek a relációk nevei, a relációk attribútumainak nevei és az attribútumok adattípusai
Adatbázisok normalizálása Alapkérdés: mikor megfelelő az adatbázis szerkezete? Adattáblák normalizálása (táblázatszétbontó műveletek): arra törekszünk, hogy minél kisebb redundanciával tudjuk az adatainkat tárolni. A kapcsolatok létrehozásához gyenge logikai redundancia szükséges. Redundancia okozta anomáliák. Normál formák definíciója 1 NF (első normál forma):
oszlopok száma és sorrendje minden sorban azonos, nincs két egyforma sor, minden sorhoz egyedi kulcs tartozik, s minden más mező ettől funkcionálisan függ, minden attribútum csak egyetlen értéket vehet fel. Funkcionális függés: ha az egyik oszlopban (oszlop1) két rekordban (egyednél) ugyanaz az érték szerepel, akkor egy másik oszlopban (oszlop2) is megegyezik a két rekordhoz (egyedhez) tartozó érték.
Példa: alkalmazottak adatainak nyilvántartása cég neve (oszlop1), székhely címe (oszlop2) tulajdonságok között van-e funkcionális függés, ha van, milyen irányban?
ID
cég neve (oszlop1)
székhely címe (oszlop2)
1
Tudás Bt.
Egyetem u. 3.
2
Szorgalom Kft.
Iskola tér 5.
3
Tudás Bt.
Egyetem u. 3.
4
Kitartás Rt.
Egyetem u. 3.
5
Szorgalom Kft.
Iskola tér 5.
6
Kitartás Rt.
Egyetem u. 3.
oszlop1
oszlop2
oszlop2
oszlop1
2 NF (második normál forma): ha az adattábla első normál formában van és a nem kulcs mezők funkcionálisan teljesen függnek az elsődleges kulcstól és csak attól, nem a részeitől [összetett kulcsnál vizsgálódunk]. Megoldás: amely mezők nem a teljes kulcstól függnek, azokat új táblába helyezzük, ahol a részleges kulcs lesz az elsődleges kulcs.
3 NF (harmadik normál forma): ha az adattábla második normál formában van és függés csak az elsődleges kulcsból indulhat ki. A másodlagos attribútumok között nincs függőség, azaz nincs tranzitív függőség a táblában.
kulcs
attribútum1 attribútum2
Megoldás: az egymástól függő másodlagos attribútumokat új táblába helyezzük át, ahol az attribútum1-et választjuk elsődleges kulcsnak. További normál formákat is alkalmaznak.