Tietokannan suunnittelu
Tietokannan suunnittelun vaiheet (Leppänen, 2001):
- Vaatimusten
määrittely ja analyysi
- Haastatteluin, kirjalliseen materiaaliin tutustumalla ja
keskusteluin selvitetään järjestelmältä
vaadittavat ominaisuudet. Apuna käytetään usein käyttötapaus-tekniikkaa.
- Käsitteellinen
mallintaminen
- Laaditaan käsitekaava, joka kuvaa tietokannan
sisällön ja rakenteen. Tehdään joko
käsiteanalyysina tai oliomallinnuksena.
- Tehtävä- ja
transaktiosuunnittelu
- Mallinnetaan tehtävät ja transaktiot, joilla
tietokannan tietoja käytetään
- Käyttöliittymän suunnittelu
- Suunnitellaan sovelluksen rakenne ja sovellukseen kuuluvien
näyttöjen sisältö ja rakenne
- Tietokannan looginen suunnittelu
- käsitekaavan pohjalta laaditaan sisällöstä
ja rakenteesta relaatiokaava käytettävissä olevalla
DDL:llä (Data Definition Language)
- Komponenttien suunnittelu
- Kiinnitetään käytettävä arkkitehtuuri,
muodostetaan komponentteja ja määritellään
ne
- Fyysinen suunnittelu
- päätetään tietokannan tallennusrakenteista
ja saantimenetelmistä. Tarkoituksena on tuottaa suorituskyvyn
ja muistitilan käytön suhteen optimaalinen fyysinen
rakenne tietokannalle.
- Toteutus
- Toteutetaan edellisten osien suunnitelmat
ohjelmointikielillä ja testataan toteutuksen toimivuus.
Käsitteellinen mallintaminen (ER-malli)
Kohdetyypit (entity types)
- tunnistettavissa oleva asia tai tapahtuma
- Helposti havaittavia kohdetyyppejä ovat käyttäjien puheissa
esiintyvät henkilöt, esineet, tilat ja tuotteet. Hankalampia ovat
käsitteelliset kohdetyypit kuten tilaus tai sopimus.
- Kohdetyypit ovat sellaisia, joista halutaan tallettaa tietoja pysyvästi tietokantaan. Raportit ja tulosteet eivät ole kohdetyyppejä vaan tietokannan tiedoista johdettuja tulostietoja
- heikko tyyppi (weak entity type)
- olemassaolo riippuu toisesta kohteesta eli ei voi olla olemassa
jos tätä toista kohdetta ei ole myös olemassa.
- esim. tenttitulosta ei voi olla olemassa ilman
tenttijää
suhdetyypit (relationship types)
- vähintään kahden kohteen välillä
vallitseva riippuvuus
- Suhde voi merkitä olemassaoloa, toiminnallista suhdetta tai tapahtumaa
- suhteen aste määräytyy suhteeseen liittyvien
kohteiden lukumäärän mukaan.
- Jos jokaista suhteeseen liittyvää kohdetta A vastaa
vähintään yksi kohde B on kyseessä täysi
suhde (pakollinen suhde) muussa tapauksessa osittainen suhde
- suhdeen kardinaalisuus (cardinality):
- yhden suhde yhteen (one-to-one, 1-to-1)
- yhden suhde moneen (one-to-many, 1-to-M) (monen suhde yhteen
(many-to-one, M-to-1))
- monen suhden moneen (many-to-many, M-to-M)
ominaisuudet (properties, attributes)
- jokaisella samantyyppisellä kohteella on tiettyjä
yhteisiä ominaisuuksia
- opiskelijoilla on kaikilla nimi, sotu, osoite yms
- Ominaisuuksien joukosta valitaan avaimeksi sopivat
- Avaimen pitää olla yksilöivä, uniikki
- Jokainen ominaisuus saa arvonsa (value) tietystä
arvojoukosta (domain)
- ominaisuudet voivat olla koottuja useasta osasta tai
yksittäisiä.
- Nimi voi koostua etu- ja sukunimestä.
- Ominaisuus voi olla yksi- tai moniarvoinen
- Sallitaanko ominaisuuksille tyhjät arvot
- Sallitaaanko tuntemattot arvot (NULL)
- Ominaisuudet voivat olla johdettuja
- esim. tilausten kokonaislukumäärä lasketaan
yksittäistilausten kappalemääristä.
Alityypit
- perintä
- Jokainen kohde on vähintään yhtä
kohdetyyppiä mutta voi olla samaan aikaan useampaakin
- ohjelmoija on on työntekijä eli ohjelmoija on
alityyppi työntekijän ollessä ylityyppi
- ohjelmoijalla on kaikki työntekijän ominaisuudet
mutta ei päinvastoin
- tyyppihierarkia

ER-diagrammit
- Kohteet
- Jokainen kohde esitetään suorakulmiona jonka
sisällä lukee kyseisen kohteen kohdetyyppi.
- heikoilla kohdetyypeillä suorakulmion kehä
kaksinkertaistetaan
- ominaisuudet
- esitetään ellipseillä jotka on liitetty
jatkuvalla viivalla kohteeseen tai suhteeseen. Ellipsin
sisällä lukee ominaisuuden nimi.
- perityt ominaisuudet liitetään katkoviivalla
- moniarvoiset ominaisuudet liitetään kaksinkertaisella
viivalla
- koottujen ominaisuuksien osaset esitetään kukin omana
ellipsinään jotka liitetään jatkuvilla
viivoilla koostettuun ominaisuuteen.
- Avaimina toimivat ominaisuudet alleviivataan.
- suhteet
- Jokainen suhde esitetään timanttikuviona jonka
sisällä lukee suhteen nimi
- Jos suhde on heikon kohteen ja "vahvan" kohteen
välillä niin timanttikuvion kehä
kaksinkertaistetaan.
- suhteeseen liittyvät kohteet liitetään siihen
jatkuvalla viivalla joista jokaisen kohdalla lukee 1 tai M riippuen
siitä onko kyseessä yhden suhde yhteen, yhden suhde
moneen vai monen suhde moneen.
- suhteen ja kohteen välinen viiva kaksinkertaistetaan jos
kyseessä täysi suhde
- alityypit
- alityyppi yhdistetään ylityyppiin
yhtenäisellä viivalla jonka toisessa
päässä on nuoli (ylityypin
päässä).
