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

Hasonló dokumentumok
Adatbázisok gyakorlat

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

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

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

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.

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

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

Csima Judit október 24.

Csima Judit november 15.

Adatbázisok. 3. gyakorlat. Adatmodellezés: E-K modell szeptember szeptember 17. Adatbázisok 1 / 11

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.

Normalizálási feladatok megoldása

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

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

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

ADATBÁZISOK. Normalizálás

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

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

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

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

Adatbázis-kezelés. alapfogalmak

T Adatbázisok-adatmodellezés

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

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

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

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

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

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

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

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

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

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

Adatbázis használat I. 1. gyakorlat

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

Adatbázisok gyakorlat

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

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

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

Kidolgozott példák. E-K diagram. Tánc egyednek csak egyetlen attribútuma van. Most a megoldás úgy is helyes lenne,


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

Adatmodellezés. 1. Fogalmi modell

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

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

Több felhasználó párhuzamosan olvashatja, bővítheti, módosíthatja és törölheti az adatokat Az adatok konzisztenciájának és biztonságának biztosítása

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

A relációs adatmodell

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

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

Adatmodellezés, alapfogalmak. Vassányi István

Mezők viszonya a relációs adatbázis tábláiban

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

Adatbáziskezelés 1 / 12

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

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

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

13. Relációs adatmodell tervezése

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

ADATMODELLEZÉS. Az egyed-kapcsolat modell

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

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

Magas szintű adatmodellek Egyed/kapcsolat modell I.

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ázis rendszerek 2. előadás. Relációs algebra

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

Adatbázis alapú rendszerek

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

Adatbázis, adatbázis-kezelő

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

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatmodellek. 2. rész

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

ADATBÁZIS-KEZELÉS Demetrovics Katalin

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

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

Adatbázis-kezelés - Relációs adatbázisok adatszerkezetének tervezése, megvalósítása

Adatba zis é s szoftvérféjlészté s (wéb-programoza s)

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

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Az adatbázis-kezelés alapjai

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

ADATBÁZISOK, 2018 ősz

Gazdasági informatika II (SZIE GTK GVAM 1. évfolyam) 2009/2010. tanév 2. félév

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

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Az egyed-kapcsolat modell (E/K)

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

ADATBÁZIS RENDSZEREK. Adatbázis tervezés. Krausz Nikol, Medve András, Molnár Bence

Adatbázis rendszerek Definíciók: 5.3. Az adatbázis létrehozásának fő fázisai:

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

Adatbázisok. Követelmények. Előadó honlapjá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:

ADATBÁZISOK, 2017 ősz

Adatbázis rendszerek I

ADATBÁZIS-KEZELÉS. 1. Alapfogalmak

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

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

ADATBÁZISOK. 3. gyakorlat E-K modell

Átírás:

6. Gyakorlat Relációs adatbázis normalizálása Redundancia: Az E-K diagramok felírásánál vagy az átalakításnál elképzelhető, hogy nem az optimális megoldást írjuk fel. Ekkor az adat redundáns lehet. Példa: Ebből a következő relációsémát kaphatjuk: DIÁK(D.Azonosító, Név, Kar, Szak, Lakcím ) TANÍTJA(T.Azonosító, D.Azonosító, Kar, Szak, Tantárgy) vagy egyszerűbb is lehet DIÁK(D.Azonosító, Név, Kar, Szak, Lakcím, T.Azonosító, Tantárgy ) A Diák egyed esetében több attribútum alkotja a kulcsot, mivel elképzelhető, hogy egy diák több szakra is jár, valamint az sem kizárt, hogy különböző karoknak van azonos nevű szakja. Ilyen esetben a kar és szak redundáns adat lehet. Tegyük fel, hogy a tantárgyat mindig ugyanaz a tanár tanítja. Egy tanár több tantárgyat is taníthat. A redundáns adat legfőképpen az adatok módosításánál okozhat problémát. Indul egy új szak, és még nincs hallgató, aki jelentkezett volna oda. Ha a fenti sémát követjük, akkor nem tudunk felvenni az adatbázisba új szakot, amíg nem jelentkezett rá senki. Megszűnik egy szak, akkor minden hallgatót törölni kell a szak alapján. Megváltozik egy szak neve, minden hallgatónál meg kell változtatni, persze figyelni kell arra, hogy melyik karon van az a szak, és oda jár- e a hallgató. A redundanciát csökkenti az alábbi modell: Vegyünk egy Szak egyedet, amely rendelkezik külön azonosítóval, attribútumként tárolja azt is, hogy melyik karhoz tartozik. A Diák egyednek így kevesebb attribútuma lesz, csak a személyére vonatkozó információk lesznek az attribútumok. Bármikor felvehető egy szak, vagy módosítható a neve.

