Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

2014. 07. ADATBÁZISOK

Hasonló előadás


Az előadások a következő témára: "2014. 07. ADATBÁZISOK"— Előadás másolata:

1 ADATBÁZISOK

2 KÖVETELMÉNYEK

3 Követelmények TVSZ szerinti gyakorlat-látogatás Otthoni felkészülés! Kis ZH-k megírása (minden gyakorlaton, a következőn: normalizálás) Nagy ZH-k megírása (2 db, központi pótlásokkal) Féléves feladat (Pontozás!!!)

4 Követelmények  Oracle10g / Oracle11g / OracleXE telepítése  Példatár (~4500 Ft?)   Telepítési útmutatók (10g, XE)  AB-KGK (FF Követelmény, FF Értékelés, FF Feladatkiírás) 

5 analog.nik.uni-obuda.hu Fontos fileok FF_Feladatkiírás –Következő foglalkozásra elhozni, aláíratni, megőrizni –min. 3 entitás leírása kell a feladatkiírásban –NEM dvd, vhs, könyvtár … Menetrend  Javasolt tematika (…) FÉLÉVBEVEZETŐ  Alap információk SQL Bevezető Feladatgyűjtemény, Analitikus SQL Feladatgyűjtemény  Otthoni gyakorlás!!!

6 ALAPOK

7 Logikai adatmodellek típusai Hierarchikus adatmodell  Fa Hálós adatmodell  Gráf Relációs adatmodell  Táblázatok (~Excel munkalapok) közötti kapcsolatok rendszere Objektum-Orientált adatmodell  Adat + Utasítások egységbe zárása (elvként létezik, ORM rendszerekkel elég jól megközelíthető, az adat tárolása ugyanúgy relációs)

8 A relációs adatmodell Oszlop-fejlécek: adatmező (mező, attribútum) Sorok: rekord Tárolási elv: ~táblázat: adattábla, tábla - a sorok sorrendje nem számít, - az oszlopok sorrendje sem számít és - nem lehet két azonos sor. Több táblázat RELÁCIÓS rendszere: adatbázis

9 RELÁCIÓK ER Diagram Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes

10 Egy-az-egyhez kapcsolat 1:1, ritka eset (vállalkozók + adószámok – belső függőségek?) Egyedek, Relációk

11 Egy-a-többhöz kapcsolat 1:N Relációk  Kulcsok

12 Kulcsok Elsődleges kulcs, idegen kulcs, összetett kulcs Összetett kulcsok használata esetén rész- kulcsokat nem viszünk át másik táblába (Mi most összetett kulcsokat használunk) Kulcsok relációs rendszere = adatbázis Később lesz szó ezek gyakorlati megvalósításáról

13 Több-a-többhöz kapcsolat M:N Relációk

14 ER diagram alapelemei Egyed + kapcsolat Attribútum Kapcsolat-attribútum Elsődleges kulcs

15

16 Programozók, Projektek, Modulok Programozók mezői? Modulok mezői? Projektek mezői? Kapcsolatok: –1 modul  1 projekt; 1 projekt  több modul  1:N –1 programozó  több modul; egy modul  több programozó N:M  mikortól és meddig?

17 NORMALIZÁLÁS

18 Példa egy tipikus Excel táblára RENDELÉS- SZÁM CIKK- SZÁM CIKK MEGNEVE- ZÉS REND. MENNYISÉG HATÁR- IDŐ SZÁLL. CÍM VEVŐ- NÉV Barna kenyér Bpest. Barna u.1 Julius Meinl Barna kenyér Bpest. Barna u.1 Julius Meinl Fehér kenyér Bpest Fehér u.2 Penny Market  REDUNDANCIA, INKONZISZTENCIA

19 Normalizálás Az itt ismertetett táblázatos módszer GYAKORLATI megközelítésből ábrázolja, hogy miért is szükséges a normalizálás A TÁBLÁZATOS LEÍRÁS FORMAILAG NEM MEGFELELŐ, a függőségek (egyedek) formális felírása az elvárt: F valami : {kulcs 1, kulcs 2 }  {mező 1, mező 2, mező 3 } A táblázatos forma a könnyebb, gyakorlatias megértés miatt van itt használva, de a későbbi cél a reláció-algebrai / ER megközelítés

20 Ősmodell A rendelkezésre álló, a megoldandó feladatra jellemző adatcsoportok sora, minden struktúra és elv nélkül Például: megrendelés-nyilvántartás Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Rendelésszám, Mennyiség, Szállítási cím, Szín, Súly, Ország, Csomagolás

21 NF Csak a szükséges mezőket hagyjuk meg  az adatok táblázatba rendezhetőek Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Rendelésszám, Szállítási cím, Mennyiség Törölve: Szín, Súly, Ország, Csomagolás

