Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán és Berényi Attila

Hasonló dokumentumok
Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán és Berényi Attila

Adatbázis rendszerek. 3. előadás Adatbázis tervezés

ADATBÁZIS RENDSZEREK. Adatbázis tervezés. Krausz Nikol, Medve András, Molnár Bence

Adatbázis rendszerek 2. előadás. Relációs algebra


Adatbázis rendszerek. 4. előadás Redundancia, normalizálás

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

ADATBÁZIS RENDSZEREK. Adatbázisok története, alapfogalmak, adatmodellek. Krausz Nikol, Medve András, Molnár Bence

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

ADATBÁZIS RENDSZEREK. Attributum típusok, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

Adatbázis-kezelés. alapfogalmak

Csima Judit október 24.

Adatbázisok - 1. előadás

Adatmodellezés. 1. Fogalmi modell

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Adatbázis, adatbázis-kezelő

Adatbázisok elmélete 12. előadás

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Adatmodellek. 2. rész

Magas szintű adatmodellek Egyed/kapcsolat modell I.

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Relációs adatbázisok tervezése ---2

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Adatbázis rendszerek. 5. előadás Adatbázis tervezés. Koppányi Zoltán

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Adatbázis rendszerek. 5. előadás Adatbázis tervezés. Koppányi Zoltán

Informatikai alapismeretek Földtudományi BSC számára

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Adatbáziskezelés. Indexek, normalizálás NZS 1

Adatbázisok elmélete 4. előadás

Az egyed-kapcsolat modell (E/K)

Adatbázis rendszerek Definíciók:

Adatbázis tervezés normál formák segítségével

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

ADATBÁZIS-KEZELÉS Demetrovics Katalin

6. Gyakorlat. Relációs adatbázis normalizálása

T Adatbázisok-adatmodellezés

Adatbázismodellek. 1. ábra Hierarchikus modell

Adatigények. Koncepcionális séma (magas szintű modell) Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok)

Relációs adatbázisok tervezése ---1

Adatbázisok 1. Az egyed-kapcsolat modell (E/K)

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

Adatbázisok gyakorlat

Adatbázisok gyakorlat

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

ADATBÁZISOK, 2017 ősz

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

ADATBÁZISOK, 2018 ősz

Mezők viszonya a relációs adatbázis tábláiban

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Relációs algebra 1.rész alapok

A relációs adatmodell

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Adatbázisok elmélete 4. előadás

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

Adatbáziskezelés alapjai ADATBÁZISKEKZELÉS 1

Relációs adatbázisok tervezése 2.rész (dekompozíció)

ADATBÁZIS-KEZELÉS. 1. Alapfogalmak

7. Gyakorlat A relációs adatmodell műveleti része

SSADM Dokumentáció Adatbázis Alapú Rendszerek

Adatbázis-kezelés. Dr. Fülep Dávid. SELECT id FROM tantargy WHERE intezmeny = sze ORDER BY hasznossag LIMIT 1 NGB_SZ_003_9

KÖTELEZŐ PROGRAM, SZÁMONKÉRÉSEK. Részletek

Nyilvántartási Rendszer

Az adatbázisrendszerek világa

Példa Többértékű függőségek, 4NF, 5NF

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

ADATBÁZIS-KEZELÉS ALAPOK I.

A TANTÁRGY ADATLAPJA

Adatmodellezés, alapfogalmak. Vassányi István

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázis rendszerek 7. előadás State of the art

Több felhasználó párhuzamosan olvashatja, bővítheti, módosíthatja és törölheti az adatokat Az adatok konzisztenciájának és biztonságának biztosítása

ADATBÁZISOK. 4. gyakorlat: Redundanciák, funkcionális függőségek

Access gyakorlati feladatok lépésről lépésre

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Adatbázis Rendszerek

ADATBÁZIS-KEZELÉS. Modellek

Téradatokkal kapcsolatos elemzések és fejlesztések a FÖMI Térinformatikai Igazgatóságán

Adatbázis-kezelés az Excel 2013-ban

Adatbázis használat I. 1. gyakorlat

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

1. előadás Alapfogalmak Modellezés, a Bachman-féle fogalomrendszer, adatmodell,

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Bevezetés: Relációs adatmodell

