ADATBÁZIS RENDSZEREK Adatbázis tervezés Krausz Nikol, Medve András, Molnár Bence 2018.01.14.
MAI TÉMÁINK Adatbázis tervezés folyamata Specifikáció Kulcs E/K diagram Relációs adatbázis sémadiagram Relációs adatbázisok kérdései Redundancia, anomáliák Normalizálás, dekompozíció 2
HÁZI FELADAT TÉMAÖTLETEK Mérések, amiket rendszeresen elvégzünk, hasonló körülmények közt, hasonló mintákon Alapanyagok, amiket rendszeresen rendelünk és felhasználunk, de egyes tulajdonságaik változnak (pl. ár) Kísérletek, amiket rendszeresen elvégzünk Alkalmazotti adatok, munkanapok és szabadságok nyilvántartása Céges eszközpark nyilvántartása Projekt nyilvántartás 3
Adatbázis tervezés
TERVEZÉS 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. 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. 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. 5
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észet-tudományokhoz fordulunk: matematika, fizika, statisztika, stb..., mely során absztrakciókat alkalmazunk! 6
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 7
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! 8
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 Adatmodellezés Relációs adatbázis séma 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 9
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. 12
13
14
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 15
Kulcs, szuperkulcs
SZUPERKULCS Szuperkulcs: azon attribútumok halmaza, mely egyértelműen meghatároz egy rekordot Név Szemig Kor Kiss Pista 123 18 Kiss Pista 124 18 SzK2=SzK1 U {{kor}, {kor, név}} SzK1={{szemig}, {szemig, név}, {szemig, kor}, {szemig, név, kor}} Név Szemig Kor Kiss Pista Kiss Pista 123 18 124 19
KULCS Kulcs: a szuperkulcsok közül a minimális Név Szemig Életkor Kiss Pista 123 18 Kiss Pista 124 18 K1={{szemig}} K2={{szemig}, {életkor}} Név Szemig Életkor Kiss Pista 123 18 Kiss Pista 124 19
KULCS MÉG EGY PÉLDA Név Szemig Tantárgy Jegy Kiss Pista 123 Matek 5 Kiss Pista 123 Biosz 5 Kiss Pista 124 Matek 5 SzK={{szemig, tantárgy}, {név, szemig, tantárgy}, } K={szemig, tantárgy} Összetett kulcs
KULCSOK A RELÁCIÓS SÉMÁBAN Eddig a szuperkulcs illetve a kulcs vizsgálatát egy vagy több előfordulás esetén vizsgáltuk. De ezt elő is írhatjuk, így biztosítjuk, hogy egy adott attribútumra a kulcs tulajdonság mindig igaz legyen! Ezt a következő módon jelölhetjük a relációs sémában Jegyek(Azonosító, Név, Jegy)
TOVÁBBI PÉLDÁK Idom(Elnevezés:Szöveg, Keresztmetszet : Valós, Inercia : Valós, Ár : Egész) Gömb(X : Valós, Y : Valós, Z : Valós, R : Valós) Közút(Elnevezés, Rendűség) Földrészlet(Helyrajziszám, Tulajdonos, Terület, AK_érték) Az utolsó két séma esetén határozza meg a szuperkulcs és kulcs halmazokat! Miért nincs azonosító?
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 Többértékű attribútum: halmaz, vagy lista Vezeték 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 SÉMA - ELNEVEZÉSEK A táblázat a reláció egy előfordulása! Jegyek reláció Azonosító Név Jegy 1 Kiss Pista 3 2 Nagy Péter 4 3 Varga Ferenc 5 4 Kiss Pista 1 Reláció sémája: Jegyek(Azonosító, Név, Jegy) Reláció neve Attribútumok, együtt attribútumok halmaza
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...
RELÁCIÓS SÉMA - TULAJDONSÁGOK A reláció és előfordulásának tulajdonságai Az attribútumok (oszlopok) sorrendje nem számít, tetszőlegesen felcserélhetőek (műveletek esetén számít az attribútumok sorrendje) A rekordok sorrendje nem számít, tetszőlegesen felcserélhetőek Egy attribútumhoz, és egy adott sorhoz egy és csak egy komponens tartozhat A mi esetünkben megengedjük, hogy egy adott sor ugyanazon attribútum értékekkel többször is előforduljon (halmaz vs. multihalmaz)
NÉHÁNY SÉMA PÉLDA Idom(Azonosító, Elnevezés, Keresztmetszet, Inercia, Ár) Gömb(Azonosító, X, Y, Z, R) Közút(Azonosító, Elnevezés, Rendűség) Földrészlet(Azonosító, Helyrajziszám, Tulajdonos, Terület, AK_érték) Adjunk meg hozzájuk előfordulásokat (azaz készítsünk hozzá táblázatot)
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 Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) N HatárÉr.: Egész (IK) Hely HatárÉr. 1 Határérték Osztály: Felsoroló É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 Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) NHatárÉr.: Egész (IK) Osztály Érték 1 100 2 200 3 300 1 Határérték Osztály: Felsoroló Érték: Valós Multiplicitásnál az 1-es mindig a kulcs mellett szerepel!
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 Személy ID Név 1 1 Személyek ID: Felsoroló Név: Szöveg Szem.Ig. Szám: Szöveg Birtokol Mikortól? Szem.Ig. Szám 1 1 Birtokol 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 Férfi ID Név 1 Személyek ID: Felsoroló Név: Szöveg Házastárs Mikortól? ID Nő Név 1 1 Házastársak FérjID: Szám (IK) 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 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 Személy ID Név 1 Személy ID: Felsoroló Név: Szöveg Birtokol Autó Mikortól? Rsz. Típus 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 Személy Birtokol Autó ID Név Mikortól? Rsz. Típus 1 N 1 1 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 (IK) N Híd Név: Szöveg 1 1 1 N N Szenzor ID: Felsoroló Típus: Szöveg Hely: Pont(X,Y) HídID: Szöveg (IK) TelepítésIdő: Dátum HatárÉr.: Egész (IK) Határérték Osztály: Felsoroló Érték: Valós Multiplicitásnál az 1-es mindig a kulcs mellett szerepel!
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
ÖSSZEFOGLALÁS Adatbázis tervezés folyamata Specifikáció Kulcs E/K diagram Relációs adatbázis sémadiagram Relációs adatbázisok kérdései Redundancia, anomáliák Normalizálás, dekompozíció
FORRÁSOK Wikipedia http://hu.wikipedia.org/wiki/adatb%c3%a1zis-tervez%c3%a9s http://gorbem.uw.hu/access/adatbazis1/sld002.htm http://penzugy.erettsegi.org/2010/03/a-penzugyi-tervezes-fogalma-forgalmi-es-allomanyi-szemleletu-penzugyitervezes-folyamatos-likviditasi-terv-osszeallitasa/ http://www.itb.hu/ajanlasok/a4/html/a4_3-4.htm http://www.bigonehost.com http://www.kobakbt.hu/jegyzet/adatbaziselmelet/ora4_index.html http://support.microsoft.com/kb/283878/hu http://www.fuvesi.com/adatbazisok/normalformak.html http://www.tankonyvtar.hu/en/tartalom/tamop425/0005_25_adatbazis_kezeles_scorm_03/361_mezk_viszonya_a _relcis_adatbzis_tbliban.html
Köszönöm a figyelmet! Kérdések?