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

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

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

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

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

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

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

Csima Judit október 24.

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

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

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.

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

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

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

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

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

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

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

Csima Judit november 15.

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

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

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

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

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

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

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

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

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

Adatbázisok gyakorlat

13. Relációs adatmodell tervezése

T Adatbázisok-adatmodellezés

Magas szintű adatmodellek Egyed/kapcsolat modell I.

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

Relációs algebra 2.rész példák

Lekérdezések az SQL-ben 2.rész

SQL DDL-2 (aktív elemek) triggerek

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

Bevezetés: Relációs adatmodell

Lekérdezések az SQL-ben 1.rész

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

Adatbázis-kezelés. alapfogalmak

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

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

SQL DDL-1: táblák és megszorítások

Az adatbázisrendszerek világa

Adatbázis tartalmának módosítása

Tankönyv példák kidolgozása

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Bevezetés: az SQL-be

Adatbázisok-1 előadás

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

Magas szintő adatbázismodellek

Bevezetés: Relációs adatmodell

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda

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

Lekérdezések az SQL-ben 1.rész

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

ADATBÁZISOK, 2018 ősz

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, 2017 ősz

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

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

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

Két vagy több egyedtípus közötti jól meghatározott viszony. K onc epc ioná lis a datmodell (s éma )

Az egyed-kapcsolat modell (E/K)

Normálformák Normalizálás ADATBÁZISKEZELÉS ÉS KÖNYVTÁRI RENDSZERSZERVEZÉS 1 / 2

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

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

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

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Normalizálási feladatok megoldása

Adatbázis használat I. 1. gyakorlat

Példák átírásokra: Relációs algebrai kifejezések, a kiértékelı fák átírása SQL lekérdezésekre

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Informatika szigorlat 9-es tétel: Az adatbázis-kezelő rendszerek fogalmai

Adatbázisok gyakorlat

Adatmodellezés, adatbázis-tervezés

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

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

Chomsky-féle hierarchia

Relációs algebra 1.rész

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

Chomsky-féle hierarchia


Az SQL adatbázisnyelv: DML

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

Adatmodellezés. 1. Fogalmi modell

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

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

ADATBÁZISOK. Normalizálás

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Megoldások, megoldás ötletek (Jensen-egyenlőtlenség)

7. Előadás tartalma A relációs adatmodell

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

Adatbázisok. 1. gyakorlat. Adatmodellezés október október 1. Adatbázisok 1 / 42

A relációs adatmodell

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

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

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

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

A valós számok halmaza

Átírás:

Relációs adatbázisok tervezése 2.rész (dekompozíció) Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 3.3. Relációs adatbázissémák tervezése, relációk felbontása 3.4. Dekompozíciótulajdonságai, veszteségmentes felbontás, függőségőrző felbontás. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Funkcionális függıségek Definíció.Legyen R(U) egy relációséma, továbbá X és Y az U attribútumhalmazrészhalmazai. X-től funkcionálisan függy (jelölésben X Y), ha bármely R feletti T tábla esetén valahányszor két sor megegyezik X-en, akkor megegyezik Y-on is t1,t2 T esetén (t1[x]=t2[x] t1[y]=t2[y]). Ez lényegében azt jelenti, hogy az X-beli attribútumok értéke egyértelműen meghatározza az Y-beli attribútumok értékét. Jelölés: R = X Y vagyis R kielégíti X Y függőséget 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