22 NF F rendelések : {Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Mennyiség, {Rendelésszám, Cím} } Cikksz. Cikkn. ÁrAdók.Adósz.Rend.sz. Menny.Cím C1N R1 5 A1 C2N C3N C4N R2 2 A2 C3N

23 NF „A reláció minden sorában pontosan egy elemi attribútumérték áll.” Megszüntetjük az ismétlődő csoportokat avagy Megszüntetjük az összetett adattagokat

24 NF Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMenny.Cím C1N R1 5 A1 C2N R1 5 A1 C3N R1 10 A1 C4N R2 2 A2 C3N R2 5 A2 Módosítási, törlési, beszúrási anomáliák !!!

25 Funkcionális függőség: Funkcionális függőség akkor áll fenn, ha egy tulajdonság értékét egy másik tulajdonság értéke egyértelműen meghatározza. A funkcionális függés egyirányú kapcsolatot jelent. Például: Személyigazolvány-szám és név, anyja neve, születési dátum, stb. összerendelése, hiszen egy személyigazolvány-szám esetén biztosan tudjuk a kapcsolódó egyed minden adatát 2NF

26 NF „Minden másodlagos attribútum funkcionálisan teljesen függ a reláció bármely kulcsától” Elvárás: egy táblában egy tetszőleges mező vagy kulcsmező, vagy a kulcsmezőtől funkcionálisan függő mező Megszüntetjük a többszörös funkcionális függőségeket: tábla-struktúra átdolgozása, több tábla létrehozása (  Egyedek létrehozása) Ehhez először fel kell írnunk a függőségeket

27 NF F cikkek : {Cikkszám}  {Cikknév, Egységár, Adókulcs, Adószázalék} F rendelések : {Rendelésszám}  {Cím} Mennyiség??? F mennyiségek : {Cikkszám, Rendelésszám}  {Mennyiség} Függőség = Tábla = Egyed !!! Elsődleges kulcs, Idegen kulcs, Összetett kulcs !!! Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMenny.Cím

28 Cikksz.Cikkn.ÁrAdók.Adósz. C1N C2N C3N C4N Rend.sz.Cikksz.Menny. R1C15 R1C25 R1C310 R2C42 R2C35 2NF Rend.sz.Cím R1A1 R2A2 Összetett kulcsok??? Kulcsok??

29 NF Tranzitív függőség: Egy nem-kulcs C tulajdonság akkor és csak akkor függ tranzitívan az egyed A kulcsától, ha meghatározza az azonosítótól függő B tulajdonság is „egy másodlagos attribútum sem függ tranzitívan a reláció egyetlen kulcsától sem” CSAK az elsődleges kulcstól lehet függés! Nem lehet függés az egyed nem-kulcs attribútumai között

30 NF Megszüntetjük a tranzitív függőségeket, vagyis elérjük azt, hogy CSAK az elsődleges kulcstól legyen a táblán belül függés Jelenleg: F adó : {Adókulcs}  {Adószázalék} Az új függőség új táblát jelent  új idegen kulcs az eredeti táblában

31 Cikksz.Cikkn.ÁrAdók. C1N15002 C2N26002 C3N37001 C4N Rend.sz.Cím R1A1 R2A2 Rend.sz.Cikksz.Menny. R1C15 R1C25 R1C310 R2C42 R2C35 3NF Adók.Adósz

32 Adatbázis szintű inkonzisztencia kiküszöbölve, az értelmetlen redundancia csökkent A relációk együttes mérete szinte mindig kisebb Törlés esetén sem veszhet el információ, az anomáliák megszűntek A relációk konzisztensen bővíthetők Minden módosítás könnyebb és gyorsabban hajtható végre Előnyök

33 BCNF vs 3NF 3NF: Az R relációban lévő minden X  Y, a meglévő funkcionális függőségeken belüli funkcionális függőségre az egyik igaz: –Y valójában X részhalmaza VAGY –X az R reláció szuperkulcsa VAGY –Y az R tetszőleges kulcsának részhalmaza (ez egyben kiköti, hogy az Y egyedül nem lehet kulcs: egy összetett kulcs részhalmaza nem lehet önmagában kulcs!) A 3NF-ben amúgy megengedett harmadik pont A BCNF-BEN NEM MEGENGEDETT!

34 BCNF (3.5NF) Összetett kulcson belüli / kulcsok közötti függés nem megengedett “A kulcsattribútumoknak nincs olyan részhalmaza, mely más kulcs- vagy másodlagos attribútumoktól (funkcionálisan) függene (vagyis nincs kulcstörés)” Egy 3NF reláció nincs BCNF-ben, ha (a) több lehetséges kulcs-jelölt van, (b) a kulcsok összetett kulcsok, és (c) a különböző kulcsok között van közös attribútum ID PK esetén ilyen nincs