Bevezetés: az SQL-be

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

Adatbázis-kezelés. Fülep Dávid. SELECT id FROM eloadas WHERE intezmeny = sze ORDER BY unalomfaktor LIMIT 1 NGB_SZ_003_9

Az Adatbázis alapú rendszerek kurzus követelményei és tematikája

Relációs adatmodell. Adatbázisok használata

Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

LOGISZTIKAI ADATBÁZIS RENDSZEREK EXCEL ALAPOK

Átírás:

Adatbázis rendszerek Molnár Bence Szerkesztette: Koppányi Zoltán és Berényi Attila

A tárgyról

A tárgyról 1 házi feladat http://web.fmt.bme.hu/abr http://www.fmt.bme.hu/fmt/htdocs/oktat as/tantargy.php?tantargy_azon=bmeeoftm KT3 Molnár Bence molnar.bence@fmt.bme.hu

A tárgy célja Az adatbázisok elméletével kapcsolatos alapvető fogalmak megismertetése Az adatbázisok használatának bemutatása mérnöki alkalmazásokban MS Access alapjainak használatának elsajátítása Az bemutatása, ún. objektum relációs téradatbázisok alapjainak és használatának elsajátítása PostgreSQL + PostGIS eszközökkel

Tematika (lite) Adatbázisok elmélete alapfogalmak relációs algebra adatbázis-tervezés Adatbázisok gyakorlati alkalmazása SQL térinformatikai adatbázisok

Házi feladat (földmérő) Adatbázis tervezés: gyakorlati adatbázis tervezése megvalósítás: térinformatikai megtervezett adatbázis létrehozása, feltöltése, és térbeli lekérdezések (PostgreSQL + PostGIS, ehhez szervert biztosítunk) megjelenítés QGIS-ben

Miből tanulhattok? Jeffrey D. Ullmann - Jennifer Widom : Adatbázisrendszerek, Alapvetés, PANEM, 2008

