Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaRebeka Juhászné Megváltozta több, mint 10 éve
1
ADATBÁZISOK http://users.nik.uni-obuda.hu/szabozs/ 2017.04.04.
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
Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes
RELÁCIÓK ER Diagram Google keresés: "Az adatmodellezés szintjei" Bércesné Novák Ágnes
10
Egyedek, Relációk Egy-az-egyhez kapcsolat 1:1, ritka eset (vállalkozók + adószámok – belső függőségek?)
11
Egy-a-többhöz kapcsolat 1:N
Relációk Kulcsok Egy-a-többhöz kapcsolat 1:N
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 Több-a-többhöz kapcsolat M:N
14
ER diagram alapelemei Egyed + kapcsolat Attribútum
Elsődleges kulcs
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 http://en.wikipedia.org/wiki/Database_normalization
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 991201 0001 Barna kenyér 25 Bpest. Barna u.1 Julius Meinl 35 991202 0002 Fehér kenyér 24 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: Fvalami: {kulcs1, kulcs2} {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
0NF 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
0NF Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz. Menny. Cím C1 N1 500 2 20 R1 5 A1 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 R2 A2 Frendelések: {Cikkszám, Cikknév, Egységár, Adókulcs, Adószázalék, Mennyiség, {Rendelésszám, Cím} }
23
1NF „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
Módosítási, törlési, beszúrási anomáliák !!!
1NF Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny. Cím C1 N1 500 2 20 R1 5 A1 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 R2 A2 Módosítási, törlési, beszúrási anomáliák !!!
25
2NF 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
26
2NF „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
2NF Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs, Adószázalék}
Rend.sz Menny. Cím Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs, Adószázalék} Frendelések: {Rendelésszám} {Cím} Mennyiség??? Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Függőség = Tábla = Egyed !!! Elsődleges kulcs, Idegen kulcs, Összetett kulcs !!!
28
2NF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1
A1 R2 A2 Cikksz. Cikkn. Ár Adók. Adósz. C1 N1 500 2 20 C2 N2 600 C3 N3 700 1 10 C4 N4 1000 3 25 Kulcsok?? Összetett kulcsok???
29
3NF 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
3NF 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: Fadó: {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
3NF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1
A1 R2 A2 Cikksz. Cikkn. Ár Adók. C1 N1 500 2 C2 N2 600 C3 N3 700 1 C4 N4 1000 3 Adók. Adósz. 1 10 2 20 3 25
32
Előnyök 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
33
BCNF vs 3NF 3NF: Az R relációban lévő minden XY, 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
Levezetés ER diagram segítségével???
BCNF Rend.sz. Cikksz. Menny. R1 C1 5 C2 C3 10 R2 C4 2 Rend.sz. Cím R1 A1 R2 A2 Cikksz. Cikkn. Ár Adók. C1 N1 500 2 C2 N2 600 C3 N3 700 1 C4 N4 1000 3 Adók. Adósz. 1 10 2 20 3 25 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={AB, BC}
R egy felbontása: R1=(A, C) R2=(B, C) R1-beli vetített, nem triviális függőségek: F1={AC} (tranzitív) R2-beli vetített, nem triviális függőségek: F2= {BC} A nem triviális függőségek F1-ben és F2-ben: {BC, AC}. Ezekből AB nem vezethető le
50
Függőségmegőrzés Adottak: R=(A, B, C) , F={AB, BC}
R egy felbontása: R1’=(A, B) és R2’=(B, C) R1’-beli vetített, nem triviális függőségek: F1={AB} R2’-beli vetített, nem triviális függőségek: F2= {BC} A nem triviális függőségek F1-ben és F2-ben: {AB, BC}. 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={VUIr, IrV} 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= {IrV} 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 IrV 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 . . .
56
Példa R1 (A1, A2, A3, A5) R2 (A1, A3, A4) R3 (A4, A5) FD1: A1 A3 A5
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) 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) R1 a(1) a(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) R2 a(1) a(2) a(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 “ak”- 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 Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs}
Adósz. Rend.sz Menny. Cím Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs} Frendelések: {Rendelésszám} {Cím} Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség} Fadó: {Adókulcs} {Adószázalék}
63
Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cím Cikksz. Cikkn.
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. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,2) B(3,3) B(3,4) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)
64
Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs}
Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,2) B(3,3) B(3,4) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fcikkek: {Cikkszám} {Cikknév, Egységár, Adókulcs} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)
65
Frendelések: {Rendelésszám} {Cím}
Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,5) A(7) B(3,8) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Frendelések: {Rendelésszám} {Cím} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8)
66
Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség}
Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fmennyiségek: {Cikkszám, Rendelésszám} {Mennyiség}
67
Fadó: {Adókulcs} {Adószázalék}
Példa Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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) B(3,5) A(7) B(4,1) B(4,2) B(4,3) A(5) B(4,6) B(4,7) B(4,8) Fadó: {Adókulcs} {Adószázalék} Cikksz. Cikkn. Ár Adók. Adósz. Rend.sz Menny Cí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(7) B(4,1) B(4,2) B(4,3) B(4,6) B(4,7) B(4,8)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.