35 Összefoglalva 0NF: Ősmodell 1NF: Nincsenek ismétlődő/komplex adattagok 2NF: Minden mező függ a kulcstól (funkcionális függőség) 3NF: Minden mező csak a kulcstól függ (nincs tranzitív függőség) BCNF: A kulcsmezők között nincs belső függés 4NF, 5NF, DKNF …………

36 Cikksz.Cikkn.ÁrAdók. C1N15002 C2N26002 C3N37001 C4N Rend.sz.Cím R1A1 R2A2 Rend.sz.Cikksz.Menny. R1C15 R1C25 R1C310 R2C42 R2C35 BCNF Adók.Adósz Levezetés ER diagram segítségével???

37 ER-ből táblák

38 ER-ből táblák

39 ER-ből táblák

40 EMP, DEPT

41 DEFINÍCIÓK

42 Kulcsjelölt Definíció: Az {A1, A2,...An} attribútumhalmaz az R (A1, A2,...An, B1, B2,...Bk) sémájú reláció kulcsjelöltje, ha 1.) A1, A2,...An => B1, B2,...Bk fennáll, és 2.) nincsen olyan valódi részhalmaza az { A1, A2,...An } halmaznak, amely az R reláció összes többi attribútumát funkcionálisan meghatározná. (Egy reláció attribútumainak minimális részhalmaza, amely összetett kulcsként használható lenne: azonos kulcshoz azonos nem-kulcs értékek vannak)

43 Szuperkulcs Gyakorlatilag a szuperkulcs a kulcsjelölt kiegészítése más attribútumokkal (Kulcsjelölt: a minimális szuperkulcs (a legkevesebb oszlopból álló szuperkulcs)) Azokat az attribútumhalmazokat, amelyek tartalmaznak kulcsjelöltet, szuperkulcsoknak nevezzük Rövidítése a „kulcsnál bővebb halmazoknak”

44 Lezárt X={A1,A2,...,An} attribútumhalmazra egy S funkcionális függőségi halmaz szerint vett (X+ jelölésű) lezárásának kiszámítási algoritmusa: –Legyen X attribútumhalmaz, amely végül maga a lezárt lesz. Legyen először X kezdőértéke {A1,A2,...,An}. –Keressünk olyan {B1,B2,...,Bm} => C funkcionális függőségeket S-ből, amelyekre a teljes B1,B2,...,Bm benne van az X attribútumhalmazban, de C nincs. Ekkor C-t hozzávesszük az X halmazhoz. –A 2. lépést mindaddíg ismételjük, ameddig már nem tudunk több attribútumot hozzávenni X-hez

45 Armstrong axiómák A funkcionális függőség: –Reflexív (önmagát meghatározza): Az egyszerű kulcs meghatározza önmagát, egy összetett kulcs meghatározza minden részhalmazát (    esetén   ) –Tranzitív: Ha  és  akkor  –Bővíthető: Ha , akkor 

46 Függőségőrző felbontás A felbontás után kapott relációkban meglevő függőségekből az eredeti függőségekre tudjunk következtetni Adott az R reláció és az F függőségi halmaz. Azt mondjuk, hogy az R reláció egy R1, R2, …Rk felbontása függőségőrző az F függőségi halmaz szerint, ha az R1, R2, …Rk relációkra vetített függőségek unióiból az eredeti F függőségi halmaz logikailag következik. (Pl. levezethető az Armstrong axiómákkal)

47 Veszteségmentes felbontás A résztáblák összekapcsolásával előállítható a normalizálás előtti állapot A 3NF és BCNF állapot elvártan MINDIG veszteségmentes! A 3NF mindig függőségmegőrző, a BCNF nem!

48 FÜGGŐSÉGMEGŐRZÉS ELLENŐRZÉSE Google keresés: Relációk felbontása abkr4 "Bércesné Novák Ágnes”

49 Függőségmegőrzés Adottak: –R=(A, B, C), F={A  B, B  C} –R egy felbontása: R1=(A, C) R2=(B, C) R1-beli vetített, nem triviális függőségek: F1={A  C} (tranzitív) R2-beli vetített, nem triviális függőségek: F2= {B  C} A nem triviális függőségek F1-ben és F2-ben: {B  C, A  C}. Ezekből A  B nem vezethető le

50 Függőségmegőrzés Adottak: –R=(A, B, C), F={A  B, B  C} –R egy felbontása: R1’=(A, B) és R2’=(B, C) R1’-beli vetített, nem triviális függőségek: F1={A  B} R2’-beli vetített, nem triviális függőségek: F2= {B  C} A nem triviális függőségek F1-ben és F2-ben: {A  B, B  C}. Ez így jó