Armstrong-axiómák Legyen X,Y R, és XY jelentse az X és Y attribútumhalmazok egyesítését. F legyen funkcionális függőségek tetsz.hz. Armstrong axiómák: FD1 (reflexivitás): Y X esetén X Y. FD2 (bővíthetőség): X Y és tetszőleges Z esetén XZ YZ. FD3 (tranzitivitás): X Y és Y Z esetén X Z. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Levezetés fogalma F implikálja X Y-t,ha minden olyan táblában, amelyben F összes függősége teljesül, X Y is teljesül. Jelölés: F = X Y, ha F implikálja X Y et. X Ylevezethető F-ből, ha van olyan X 1 Y 1,..., X k Y k,..., X Yvéges levezetés, hogy k-ra X k Y k F vagy X k Y k az FD1,FD2,FD3 axiómák alapján kapható a levezetésben előtte szereplő függőségekből Jelölés: F X Y, ha X Y levezethető F-ből 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Armstrong-axiómarendszer Tétel: Az Armstrong-axiómarendszer helyes és teljes, azaz minden levezethető függőség implikálódik is, illetve azok a függőségek, amelyeket F implikál le is vezethetők F-ből. F X Y F = X Y 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Attribútumhalmaz lezártja Adott Rséma és Ffunkcionális függőségek halmaza mellett, X R, X lezártja X + az összes olyan A attribútum halmaza, amire X->A következik F-ből. Definíció: X +(F) :={A F X A}az X attribútumhalmaz lezárása F-re nézve. LEMMA:F X Y Y X +. Ez az implikációs probléma megoldása! 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Algoritmus X + attr.hz lezártja Input: X attr.hz., F funk.függőségek hz. Output: X + (típusa: attribútumhalmaz) Algoritmus X + kiszámítására: /* Iteráció, amíg X(n) változik */ X(0):=X X(n+1):= X(n) {A W Z F, A Z, W X(n)} Ha X(v+1)=X(v), akkor Output: X(v)=X +. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Relációs sémák tervezése Cél: az anomáliák és a redundancia megszüntetése. Módosítási anomália: egy adat egy előfordulását megváltoztatjuk, más előfordulásait azonban nem. Törlési anomália: törléskor olyan adatot is elveszítünk, amit nem szeretnénk. Beillesztési anomália: megszorítás, triggerkell, hogy ellenőrizni tudjuk (pl. a kulcsfüggőséget) REDUNDANCIA (többszörözés feleslegesen) 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Példa: rosszul tervezett séma Sörivó(név, cím, kedveltsörök, gyártó, kedvencsör) név cím kedveltsörök gyártó kedvencs Janeway Voyager Bud A.B. WickedAle Janeway??? WickedAle Pete s??? Spock Enterprise Bud??? Bud Redundáns adat, a???helyén a név-> címkedvencsörés kedveltsörök-> gyártó FF-ek felhasználásával tudjuk, mi szerepel. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

A rosszul tervezettség anomáliákat is eredményez Sörivó(név, cím, kedveltsörök, gyártó, kedvencsör) név cím kedveltsörök gyártó kedvencs Janeway Voyager Bud A.B. WickedAle Janeway??? WickedAle Pete s??? Spock Enterprise Bud??? Bud Módosítási anomália: ha Janeway-t Karcsira módoítjuk, megtesszük-e ezt minden sornál? Törlési anomális: Ha senki sem szereti abudsört, azt sem tudjuk, ki gyártotta. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Dekomponálás A fenti problémáktól dekomponálással (felbontással) tudunk megszabadulni! Definíció: d={r 1,...,R k }az (R,F) dekompozíciója, ha nem marad ki attribútum, azaz R 1... R k =R. (Az adattábla felbontását projekcióval végezzük). Például: R=ABCDE, d={ad,bce,abe} 3 tagú dekompozíció, ahol R 1 =AD, R 2 =BCE, R 3 =ABE, 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Dekomponálás Elvárások (Mikor használható?) (1) Anomáliák kiküszöbölése. A vetületek legyenek egyszerűek, jó tulajdonságúak (normálformák: BCNF, 3NF) (2) Információ-visszaállíthatóság, vagyis ne legyen információvesztés, veszteségmentes felbontások (3) Függőségek megőrzése a vetületekben 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Veszteségmentes szétvágás I. A fenti jelölésekkel: ha r = Π R1 (r) Π Rk (r) teljesül, akkor az előbbi összekapcsolásra azt mondjuk, hogy veszteségmentes. Itt r egy R sémájú relációt jelöl. Megj.: könnyen látható, hogy r Π R1 (r) Π Rk (r) mindig teljesül. (Miért?) R R 1 R 2 A B C A B a b c a b d e f d e c b c c b B C b c e f 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

Példa A szétvágás után keletkező relációk összekapcsolása nem veszteségmentes: R R 1 R 2 A B C A B a b c a b c b e c b B C b c b e 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Chase-teszt veszteségmentességhez ---1 Példa: adott R(A, B, C, D), F = { A B, B C, CD A } és az R 1 (A, D), R 2 (A, C), R 3 (B, C, D) felbontás. Kérdés veszteségmentes-e a felbontás? Vegyük R 1 R 2 R 3 egy t = (a, b, c, d) sorát. Bizonyítani kell, hogy t R egy sora. A következő tablót készítjük: A B C D a b 1 c 1 d a b 2 c d 2 a 3 b c d Itt pl. az (a, b 1, c 1, d) sor azt jelzi, hogy R-nek van olyan sora, aminek R 1 -re való levetítése (a, d), ám ennek a B és C attribútumokhoz tartozó értéke ismeretlen, így egyáltalán nem biztos, hogy a t sorról van szó. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

