Luento 4
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 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
Ei normaalimuotoinen tietokanta

Tietokanta ensimmäisessä normaalimuodossa


Tietokanta toisessa normaalimuodossa


Tietokanta kolmannessa normaalimuodossa




Tietokanta Boyce-Codd-normaalimuodossa


Ensimmäinen normaalimuoto (1NM)
- Relaatio on ensimmäisessä normaalimuodossa (1NM), jos sen
jokaisen attribuutin arvojoukko koostuu vain atomisista
arvoista eli yksinkertaisia, jakamattomia arvoja.
- Jokaisella rivillä ja jokaisessa sarakkeessa pitää olla sama määrä tietoa
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.
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
Boyce-Codd normaalimuoto
- Määräävän ominaisuuden esiintyminen taulussa on kielletty
jollei kyseessä ole avain
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 voidaan yleensä unohtaa.
KOHTEEN YHTEYTEEN TALLETETAAN VAIN KOHTEESEEN
VÄLITTÖMÄSTI LIITTYVIÄ TIETOJA
KUNKIN TIEDON PÄIVITYS TAPAHTUU VAIN YHTEEN PAIKKAAN
Tietokannan hallintajärjestelmät
DB2
Access
TIETOTURVA
- taulukon omistajan (owner) määrittely (authorization)
- tietokantakäsittelyn valtuuksien myöntäminen (grant)
oikeuksin delegoida valtuus edelleen (with grant option)
- valtuuksien epääminen (revoke)
- myös näkymien käsittelyyn voidaan myöntää oikeudet
ELVYTYS
- varmuuskopio (backup copy)
kopio koko tietokannasta tiettynä ajanhetkenä.
pystytään palauttamaan (restore) tietty aikaisempi tietokannan
tilanne
- lokitiedosto (log file)
voidaan siirtyä tietokannan tilasta toiseen, ajallisesti eteen
tai taaksepäin
Jokaisen tietokantaan tehtävän muutoksen yhteydessä kirjoitetaan
lokitiedostoon tietueen esi- ja jälkivedokset
- esivedos on kopio tietueesta ennen päivitystä
- jälkivedos on kopio tietueesta päivityksen jälkeen
- lisäyksen yhteydessä syntyy vain jälkivedos
- poiston yhteydessä syntyy vain esivedos
TAPAHTUMAT (transaktio)
- lokitiedostoa käytetään mahdollistamaan palautuminen
keskeytyneestä transaktiosta
- transaktio toteutetaan kokonaisuudessaan tai ei
ollenkaan (atomicity).
- tietokanta on ennen ja jälkeen transaktion ristiriidattomassa
(consistent) tilassa
- eristyvyys (isolation)
transaktion aiheuttamat muutokset eivät saa näkyä muille ennen
kuin koko transaktio on hyväksytty (commit)
- pysyvyys (durability)
Kun tapahtuma on vahvistettu (commit), tapahtuman tulokset eivät häviä
missään olosuhteissa.
- keskeytyneen (aborted) transaktion tietokantaan tekemät
muutokset pitää peruuttaa (rollback)
- samanaikaisuuden käsittely (concurrency control)
samanaikaiset transaktiot eivät saa sekoittua keskenään
YHTEISKÄYTTÖ
- useampi ihminen käyttää tietokantaa samanaikaisesti josta voi
seurata ongelmia jos yhteiskäyttöön ei ole varauduttu
kadonneet päivitykset
- rajoitetaan muiden käyttäjien mahdollisuuksia jonkin
resurssin käytössä
- pessimistinen tapa eli lukitukset
tietue lukitaan koko toimintoketjun ajaksi
muilta käyttäjiltä
- optimistinen tapa eli aikaleimat
tietuetta päivitettäessä tutkitaan onko tietueessa "käyty" sen
jälkeen kun se otettiin muutettavaksi (aikaleimat)
- Pessimistisessä lukituksessa käytetään eritasoisia lukituksia
- S-lukitus eli jaettu lukitus (shared)
lukon omistaja ja muut voivat lukea sivun tietoja, mutta eivät
päivittää niitä. Muut saavat S- ja U-lukituksia tälle
sivulle.
- U-lukitus eli päivityslukitus (update)
lukituksen omistaja voi lukea tietoa ja aikoo päivittää sitä.
Kukaan muu ei voi saada U- eikä X-lukitusta. Ennen päivitystä
lukon omistaja odottaa, ettei muilla ole sivulle S-lukitusta.
Sitten hän pyytää X-lukituksen ja suorittaa päivityksen.
- X-lukitus eli poissulkeva (exclusive)
lukituksen omistaja voi lukea tai päivittää lukittua dataa.
Kukaan muu ei voi saada lukitusta.
- lukkiumat (deadlocks)
- Ennaltaehkäisy
- Aikavalvonta