51 Függőségmegőrzés Adottak: –R(VÁROS, UTCA, IRÁNYíTÓSZÁM)=R(V, U, Ir) –F={VU  Ir, Ir  V} –R felbontása BCNF-re: R1(U, Ir) és R2(V, Ir) Veszteségmentes (bizonyítást ld. hamarosan) R1-beli vetített, nem triviális függőségek: F1={} R2-beli vetített, nem triviális függőségek: F2= {Ir  V} Hiányzó függőség, de *bármilyen* BCNF felosztásnál az adott példán

52 Függőségmegőrzés Hiányzó függőség, de *bármilyen* BCNF felosztásnál az adott példán Nem mindig létezik függőségmegőrző felbontás BCNF-re Mindig létezik veszteségmentes és függőségmegőrző felbontás 3NF-re (a gyakorlatban a kiindulási R reláció a 3NF, mert az Ir  V nem igaz)

53 VESZTESÉGMENTESSÉG ELLENŐRZÉSE Google keresés: veszteségmentesség ellenőrzése "Bércesné Novák Ágnes"

54 Veszteségmentes? Veszteségmentesség: a résztáblák összekapcsolásával előállítható a normalizálás előtti állapot A 3NF és BCNF állapot elvártan MINDIG veszteségmentes! Veszteségmentesség nélkül a normalizálásnak nem lenne értelme...

55

56 Példa R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5) FD1: A1  A3 A5 FD2: A5  A1 A4 FD3: A3 A4  A2

57 Példa A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) b(2,5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5)

58 Példa FD1: A1  A3 A5 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) b(2,5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5)

59 Példa FD2: A5  A1 A4 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) b(1,4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 b(3,1) b(3,2) b(3,3) a(4) a(5) A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) a(4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5)

60 Példa FD3: A3 A4  A2 A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) a(4) a(5) R2 a(1) b(2,2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5) A1 A2 A3 A4 A5 R1 a(1) a(2) a(3) a(4) a(5) R2 a(1) a(2) a(3) a(4) a(5) R3 a(1) b(3,2) b(3,3) a(4) a(5)

61 Veszteségmentes? Döntés: Ha már nincsen alkalmazható függőség, akkor ellenőrizzük, az így kapott táblázatban van-e csupa “a k ”- ból álló sor. Ha igen, akkor a felbontás veszteségmentes. Ha nem, akkor veszteséges.  az utolsó lépés kihagyható, mert már előtte is tudjuk, hogy veszteségmentes Veszteséges dekompozícióból nem állítható vissza a normalizáció előtti állapot  HIBÁS STRUKTÚRA

62 BCNF F cikkek : {Cikkszám}  {Cikknév, Egységár, Adókulcs} F rendelések : {Rendelésszám}  {Cím} F mennyiségek : {Cikkszám, Rendelésszám}  {Mennyiség} F adó : {Adókulcs}  {Adószázalék} Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMenny.Cím

63 Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím B(1,1)B(1,2)B(1,3)B(1,4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)B(2,6)B(2,7)B(2,8) B(3,1)B(3,2)B(3,3)B(3,4)B(3,5)B(3,6)B(3,7)B(3,8) B(4,1)B(4,2)B(4,3)B(4,4)B(4,5)B(4,6)B(4,7)B(4,8) Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)B(3,2)B(3,3)B(3,4)B(3,5)A(6)A(7)B(3,8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8) Példa

64 Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)B(3,2)B(3,3)B(3,4)B(3,5)A(6)A(7)B(3,8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8) Példa F cikkek : {Cikkszám}  {Cikknév, Egységár, Adókulcs} Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)A(2)A(3)A(4)B(3,5)A(6)A(7)B(3,8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8)

65 Példa F rendelések : {Rendelésszám}  {Cím} Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)A(2)A(3)A(4)B(3,5)A(6)A(7)B(3,8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8) Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)A(2)A(3)A(4)B(3,5)A(6)A(7)A(8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8)

66 Példa F mennyiségek : {Cikkszám, Rendelésszám}  {Mennyiség} Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)A(2)A(3)A(4)B(3,5)A(6)A(7)A(8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8)

67 Példa F adó : {Adókulcs}  {Adószázalék} Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)B(1,5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)A(2)A(3)A(4)B(3,5)A(6)A(7)A(8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8) Cikksz.Cikkn.ÁrAdók.Adósz.Rend.szMennyCím A(1)A(2)A(3)A(4)A(5)B(1,6)B(1,7)B(1,8) B(2,1)B(2,2)B(2,3)B(2,4)B(2,5)A(6)B(2,7)A(8) A(1)A(2)A(3)A(4)A(5)A(6)A(7)A(8) B(4,1)B(4,2)B(4,3)A(4)A(5)B(4,6)B(4,7)B(4,8)


Letölteni ppt "2014. 07. ADATBÁZISOK"

Hasonló előadás


Google Hirdetések