Miből tanulhattok? A diasorokat folyamatosan (előadás után) feltöltöm a honlapra Segédlet és video) a házi feladatokhoz (dokumentum PostgreSQL: PostGIS: Google... http://www.postgresql.org/ http://postgis.refractions.net/

Adatbázisok a mindennapokban

Adatbázisok a hétköznapokban Hol használjuk őket? mindenhol... vásárlás, utazás, telefonálás, internetezés, sportolás, stb... Jelentőségük Knight Capital Group...

Adatbázisok a hétköznapokban

Adatbázisok a hétköznapokban A világ legnagyobb adatbázisai Helyezés Név Cél 1 Max Planck Intézet Tudományos kutatás 2 NERSC Tudományos kutatás 3 AT&T Távközlés 4 Google Internetes keresés 5 Sprint Távközlés 6 ChoicePoint Kormányzati, közösségi és üzleti jellegű információk megosztása 7 YouTube Videomegosztás 8 Amazon Kiskereskedelem 9 CIA Titkosszolgálat 10 USA Kongresszusi Könyvtár Könyvtári szolgáltatások

Adatbázisok az építőmérnöki gyakorlatban Folyóiratok, cikkek adatbázisai: ASCE: http://cedb.asce.org/ Szabványok (IEEE, ISO, EN, MSz,...) Szakági adatbázisok: Talajtani: http://mta-taki.hu/hu/osztalyok/kornyezetin formatikai-osztaly/terkepi-adatszolgaltatas http://www.geoshop.hu kutatás

Táblázatkezelőktől az adatbázisokig

Hogyan néz ki egy táblázat? Név Lakcím Telefonszám Holnap Péter Budapest 999-9999 Gépészmérnök Szerszámgyártó Zrt. Tóth István Cegléd Építőmérnök Út kivitelező Nyrt. Nagy Ferenc Budapest 999-9954 Közgazdász Elszámolok Kft. Kiss Pista Budapest 999-5864 Érettségi Út kivitelező Nyrt. 999-9928 Végzettség Munkahely

Hogyan nézz ki egy táblázat? Oszlop=Attribútum Név Lakcím Holnap Péter Telefonszá m Végzettség Munkahely Budapest 999-9999 Gépészmérnök Szerszámgyártó Zrt. Tóth István Cegléd Építőmérnök Út kivitelező Nyrt. Nagy Ferenc Budapest 999-9954 Közgazdász Elszámolok Kft. Kiss Pista Budapest 999-5864 Érettségi Út kivitelező Nyrt. 999-9928 Sor=Rekord Cella=Mező

Mit könnyű benne csinálni? (azaz előnyök :) Kitölteni Oszlopot Sort törölni, hozzáadni törölni, hozzáadni Származtatott cellákat számítani Keresni, bonyolult számításokat végezni, speciális adatok levezetni? Nagy adathalmazokat kezelni?

Problémák a táblázatokkal Nagyméretű sok oszlop sok sor Nehézkes tábla nehezen kezelhető keresés a táblában Különböző táblák összekapcsolása Konzisztencia Speciális keresések (lekérdezések)

Adatbázis? Az adatbázisok használata indokolt, ha: nagy mennyiségű adatunk van, az adatoknak sok attribútuma definiált, fontos a konzisztencia, inhomogén típusú adatok, összetett lekérdezéseket végrehajtani. A kívánunk gyakorlatban nem csak nagy adattömegek esetén alkalmazzák.

Alapfogalmak

Alapfogalmak Adat: (adatbázisban tárolt) érték. statikus: kézi vagy automatikus beavatkozásig változatlan (pl. bankszámla-egyenleg). önmagában nincs jelentése. Információ: olyan adat, amely a feldolgozás során értelmet nyer. Dinamikus: a tárolt adatok függvényében és a feldolgozás, megjelenítés (képernyő/nyomtatott jelentés) hatására is változik/változhat. Összefoglalva: az adat az, amit tárolunk, az információ pedig, amit kinyerünk (GIS új adat levezetése).

Alapfogalmak Metaadat: adat az adatról. A metaadat koncepció általában az elektronikusan archivált vagy megjelenített adatra vonatkozik és leírja az adat fájlok definícióját, struktúráját és kezelésének módját, hogy a rögzített és archivált adatok használatát megkönnyítse. Adatbázisok esetén pl.: az adatbázisban található összes tábla nevét, méretét és sorainak számát tartalmazó tábla.

Alapfogalmak Adatmodell: tulajdonképpen szerkezetének a leírása az adatok logikai Az adatmodell a logikai adatbázis szerkezeti leírását foglalja magában, nevezetesen azonos jellemzőjű információk logikai modellezését a rajtuk végezhető logikai műveletek meghatározását tartalmazza. Az adatmodell tehát mindig szerkezeti és műveleti részből tevődik össze. Az adatmodell feladata, hogy a világban található dolgokról, individuumokról számítógéppel könnyen feldolgozható formálisan leírható adatok tárolásához megfelelő szerkezetet, keretet adjon, illetve ezek lekérdezhetőségét, visszakeresését is biztosítani tudja zárt matematikai alakban. (Wikipédia)

Adatmodellek Hierarchikus Hálós Relációs Objektum orientált

Adatbázis vs. Adatbázis kezelő Adatbázis (AB, vagy Database, DB): az adatok és azok rendszere. németül adatbank: Datenbank Adatbázis kezelő rendszer (ABKR vagy Database Managment System, DBMS): az adatok manipulálást, tárolását, létrehozását, stb... végző programok. Gyakorlatban az adatbázisokat ABKR-rel hozzuk létre. Az egyes ABKR-ek bizonyos adatmodelleket támogatnak, így az ABKR meghatározza az adatbázis adatmodelljét is.

Példák Adatbázisok: világ legnagyobb adatbázisai dia Adatbázis kezelő rendszerek: MS Access, SQL Server (Microsoft) PostgreSQL (Open Source, közösségi) MySQL (GPL, kereskedelmi, Oracle) Oracle (kereskedelmi, Oracle) CouchDB (Open Source, Apache) SQLite (Open Source, Richard Hipp)

Adatbázis szintjei - fizikai A fizikai szinten az adatok tényleges tárolása és elérése történik hagyományosan a háttértáron (merevlemezen).

Adatbázis szintjei - fogalmi 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...).

Adatbázis szintjei - nézet A megalkotott adatmodellen keresztül az adatokat különböző módon tudjuk megjeleníteni; ezek a nézetek. A nézetek megválasztásának a módját a konkrét alkalmazás dönti el ill. az igények specifikálják.

