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

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

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

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

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

Csima Judit október 24.

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ázisok elmélete 12. előadás

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

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

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

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

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-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. Adatbázisrendszerek előadás november 3.

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

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

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

Adatbázisok gyakorlat

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

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

13. Relációs adatmodell tervezése

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

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

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

T Adatbázisok-adatmodellezés

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Csima Judit november 15.

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

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

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

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

Az egyed-kapcsolat modell (E/K)

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

A relációs adatmodell

Normalizálási feladatok megoldása

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

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

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

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

Bevezetés: Relációs adatmodell

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

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

ADATBÁZISOK, 2018 ősz

ADATBÁZISOK, 2017 ősz

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

Lekérdezések optimalizálása

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

SQL DDL-2 (aktív elemek) triggerek

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

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

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

Chomsky-féle hierarchia

Az SQL adatbázisnyelv: DML


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

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

Bevezetés: az SQL-be

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ázis használat I. 1. gyakorlat

Adatbázisok gyakorlat

Bevezetés: Relációs adatmodell

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

XML ÉS FÉLIG-STRUKTURÁLT ADATBÁZISOK FÜGGŐSÉGEI

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

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

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

Magas szintő adatbázismodellek

Chomsky-féle hierarchia

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

RELÁCIÓS ADATBÁZISOK FUNKCIONÁLIS FÜGGŽSÉGI RENDSZEREINEK GRAFIKUS AXIOMATIZÁCIÓJA Bevezetés

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

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

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

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

Az adatbázisrendszerek világa

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

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

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

ADATBÁZISOK. Normalizálás

Adatmodellezés. 1. Fogalmi modell

Adatbázis, adatbázis-kezelő

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

Adatbázisok. 3. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 21.

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

ADATBÁZIS-KEZELÉS. 1. Alapfogalmak

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ázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázisok-1 előadás

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

Adatbázisok. 4. gyakorlat. Adatmodellezés: E-K modellb l relációs adatbázisséma. Kötelez programok kiválasztása szeptember 24.

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

TAJ. foglalkozás. gyógyszer

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

ADATBÁZISOK E-K MODELLBŐL RELÁCIÓS MODELL. Debrenti Attila

Á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

Funkcionális függıségek Definíció. Legyen R(U) egy relációséma, továbbá X és Y az U attribútumhalmaz részhalmazai. X-tıl funkcionálisan függ Y (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 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. 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 Y levezethetı F-bıl, ha van olyan X 1 Y 1,..., X k Y k,..., X Y vé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 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 5

Attribútumhz lezártja Adott R séma és F funkcioná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! 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 +. 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, trigger kell, hogy ellenırizni tudjuk (pl. a kulcsfüggıséget) REDUNDANCIA (többszörözés feleslegesen) 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ím kedvencsör és kedveltsörök -> gyártó FF-ek felhasználásával tudjuk, mi szerepel. 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 a Bud sört, azt sem tudjuk, ki gyártotta. 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, 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 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 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) 19

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 20

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. 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ı. 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 é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. 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. 24