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 relációkat (természetes, théta összekapcsolás) Adatbázisok kezelése, létrehozása során megadhatunk (előírhatunk) kapcsolatokat a táblák között
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. Absztrakció 2. Föld Talaj Szerkezet Geoid Diszkrét modell VEM modell Ellipszis Kontinuum Absztrakció 3. Gömb Szerkesztés Szerkesztési szabályok Valóság Tábla 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 (E/K) diagram Relációs adatbázis séma Adat modellezés Megvalósítás Adatfeltöltés Finomítás, tesztelés Valóság 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 diagram (Entity-Relationship, E/R) Absztrakt 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ű Érték Összetett attribútum: a tulajdonság további attribútumokra bontható. Név Kereszt Vezeték Többértékű attribútum: halmaz, vagy lista Nem
Tulajdonság Tulajdonság Név ID Típus Híd Szenzor ID Hely Mérések HatárÉr. Érték Osztály Érték
Kapcsolatok (1:1) Kapcsolatok: az egyedek közötti viszony leírása. 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: az egyedek közötti viszony leírása. 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: az egyedek közötti viszony leírása. 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 Mióta? ID Típus Híd Tartalmaz Szenzor ID Végez Hely Mérések HatárÉr. Érték Mikor? Osztály Érték
Mivel rajzolhatom meg? Microsoft PowerPoint LibreOffice Impress yed (Ajánlott, Palette Entity Relationship) Dia
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 Mióta? ID Típus Híd Tartalmaz Szenzor ID Végez Hely Mérések HatárÉr. Érték Mikor? Osztály Érték
Attribútumok leképezése ID Személy Név Lakcím Személy ID: Felsoroló Lakcím: Szöveg KeresztNév:Szöveg VezetékNév:Szöveg Kereszt Vezeték
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 ID Szenzor Típus N Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) HatárÉr.: Egész (IK) Hely HatárÉr. 1 Határérték Osztály: Fels. Érték: Valós Osztály Érték 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 N Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) HatárÉr.: Egész (IK) Osztály Érték 1 100 2 200 3 300 1 Határérték Osztály: Fels. Érték: Valós
Kapcsolatok leképezése (1:1) 1:1 kapcsolat leképezése Férfi Házastárs ID Név Mikortól? Házastársak ID: Felsoroló FérjNév:Szöveg FeleségNév:Szöveg Időpont: Dátum Nő ID Név
Kapcsolatok leképezése (1:1) 1:1 kapcsolat leképezése 1 ID Személy Név 1 Személyek ID: Felsoroló Név: Szöveg Szem.Ig. Szám: Szöveg Birtokol Szem.Ig. Mikortól? 1 1 Birtokol Szám:Szöveg (IK) SzemélyID:Szám (IK) Időpont: Dátum Szám
Kapcsolatok leképezése (1:1) 1:1 kapcsolat leképezése Férfi ID Név 1 Személyek ID: Felsoroló Név: Szöveg Házastárs Nő Mikortól? ID 1 1 Házastársak FérjID:Szám (IK) FeleségID:Szám (IK) Időpont: Dátum Név
Kapcsolatok leképezése (1:1) 1:1 kapcsolat leképezése Személyek Házastárs ID Név Mikortól? 1 1 Személyek ID: Felsoroló Név: Szöveg 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 1 Név Személy ID: Felsoroló Név:Szöveg Birtokol Mikortól? Autó Autó Rsz. Típus N Rsz: Szöveg Típus:Szöveg TulajID: Szám (IK) Mikortól?: Dátum
Kapcsolatok leképezése (1:N) 1:N kapcsolat leképezése Személy Birtokol Autó ID 1 Név Mikortól? 1 N Rsz. 1 Típus Személy ID: Felsoroló Név:Szöveg Birtokol 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 Személy Birtokol Ingatlan ID Név Mikortól? Hrsz. Terület 1 N N 1 Személy ID: Felsoroló Név:Szöveg Birtokol ID: Felsoroló SzemélyID: Szám (IK) Hrsz:Szöveg (IK) Mikortól? : Dátum 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ő SzenzorID: Szám Híd Név: Szöveg 1 N 1 1 N N Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) HídID:Szám (IK) TelepítésIdő:Dátum HatárÉr.: Egész (IK) Határérték Osztály: Felsoroló Érték: Valós
A példa Mérés ID Érték Időpont SzenzorID 1 10 2009.02.10 09:10:01 1 2 11 2009.02.10 09:10:03 1 3 15 2009.02.10 09:10:06 1 4 10 2009.02.10 09:10:01 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 Érték 1 13 2 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 tárolásának elkerülése (ha ez szükséges)
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 csökkentése, megszüntetése: normalizálás Duplikált sorok tárolásának elkerülése: kulcs előírása Duplikált 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!