Csima Judit BME, VIK, november 9. és 16.

Hasonló dokumentumok
Csima Judit november 15.

Csima Judit október 24.

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

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

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

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

Normalizálási feladatok megoldása

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

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

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

Adatbázisrendszerek. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF március 13.

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

8. előadás. normálformák. Többértékű függés, kapcsolásfüggés, 4NF, 5NF. Adatbázisrendszerek előadás november 10.

13. Relációs adatmodell tervezése

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

Adatbázisok gyakorlat

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

8. Előadás tartalma. Funkcionális függőségek

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

A relációs adatbázis-tervezés alapjai

Függőségek felismerése és attribútum halmazok lezártja

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

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

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

9. RELÁCIÓS ADATBÁZISOK LOGIKAI TERVEZÉSE TERVEZÉS E-R DIAGRAMBÓL TERVEZÉS SÉMADEKOMPOZÍCIÓVAL Anomáliák...

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

T Adatbázisok-adatmodellezés

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

Tervezés: Funkcionális függıségek

Klasszikus algebra előadás. Waldhauser Tamás március 24.

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

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

Sor és oszlopkalkulus

0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:

Adatbázis-kezelés. alapfogalmak

Gy ur uk aprilis 11.

Formális nyelvek - 5.

Diszkrét matematika 2.

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

ADATBÁZIS-KEZELÉS. Relációs modell

FELVÉTELI VIZSGA, szeptember 12.

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Háromszögek fedése két körrel

1. ábra ábra

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2. estis képzés

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

MM CSOPORTELMÉLET GYAKORLAT ( )

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

ADATBÁZISOK. Normalizálás

Csima Judit szeptember 6.

Normalizálás. Elméleti összefoglaló

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Diszkrét matematika 2.C szakirány

Láthatjuk, hogy az els szám a 19, amelyre pontosan 4 állítás teljesül, tehát ez lesz a legnagyobb. 1/5

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Alap fatranszformátorok II

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

= 1, azaz kijött, hogy 1 > 1, azaz ellentmondásra jutottunk. Így nem lehet, hogy nem igaz

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Diszkrét matematika 2. estis képzés

Diszkrét matematika 2. estis képzés

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

Klasszikus algebra előadás. Waldhauser Tamás április 28.

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

Az 1. forduló feladatainak megoldása

Diszkrét matematika I.

Adatmodellezés. 1. Fogalmi modell

1. előadás: Halmazelmélet, számfogalom, teljes

Javítókulcs, Válogató Nov. 25.


Iván Szabolcs október 6.

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Arany Dániel Matematikai Tanulóverseny 2016/2017-es tanév első (iskolai) forduló Haladók II. kategória

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Diszkrét matematika I.

Formális nyelvek I/2.

A számítástudomány alapjai

Diszkrét matematika gyakorlat 1. ZH október 10. α csoport

12. előadás - Markov-láncok I.

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

Arany Dániel Matematikai Tanulóverseny 2016/2017-es tanév Kezdők III. kategória I. forduló

Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet. Normalizálás

Diszkrét matematika 2.C szakirány

Szakács Lili Kata megoldása

Nagy Gábor compalg.inf.elte.hu/ nagy

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Állapot minimalizálás

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

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Diszkrét matematika 2.C szakirány

Egyed-kapcsolat modell

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

Átírás:

Adatbáziskezelés Függőségőrzés, 3NF-re bontás Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2018. november 9. és 16. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 1 / 21

Hol tartunk? Tétel Tetszõleges (R, F ) sémának van hûséges felbontása BCNF relációkra. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 2 / 21

Függõség megõrzése BCNF-ekre bontás egy fogyatékossága: nehéz adatmódosításkor ellenõrizni, hogy teljesülnek-e F függései (pl. beszúráskor). Mert lehet, hogy egy X Y függésnél X és Y attribútumai nem ugyanabban a részben vannak a felbontásnál. Ilyenkor a költséges kell, és ez sokszor elõfordulhat. Kéne egy olyan felbontás, amin könnyen lehet ellenõrizni a függéseket. Definíció Adott (R, F ) séma és ennek egy ρ = (R 1,..., R k ) felbontása. π ρ (F ) := {X Y F + i (1 i k) X, Y R i } + az F függéseinek vetítése a ρ felbontásra. ρ függõségõrzõ, ha π ρ (F ) = F +. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 3 / 21