Chase-teszt veszteségmentességhez ---2 Az F-beli függőségeket használva egyenlővé tesszük azokat a szimbólumokat, amelyeknek ugyanazoknak kell lennie, hogy valamelyik függőség ne sérüljön. Ha a két egyenlővé teendő szimbólum közül az egyik index nélküli, akkor a másik is ezt az értéket kapja. Két indexes szimbólum esetén a kisebbik indexű értéket kapja meg a másik. A szimbólumok minden előfordulását helyettesíteni kell az új értékkel. Az algoritmus véget ér, ha valamelyik sor t-vel lesz egyenlő, vagy több szimbólumot már nem tudunk egyenlővé tenni. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

Chase-teszt veszteségmentességhez ---3 A B C D a b 1 c 1 d A B A B C D a b 1 c 1 d B C a b 2 c d 2 a b 1 c d 2 a 3 b c d a 3 b c d A B C D a b 1 c d a b 1 c d 2 CD A A B C D a b 1 c d a b 1 c d 2 a 3 b c d a b c d 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

Chase-teszt veszteségmentességhez ---5 Ha t szerepel a tablóban, akkor valóban R-nek egy sora, s mivel t-t tetszőlegesen választottuk, ezért a felbontás veszteségmentes. Ha nem kapjuk meg t-t, akkor viszont a felbontás nem veszteségmentes. Példa: R(A, B, C, D), F = { B AD }, felbontás: R 1 (A, B), R 2 (B, C), R 3 (C, D). A B C D B AD A B C D a a b c 1 d 1 a b c 1 d 1 a 2 b c d 2 a 3 b 3 c d a b c d 1 a 3 b 3 c d Itt az eredmény jó ellenpélda, hiszen az összekapcsolásban szerepel t = (a, b, c, d), míg az eredeti relációban nem. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

Függıségek megırzése A dekompozíciókban érvényes függőségekből következzen az eredeti sémára kirótt összes függőség. Milyen függőségek lesznek érvényesek a dekompozíció sémáiban? Példa: R=ABC, F= {A B, B C, C A} vajon a d= (AB, BC) felbontás megőrzi-e a C A függőséget? (függőségek vetülete, definíció a következő lapon) 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19

Függıségek megırzése Definíció: Függőségek vetülete: Adott (R,F), és R i Resetén: Π Ri (F):={ X Y F X Y, XY R i } Definíció: Adott (R,F)esetén d=(r 1,...,R k ) függőségőrző dekompozícióakkor és csak akkor, ha minden F-beli függőség levezethető a vetületi függőségekből: minden X Y F esetén Π R1 (F)... Π Rk (F) X Y 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 20

Példa: függıségek vetülete ABC,A->B ésb->cff-kel. Projektáljunk AC-re. A + =ABC; ebbőla->b, A->C. Nem kell kiszámítaniab + ésac + lezárásokat. B + =BC; ebbőlb->c. C + =C ; semmit nem ad. BC + =BC ; semmit nem ad. A kapott FF-ek: A->B, A->CésB->C. AC-reprojekció: A->C. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 21

Függıségek megırzése A függőségőrzésből nem következik a veszteségmentesség: R=ABCD, F= {A B,C D}, d={ab,cd} függőségőrző, de nem veszteségmentes. A veszteségmentességből nem következik a függőségőrzés: R=ABC, F= {AB C,C A}, d={ac,bc} veszteségmentes, de nem függőségőrző. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 22

Függıségek kikényszerítése Bizonyos FF halmazok esetén a felbontáskor elveszíthetünk függőségeket. Legyen ABC. AB->C ésc->b. Példa: A= utca, B= város, C= irányítószám. Két kulcs van:{a,b}és{a,c}/nem BCNF/ A probléma az, hogyacés BC sémákkalés semmilyen más felbontással nem tudjuk kikényszeríteni az AB->C függőséget. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 23

Egy kikényszeríthetetlen FF utca iszám 545 Tech Sq.02138 545 Tech Sq.02139 város iszám Cambridge 02138 Cambridge 02139 Kapcsoljuk össze a sorokat (iszám). street city zip 545 Tech Sq. Cambridge 02138 545 Tech Sq. Cambridge 02139 A szétbontott relációkban egyik FF sem sérül, az eredményben az utca város-> iszám nem teljesül. 11B_RelTerv2VM // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 24