Vaje: kompleksnejša normalizacija
Normalizacija
Imejmo (v Sloveniji skoraj vsako leto aktualno) relacijo Volitve z atributi
ImeStranke, DatumVolitev, ImePredsednikaStranke, VolilniRezultatStranke, ŠteviloPoslancevStranke, ŠifraStranke,
kjer veljajo naslednje funkcionalne odvisnosti:
ImeStranke, DatumVolitev → ImePredsednikaStranke,
ImeStranke, DatumVolitev → VolilniRezultatStranke
ImeStranke, DatumVolitev → ŠteviloPoslancevStranke
ImeStranke, DatumVolitev → ŠifraStranke
ŠifraStranke → ImeStranke
a) Poiščite vse ključe in preverite, v kateri normalni obliki se nahaja relacija Volitve (2. NO, 3. NO, BCNO).
b) Normalizirajte relacijo v Boyce-Coddovo normalno obliko. Ali se ohranijo vse odvisnosti?
c) Narišite entitetno-relacijsko shemo dobljenih normalnih relacij s Power Designerjem.
d) V jeziku SQL napišite ukaze za kreiranje tabel, ki implementirajo BCNO normalno obliko relacije Volitve. Implementirajte tako primarne (PRIMARY KEY), kot alternativne (UNIQUE) in tuje ključe (FOREIGN KEY). Pri tem uporabite naslednje tipe atributov:
ImeStranke VARCHAR(100),
DatumVolitev DATE,
ImePredsednikaStranke VARCHAR(100),
VolilniRezultatStranke FLOAT,
ŠteviloPoslancevStranke INTEGER,
ŠifraStranke CHAR(3).
Pri reševanju naloge (d) si lahko pomagate s Power Designerjevim generatorjem SQL kode, venar dobljene kode ne uporabite slepo, ampak samo kot pomoč pri ročnem generiranju.