A logikai adatmodell kialakítása

Download Report

Transcript A logikai adatmodell kialakítása

Adatmodellezés (A logikai adatmodell kialakítása)
1 / 52
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ékAdatmodellezés (A logikai adatmodell kialakítása)
2 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
3 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
4 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
5 / 52
Példa adatbázis-sémára
Adatmodellezés (A logikai adatmodell kialakítása)
6 / 52
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ő.
Adatmodellezés (A logikai adatmodell kialakítása)
7 / 52
Adatbázis tervezés célja
• az adatok integrációjának,
• felhasználói programok adatfüggetlenségének
biztosítása.
Adatmodellezés (A logikai adatmodell kialakítása)
8 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
9 / 52
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)
Adatmodellezés (A logikai adatmodell kialakítása)
10 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
11 / 52
Adatbázis tervezés lépései
3. Az adatmodell kiválasztása
a.Az adatmodell egy olyan séma, amelyben megadjuk
milyen tulajdonságok határozzák meg az egyedeket,
b.milyen egyedek szerepelnek a sémában, és ezek között
c.milyen kapcsolatok vannak.
Adatmodellek típusai:
• hierarchikus
• hálós
• relációs
Adatmodellezés (A logikai adatmodell kialakítása)
12 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
13 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
14 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
15 / 52
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).
Adatmodellezés (A logikai adatmodell kialakítása)
16 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
17 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
18 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
19 / 52
Meta-adat
Adatmodellezés (A logikai adatmodell kialakítása)
20 / 52
Funkcionális függés
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
Adatmodellezés (A logikai adatmodell kialakítása)
21 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
22 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
23 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
24 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
25 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
26 / 52
Az entitástípusok közötti
kapcsolatok foka
Adatmodellezés (A logikai adatmodell kialakítása)
27 / 52
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)
Adatmodellezés (A logikai adatmodell kialakítása)
28 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
29 / 52
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:
Adatmodellezés (A logikai adatmodell kialakítása)
30 / 52
Dolgozói nyilvántartás készítése
ALKALMAZOTT-1NF
Elsődleges kulcs
Adatmodellezés (A logikai adatmodell kialakítása)
31 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
32 / 52
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
- Kiss László kilép
? B1 projekt
? E02 egység
Adatmodellezés (A logikai adatmodell kialakítása)
33 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
34 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
35 / 52
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)
Adatmodellezés (A logikai adatmodell kialakítása)
36 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
37 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
38 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
39 / 52
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)
elsődleges kulcs: (AZON)
Új reláció:
SZERVEZET(Szerv,Sznév,Fınök)
elsődleges kulcs: (SZERV)
Adatmodellezés (A logikai adatmodell kialakítása)
40 / 52
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)
Adatmodellezés (A logikai adatmodell kialakítása)
41 / 52
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
Adatmodellezés (A logikai adatmodell kialakítása)
42 / 52
Logikai modellezés
• adatbázis 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
Adatmodellezés (A logikai adatmodell kialakítása)
43 / 52
Egyed attribútumai
Adatmodellezés (A logikai adatmodell kialakítása)
44 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
45 / 52
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. …
Adatmodellezés (A logikai adatmodell kialakítása)
46 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
47 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
48 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
49 / 52
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.
Adatmodellezés (A logikai adatmodell kialakítása)
50 / 52
Az Entity-Relationship modell
Logikai adatmodellezés néven
az Entity-Relationship modell épült be
a rendszerfejlesztés, adatmodellezés
módszertanába.
Adatmodellezés (A logikai adatmodell kialakítása)
51 / 52
Köszönöm a figyelmet!
Adatmodellezés (A logikai adatmodell kialakítása)
52 / 52