TIETOKANTOJEN PERUSTEET

Relaatiotietokannan suunnittelu

Oheismateriaali:
Ramakrishnan&Gehrke: luku 3.5, sivut 75-86.
Elmasri&Navathe: luku 7, sivut 191-206.

Relaatiotietokannan suunnittelussa lähdetään liikkeelle siitä, että tietokannan tietosisältö on kartoitettu. Jos kartoitus on tehty käsitetason tietomalliksi, tehdään suunnittelussa muunnos käsitetason mallista relaatiomalliin. Muunnos voidaan tehdä varsin suoraviivaisesti, jopa algoritmisesti. Suoraviivaiset muunnokset eivät kuitenkaan ole aina käyttökelpoisia ja joissain tilanteissa voi olla tarpeen miettiä muitakin ratkaisuja.

Relaatioiden johtaminen ER-kaaviosta

Tietosisältömallin laatuvaatimukset

Jotta relaatiot pystytään suunnittelemaan tietosisältömallin pohjalta, täytyy tietosisältömallin täyttää joitain laatuvaatimuksia:

 

Muunnos ER-mallista relaatiomalliin

Seuraavassa annetetaan joukko suoraviivaisia muunnossääntöjä. Esimerkkinä sääntöjen toiminnasta käytetään kuvan 6 panttilainaamosovellusta.

panttilainaamokannan tietosisältö

Kuva 6: Panttilainaamokannan tietosisältö

 

Muunnossäännöt

  1. Kutakin tietokohdetyyppiä vastaa samanniminen taulu
  2. Kullakin tietokohteen yksiarvoisella attribuutilla on samanniminen vastinsarake tietokohdetta vastaavassa taulussa. Tunnistavia attribuutteja vastaavat sarakkeet sisältyvät taulun pääavaimeen.

    taulut

    Kuva 7: Panttilainaamokannan taulut sääntöjen 1 ja 2 soveltamisen jälkeen

  3. Kutakin moniarvoista attribuuttia vastaa taulu, jonka sarakkeina ovat viiteavain attribuutin sisältävää tietokohdetta vastaavaan tauluun ja sarake attribuutin arvoa varten. Taulun kaikki sarakkeet kuuluvat taulun pääavaimeen.

    Panttilainaamoesimerkissä ei ole moniarvoisia attribuutteja.

    moniarvoisen muunnos

    Kuva 8: Moniarvoisen attribuutin muunnos

  4. Kutakin 'monen suhde moneen' -tyyppistä yhteyttä vastaa taulu, jonka nimenä on yhteyden nimi ja jonka sarakkeina ovat yhteyden osapuolia vastaaviin tauluihin osoittavat viiteavaimet. Taulun kaikki sarakkeet kuuluvat taulun pääavaimeen.

    monen suhde moneen muunnettu

    Kuva 9: Panttilainaamon kanta kun moneen suhde moneen -yhteydet on muunnettu

  5. 'Yhden suhde moneen' -tyyppiset yhteydet toteutetaan ensisijaisesti lisäämällä yhteyskumppaniin osoittava viiteavain sitä osapuolta vastaavaan tauluun, jolla on korkeintaan yksi kumppani. Jos kyseinen osapuoli on alisteinen ja yhteyden kautta tunnistettava, niin lisätty viiteavain kuuluu taulun avaimeen.

    yhden suhde moneen muunnos tehty

    Kuva 10: Yhden suhde moneen -yhteydet muunnettu

  6. 'Yhden suhde moneen' -tyyppiset yhteydet voidaan toteuttaa myös omina tauluinaan säännön 4 mukaisesti.
  7. 'Yhden suhde yhteen' -tyyppisille yhteyksille on vaihtoehtoisia toteutustapoja.

    Panttilainaamoesimerkissä ei ole yhden suhde yhteen yhteyksiä.

    yhden suhde yhteen muunnos

    Kuva 11: Yhden suhde yhteen -yhteyksien muunnosesimerkki

  8. Sisältyvyyssuhteen toteuttamiseen on useita vaihtoehtoja:

    Esimerkkinä sisältyvyyssuhteiden muunnoksesta tarkastellaan osakkeiden omistusta:

    osakkeiden omistus tietosisältö

    Kuva 12: Osakkeiden omistukseen liittyvää tietosisältöä.

    osakkeiden omistus taulut

    Kuva 13: Muunnettu yleistyshierarkia (muunnoksessa käytetty keinoavainta)

  9. Edellisissä säännöissä tauluille on muodostunut luonnolliset pääavaimet tunnistavien attribuuttien ja yhteyksien perusteella. Jos pääavain muodostuu kovin moniosaiseksi ja sitä käytetään runsaasti viittauksissa, voidaan harkita keinoavaimen (surrogate) käyttöä. Keinoavaimet säästävät tilaa ja pysyvät muuttumattomina mutta hidastavat monia tietokantaoperaatioita, joten niiden käyttöönottoa on syytä tarkoin harkita.

Jos lähtökohtana käytettävä käsitetason tietomalli täyttää laatuvaatimukset, tuottavat yllä kuvatut muunnossäännöt toimivan relaatiotietokantarakenteen. Relaatiotietokannoille on määritelty myös tietojen välisiin riippuvuuksiin ja ns. normaalimuotoihin pohjautuva suunnittelutekniikka. Sen periaatteita voidaan käyttää muunnoksen tuloksena syntyneiden taulujen laadun varmistamiseen. Erityisesti kannattaa tarkastella tauluja, joihin muunnos on tuonut useita viiteavaimia.


Harri Laine: Tietokantojen perusteet, Helsingin yliopisto, Tietojenkäsittelytieteen laitos, 2005