1 / 37

Adatbázisok használata

Adatbázisok használata. Zoltán Botond – zoltanbotond @ gmail.com. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!. Tudnivalók. kisZH-k minden egyes óra elején 7./12. héten nagy ZH

Download Presentation

Adatbázisok használata

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adatbázisok használata Zoltán Botond – zoltanbotond@gmail.com

  2. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!

  3. Tudnivalók • kisZH-k minden egyes óra elején • 7./12. héten nagy ZH • Féléves feladat • A gyakorlatok során használt virtuális gép elérhető a http://analog.nik.uni-obuda.hu:65111/címen

  4. Ajánlott Irodalom • Oracle példatár (SQL, PL/SQL)(Kende Mária - Nagy István) • http://www.logana.com/orakulum/4_AdatbazisKezeles/41_AKT/413_Labor.zip

  5. Féléves feladat • Félév során folyamatosan kell készíteni • A feladatkiírás, és a követelményei a www.orakulum.com weboldalról letölthető • 01-3_FF_Követelmény MM (12).doc • 01-4_FF_Feladatkiírás MM+MI (10).doc • A következő gyakorlatra mindenkinek hoznia kell a feladatkiírást (értelemszerűen kitöltve, aláírva) • FONTOS: Összetett kulcsok használata!!!

  6. Bevezetés • Mi is az az adatbázis? • Első pillantásra: adatok rendezett gyűjteménye. • Mi a célja egy adatbázisnak? • Az adatok megbízható, hosszú távon tartós (idegen szóval: perzisztens) tárolása, és viszonylag gyors visszakereshetőségének biztosítása.

  7. Relációs adatmodell • … relációs adatbázis? • Reláció → tábla • Egyedek (rekord: a táblázat egy sora) • Jellemzők (mezők), azaz a sorok egy oszlopa

  8. Kapcsolat típusok • Nincs kapcsolat • 1:1 kapcsolat • Minden halmazból 1 elemnek csakis 1 elem felel meg, és viszont • 1:N kapcsolat • Egy halmazból 1 elemnek több elem is megfelel, fordítva viszont csakis egyetlen egy • M:N kapcsolat • Mindkét halmazból 1 elemhez tartozhat több elem, és fordítva

  9. Kulcsok • Elsődleges kulcs • Minden rekordban egyedi!!! (Lehet összetett is) • Nem lehet ‚NULL’ • Idegen kulcs • Egy másik tábla elsődleges kulcsa • Összetett kulcs • Legalább két attribútumból áll

  10. Adatbázis Anomáliák • Egy művelet nem kívánt mellékhatása, amely sokszor inkonzisztens állapotot eredményez. • Típusai: • Módosítási Anomália • Törlési Anomália • Beírási Anomália

  11. Redundancia • Mi a redundancia • „Több jel felhasználása, mint amennyire adott információ közvetítéséhez feltétlenül szükség van.” • A redundancia adatbázis-kezelés szempontjából általában az adatok ismétlődését jelenti. • Jó- e a redundancia?

  12. Normalizálás • Egyszerűen megfogalmazva: • Az az eljárás, mely segítségével az adatok ésszerű csoportosítása formálisan is elvégezhető • Mi a célja? • Redundancia csökkentése, megszűntetése. • A hozzá kapcsolódó anyag • az orakulum.com weboldalon a „labor”-on belül található SQL Bevezető feladatgyűjtemény (pdf, 3-10. old) • és a http://www.agt.bme.hu/szakm/adatb/db3.htmweboldalon található

  13. 1.NF • Minden attribútum egyszerű

  14. 2.NF • A reláció minden nem elsődleges attribútuma teljes funkcionális függőségben van az összes reláció kulccsal • Mi az a Funkcionális függőség? • Ha egy tulajdonság értékét, egy másik tulajdonság egyértelműen meghatározza • Mondjunk erre pár példát a hétköznapokból!

  15. 2.NF • Ismerjük föl a függőségeket! • A Terem meghatározza a férőhelyek számát • A Terem és az Óra kezdete pedig a Tárgyat

  16. 2.NF

  17. 3.NF • A reláció nem tartalmaz funkcionális függőséget a nem elsődleges attribútumok között. • Jelen esetben a Tárgy egyértelműen meghatározza az oktatót, az oktató azonban az ő email címét. (Tárgy ->Oktatóm ->Email)

  18. 3. NF

  19. BCNF • Boyce-Codd normál forma • A kulcs attribútumoknak nincs olyan részhalmaza, mely más kulcs- vagy másodlagos attribútumoktól függene. (Azaz nincs kulcstörés) • Tulajdonképpen a 3.NF egy szigorúbb változata • FELTÉTEL: MINDEN TANÁR CSAK EGY TÁRGYAT OKTAT, DE TÖBB FÉLÉVBEN IS • Mi lehet a probléma? • Az Oktató és a Félév meghatározza a Tárgyat, de a Tárgy és a Félév pedig az Oktatót

  20. BCNF

  21. 1. példa • Tervezzünk tanulmányi adatbázist! A következőket tudjuk: • A tárgyak kódját, megnevezését, a felvétel javasolt félévét. • A hallgatók kódját, nevét, e-mail címét, a beiratkozás idejét. • A hallgatók adott félévre több tárgyat is felvehetnek, egy tárgyat több hallgató is felvehet. Tároljuk az eredményeket is.

  22. 1. példa • 1. lépés: az ősmodell sémája nyilvántartás <tárgykód, megnevezés, javasolt félév, hallgatói kód, név, e-mail, beiratkozás dátuma, felvétel féléve, eredmény> • A tárgykód egyértelműen azonosítja a tantárgyat, a hallgatói kód pedig a hallgatót. • Egy hallgató egy tárgyat többször is felvehet!

  23. 1. példa • 2. lépés: függőségek felírása ftárgy= {tárgykód} => {megnevezés, javasolt félév} fhallgató= {hallgatói kód} => {név, e-mail, beiratkozás dátuma} … és a tárgyfelvételek??? Mi lesz a kulcs? ffelvétel = {tárgykód, hallgatói kód, felvétel féléve} => {megnevezés, javasolt félév, név, e-mail, beiratkozás dátuma, eredmény}

  24. 1. példa • 3. lépés: normalizálás 1NF: oké, mert minden adatunk elemi. 2NF: nem oké! Az ffelvétel függőség sérti, mert a tárgy megnevezése és javasolt féléve csak a tárgykódtól függ, nem a teljes kulcstól, a hallgató személyes adatai is csak a hallgatói kódtól, tehát itt szétbontás (dekompozíció) következik:

  25. 1. példa {tárgykód, hallgatói kód, felvétel féléve} => {megnevezés, javasolt félév, név, e-mail, beiratkozás dátuma, eredmény} Dekompozíció után: {tárgykód, hallgatói kód, felvétel féléve} => {eredmény} {tárgykód} => {megnevezés, javasolt félév} {hallgatói kód} => {név, e-mail, beiratkozás dátuma}

  26. 1. példa • 3NF oké, mert ezekben már nincs tranzitív függés. • BCNF oké.

  27. 1. példa • Eredmény: tárgy <tárgykód, megnevezés, javasolt félév> hallgató <hallgatói kód, név, e-mail, beiratkozás dátuma> tárgyfelvételek <tárgykód, hallgatói kód, felvétel féléve, eredmény> • Elsődleges kulcsok, idegen kulcsok

  28. 2. példa • Jani bácsi, a székgyártó kisiparos szeretne adatbázist készíttetni. • Tárolnánk a székek megnevezését, típusát, színét, méretét, árát, a készlet nagyságot. • Tároljuk a vásárlók adatait is: név, cím, telefonszám, törzsvásárló-e. • Nyilvántartjuk a rendeléseket: a kiadott számla számát; ki, mikor, mit rendelt.

  29. 2. példa • 1. lépés: az ősmodell sémája székvásárlás <megnevezés, típus, szín, méret, ár, készlet, név, cím, telszám, törzsvásárló, számla száma, dátum, mennyiség> • A megnevezés, a szín és típus együtt azonosítja a széket, a név és a telszáma vásárlót. • Adott típusú szék többféle színben kapható, de ezek mérete és ára megegyezik. • Egy számlára csak egy fajta széket könyvelünk.

  30. 2. példa • 2. lépés: függőségek felírása fvásárló = {név, telszám} => {cím, törzsvásárló} fraktár = {megnevezés, típus, szín} => {méret, ár, készlet} DE: fszék = {megnevezés, típus} => {méret, ár} !!!!

  31. 2. példa • És a vásárlások? (Mi az ősreláció kulcsa?) fvásárlás = {számla száma} => {dátum, mennyiség, megnevezés, típus, szín, méret, ár, készlet, név, cím, telszám, törzsvásárló}

  32. 2. példa • 3. lépés: normalizálás 1NF: oké, mert minden adatunk elemi. 2NF: nem oké! A {megnevezés, típus, szín} => {méret, ár, készlet} függőség sérti, mert a méret és az ár csak a bal oldal egy részétől függ, nem az egésztől, tehát itt szétbontás (dekompozíció) következik: {megnevezés, típus} => {méret, ár} és {megnevezés, típus, szín} => {készlet}

  33. 2. példa • 3NF: ez sem oké! Az fvásárlás –ban tranzitív függés van! (Jobb oldalon szereplő jellemzők függnek egymástól.) {számla száma} => {dátum, mennyiség, megnevezés, típus, szín, méret, ár, készlet, név, cím, telszám, törzsvásárló}

  34. 2. példa • Dekompozíció után: {név, telszám} => {cím, törzsvásárló} {megnevezés, típus} => {méret, ár} {megnevezés, típus, szín} => {készlet} {számla száma} => {dátum, mennyiség, megnevezés, típus, szín, név, telszám} • BCNF oké.

  35. 2. példa • Eredmény: vásárlás<számla száma, dátum, mennyiség, megnevezés, típus, szín, név, telszám> szék<megnevezés, típus, méret, ár> készlet<megnevezés, típus, szín, készlet> vásárló<név, telszám, cím, törzsvásárló> • Elsődleges kulcsok, idegen kulcsok

  36. Vége! • Mára ennyit, a következő órán: • kis zárthelyi, • feladatterv leadása!

  37. Felhasznált irodalom: • Nagy Gabriella diasora • Rózsa Győző diasora • http://www.agt.bme.hu/szakm/adatb/db3.htm • Wikipedia

More Related