Megjegyzések π ρ (F ) F + persze mindig igaz. Ha a felbontás függõségõrzõ, akkor elég a darabokon ellenõrzni az oda eső függéseket és ha itt minden rendben van, akkor F minden függése igaz lesz az egészen. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 4 / 21

Példa R(Város, Utca, Irányítószám) F = {VU I ; I V } Ez nem BCNF I V miatt. Miért kéne a függõségõrzés?: Ha felbontjuk = S(V, I ), Q(I, U) Beszúrunk 2-2 sort: S V I Nagykanizsa 8800 Nagykanizsa 8831 Q U I Kossuth 8800 Kossuth 8831 Noha S-ben és Q-ban oké minden, S Q-ban nem teljesül a VU I függés. Ez nem lett volna, ha függõségõrzõ lenne a felbontás. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 5 / 21

Szomorú példa Szomorú példa ez: semelyik felbontása sem õrzi meg VU I -t, mert csak ez olyan függés, aminek jobb oldalán van I, azaz ha egy felbontás függõségõrzõ lenne, akkor egy tagjában kéne VUI -nek lennie, de az nem lenne valódi felbontás. = ennek nincs függõségõrzõ valódi felbontása, vagyis van olyan reláció, amit nem lehet függõségõrzõ módon BCNF-ekre szétszedni = felbontást BCNF-re nem feltétlenül lehet függõségõrzõ módon megcsinálni. Kellene egy gyengébb normálforma. Ebben lehet valamennyi redundancia, de legyen függõségõrzõ. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 6 / 21

3NF Definíció Az (R, F ) séma A attribútuma prím (elsõdleges), ha szerepel valamelyik kulcsban. Kulcs helyett szuperkulccsal nem lenne sok értelme az elõbbi definíciónak, mert szuperkulcsban minden szerepel,. Definíció Az (R, F ) séma 3NF (harmadik normálformájú), ha tetszõleges nemtriviális X A F + függés esetén vagy X szuperkulcs vagy A prímattribútum. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 7 / 21

BCNF vs. 3NF A definíció következménye: Minden BCNF séma egyben 3NF is. 3NF lehet redundáns, de nem nagyon. BCNF 3NF Irányítószámos példa Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 8 / 21

Felbontás 3NF-re Tétel Tetszõleges (R, F ) sémának van hûséges és függõségõrzõ felbontása 3NF sémákra. Mindjárt látjuk, de előbb kell egy új fogalom: Definíció A G függéshalmaz az F függéshalmaz fedése ha G + = F +.(Persze ilyenkor F is fedése G-nek.) Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 9 / 21

Minimális fedés Definíció A G függéshalmaz az F függéshalmaz minimális fedése, ha egyrészt fedése, másrészt (1) a G-beli függések X A alakúak, ahol A / X (A egy darab attribútum) (2) G-bõl nem hagyható el függés: (G \ {X A}) + G + (3) G-beli függések baloldalai minimálisak: X A G, Y X = Y A / G + Álĺıtás Tetszõleges F -nek van minimális fedése. Bizonyítás majd lesz mindjárt, de inkább lássuk most a főtétel bizonyítását. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 10 / 21

Van jó felbontás 3NF-ekre (bizonyítás) Vegyük F egy minimális fedését: G = {X 1 A 1,..., X k A k } Legyen X egy kulcs és tekintsük a ρ = (X, X 1 A 1,..., X k A k ) = (R 0, R 1,..., R k ) felbontást. Álĺıtás: ez függõségõrzõ lesz, a tagok 3NF-ek és a felbontás hûséges. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 11 / 21

ρ függõségõrzõ F + = G + és minden G-beli X i A i függés benne lesz R i -ben (ott ellenõrizhetõ). Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 12 / 21

A tagok 3NF-ek ρ-ban R 0 3NF: R 0 -ban nincs nemtriviális függés, mert különben X nem lenne kulcs, csak szuperkulcs = R 0 még BCNF is, tehát 3NF is Többi R i is 3NF: tegyük fel, hogy nem az, ekkor U B nemtriviális függés R i -ben, hogy U nem szuperkulcs R i -ben és B nem prímattribútum R i -ben (de U és B is R i -ben van). Ha B = A i, akkor U X i, de U X i, (mert különben U szuperkulcs lenne R i -ben) és így X i A i baloldala csökkenthetõ lenne G-ben U-ra. Ellentmondás, mert akkor G nem volt minimális fedés. Ha B A i = B X i és B nem prím R i -ben = X i nem kulcs R i -ben (de szuperkulcs) = Y X i kulcs R i -ben = Y A i fennáll = X i A i baloldala csökkenthetõ G-ben Y -ra, megint csak ellentmondás. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 13 / 21