Adatbázis! No widely accepted exact definition exists for DBMS (Wikipedia)

Adatbázisok története

Adatbázisok története Mikortól? 1960-as évek eleje (első hivatalos említés 1962, Oxford szótár: data-base) Az adatbázisok történetét a hozzájuk kapcsolódó adatmodellekkel mutatjuk be.

Korai adatbázismodellek hierarchikus modell

Korai adatbázismodellek hálós adatmodell

Relációs adatmodell 1969 (1980-) rugalmas, széles könnyen bővíthető körben elterjedt áttekinthető a kapcsolatok nem definiáltak a modellben matematikailag jól definiált (relációs algebra), halmazelméletből levezetett

Objektum orientált adatmodell A gyakorlati adatbázis kezelő rendszerekben (ABKR) az adatok tárolására félig, vagy ritkán alkalmazott paradigma (nem elég hatékony tárolás, keresés) A programozási gyakorlatban terjedt el

NoSQL adatbázisok Not only SQL napjainkban indultak hódító útjukra eltérő tárolási módszerek nem SQL alapú lekérdezések Példák: dokumentum adatbázisok: félig strukturált adatok tárolására, a web (2.0) inspirálta; gráf adatbázisok.

Gráf adatbázisok

CouchDB Apache CouchDB has started. Time to relax. dokumentum alapú web-es környezetben alkalmazott curl http://127.0.0.1:5984/ { "couchdb": "Welcome", "version":"1.1.0" }

Forrás Wikipedia http://hu.wikipedia.org/wiki/adatb%c3%a1zis http://en.wikipedia.org/wiki/graph_database http://en.wikipedia.org/wiki/database http://guide.couchdb.org J. D. Ullman J. Widom: Adatbázisrendszerek M. J. Hernandez: Adatbázis-tervezés Gajdos Sándor: Adatbázisok Dominich Sándor: Adatbáziskezelő rendszerek http://www.bigonehost.com

Relációs algebra általában A relációs algebra néhány tulajdonsága: Matematikailag jól definiált Halmazelméletből építkezik Bevezethető az Armstrong axiómákon keresztül Gyakorlati jelentősége: RDBMSek lekérdező nyelvének alapja Adatbázis tervezés Didaktikai jelentősége: sokkal könnyebb lesz megérteni az SQL nyelvet

Relációs séma

Relációs séma Adott a következő táblázat: 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) Miért nevezzük relációnak?

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 1 Kiss Pista 2 Nagy Péter 3 Varga Ferenc 4 Kiss Pista Reláció sémája: Jegyek(Azonosító, Név, Jegy) Reláció neve Attribútumok, együtt attribútumok halmaza Jegy 3 4 5 1

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 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ó, Közút(Azonosító, X, Y, Z, R) 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)

Attribútumok típusa

Attribútumok típusa Az attribútumok esetén meghatározhatjuk, hogy azok milyen halmazból vehetnek fel értékeket, azaz megadhatjuk azok típusát Egyszerű típusok (példák): Szám Egész Valós Szöveg Logikai Számláló

Attribútumok típusa Összetett típusok (példák): Maszk: 000-000-000, XXXXX Vonallánc, gömb, geometriai elemek Binary Large Object (BLOB) Kép, MP3, stb... Ezeket beépíthetjük leírásába: a relációs Jegyek(Azonosító : Felsoroló, Név : Szöveg, Jegy: Egész szám) séma

További példák Idom(Azonosító : Számláló, Elnevezés: Szöveg, Keresztmetszet : Valós, Inercia : Valós, Ár : Egész) Gömb(ID : Számláló, X : Valós, Valós, Z : Valós, R : Valós) Közút(Azonosító, Y : Elnevezés, Rendűség) Földrészlet(Azonosító, Helyrajziszám, Tulajdonos, Terület, AK_érték) Az utolsó két séma esetén is adjuk meg az attribútumok típusát! Több fajta jó megoldás is létezhet!

Kulcs, szuperkulcs

Szuperkulcs Szuperkulcs: azon attribútumok halmaza, mely egyértelműen meghatároz egy rekordot Név Szemig Kiss Pista 123 Kor 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 Kiss Pista 123 Kiss Pista 124 Kor 18 19

