Luento 4 - ER-mallin muuntaminen relaatiotietokannaksi ja normalisointi

Esimerkkikaavio lainattu C.J.Daten kirjasta an introduction to database systems
Luennolla Accessilla luotu tietokanta (Zip-paketissa)
- Jokainen tavallinen kohde muutetaan relaatioksi
(tauluksi)
- employee
- project
- supplier
- department
- part
- dependent
- Jokainen ER-diagrammista löytyvä ominaisuus
lisätään siihen liittyvään relaatioon
- employee
- emp# (perusavain) = kokonaisluku, salary = desimaaliluku
- ename jaetaan erillisiin osakenttiinsä
- first = teksti, mi = teksti, last = teksti
- supplier
- s# (perusavain) = kokonaisluku, sname = teksti,
status = yes/no , city = teksti
- tauluille project, department, part ja dependent
keksittävä jokin perusavain jonka tyypiksi kokonaisluku.
- Jokainen Many-to-Many -suhde muutetaan tavalliseksi
relaatioksi.
- Määritellään relaatioon yhtä
monta viiteavainta (foreign key) kuin on suhteeseen liittyviä
kohteita
- määritellään perusavaimeksi
viiteavaimista tehty yhdistetty avain
- proj_work
- part_structure
- supp_part
- supp_part_proj
- lisätään relaatioon siihen liittyvät
muut kentät.
- Many-to-One -suhteet
- Ei luoda uusia relaatioita mutta lisätään
ennestään olevaan relaatioon uusi viiteavain
- project
- employee
- dependent
- Viite-eheysmäärittelyt
- Many-to-Many -suhteisiin DELETE RESTRICTED, UPDATE
CASCADES
- proj_work
- supp_part_proj
- part_structure
- supp_part
- Many-to-One -suhteet DELETE RESTRICTED, UPDATE
CASCADES
- heikoille kohdetyypeille (dependent) DELETE
CASCADES, UPDATE CASCADES
Normalisointi
- Pyritään
vähentämään tietojen ylimäärää
ja tästä aiheutuvia ongelmia tietojen lisäämisessä,
poistamisessa ja päivityksessä.
- Lisätään
rakenteiden selkeyttä, yhtenäisyyttä ja laajennettavuutta
- Normaalimuotoja on
viisi varsinaista ja Boyce-Coddin normaalimuoto
- Käytännössä
vain kolme ensimmäista normaalimuotoa ovat merkityksellisiä
- Normaalimuodot suosivat
ympäristöjä, joissa tietoja päivitetään
usein.
- Hakeminen vaatii enemmän
tehoa kuin normalisoimattomassa ratkaisussa koska tiedot joudutaan
hakemaan useammasta relaatiosta
- Normaalimuodot syntyvät
suht automaattisesti ainakin jos noudatetaan seuraavia sääntöjä:
- Kohteen yhteyteen talletetaan
vain kohteeseen välittömästi liittyviä tietoja
- Kunkin tiedon päivitys
tapahtuu vain yhteen paikkaan
- Ensimmäinen normaalimuoto
(1NM)
- Relaatio on ensimmäisessä
normaalimuodossa (1NM), jos sen jokaisen attribuutin arvojoukko
koostuu vain atomisista arvoista.
- Mallitaulun viat:
- riveillä eri määrä
tietoja. Sotii vastaan relaatiomallin periaatteita.
- tuotteiden myyntimäärät
eivät ole avaimesta (myyjä) riippuvaisia.

- Toinen normaalimuoto
(2NM)
- Relaatio on toisessa,
jos se on ensimmäisessä normaalimuodossa ja sen jokainen
attribuutti, joka ei esiinny avainehdokkaassa, on funktionaalisesti
täysin riippuva tästä avainehdokkaasta.
- Mallitaulun viat:
- Myyjän nimi esiintyy
moneen kertaan
- Myyjän nimi ei
liity koko avaimeen (Myyjäkoodi+Tuotekoodi) vaan vain myyjäkoodiin


- Kolmas normaalimuoto
(3NM)
- Relaatio on kolmannessa
normaalimuodossa, jos se on toisessa normaalimuodossa ja mikään
sen muuttuja-attribuutti ei ole transitiivisesti riippuva mistään
relaation avainehdokkaasta
- Mallitaulun viat:
- Piiriteksti ei liity
välittömästi avaimeen (myyjä)
- Piiriteksti aiheuttaa
myös moninkertaista päivitystä




- Boyce-Codd normaalimuoto
- Määräävän
ominaisuuden esiintyminen taulussa kielletty jollei kyseessä
ole avain
- Mallitaulun viat:
- Henkilötunnuksen
pitäminen taulussa mukana aiheuttaa turhaa toistetta ja moninkertaista
päivitystä


- Neljäs normaalimuoto
(4NM)
- Koskee pelkästään
tunnistetietoja sisältäviä tauluja joilla esitetään
eri ominaisuuksien välisiä riippuvuuksia.
- Taulukossa ei saa esiintyä
kahden tai useamman ominaisuuden moniarvoista riippuvuutta, jos
nämä ominaisuudet ovat keskenään riippumattomia.


- Viides normaalimuoto
(5NM)
- Jos sama informaatio
voidaan esittää tauluilla, joiden asteluku on alempi,
on käytettävä näitä tauluja.
- Asteluku tarkoittaa
sarakkeiden lukumäärää


Kolmesta viimeisestä
normaalimuodosta:
- Tilanteet, joissa ongelmien
oletetaan esiintyvän, ovat hieman keinotekoisia
- Normaalimuotojen vastainen
toiminta on vaikeasti ymmärrettävää. Normalisoidut
muodot syntyvät luonnostaan
- Mahdolliset ongelmat
johtuvat sovellusalueen tuntemisen ja ymmärtämisen vaikeudesta,
ei normalisoinnista
- Jos ongelmia kaikesta
huolimatta syntyy, niistä selviää terveellä
järjellä eikä normalisointisäännöillä.
- Kolme viimeistä
normaalimuotoa on syytä unohtaa.
KOHTEEN YHTEYTEEN
TALLETETAAN VAIN KOHTEESEEN VÄLITTÖMÄSTI LIITTYVIÄ
TIETOJA
KUNKIN TIEDON
PÄIVITYS TAPAHTUU VAIN YHTEEN PAIKKAAN
Accessin lomakkeet ja raportit
- Lomakkeet
- Yhdistetyt lomakkeet
- Raportit