ρ hûséges: Higgyük el, nem bizonyítjuk. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 14 / 21

Megjegyzések Elõfordulhat, hogy valamelyik X i A i már tartalmaz kulcsot. Ilyenkor a ρ = {X 1 A 1,..., X k A k } is jó felbontás már. 2NF már nem érdekes, 1NF kicsit érdekes, de nem foglalkozunk vele. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 15 / 21

Minimális fedés Definíció A G függéshalmaz az F függéshalmaz minimális fedése, ha egyrészt fedése, másrészt (1) a G-beli függések X A alakúak, ahol A / X (A egy darab attribútum) (2) G-bõl nem hagyható el függés: (G \ {X A}) + G + (3) G-beli függések baloldalai minimálisak: X A G, Y X = Y A / G + Álĺıtás Tetszõleges F -nek van minimális fedése. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 16 / 21

Minimális fedés készítése F -hez Bizonyítás: Algoritmust adunk, külön gondoskodunk minden pont teljesítésérõl. (1) X Y G, Y = A 1... A k = minden X A i -t beveszünk, ha A i X. (2) Minden X A G függésre kiszámoljuk Y := X + (G \ {X A})-t. Ha A Y, akkor X A elhagyható (mert kijön a többiből), különben nem. (3) Ellenõrizni kell, hogy X A baloldala minimális-e. X minden B elemére kiszámoljuky := (X \ {B}) + (G)-t. Ha A Y, akkor X A helyett vegyük be X \ {B} A-t. Ha egyik B-re se lesz ilyen, akkor X minimális. Megjegyzés: És persze a fenti három lépés során a függéshalmaz lezártja nem változik. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 17 / 21

Példa minimális fedés kiszámolására R = (A, B, C, D) F = {AB CD; AC BD; C A; C B} (1) F = {AB C; AB D; AC B; AC D; C A; C B} (2) C B miatt AC B elhagyható és AB C és AC D miatt AB D elhagyható, de más nem, ezt végig lehet nézni. F = {AB C; AC D; C A; C B} (3) C A miatt AC D baloldaláról A elhagyható. F = {AB C; C D; C A; C B} Ez már minimális fedés. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 18 / 21

A minimális fedés nem feltétlenül egyértelmû! Példa: R(A, B, C) F = {AB C; A B; B A} esetén jó minimális fedés lesz G 1 = {B C; A B; B A} és G 2 = {A C; A B; B A} is. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 19 / 21

Példa 3NF-re bontásra R = (A, B, C, D, E) F = {AE BC; AC D; CD BE; D E} Ez nem 3NF, mert a kulcsok: semelyik egyelemû halmaz nem kulcs (csak D lehetne, de az õ lezártja csak DE), viszont kételemûek közül szuperkulcs lesz AC, AD, AE (A-nak benne kell lennie minden kulcsban, mert A nincs jobboldalon), AB viszont nem szuperkulcs. Ezek kulcsok is lesznek, mert egyik egyelemû se volt kulcs. Más kulcs nincs is, mert ha lenne legalább háromelemû halmaz, aminek a lezártja az egész, akkor abban A biztos benne van és legalább C vagy D vagy E is benne van, de akkor az már csak szuperkulcs lehet, mert tartalmaz kulcsot. Innen látszik, hogy a prímattribútumok: A, C, D, E, vagyis B nem az. Tehát a CD B függés rossz a 3NF szempontjából, mert CD nem szuperkulcs és B nem prím, szóval valamit kell Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 20 / 21

Példa tovább Csináljunk hát egy 3NF-ekre való függõségõrzõ, hûséges felbontást. (1) F = {AE B; AE C; AC D; CD B; CD E; D E} (2) AE C, AC D, CD B miatt AE B elhagyható és D E miatt CD E is elhagyható, de más nem, ezt végig lehet nézni F = {AE C; AC D; CD B; D E} (3) Semelyik baloldal nem csökkenthetõ, mert például A lezártjában nincsen benne E, és a többi is ugyanígy látszik. Vagyis F már minimális fedés. A minimális fedés alapján a jó felbontás: (AEC, ACD, CDB, DE) mivel kulcsot nem is kellett hozzávennünk, mert az már benne van az egyik tagban (pl. AE az elsõben). Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 21 / 21