Kulcs Kulcs: a szuperkulcsok közül a minimális Név Szemig Életkor Kiss Pista 123 18 Kiss Pista 124 18 K2={{szemig}, {életkor}} K1={{szemig}} 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 Kiss Pista Kiss Pista 123 123 124 5 5 5 Matek Biosz Matek 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 vizsgálatát egy vagy esetén vizsgáltuk. illetve a kulcs több előfordulás De ezt elő is írhatjuk, így biztosítjuk, hogy egy adott attribútumra a kulcs tulajdonság mindig igaz legyen! Ezt a következő relációs sémában módon Jegyek(Azonosító, Név, Jegy) jelölhetjük a

További példák Idom(Elnevezés:Szöveg, Keresztmetszet : Valós, Ár : Egész) Valós, Inercia : 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, Terület, AK_érték) Az Tulajdonos, utolsó két séma esetén határozza meg a szuperkulcs és kulcs halmazokat! Miért nincs azonosító?

Műveletek

Műveletek két változós halmaz műveletekhez a következőeknek kell teljesülni mindkét (R, és S) relációra A Az R és S relációknak attribútumhalmazt kell tárolnia ugyanazt az Az attribútumokat rendezni kell úgy, hogy az R i-ik oszlopa megegyezzen S i-ik oszlopával

Halmazművelet 1 - Unió Jele: S R Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 U Név Jegy Kiss Lajos 2 Nagy Lajos 3 = Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 Kiss Lajos 2 Nagy Lajos 3

Halmazművelet 2 - Metszet Jele: S R Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 Név Jegy Kiss Pista 2 S R \ = Nagy Lajos 3 Név Jegy Kiss Pista 2

Halmazművelet 3 - Különbség Jele: S\R Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 \ Név Jegy Kiss Pista 2 Nagy Lajos 3 Név = Jegy Nagy Péter 3 Vál Péter 5 Nagy Ákos 3

Vetítés (Projekció) Jele: π név ( π név, jegy( π attr1, attr2,... (S ) Név Jegy Kiss Pista 2 Név )= Nagy Péter 3 Kiss Pista Nagy Péter Vál Péter 5 Vál Péter Nagy Ákos 3 Nagy Ákos Név Jegy Jelenlét Név Jegy Kiss Pista 2 14 Kiss Pista 2 Nagy Péter 3 14 Nagy Péter 3 Vál Péter 5 13 Vál Péter 5 Nagy Ákos 3 10 Nagy Ákos 3 )=

Kiválasztás (Szelekció) Jele: σ attr1 R value R attr2 R value R... (S ) R ('=',' <',' >',' ',' ',' ',' ',' ') σ jegy=3 ( Név Jegy Kiss Pista 2 Név ) = Nagy Péter Nagy Péter 3 Vál Péter 5 Kiss Pista 3 σ jegy>1 jelenlét >10 ( Kiss Pista Név Jegy Jelenlét Kiss Pista 1 14 Nagy Péter 3 14 Vál Péter 5 13 Nagy Ákos 3 10 Jegy 3 3 ) = Táblán

Descartes-szorzat Jele: A B Név Jegy Kiss Pista 2 Nagy Péter 3 Név Jelenlét Kiss Pista 10 A B Nagy Péter 14 = R.Név Jegy S.Név Jelenlét Kiss Pista 2 Kiss Pista 10 Kiss Pista 2 Nagy Péter 14 Nagy Péter 3 Kiss Pista 10 Nagy Péter 3 Nagy Péter 14

Természetes összekapcsolás Jele: A B Név Jegy Név Jelenlét Kiss Pista 2 Kiss Pista 10 Nagy Péter 3 Nagy Péter 14 Nagy Lajos 5 Név Jegy Jelenlét Kiss Pista 2 10 Nagy Péter 3 14 =

Théta összekapcsolás Jele: A B attr1 R attr2 R... R ('=','<',' >',' ',' ',' ',' ',' ') Név Jegy Kiss Pista 2 Jelenlét> 10 Nagy Péter 3 Név Jelenlét Kiss Pista 10 Nagy Péter 14 Nagy Lajos 5 Név Jegy Nagy Péter 3 Jelenlét 14 =