A relációséma lehet: DIÁK(D.Azonosító, Név, Lakcím, SZ.Azonosító) SZAK(SZ.Azonosító, Kar, Szak név) TANÍTJA(T.Azonosító, D.Azonosító, Tantárgy) Funkcionális függőség: Legyen R(A1,..., An) egy relációséma, P, Q {A1,..., An}. P funkcionálisan függ Q-tól (jelölés P Q), ha bármely R feletti T tábla esetében valahányszor két sor megegyezik P-n akkor megegyezik Q-n is, vagyis minden ti T és tj T esetén ti(p) = tj(p) ti(q) = tj(q) A P Q funkcionális függőség triviális, ha Q P. A P Q függést teljesen nem triviálisnak nevezzük, ha Q P =. Függőségek a fenti példában: f1: {D.Azonosító} {D.Név, D.Lakcím} f2: {SZ.Azonosító} {Szak név, Kar} de {D.Azonosító} {Szak} nem igaz, mert egy diák több szakra is járhat. Állítás: Egy K A attribútumhalmaz akkor és csak akkor szuperkulcs, ha K A. Definíció: Relációsémának nevezzük egy R(A, F) párt, ahol A = {A1,..., An}, F = {f1,..., fm} az A-n definiált funkcionális függések egy halmaza. Armstrong-axiómák: A1: Reflexivitás: Ha Y X, akkor X Y. A2: Bővítés: Ha X Y, akkor X Z Y Z. A3: Tranzitivitás: Ha X Y és Y Z, akkor X Z. Szétvágási szabály: ha X {B1,..., Bk} akkor X B1,..., X Bk Egyesítési szabály: ha X B1,..., X Bk akkor X {B1,..., Bk}

Definició: Az X attribútumhalmaz lezártja az F függőségi halmaz szerint X + ={Ai X Ai}, vagyis az összes X-től függő attribútumból áll, amelyekre az X Ai függőség F-ből levezethető. Algoritmus X + kiszámítására: Az X = X (0) X (1)... X (n) = X + halmazsorozatot képezzük. X (i) -ből X (i+1) előállítása: keressünk olyan F-beli P Q függőséget, amelyre P X (i), de Q már nem része X (i) -nek! Ha találunk ilyet, akkor X (i+1) := X (i) Q, ha nem akkor X (i) = X +. Példa: R = (Z, F), Z = {A, B, C, D, E} és F = { {C} {A}, {B} {C, D}, {D,E} {C} } Határozzuk meg a B + halmazt! X (0) = {B}, X (1) = {B} {C, D} = {B, C, D} X (2) = {B, C, D} {A, C, D} = {A, B, C, D} X (3) = X (2) Állítás: Egy K attribútumhalmaz akkor és csak akkor szuperkulcs, ha K + =A. Definíció: Az F függéshalmaz lezártja az összes F-ből levezethető függést tartalmazza. Jelölése: F +. Definíció: Az F + egy részhalmazát bázisnak nevezzük, ha belőle F valamennyi függése levezethető. Állítás: F + = {X Y Y X + }, vagyis F + pontosan azokból az X Y függésekből áll, amelyekre Y részhalmaza X + -nak. Algoritmus F + meghatározására: 1. Vegyük az A attribútumhalmaz összes részhalmazát. 2. Minden X részhalmazhoz állítsuk elő X + -t. 3. Valamennyi Y X + -ra az X Y függőséget felvesszük F + -ba. Felbontás (dekompozíció): Legyen R(A) egy relációséma, X,Y A, X Y = A. Ekkor az R(A) séma felbontása X, Y szerint R1(X), R2(Y). Táblákkal kifejezve: T1 = X(T) és T2 = Y(T). Definíció: Egy felbontás hűséges, ha bármely R feletti T tábla esetén T = T1 * T2. Tétel (Health tétele): Ha az R(A) sémánál A = B C D, ahol B, C, és D diszjunktak és C D, akkor az R1(B C), R2(C D) felbontás hűséges. Normalizálás: 2NF: Egy R = (A,F) relációséma 2NF-ben van, ha minden másodlagos attribútum teljesen függ bármely kulcstól. Következmény: Ha minden kulcs egyetlen attribútumból áll, akkor a séma 2NF-ben van. Ha a sémában nincs másodlagos attribútum, akkor a séma 2NF-ben van. 2NF-re hozás: Ha valamely K kulcsra L K és L B (B az összes L-től függő attribútum halmaza), akkor a sémát felbontjuk L B függőség szerint. Legyen C = A (L B), ekkor az R(A) sémát R1(C L) és R2(L B) sémákkal helyettesítjük.

