120 likes | 190 Views
Aloitetaan normalisoimattomasta raakadatasta. 1 NF syntyy, kun täydennetään tyhjät sarakkeet. Perusavainehdokkaita olisi vaikkapa: huNro, taPvm hloNro, taPvm, taAika aRek, taPvm, taAika Valitaan huNro, taPvm .. ja siirretään nämä sarakkeet vasempaan kulmaan:.
E N D
Perusavainehdokkaita olisi vaikkapa: huNro, taPvm hloNro, taPvm, taAika aRek, taPvm, taAika • Valitaan huNro, taPvm • .. ja siirretään nämä sarakkeet vasempaan kulmaan: tMyn
Perusavain fd1 Transitiivinen riippuvuus fd3 fd2 Osittainen riippuvuus fd4 fd5 Kandidaattiavain fd6 Kandidaattiavain Funktionaaliset riippuvuudet 1 NF -taulussa tMyn
Jotta päästään 2 NF –esitysmuotoon, niin poistetaan osittaiset riippuvuudet, tässä tapauksessa siis: fd2: huNro -> osoite • Periaatteena osittaisen riippuvuuden poistamisessa on:” otetaan ei-perusavainsarakkeet pois yhdessä sen osuuden kanssa perusavaimesta, jonka (joiden) suhteen nämä ei-perusavainsarakkeet ovat täydellisesti riippuvaisia.” • Siis luodaan kaksi taulua Huoneisto(huNro, osoite) huoTarkastus(huNro, taPvm, taAika, kommentit, hloNro, hNimi, aRek) tMyn
huoTarkastus(huNro, taPvm, taAika, kommentit, hloNro, hNimi, aRek), 2 NF tMyn
Jotta päästään 3 NF –esitysmuotoon, niin poistetaan transitiiviset riippuvuudet, tässä tapauksessa siis taulussa huoTarkastus: fd3: hloNro -> hNimi • Taulussa Huoneisto ei ole transitiivisia riippuvuussuhteita. • Nyt taulut ovat siis Huoneisto(huNro, osoite) Henkilosto(hloNro, hNimi) huoTarkastus(huNro, taPvm, taAika, kommentit, hloNro, aRek) tMyn
huoTarkastus(huNro, taPvm, taAika, kommentit, hloNro, aRek), 3 NF tMyn