(A logikai adatmodell kialakítása) Adatmodellezés (A logikai adatmodell kialakítása) Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék
Adatbázis fogalma nagymennyiségű adat • leírására • tárolására • visszanyerésére kifejlesztett rendszer, amelyet több felhasználói program is használ.
Adatbázis elemei adatállomány (data fájl, database), amelyben az adatokat tárolják; kezelőszoftverek (adatbázis-menedzsment rendszer/Database Management System, DBMS), amelyek az adatokat a megadott leírásnak megfelelően tárolják, megkeresik vagy további műveleteket hajtanak velük végre.
Adatbázis-séma Az adatbázis teljes felépítése, az adatok struktúrája - az egyes adatelemek - az adatelemek kapcsolatai az adatbázis-sémában kerülnek rögzítésre.
Példa adatbázis-sémára
Adatbázis-séma Minden adatbázishoz egyetlen egy séma tartozik. SÉMA: meghatározza a logikai adatszerkezetet tárolási struktúrát az egyes adatelemek között fennálló fizikai és logikai kapcsolatokat. Egy adatbázis sémához akárhány alséma illeszthető.
Adatbázis tervezés célja az adatok integrációjának, felhasználói programok adatfüggetlenségének biztosítása.
Adatbázis tervezés lépései 1. Követelmények rögzítése 2. Koncepcionális adatmodell kialakítása 3. Adatmodell kiválasztása 4. Adatbázis séma megvalósítása
Adatbázis tervezés lépései 1. Az adatbankkal szemben támasztott követelmények rögzítése statikus követelmények (entitások, tulajdonságaik, kapcsolataik) dinamikus követelmények (entitásokon végzett műveletek)
Adatbázis tervezés lépései 2. A koncepcionális adatmodell kialakítása A három-séma koncepció alapján (egységes adatleírást jelent) koncepcionális séma (logikai szint) belső séma (fizikai szint) külső séma (felhasználói szint) A szemantikus adatmodell (E-R, azaz Entity - Relationship - Modell) - gépfüggetlen, az adatok tartalmi elemzéséből indul ki.
Adatbázis tervezés lépései 3. Az adatmodell kiválasztása Az adatmodell egy olyan séma, amelyben megadjuk milyen tulajdonságok határozzák meg az egyedeket, milyen egyedek szerepelnek a sémában, és ezek között milyen kapcsolatok vannak. Adatmodellek típusai: hierarchikus hálós relációs
Hálós adatmodell A hálós adatmodell szerkezetét gráffal adjuk meg. Ebben a gráfban a csomópontok az egyedek, az élek pedig a kapcsolatot fejezik ki. Az egyedeket tulajdonságaikkal írjuk le.
Hierarchikus adatmodell A hierarchikus adatmodell szerkezetét speciális gráffal, fával adjuk meg. A csomópontok itt is egyedeket jelentenek és a nyilak a kapcsolatokat fejezik ki. Például: Hierarchikus adatmodell alakítható ki egy cég szervezeti hierarchiájának leírására Hierarchikus adatmodellt használnak a windows rendszerek felhasználói adatbázisának tárolására Hierarchikus adatszerkezetet használunk egy file rendszer leírására.
Relációs adatmodell Ennél az adatmodellnél a három adatmodell elem közül a kapcsolat nem, csak a lehetőség épül be az adatmodellbe A relációs adatmodellnél a tulajdonságok kapják a fő hangsúlyt, a tulajdonságokkal definiáljuk az adatmodell szerkezetét Az előző két modellben a gráffal történő leírásban éppen a tulajdonságok nem szerepeltek, ezeket külön adtuk meg
Relációs adatmodell A relációs adatmodellben az egyedet egy táblázattal adjuk meg, melynek oszlopai a tulajdonságok. A táblázat sorai az egyed értékei (vagyis a táblázat maga éppen az egyedhalmaz). A relációs adatmodellben minden tábla egy egyedhalmaz, de a táblázatok (tehát az egyedek) közötti kapcsolatokat nem definiáljuk az adatmodell felírásakor. Ez nem azt jelenti, hogy nincsen közöttük kapcsolat, de ezeket a kapcsolatokat például egyszerűen az fejezi ki, hogy két táblának van közös oszlopa (mindkét táblában szerepel ugyanaz a tulajdonság).
Adatbázis tervezés lépései 4. Az adatbank séma megvalósítása A konkrét adatbázis kezelőrendszer kiválasztása (Pl. ORACLE, ACCESS) Az adatbázis tervezés eredményeként létrehoznak egy ADATKATALÓGUS (ADATSZÓTÁR)-t az adatbázisbeli adatok, valamint tárolási és használati módjuk leírása.
Relációs adatbázis objektumok EAR = Entity-Attribute-Relationship Típus és előfordulás Egyed - Entity Kapcsolat - Relationship Adat - Attributum Az adatmodellben az entitástípusokkal foglalkozunk, A feldolgozásban ezen típusok konkrét értékével.
Meta-adat Olyan adat, amely más adat vagy adatok jellemzőit, tulajdonságait írja le. Például: az adat definíciók, az adatra vonatkozó korlátok és szabályok, az adat szerkezeti felépítése stb. A meta-adatok: nem tartalmazzák magukat az adatokat, amelyeket leírnak, a teljes adatállományról egy átfogó képet tudnak adni, növelve ezzel is a felhasználó áttekintőképességét.
Meta-adat
Funkcionális függés A B A modellezés alapja a funkcionális függés vizsgálata. A halmaz adott előfordulása meghatározza B egyik elemét, azaz B halmaz elemei funkcionálisan függnek A halmaz elemeitől. A B
X független változó egyértelműen meghatározza Y értékét Funkcionális függés R.X ↔ R.Y X független változó egyértelműen meghatározza Y értékét Például: egy személyi azonosítószám meghatározza a nevet.
Teljes funkcionális függőség Ha X kulcs összetett és az Y csak az összetett kulcstól függ teljesen, de NEM FÜGG annak egyetlen komponensétől sem. Ha az X kulcs nem összetett, akkor a funkcionális és a teljes funkcionális függőség ugyanaz.
Egyed jellemzők Független egyed - nincs fölérendelt Hierarchikusan alárendelt egzisztenciális függés kulcs függés (összetett hierarchikus kulcs) Képzett egyed - kapcsolati egyed N:M kapcsolat esetén jön létre saját attribútumai lehetnek további kapcsolatai is lehetnek
Attribútumok (tulajdonságok) azonosítók - Elsődleges kulcs egyszerű összetett leíró tulajdonságok (attribútumok) idegen kulcsok Kapcsolatok megvalósítására az alárendelt örökli a fölérendelt azonosítóját
Kapcsolatok - relációk Különböző egyedek kapcsolatai 1:N hierarchikus N:M hálós 1:1 kölcsönös egymáshoz rendelés
Az entitástípusok közötti kapcsolatok foka
Dolgozói nyilvántartás készítése A dolgozókról a következő adatokra van szükségünk: - személyi azonosító (AZON) - vezetéknév (VNÉV) - keresztnév (KNÉV) - végzettsége (VÉGZ) - szervezeti egység kódja (SZERV) - szervezeti egység neve (SZNÉV) - projekt kódja (amelyen dolgozik) (PKÓD) - projekt neve (PNÉV) - munkaidejének hány %-ban dolgozik a projekten (M%) - a szervezeti egység vezetőjének azonosítója (FŐNÖK)
Dolgozói nyilvántartás készítése A cég feltételeinek elemzése alapján megállapítható: - a személyi azonosítószám egyedi, - a szervezeti egység kódja, neve egyedi, a kettő között egyértelmű kapcsolat áll fenn, - ez érvényes a projekt kódjára és nevére is, - egy dolgozó csak egy szervezeti egységhez tartozhat, - egy szervezeti egységnek csak egy főnöke van, - egy dolgozó több projekten dolgozhat, - projektek és egységek között nem kell kapcsolatot teremteni, - az egyes dolgozók projektekre fordított munkaidejének összegét nem kell ellenőrizni, hogy az 100%-e.
Dolgozói nyilvántartás készítése Az adatokat a szervezeti egységektől kapjuk. A szervezeti egységek a következő formában adják át az adatokat:
Dolgozói nyilvántartás készítése ALKALMAZOTT-1NF Elsődleges kulcs
Dolgozói nyilvántartás készítése Első normál forma (1NF) Az entitástípus (táblázat) első normál formájú, ha csak olyan attribútum (oszlop) jellemzi, mely funkcionálisan függ az entitástípus (táblázat) azonosító elsődleges kulcstól vagy annak elemeitől. minden attribútum (oszlop) egy attribútum-értéket tartalmaz, minden sor különböző, az attribútumok sorrendje minden sorban egyezik, minden sorhoz tartozik legalább egy egyedi azonosító, melytől az összes többi attribútum függ. Valamennyi adatbáziskezelő-rendszer megköveteli, hogy az adatok legalább 1NF-ben legyenek.
Dolgozói nyilvántartás készítése 1NF táblázat rengeteg redundanciát tartalmaz Változtatási anomáliák: • beírási - új dolgozó felvétele - új szervezeti egység létrehozása • módosítási (konzisztencia problémák) - Tóth Éva férjhez megy (név probléma) - E03 egység új fınököt kap • törlési - Kovács István kilép ? B1 projekt - Kiss László kilép ? E02 egység
Dolgozói nyilvántartás készítése Relációk szétbontása (dekompozíció) a funkcionális függés alapján
Dolgozói nyilvántartás készítése Második normál forma (2NF) Az entitástípus (táblázat) második normál formájú, ha csak olyan attribútum jellemzi, amely függ az összetett azonosítótól, de nem függ annak egy részétől.
Dolgozói nyilvántartás készítése 2NF-ban lévő táblázataink (relációk) ALKALMAZOTT(Szerv,Sznév,Főnök,Azon,Vnév,Knév,Végz) elsődleges kulcs: (AZON) MUNKA(Azon,Pkód,M%) elsődleges kulcs: (AZON,PKÓD) idegen kulcs (AZON) ALKALMAZOTT idegen kulcs (PKÓD) PROJEKTEK PROJEKTEK(Pkód,Pnév) elsődleges kulcs: (PKÓD)
Dolgozói nyilvántartás készítése Az előző szétbontás teljes mivel összes olyan információt tartalmazza, ami az eredeti relációban benne volt. Sőt Az anomáliák egy része is megszűnt.
Dolgozói nyilvántartás készítése Harmadik normálforma (3NF) ALKALMAZOTT-2NF reláció még redundáns (FŐNÖK) törlési anomáliát tartalmaz (Kiss László kilépésével az Eladás részleg információi megszűnnek) új osztályt dolgozó nélkül nem tudunk felvenni Egyetlen nem elsődleges kulcstól való funkcionális függőség a szervezeti egység kódjából indul ki.
Dolgozói nyilvántartás készítése Harmadik normálforma (3NF) Egy reláció akkor és csak akkor van 3NF-ben, • ha 2NF-ban van és • elsődleges kulcshoz nem tartozó attribútumai csak az elsődleges kulcstól függnek funkcionálisan. Az ALKALMAZOTT-2NF reláció nincs 3NF-ben szétbontás
Dolgozói nyilvántartás készítése ALKALMAZOTT(Szerv,Sznév,Főnök,Azon,Vnév,Knév,Végz) elsődleges kulcs: (AZON) Szétbontás: ALKALMAZOTT(Szerv,Azon,Vnév,Knév,Végz) Új reláció: SZERVEZET(Szerv,Sznév,Fınök) elsődleges kulcs: (SZERV)
Dolgozói nyilvántartás készítése Most már minden reláció 3NF-ban van ALKALMAZOTT(Szerv,Azon,Vnév,Knév,Végz) elsődleges kulcs: (AZON) idegen kulcs: (SZERV) → SZERVEZET SZERVEZET(Szerv,Sznév,Főnök) elsődleges kulcs: (SZERV) idegen kulcs: (FŐNÖK) → ALKALMAZOTT MUNKA(Azon,Pkód,M%) elsődleges kulcs: (AZON,PKÓD) idegen kulcs (AZON) → ALKALMAZOTT idegen kulcs (PKÓD) → PROJEKTEK PROJEKTEK(Pkód,Pnév) elsődleges kulcs: (PKÓD)
Normalizáció menete NNF: nem normál forma 1NF: az egyed nem tartalmaz ismétlődő értékű attribútumokat 2NF: valamennyi attribútum a kulcs egészétől függ (összetett kulcs esetén) 3NF: nincs olyan attribútum, amely az egyed másik, nem kulcs attribútumától függ
Logikai modellezés adatbázis generálás applikáció generálás forrása Entity Relationship diagram → Szerver modell leképzés táblák SQL Script (DDL) applikáció generálás forrásai: funkció definíció (riport vagy képernyő) funkció - egyed használat funkció - attribútum használat
Egyed attribútumai
Az Entity-Relationship modell ADATMODELL Különböző típusú adatokat, a közöttük fennálló kapcsolatokat, összefüggéseket, a velük kapcsolatos adatvédelmi eljárásokat tartalmazza.
Az Entity-Relationship modell Az eddig megismert relációs adatmodell a valós világ mind teljesebb tükrözése szempontjából túlegyszerűsített, mind az attribútumok, mind a kapcsolatok leírása korlátozott. Új felhasználói igények jelentek meg: kifejezőbb, hierarchikus adatszerkezeteket követelnek az új alkalmazások (CAD, CASE, irodaautomatizálási rendszerek, stb.) a hagyományostól eltérő multimédia adatok - kép, hang, szöveg - tárolását kívánják meg a multimédia rendszerek. Stb. …
Az Entity-Relationship modell A vázolt problémák és igények új adatmodellek kidolgozását igényelték. A megvalósítást lehetővé tette: a számítástechnikai környezet változása, a számítógépek teljesítmény-növekedése, az objektum-orientált felfogás megjelenése.
Az Entity-Relationship modell Az objektum-orientált koncepció megjelenéséig a kidolgozott új modellek a relációs modellre épültek. Az adatok tárolását a relációs modellek megfelelően biztosítják, de valamilyen módon a relációs modellt kiterjesztették. Egy-egy modell több kiterjesztést is megvalósíthat.
Az Entity-Relationship modell A modellek osztályozása Szemantikus – koncepcionális adatmodell Funkcionális - az egyedeket, az attribútumokat, a kapcsolatokat és az eljárásokat függvényekkel írja le. Adattárolás táblázatokban. Kiterjesztett relációs - attribútumai összetett adattípusúak, elsődleges kulcs helyett egy módosítástól független azonosítót használ. Objektum-orientált modellek - OOP környezetben az eljárás az objektum szerves része, adat és eljárás nem válik szét.
Az Entity-Relationship modell E-R (Entity Relationship) modell: a legismertebb szemantikus modell Az E-R modell az adatmodellezés során kiváló segédeszköz a relációs modellezésnél (a normalizálási eljárást egészíti ki), az objektum orientált adatmodell kialakításánál.
Az Entity-Relationship modell Logikai adatmodellezés néven az Entity-Relationship modell épült be a rendszerfejlesztés, adatmodellezés módszertanába.
Köszönöm a figyelmet!