Példa: KURZUS(kurzuskód, kurzusnév, szak_kód, szak, kar ) KURZUS(kurzuskód, kurzusnév, szak_kód) SZAK(szak_kód, szak, kar) 3NF: Egy R=(A,F) relációséma 3NF-ben van, ha minden másodlagos attribútuma közvetlenül függ bármely kulcstól. 3NF-re hozás: Ha valamely K kulcsra K Y B tranzitív függés fennáll, akkor a sémát felbontjuk az Y B függőség szerint (B az összes Y-tól függő másodlagos attribútumok halmaza). Legyen C = A - (Y B), ekkor az R(A) sémát az R1(C Y) és R2(Y B) sémákkal helyettesítjük. Boyce-Codd normálforma (BCNF): Egy R = (A,F) relációséma BCNF-ben van, ha bármely nemtriviális L B függés esetén L szuperkulcs. Állítás: Ha egy R=(A,F) BCNF-ben van, akkor 3NF-ben is van. BCNF-re hozás: Ha L B teljesen nemtriviális függés és L nem szuperkulcs, akkor a sémát felbontjuk az L B függőség szerint. Legyen C = A (L B), ekkor az R(A) sémát R1(C L) és R2(L B) sémákkal helyettesítjük. 4NF: Legyen K, L A és legyen M = A-(K L). Azt mondjuk, hogy K-tól többértékűen függ L (K L), Ha bármely R feletti T tábla esetén ha ti, tj sorokra ti(k)=tj(k), akkor van olyan sor, amelyre az alábbiak teljesülnek: t(k) = ti(k) = tj(k) t(l) = ti(l) t(m) = tj(m) A K L függés nemtriviális, ha K L= és K L A. Tétel (Fagin tétele): Az R(A) relációsémánál legyen A = B C D, ahol, B, C, D diszjuktak. R felbontása az R1(B C), R2(C D) sémákra akkor és csak akkor hűséges, ha C D fennáll. Definíció: Egy relációséma 4NF-ben van, ha minden nem triviális K L függés esetén K szuperkulcs. Ha egy relációséma 4NF-ben van, akkor BCNF-ben is van. 4NF-re hozás: dekompozíció a függőség szerint: ha K L, nemtriviális függés, és K nem szuperkulcs, akkor az R(A) sémát felbontjuk az R1(K L) és R2(K M) sémákra.

Feladatok: 1. Határozzuk meg a függőségeket az alábbi relációsémában! HALLGATÓ(eha, név, város, irányítószám, utca, házszám, szak, kar) 2. Hozzuk 1NF, 2NF, 3NF alakra: KÖLCSÖNZÉS(olvasójegy, név, lakcím, leltári szám, isbn, könyv címe, kölcsönzés dátuma, kölcsönzés sorszáma, visszahozta)