Käsitteellinen mallintaminen (Entity-Relationship -kaaviot) - Luento 2
Opetellaan tietokantojen käsitteellistä mallintamista Entity-Relationship -kaavioiden avulla (ER-kaavio).
Luentotaltiointi
Ongelmia videon katselussa?Käsitteellinen mallintaminen (Entity-Relationship-malli)
Kohteet
- Kohde on ominaisuuskokoelma
- Kohde ei ole ominaisuus tai yksittäinen tieto!
- Kohteen yhteyteen liitetään vain kohteeseen välittömästi liittyviä tietoja (ominaisuuksia).
- Kunkin tiedon päivitys tapahtuu vain yhteen paikkaan
- Tunnistettavissa oleva asia tai tapahtuma.
- Kohdetta kuvaa usein substantiivi.
- Helposti havaittavia kohteita ovat käyttäjien puheissa esiintyvät henkilöt, esineet, tilat ja tuotteet. Hankalampia ovat käsitteelliset kohteet kuten tilaus tai sopimus.
- Kohteet ovat sellaisia, joista halutaan tallentaa tietoja pysyvästi tietokantaan. Raportit ja tulosteet eivät ole kohteita vaan tietokannan tiedoista johdettuja tulostietoja
Ominaisuudet
- Jokaisella samantyyppisellä kohteella on tiettyjä yhteisiä ominaisuuksia
- Henkilöillä on kaikilla nimi, hetu, osoite yms.
- Ominaisuus vastaa taulukossa sarakeotsikoita.
- Ominaisuus ei ole tallennettava tieto (arvo)! Henkilökohteen ominaisuus voi olla Nimi mutta ei Tommi.
- Ominaisuuksien joukosta valitaan avaimeksi sopivat
- Avaimen pitää olla yksilöivä, uniikki.
- Avain voi olla myös yhdistelmä useammasta kentästä. (esim. puhelinnumero: etuosa + loppuosa)
- Avain voi olla juokseva numero omana ominaisuutena.
- Ominaisuus voi olla yksi- tai moniarvoinen. Moniarvoiset ominaisuudet (multivalued attributes) irrotetaan tällä kurssilla omiksi kohteikseen.
- Ominaisuuden arvojen kannattaa olla jakamattomia, osat kannattaa erottaa aina omiksi ominaisuuksikseen. Esim. etunimi ja sukunimi.
- Muista ominaisuuksista johdettavia tietoja (derived attributes)
ei kannata laittaa ominaisuuksiksi (täydelliseen ER-kaavioon ne merkitään katkoviivalla).
- esim. tilausten kokonaislukumäärä lasketaan yksittäistilausten kappalemääristä.
- esim. ikä lasketaan syntymäajasta.
- Jokainen ominaisuus saa arvonsa tietystä arvojoukosta (esim. kurssin arvosana voi olla 1,2,3,4,5 tai 0 eli hylätty).
- Sallitaanko ominaisuuksille tyhjät arvot. (esim. koditon)
- Sallitaanko tuntemattomat arvot.
- Ominaisuus voi liittyä myös suhteeseen.
Suhteet
- Suhdetta kuvaa usein verbi.
- Suhde on vähintään kahden kohteen välillä vallitseva riippuvuus.
- Suhde voi merkitä olemassaoloa, toiminnallista suhdetta tai tapahtumaa
- Keksi, jos mahdollista, sellainen kuvaava sana, joka toimii molempiin suuntiin.
- Suhteen aste määräytyy suhteeseen liittyvien kohteiden lukumäärän mukaan.
- Suhteen kardinaalisuus:
- Yhden suhde yhteen (one-to-one, 1-to-1). Käytännössä samoja kuin ominaisuudet.
- Yhden suhde moneen (one-to-many, 1-to-M) (monen suhde yhteen (many-to-one, M-to-1))
- Monen suhde moneen (many-to-many, M-to-M)
ER-kaavioiden piirtäminen
Piirto-ohjelmana voi käyttää mitä tahansa kaavioiden piirtämiseen sopivaa työkalua tai vaikka Exceliä. Järkevintä on kuitenkin käyttää erityisesti ER-kaavioita varten suunniteltuja työkaluja koska ne helpottavat kaavion muuntamista tietokannaksi. Tällä kurssilla käytetetään Erkka-ohjelmaa.
- Kohteet
- Jokainen kohde esitetään suorakulmiona jonka sisällä lukee kyseisen kohteen nimi.
- Ominaisuudet
- Esitetään ellipseillä jotka on liitetty jatkuvalla viivalla kohteeseen tai suhteeseen. Ellipsin sisällä lukee ominaisuuden nimi.
- Avaimina toimivat ominaisuudet alleviivataan.
- Hieman epästandardisti voidaan ominaisuus merkitä myös kohteen sisältävään suorakulmioon.
- Suhteet
- Jokainen suhde esitetään timanttikuviona jonka sisällä lukee suhteen nimi.
- 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.
- Lue kaaviota esimerkiksi seuraavasti:
- "Yksi henkilö voi asua enintään yhdellä paikkakunnalla" (ei pakollinen tieto)
- "Henkilö asuu tietyllä paikkakunnalla" (pakollinen tieto)
- "(Yhdellä) paikkakunnalla voi asua monta henkilöä."
Esimerkkikaavio
Suunnitellaan tietokanta pienen yrityksen tietojen ja projektien hallintaan. Yksinkertaistettu versio tietokannan vaatimusmäärittelystä on seuraavanlainen:
- Työntekijöistä talletetaan nimi (etunimi, toinen nimi, sukunimi), puhelinnumerot, palkka ja tieto mahdollisista lapsista.
- Jokainen työntekijä toimii jollakin osastolla.
- Projekteissa työskentelee yksi tai useampia työntekijöitä. Sama työntekijä voi olla yhtäaikaa monessa projektissa.
- Jokaisella projektilla on yksi projektipäällikkö.
- Projekteissa rakennetaan monenlaisia laitteita. joihin tarvitaan tietty määrä tietynlaisia osia. Osia projekteille toimittavat monet eri toimittajat, joiden yhteystiedot pitää tallettaa järjestelmään. Järjestelmän pitää sisältää tieto siitä, mitä osia ja miltä toimittajalta on toimitettu millekin projektille.
- Jotkut osat koostetaan itse muista osista. Tietokannan pitää siis sisältää tieto myös osien koostumuksesta.
- Järjestelmästä pitää selvitä myös, mitkä toimittajat pystyvät toimittamaan mitäkin osia.
Käyttäjien kommentit