III. Témakör: Relációs adatbázisok tervezése

_______________________________________________________
12. gyak. (XII.11)
 - Tervezés, függőségek, normálformák

Segédanyagok:
> Kiss Attila  2007.őszi félév Adatbázis-kezelés előadások
           Relációs adatbázisok függőségeken alapuló tervezése  (.ppt /jelszóval)

Ebből: főbb fogalmak és algoritmusok oldalon példák
funkcionális függőség (ff), kulcs
Armstrong axiómák
attribútumhalmaz lezártja
def. 4.o.
def. 8.o.
alg.20.o
pl. 5.o.
pl.12.o.
pl.23.o.
veszteségmentes (VM) dekompozíció
veszteségmentesség ellenőrzése: chase
def.24.o.
alg.27.o.
 
pl.31,33
függőségek vetülete
függőségőrző (FŐ) dekompozíció
függőségőrzés ellenőrzése
def.38.o.
def.39.o.
alg.41.o.
 

pl.42.o.
BCNF (Boyce-Codd normálforma) def.44.o.
VM BCNF dekomp. naív algoritmus
VM BCNF dekomp. hatékony alg.
 
alg.52.o.
pl.49.o.
pl.53,54
3NF (harmadik normálforma) def.56.o.  
minimális fedés
minimális fedés keresése, mohó alg.
VM FŐ 3NF dekomp. algoritmus
def.59.o.
alg.61.o.
alg.66.o.
 
pl.62.o.
pl.71.o.

Feladat_típusok a gyakorlatra
Adott X-attr.hz, F-ff.hz. Attr.hz.lezártjának kiszámítása.
Adott R-rel.séma, F-ff.hz. Kulcsok meghatározása.
Adott R, F és d-dekomp. Chase alg.VM eldöntésére.
Adott R, F és d-dekomp. FŐ eldöntésére algoritmus.
Adott R-rel.séma, F-ff.hz. BCNF-e? (definíció alapján)
Adott R-rel.séma, F-ff.hz. Naív alg. VM BCNF dekomp.
Adott R-rel.séma, F-ff.hz. Hatékony alg. VM BCNF dekomp.
Adott R-rel.séma, F-ff.hz. 3NF-e? (definíció alapján)
Adott R-rel.séma, F-ff.hz. Minimális fedés keresése.
Adott R-rel.séma, F-ff.hz. VM FŐ 3NF dekomp.alg..

Gyakorló feladatok
1.) Adott R relációs séma és F funkcionális függőségek halmaza.
     Attribútum halmaz lezártjának kiszámolására tanult algoritmus
     felhasználásával határozza meg az adott séma kulcsait, és azt,
     hogy BCNF-ben vagy 3NF-ben van-e?

a.) Cím(Város, Utcahsz, Irányítószám) röviden R(V, U, I), és
     a séma feletti funkcionális függőségek F = {I → V, VU → I}.

b.) Adott SzallításiInformáció(SzallAzon, SzallNev, SzallCim,
               AruKod, TermekNev, MeEgys, Ar) reláció séma,
     amit így is rövidithetünk R(S, N, C, K, T, M, A), és
     a séma feletti funkcionális függőségek:
     SzallAzon→{SzallNev, SzallCim},
     AruKod→{TermekNev, MeEgys},
    {SzallAzon, AruKod}→ Ar,
     vagyis a röviden F = {S → NC,  K → TM,  SK → A}.

c.)  Tekintsük egy befektetési cég adatbázisát, melynek attribútumai
      B (bróker), I (a bróker irodája), U (befektető ügyfél), R (részvény),
      M (a befektető tulajdonában levő részvény mennyisége),
      O (a részvény osztaléka). Érvényes funkcionális függőségek:
      F = {B → I,  U → B,  UR → M,  R → O}.      

2.) Adott R, F és d dekompozíció. Chase algoritmussal döntsük el,
     hogy veszteségmentes-e illetve függőségőrző-e a dekompozíció.

a.) Az 1a. feladat R sémáját szétvágjuk IU, VU sémákra.
b.) Az 1b. feladat R sémáját szétvágjuk SNC, KTMA sémákra.
c.) Az 1c. feladat R sémáját szétvágjuk a BI, BU, URM és RO sémákra.

3.) Az 1.feladatban adott R, F esetén adjuk meg az R veszteségmentes
     összekapcsolású felbontását BCNF sémákra (hatékony algoritmus).
     Bontsuk fel R-t függőségőrzően és veszteségmentesen 3NF sémákra.