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 ---2

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

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

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

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

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

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

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.

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

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

Csima Judit október 24.

Csima Judit november 15.

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

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

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

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

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

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

Az egyed-kapcsolat modell (E/K)

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

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

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

Adatbázis-kezelés. alapfogalmak

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

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

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

SQL DDL-2 (aktív elemek) triggerek

Magas szintű adatmodellek Egyed/kapcsolat modell I.

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

T Adatbázisok-adatmodellezés

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

Adatbázisok gyakorlat

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

ADATBÁZISOK, 2018 ősz

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

ADATBÁZISOK, 2017 ősz

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

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

Az SQL adatbázisnyelv: DML

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

Bevezetés: az SQL-be

Bevezetés: Relációs adatmodell

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

Az adatbázisrendszerek világa

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

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

13. Relációs adatmodell tervezése

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

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

Magas szintő adatbázismodellek

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

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

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

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

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

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

Adatbázisok gyakorlat

Bevezetés: Relációs adatmodell

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

A relációs adatmodell

Adatbázisok-1 előadás

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

Adatbázis használat I. 1. gyakorlat

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

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

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

Tankönyv példák kidolgozása

Adatbázis, adatbázis-kezelő

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

Normalizálási feladatok megoldása

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

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

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

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

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

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

Adatmodellezés. 1. Fogalmi modell

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


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

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

Adatbázis rendszerek I

Lekérdezések optimalizálása

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

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

ADATBÁZIS-KEZELÉS. 1. Alapfogalmak

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

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

a nyers adatokat relációs formátumúvá alakítja felkutatja és feloldja az adatelem meghatározásokban az esetleges pontatlanságot/bizonytalanságot

Adatbázis rendszerek. 5. előadás Adatbázis tervezés. Koppányi Zoltán

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

!"#$ %#"&$' ' &&#""" $!&!"#$&" &""!"#$%&' ()*+,-./0!"#$$( #!"#$%&' #! #! ) #! #! ) #! ) $ # 1 234)!$""$#! :; 34)!$""$#$ 1 <34)!$""# =>! #

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

A TANTÁRGY ADATLAPJA

Chomsky-féle hierarchia

Redukciós műveletek. Projekció (vetítés): oszlopok kiválasztása. Jelölés: attribútumlista (tábla) Példa: Könyv

Adatbázis rendszerek. 5. előadás Adatbázis tervezés. Koppányi Zoltán

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

Átírás:

Relációs adatbázisok tervezése 2.rész (dekompozíció) Ullman-Widom: Adatbázisrendszerek Alapvetés. Második, átdolgozott kiadás, Panem Kiadó, 2009 3.3. Relációs adatbázissémák tervezése - Anomáliák, relációk felbontása 3.4. Dekompozíció tulajdonságai - Veszteségmentes, függıségırzı (Jeffrey D. Ullman 2007 elıadásdiái alapján, Benczúr András, Kiss Attila és Kósa Balázs elıadásainak felhasználásával, Hajas Csilla) 1

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, trigger kell, hogy ellenırizni tudjuk (pl. a kulcsfüggıséget) REDUNDANCIA (többszörözés feleslegesen) 2

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ím kedvencsör és kedveltsörök -> gyártó FF-ek felhasználásával tudjuk, mi szerepel. 3

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 a Bud sört, azt sem tudjuk, ki gyártotta. 4

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, 5

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 6

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 b e C c f

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 b b C c e

Chase-teszt veszteségmentességhez I. 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ó.

Chase-teszt veszteségmentességhez II. 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.

Chase-teszt veszteségmentességhez III. 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 CD A A B C D a b 1 c d a b 1 c d 2 a b 1 c d 2 a 3 b c d a b c d

Chase-teszt veszteségmentességhez IV. 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 }, a 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 b c 1 d 1 a 2 b c d 2 a 3 b 3 c d a b c 1 d 1 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.

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) 13

Függıségek megırzése Definíció: Függıségek vetülete: Adott (R,F), és R i R esetén: Π Ri (F):={ X Y F X Y, XY R i } Definíció: Adott (R,F) esetén d=(r 1,...,R k ) 1 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 14

Példa: függıségek vetülete ABC, A ->B és B ->C FF-kel. Projektáljunk AC-re. A + =ABC ; ebbıl A ->B, A ->C. Nem kell kiszámítani AB + és AC + lezárásokat. B + =BC ; ebbıl B ->C. C + =C ; semmit nem ad. BC + =BC ; semmit nem ad. A kapott FF-ek: A ->B, A ->C és B ->C. AC -re projekció: A ->C. 15

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ı. 16

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 és C ->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, hogy AC és BC sémákkal és semmilyen más felbontással nem tudjuk kikényszeríteni az AB ->C függıséget. 17

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. 18