Adatbázis rendszerek 3. előadás Adatbázis tervezés Molnár Bence
Szerkesztette: Koppányi Zoltán
Házi+ZH —
Mindenkinek kimentek a jelszavak
—
HIVATALOS e-mail cím a Neptunban
—
Szakmai adatbázis
—
Legalább 100 rekordot fel kell tudni vinni
—
Fiktív adatok is lehetnek, de katalógusok, KSH…
—
Adatformátum, adatcsere
—
Egyértelmű fogalmazás
—
ZH időpontja: 7. hét
Adatbázis tervezés
Mit tudunk eddig! —
Tábla = Reláció
—
Tábla definíció = Relációs séma
—
Oszlop = Attribútum
—
Sor = Rekord
—
Kulcs, és szerepe
—
Végeztünk lekérdezéseket relációs algebrában
—
Összekapcsoltunk összekapcsolás)
—
Adatbázisok kezelése, létrehozása során megadhatunk (előírhatunk) kapcsolatokat a táblák között
relációkat
(természetes,
théta
Ismétlés - Adatbázis szintjei
A fogalmi (logikai) szinten írjuk le a az adatok típusát, kapcsolódási módját, stb..., melyeket az adatmodell határoz meg. Vagyis az adatmodell segítségével írjuk le az adatbázis fogalmi modelljét (értsd: ami a táblák tulajdonságai, oszlopnév, típusok, kapcsolatok, stb...). Itt történik az adatbázis tervezés!
Tervezés A tervezés mindig olyan jövőre irányuló cselekvés, amely valamilyen szempont szerint kívánatosnak tartott jövőbeni állapot felvázolását, valamint az elérését lehetővé tevő út és feltételek meghatározását jelenti. A tervezés során mindig több lehetőség közül kell választani, így a tervezés sajátos döntésnek fogható fel. — A tervezés időben megelőzi a cselekvést, azaz a döntés nem vonja maga után az azonnali végrehajtást. — A tervezési problémák nem bonthatók szét, egymástól jól elkülöníthető, egymástól független részekre. — Ebből következően a tervezés egységes döntési folyamat, amely a döntések egymásra épülő sorozatként fogható fel.
—
Tervezés — Mivel
a tervezés a jövőbe mutat, ezért a megfelelő döntéshez ismerünk kéne a jövőt!
— Ez
viszont nyilvánvalóan nem ismert!
— Mit
tehetünk? Mivel igazolunk egy-egy döntést?
— Vagy
korábbi ismereteinkre támaszkodunk: saját tapasztalataink, mások tapasztalatai → szabványok, előírások, tervezési minták, stb...
— Mérnöki
tervezés során a természettudományokhoz fordulunk: matematika, fizika, statisztika, stb..., mely során absztrakciókat alkalmazunk!
Absztrakció — Ahhoz
hogy a bonyolult világ leírható legyen egyszerűsítjük azt, absztraháljuk.
Világ
Absztrakció 1.
Föld
Geoid
Talaj
Diszkrét modell
Szerkezet Valóság
Absztrakció 2.
Ellipszis
Kontinuum
VEM modell Tábla
Absztrakció 3.
Gömb Szerkesztés Szerkesztési szabályok
10010011
Absztrakció —E
folyamat során dolgok (tárgyak, fogalmak) egy összességét tekintve elvonatkoztatunk azon tulajdonságoktól, melyek a vizsgálat szempontjából lényegtelenek, és csak bizonyos kiemelt tulajdonságokat veszünk figyelembe.
— Három
legfontosabb absztrakció:
—
Dolog (objektum, tárgyak, fogalmak)
—
Tulajdonság
—
Viszony
Világ → Tábla —
Tehát van a probléma amit meg akarok oldani!
—
Szeretném tárolni a kölcsönzött könyveket a könyvtárból.
—
Szeretném nyomon követni a kiadásaimat egy hónapban.
—
Szeretném tárolni a katalógusban lévő termékek adatait.
—
Szeretném tudni, mikor milyen munkát végeztem.
—
Szeretném tudni mekkora egy híd lehajlása egy adott időpontban egy adott helyen.
—
Ehhez egy táblázatot (táblázatokat) készítek. Jó de hogyan?
—
Azt az absztrakciós folyamatot ahogyan a valóságos világot táblára leképezzük adatmodellezésnek hívjuk az adatbázis tervezés során!
Relációs adatbázis tervezés egy lehetséges folyamata — Célok,
követelmények összeírása (követelmény specifikáció)
— Egyed-kapcsolat — Relációs
(E/K) diagram
adatbázis séma
Adat modellezés
— Megvalósítás — Adatfeltöltés — Finomítás,
Valóság
tesztelés
E/K diagram
Relációs adatbázis séma Megvalósítás
Követelmény specifikáció
Követelmény specifikáció —A
feladat pontos megfogalmazása
—
Egyrészről a megrendelői, felhasználói igények
—
másrészről a technika által adott lehetőségek figyelembevételével érdemes a feladatot kitűzni
—
Célok megértése, megfogalmazása: milyen űrlap, milyen jelentések kellenek, milyen kérdésekre kell választ adnia az adatbázisnak
—
Mi az input (bemenő adatok), mi az output (funkcionális kérdések)?
—
Módszertanok kiválasztása
—
Többnyire szükséges az alkalmazandó eszközök kiválasztása is már ezen a szinten (milyen eszközöket fogok használni?)
A példa — Feladat:
Kiépítésre kerül egy olyan monitoring rendszer, mely egy híd lehajlásait figyeli, és az adatokat adatbázisba tölti.
— Célok:
Amennyiben valamilyen előre meghatározott határértéket túl lép a lehajlás a rendszernek figyelmeztetnie kell. Ezen kívül az értékek kerüljenek eltárolásra korábbi elemzés céljára.
A példa — Input —
A szenzoroktól érkező jelek, már a tényleges értékekkel
—
Határállapotok szakértők által meghatározva
—
A határállapotokat osztályokba lehet sorolni, és a figyelmeztető jelzés ennek megfelelő
— Output —
Jelentés az épp aktuális állapotról
—
Figyelmeztető jelzés
—
Múltbeli események visszakeresése
E/K diagram
Egyed-kapcsolat diagram — Egyed-kapcsolat
E/R)
— Absztrakt
diagram (Entity-Relationship,
leírás, így is kezeljük
— Részei: —
Egyed: Valami, amit modellezek, a valós világ egy körülhatárolt része
—
Tulajdonság (Attribútum): Az egyedre vonatkozó valamilyen adat, információ
—
Kapcsolat: Az egyedek közötti viszonyok
Egyed — Egyed
Híd
Szenzor
Mérések
Tulajdonság, attribútum — Tulajdonság,
attribútum
—
Egyszerű
—
Összetett attribútum: a tulajdonság további attribútumokra bontható. Név
Érték
Kereszt Vezeték — Többértékű attribútum: halmaz, vagy lista Nem
Tulajdonság — Tulajdonság
Név
ID
Híd
Szenzor Hely
ID Mérések Érték
Típus
HatárÉr. Osztály
Érték
Kapcsolatok (1:1) — Kapcsolatok:
leírása. —
az egyedek közötti viszony
Egy-egy kapcsolat (1:1): Egy nyak csak egy fejet tarthat, és fordítva egy fejet egy nyak tart
Nyak
Tart
Fej
Kapcsolatok (1:N) — Kapcsolatok:
leírása. —
az egyedek közötti viszony
Egy-több kapcsolat (1:N): Egy apának több fia lehet, de egy fiúnak csak egy apja
Apa
Rokon
Fiú
Kapcsolatok (N:M) — Kapcsolatok:
leírása. —
az egyedek közötti viszony
Több-több kapcsolat (N:M): Egy személy több ingatlannal is rendelkezhet, és egy ingatlant több személy is birtokolhat
Személy
Birtokol
Ingatlan
Többágú kapcsolat — Több
ágú kapcsolat: A hallgatók több vizsgaalkalmakat vehetnek fel egy kurzus esetén. Helyettesíthető kétágú kapcsolatokkal. Vizsgaalkalom
Hallgató
Felvesz
Kurzus
Kapcsolatok és attribútumaik Név Híd
Mióta? Tartalmaz
ID
Mikor?
Típus
Szenzor Hely
Végez Mérések
Érték
ID
HatárÉr. Osztály
Érték
Mivel rajzolhatom meg? — Microsoft
PowerPoint
— LibreOffice — yEd — Dia
Impress
(Ajánlott, Palette → Entity Relationship)
Relációs adatbázis séma
Relációs adatbázis séma — Relációs
séma: Tábla(ID: Felsoroló, Név: Szöveg, Kor: Szám)
— Relációs
adatbázis séma: Tábla ID: Felsoroló Név: Szöveg Kor: Szám ...
Kiindulás az E/K diagramból Név Híd
Mióta? Tartalmaz
ID
Mikor?
Típus
Szenzor Hely
Végez Mérések
Érték
ID
HatárÉr. Osztály
Érték
Attribútumok leképezése ID
Lakcím
Személy Név Kereszt
Vezeték
Személy ID: Felsoroló Lakcím: Szöveg KeresztNév:Szöveg VezetékNév:Szöveg
Attribútumok leképezése ID
Típus
Szenzor Hely
Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) Osztály: Szöveg HatárEr.: Valós
HatárÉr. Osztály
Érték
Többszörös tárolás
Attribútumok leképezése Szenzor ID
Típus
ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) NHatárÉr.: Egész (IK)
Szenzor Hely HatárÉr. Osztály
Érték
Határérték
1 Osztály: Fels. Érték: Valós Kapcsolat multiplicitása
Attribútumok leképezése ID
Típus
Hely
HatárÉr
1
Bélyeg
P(0,0)
1
2
Bélyeg
O(0,100)
1
3
Gyorsulás
P(100,0)
2
Osztály
Érték
1
100
2
200
3
300
Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) NHatárÉr.: Egész (IK)
Határérték
1 Osztály: Fels. Érték: Valós
Kapcsolatok leképezése (1:1) — 1:1
kapcsolat leképezése ID
Férfi Név Házastárs
Mikortól?
ID Nő Név
Házastársak ID: Felsoroló FérjNév:Szöveg FeleségNév:Szöveg Időpont: Dátum
Kapcsolatok leképezése (1:1) — 1:1
kapcsolat leképezése ID
ID: Felsoroló 1 Név: Szöveg
Személy Név Birtokol Mikortól?
Szem.Ig. Szám
Személyek
1
Szem.Ig. Szám: Szöveg Birtokol
1 1 Szám:Szöveg (IK) SzemélyID:Szám (IK) Időpont: Dátum
Kapcsolatok leképezése (1:1) — 1:1
kapcsolat leképezése ID
Férfi Név Házastárs
1
Személyek ID: Felsoroló Név: Szöveg Házastársak
Mikortól?
ID Nő Név
1 FérjID:Szám (IK) 1 FeleségID:Szám (IK) Időpont: Dátum
Kapcsolatok leképezése (1:1) — 1:1
kapcsolat leképezése ID
Személyek Név Házastárs Mikortól?
1
Személyek
ID: Felsoroló Név: Szöveg 1 HázastársId: Szám
A házasságkötés időpontja ez esetben nehezen kezelhető
Kapcsolatok leképezése (1:N) — 1:N
kapcsolat leképezése ID
Személy Név Birtokol
Mikortól?
Rsz. Autó Típus
Személy
ID: Felsoroló 1 Név:Szöveg
Autó Rsz: Szöveg Típus:Szöveg N TulajID: Szám (IK) Mikortól?: Dátum
Kapcsolatok leképezése (1:N) — 1:N
kapcsolat leképezése ID
1
Személy Név Birtokol
N Autó Típus
ID: Felsoroló Név:Szöveg
Birtokol
1 Mikortól? Rsz.
Személy
1
ID: Felsoroló SzemélyID: Szám (IK) Rsz:Szöveg (IK) Mikortól? : Dátum
Autó Rsz: Szöveg Típus:Szöveg
Kapcsolatok leképezése (N:M) — N:M
kapcsolat leképezése ID
1
Személy Név Birtokol
Mikortól?
ID: Felsoroló N SzemélyID: Szám (IK) Hrsz:Szöveg (IK) N Mikortól? : Dátum
1 Terület
ID: Felsoroló Név:Szöveg
Birtokol
Hrsz.
Ingatlan
Személy
Ingatlan Hrsz: Szöveg Terület:Szám
A példa Mérés ID: Felsoroló Érték: Valós Időpont: Dátum+Idő N SzenzorID: Szám
Híd Név: Szöveg
1
1
Szenzor
ID: Felsoroló Típus: Szöveg N Hely: Pont(X,Y) HídID:Szám (IK) TelepítésIdő:Dátum N HatárÉr.: Egész (IK)
Határérték 1 Osztály: Felsoroló Érték: Valós
A példa ID 1 2 3 4
Érték 10 11 15 10
Mérés Időpont 2009.02.10 09:10:01 2009.02.10 09:10:03 2009.02.10 09:10:06 2009.02.10 09:10:01
SzenzorID 1 1 1 2
Szenzor ID
Típus
Hely
HídID
TelepítésIdő
HatárÉr.
1
Bélyeg
P(100,100)
Megyeri
2009.01.10
1
2
Gyorsulás
P(0,0)
Megyeri
2009.01.10
2
Híd ID Megyeri
Határérték Osztály 1 2
Érték 13 15
A relációs adatbázis séma kérdései
Egy rossz tábla! érvénytelen érték
(nincs kulcs)
Név
Utónév
Életkor
ID
Szem.Ig
Gipsz Jakab
Jakab
23
1
101
Hallgató Bálint
Béla
-1
2
102
Gipsz Jakab
Jakab
23
1
101
redundancia
(ha kulcs lenne, akkor is dupla kulcs szerepel)
Egy rossz tábla! duplikált sor
inkonzisztencia
Név
Utónév
Életkor
ID
Szem.Ig
Gipsz Jakab
Jakab
23
1
101
Hallgató Bálint
Béla
-1
2
102
Gipsz Jakab
Jakab
23
1
101
Vezeték névre nem tudunk keresni
Mikre kell odafigyelni? —
Konzisztencia biztosítása: az adatbázis ne tartalmazzon egymásnak ellentmondó tényeket
—
Adatok érvényességének biztosítása: az adatok csak a megfelelő halmazból vehetnek fel értékeket
—
Redundancia csökkentése, megszüntetése: valamely tényt vagy a többi adatból levezethető mennyiséget többszörösen tároljuk —
Többszörösen tároljuk az adatokat
—
Nehéz az adatokat konzisztensen tartani
—
Duplikált sorok tárolásának elkerülése (ha ez szükséges)
—
Duplikált adatok szükséges)
tárolásának
elkerülése
(ha
ez
Hogyan küszöbölhető ki? — Konzisztencia
biztosítása: normalizálás
— Adatok
érvényességének biztosítása: attribútumok típusának kiválasztása
— Redundancia
normalizálás
— Duplikált
előírása
— Duplikált
csökkentése, megszüntetése:
sorok tárolásának elkerülése: kulcs
adatok tárolásának elkerülése: megfelelő tervezés, normalizálás
Források —
Wikipedia —
http://hu.wikipedia.org/wiki/Adatb%C3%A1zis-tervez%C3%A 9s
—
http://gorbem.uw.hu/Access/Adatbazis1/sld002.htm
—
http://penzugy.erettsegi.org/2010/03/a-penzugyi-tervezes-fogalma -forgalmi-es-allomanyi-szemleletu-penzugyi-tervezes-folyamatos-l ikviditasi-terv-osszeallitasa/ http://www.itb.hu/ajanlasok/a4/html/a4_3-4.htm
—
http://www.bigonehost.com
—
Köszönöm a figyelmet!