Példa 1 S Név Jegy Jelenlét Kiss Pista 3 8 Kiss István 2 14 Nagy Irán 5 10 Nagy Péter 1 14 Adjuk meg relációs algebrai műveletekkel, azon hallgatók neveit, akik átmentek a tárgyból. π név (σ jegy >1 jelenlét >10 (S ))

Példa 2 A Név Tantárgy Kiss Pista Matek 50 8 Kiss Pista Rajz 60 14 Nagy Iván Statika 45 10 15 14 Nagy Péter Matek Pontszám Jelenlét B Név Évfolyam Kiss Pista 1 C Tantárgy MinPont Kiss István 2 Matek 40 Nagy Iván Rajz 60 Statika 50 1 Nagy Péter 1

Példa 2 1) Adjuk meg, azon hallgatókat, akik Rajzra járnak! 2) Adjuk meg az elsős hallgatók neveit! 3) Adjuk meg azon tárgyakat, amelyek teljesítéséhez több mint 45 pont kell! 4) Adjuk meg azon hallgatókat, és évfolyamukat, akik Matekra járnak! 5) Adjuk meg, hogy mely hallgatóknak milyen tantárgyuk sikerült! 6) Adjuk meg, hogy az elsős hallgatóknak milyen tantárgyak sikerültek!

Példa 2 1) π név (σ Tantárgy=' Rajz ' ( A)) 2) π név (σ Évfolyam=1 ( B)) 3) πtantárgy (σ MinPont >45 (C )) 4) π név, évfolyam (σ Tantárgy=' Matek ' ( B) 5) π név, tantárgy ( A A) C ) PontSzám> MinPont 6) π név, tantárgy (σ Évfolyam=1 ( B) (A PontSzám> MinPont C ))

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 muliplicítá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

Kapcsolatok leképezése (1:N) 1:N kapcsolat leképezése ID Személy Név Birtokol ID: Felsoroló N Név:Szöveg AutóRsz: Szöveg(IK) Mikortól?: Dátum Mikortól? 1 Rsz. Autó Típus Személy Autó Rsz: Szöveg Név:Szöveg

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 Név: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

Redundancia, adatbázis anomáliák

Redundancia A redundancia a következőeket okozhatja Módosítási anomália Beszúrási anomália Törlési anomália

Módosítási anomália Név Kiss Pista Kiss Pista Nagy Péter Életkor 23 23 21 MitVett? Csoki Sör Sör Kiss Pista nevét meg akarom változtatni, és azt az összes előforduló helyen meg kell tennem!

Beszúrási anomália Név Kiss Pista Kiss Pista Nagy Péter Életkor 23 22 21 MitVett? Csoki Sör Sör Kiss Pista felvételénél elrontjuk a bevitelt és véletlenül 22-t viszünk be életkornak. Ekkor nem tudhatjuk biztosan hány éves Pista.

Törlési anomália Név Kiss Pista Kiss Pista Nagy Péter Életkor 23 23 21 MitVett? Csoki Sör Sör Ha valami okból kitöröljük Kiss Pista sorait, akkor az eddig már felvitt adatokat (pl. életkor) elveszítjük!

Redundancia elkerülése A redundancia elkerülésére a tervezés során a táblákat normalizálni kell. Az egyes normalizálási lépések esetén azt mondjuk, hogy akkor az adatbázis egy meghatározott normál formán van. Előtte azonban ismerkedjünk meg a funkcionális függőségekkel!

Funkcionális függőségek

Funkcionális függőség Ha a reláció valamely 2 sora megegyezik valamilyen attribútum(ok)-on (A), és abból következnek (egyértelműen meghatároz) más attribútum(ok) (B) akkor azt mondjuk hogy B funkcionálisan függ A-tól. Név Kiss Pista Kiss Pista Életkor 23 23 Név Életkor Jelölés Vétel Csoki Sör

Funkcionális függőség - Kulcs Vegyük észre, hogy a funkcionális függőség a kulcs fogalom általánosítása: Amennyiben egy vagy több attribútum funkcionálisan meghatározza az összes többi attribútumot, akkor az szuperkulcs Ha ez a halmaz minimális, akkor kulcsról beszélünk

Funkcionális függőség - Példa Adjuk meg a következő relációk függőségi halmazait! Dolgozók(SzemIg., Név, Jövedelem, Beosztás)

Funkcionális függőség - Példa Adjuk meg a következő relációk függőségi halmazait! Dolgozók(SzemIg., Név, Jövedelem, Beosztás) SzemIg. Név, Jövedelem, Beosztás

Funkcionális függőség - Példa Adjuk meg a következő relációk függőségi halmazait! Dolgozók(SzemIg., Név, Jövedelem, Beosztás) SzemIg. Név, Jövedelem, Beosztás Beosztás Jövedelem (?) Eredmények(TantárgyNév, Neptun-kód, Név, Osztályzat)

Funkcionális függőség - Példa Adjuk meg a következő relációk függőségi halmazait! Dolgozók(SzemIg., Név, Jövedelem, Beosztás) SzemIg. Név, Jövedelem, Beosztás Beosztás Jövedelem (?) Eredmények(TantárgyNév, Neptun-kód, Név, Osztályzat) TantárgyNév, Neptun-kód Osztályzat

Normál formák

Első normál forma (1NF) Minden sora különböző (van kulcs) Van egy kulcs, amitől az összes többi attribútum funkcionálisan függ Ekkor a kulcs lehet a reláció összes attribútuma is Oszlopok Minden száma és sorrendje minden sorban azonos oszlopnak csak egy attribútuma lehet Minden attribútum egyszerű Ennek eldöntése tervezési kérdés nem mindig egyértelmű

Második normál forma (2NF) Második normál forma definíciója: Első normál formán vagyunk + Minden nem kulcs attribútum teljesen függ a kulcstól, de nem függ a kulcs bármely részhalmazától Teljesen függ: az attribútum a egyetlen részhalmazától sem függ Ha egy attribútumú a összetett) akkor rendben kulcs (azaz kulcs nem

Dekompozíció (2NF) Neptun ABCD1 ABCD2 ABCD1 Neptun ABCD1 ABCD2 SzemIg. 100AA 101AA 100AA ZH 1 1 2 Eredmény 4 5 3 SzemIg. 100AA 101AA Neptun ABCD1 ABCD2 ABCD1 ZH 1 1 2 Eredmény 4 5 3

Harmadik normál forma (3NF) Harmadik normál forma definíciója: Második normál formán vagyunk + Minden olyan attribútuma, mely nem része a kulcsnak, funkcionálisan teljesen függ a kulcstól, és csak attól. (Nincs tranzitív függőség)

Dekompozíció (3NF) VételID 1 2 VételID 1 2 Vétel Csoki Sör Vétel Csoki Sör Ár 100 300 Termék Csoki Sör Ár 100 300

Magasabb normál formák A gyakorlatban a 3NF már elegendő A legtöbb esetben ez már redundancia mentességet biztosít BCNF, A 4NF, 5NF magasabb normál formák hátrányai: Nehezen átlátható az adatbázis szerkezete Bonyolult lekérdezések Csökkenti a lekérdezések hatékonyságát

A gyakorlat A teljesség kedvéért megemlíthető, hogy bizonyos műveletek hatékonyabb végrehajtása érdekében egyes esetekben a tervezők inkább lemondanak a tisztaságról, áttekinthetőségről, s összevonnak egy relációba olyan adatokat is, amelyek a normalizálás elmélete szerint külön relációkban kellene helyet foglalniuk.

Esettanulmány

WebDLT Web alapú fotogrammetria Ha egy pontot két képen azonosítani tudok, annak térbeli koordinátája számítható Képkoordináták és egyéb adatok tárolása adatbázisban MySQL adatbázis + PHP + HTML + CSS DBMS: PhpMyAdmin

Input: Felhasználói adatok Képkoordináták (2D) Számítási eredmények Output: Képenkénti pontok adott projekten belül 3D pontok adott projekten belül Minősítő számok megjelenítése

E/K diagramm

Relációs adatbázis séma

Teljes séma

Ötletek

Források Wikipedia http://www.kobakbt.hu/jegyzet/adatbaziselmelet/ora4_index.htm l http://support.microsoft.com/kb/283878/hu http://www.fuvesi.com/adatbazisok/normalformak.html

Köszönöm a figyelmet! Adatbázis rendszerek