Transcript Kohdemallit

Kohdemallit
Entity-Relationship Diagrams
ER-mallit
Käsitemallit
Kohde-suhde-kaavio
1
ER-mallit


käytetään tietokantojen, varsinkin
relaatiotietokantojen suunnittelussa
malli auttaa luomaan yhteisen
näkemyksen rakennettavasta systeemistä;



yhteinen kieli
yhteinen työskentelytapa
mallin avulla rajataan suunniteltava
systeemi
2



mallissa kuvataan tietokannan tietoobjektit ja niiden väliset yhteydet
mallin perusteella määritellään
tietokannan taulut ja taulujen perus- ja
viiteavaimet ym.
ER-mallinnuksessa on käytössä erilaisia
notaatioita eli merkintätapoja
3
ER-mallin peruselementit




kohteet eli entiteetit
kohteen ominaisuudet eli attribuutit
kohteiden väliset yhteydet (relationships)
attribuutit yhteyksissä
4
Kohteet eli entiteetit




esitetään suorakaiteena
edustaa kohteiden kokoelmaa tai joukkoa,
jonka yksittäisiä esiintymiä tietojärjestelmässä käsitellään
jokainen kohde voidaan yksilöidä jollakin
tavalla, eli jokainen esiintymä on yksilö,
joka voidaan erottaa muista kohteen
esiintymistä jonkin ominaisuuden mukaan
esim. kohteen ”asiakas” esiintymät on
kyettävä erottamaan toisistaan
5




jokainen kohde / entiteetti on rakennettavan
systeemin kannalta tarkoituksellinen
jokainen kohde voidaan kuvata yhden tai
useamman tietoalkion avulla
esim. ”asiakas” voidaan kuvata tietoalkioilla:
nimi, laskutusosoite, puhelinnumero
usein näitä tietoalkioita kutsutaan kohteen
attribuuteiksi eli ominaisuuksiksi
6
Relaatiot eli yhteydet




kohteet kytketään toisiinsa relaatioiden
avulla
Yourdonin notaation mukaan kohteiden
välinen suhde ilmaistaan ’salmiakin’ avulla
relaatio voi olla ’yhden suhde yhteen’
tai ’yhden suhde moneen’
(tai ’monen suhde moneen’)
kahden kohteen välillä voi olla myös useita
eri suhteita
7
ASIAKAS
OSTAMINEN
TUOTE
HOIDOT
LÄÄKÄRI
POTILAS
LASKUTUS
8
Yhteystyyppien pakollisuus



pakollinen yhteystyyppi tarkoittaa, että
jokainen kohteen yksilö on yhteydessä
vähintäänkin yhteen toisen kohteen yksilöön
puolittainen ehdollinen yhteystyyppi
tarkoittaa, että toisessa kohteessa voi olla
yksilöitä, joilla ei ole yhteyttä toiseen
kohteeseen
täysin ehdollinen yhteystyyppi tarkoittaa, että
molemmissa kohteissa voi olla yksilöitä, joilla
ei ole yhteyttä toisen kohteen yksilöihin
9
Vaihtoehtoisia merkintätapoja



edellisten esimerkkien graafit olivat
suuntaamattomia
relaatioissa ei ilmaistu kardinaliteettia, eli
keskinäisessä suhteessa olevien kohteiden
esiintymien määrää
kardinaliteetin ilmaisemiseksi on useampia
eri merkintätapoja
10
ASIAKAS
ASIAKAS
1
N
TUOTE
1:N
OSTAMINEN
VIIKKO
SISÄLTYY
1
ASIAKAS
0:N
7
TUOTE
VIIKONPÄIVÄ
TUOTE
11
opiskelija
osallistuu
kurssi
kuuluu
luennoi
suorittaa
suoritus
Tehtävä:Lisää kardinaliteetit
tentti
opettaja
12
1:N
0:N
osallistuu
opiskelija
kurssi
1:1
0:N
0:N
kuuluu
0:N
suorittaa
luennoi
0:N
tentti
0:N
0:N
suoritus
opettaja
13
Tehtäviä:

Piirrä kohdemalli, joka kuvaa
videovuokraamon vuokraustoimintaa
(pelkistetysti).


käytä haluamaasi notaatiota
ilmoita kardinaliteetit
14
työntekijä
1:1
0:N
filmi
hankkii
1:N
0:N
vuokraa
0:N
asiakas
0:N
palauttaa
15
Kohteen attribuutit

jokaista kohdetta voi kuvata yhdellä tai
useammalla attribuutilla
asiakasnro
ASIAKAS
puhelinnro
tuotenro
nimi
N
TILAA
M
nimike
TUOTE
hinta
16
Attribuutit yhteyksissä


monen suhde moneen –yhteydellä voi olla
itsessään attribuutteja
esim. tietyn asiakkaan tietyn tuotteen
tilaukseen liittyy tilauspvm-attribuutti
tilauspvm
ASIAKAS
N
TILAA
M
TUOTE
17
Assosiatiivisten kohdetyyppien
merkintä


kohdemallissa voidaan käyttää myös ns.
assosiatiivista (yhdistävää) kohdetyyppiä
se edustaa suhdetta, josta tallennetaan
tietoja systeemiin
ASIAKAS
TUOTE
TILAUSTAPAHTUMA
18




asiakas tilaa tuotteen ja syntyy uusi
omistussuhde tuotteen ja tilauksen välille
se voidaan merkitä assosiatiivisena kohteena
tähän uuteen kohteeseen voidaan lisätä
esim. tilaustapahtuman tietoja, kuten
tilausajankohta, tilaushinta jne.
tässä esimerkissä asiakas ja tuote ovat
itsenäisiä kohteita, mutta tilaustapahtumakohde voi olla tietojärjestelmässä vain
tilaustapahtuman seurauksena, eli se
edellyttää muiden kohteiden esiintymien
yksilöintiä
19
ER-kaavion laatiminen:
1. Tunnista kohteet; niistä halutaan
2.
3.
4.
5.
6.
tallentaa pysyvästi tietoa.
Nimeä kohde ymmärrettävästi.
Tunnista kohteiden väliset suhteet; niistä
halutaan tallentaa pysyvästi tietoa.
Nimeä suhdetyypit ja määritä
kardinaliteetit.
Tunnista attribuutit; mitkä kohteisiin ja
suhteisiin liittyvät tiedot ovat tarpeellisia.
Nimeä attribuutit.
20
Tehtäviä:
1.
Mieti mahdollisia attribuutteja kurssisuorituskaavion
entiteeteille. (s. 13)
2.
Olet suunnittelemassa mökkivarausjärjestelmää.
Mieti




3.
millaisia kohdetyyppejä mökkivaraukset pitävät
sisällään?
millaisia attribuutteja kohdetyypeillä on ja mitkä
niistä on otettava järjestelmään mukaan?
mitkä ovat ko. kohteiden väliset yhteydet?
mitkä ovat kardinaliteetit?
Piirrä kohdemalli mökkivarausjärjestelmästä
21
Alityyppi / supertyyppi-merkintä




Jos kaksi tai useampia kohteita poikkeaa
toisistaan vain muutamien attribuuttien osalta,
voidaan niistä muodostaa alityyppi /
supertyyppi–merkintä.
Kohteet yhdistetään silloin tavalla, joka ilmaisee
niiden keskinäistä käsitteellistä suhdetta.
Kohteen ominaisuudet voidaan kuvata
luokkahierarkiana, jossa superluokan
ominaisuudet ’periytyvät’ alemmille, astetta
tarkemmalla tasolla määritellyille objekteille.
Alityypit yhdistetään supertyyppiin
nimeämättömän suhteen avulla ja supertyyppi
merkitään rakenteessa poikkiviivalla.
22
TYÖNTEKIJÄ
MÄÄRÄAIKAINEN
TYÖNTEKIJÄ
VAKINAINEN
TYÖTEKIJÄ
Alityyppi/supertyyppimerkintä. Poikkiviiva työntekijä-objektin alla
merkitsee supertyyppiä tai supertyyppiluokkaa.
23
Esimerkki ’pankkitilit’




Pankkisovelluksessa käyttötili ja luotollinen tili
ovat kohteina lähes samanlaisia.
Luotolliseen tiliin liittyy kuitenkin attribuutti
’luottoraja’, jota käyttötilillä ei ole. Samoin
käyttötiliin voi liittyä attribuutteja, joita
luotollisella tilillä ei ole.
Asia voitaisiin mallintaa kolmella eri kohteena:
tili, luotollinen tili, käyttötili.
Tili sisältäisi kaikille tileille yhteiset attribuutit ja
luotollinen tili sille ominaiset muut attribuutit,
samoin käyttötili.
24

kolme eri kohdetta mallinnettuna:
ON

1:1
TILI
1:1
ON
0:1
0:1
LUOTOLLINEN
TILI
KÄYTTÖTILI
tässä ratkaisussa tili voisi olla
samanaikaisesti käyttötili ja luotollinen tili
25

seuraavassa esimerkissä tilejä on mallinnettu
yhteisen supertyypin avulla
TILI
LUOTOLLINEN
TILI

KÄYTTÖTILI
Alityyppi / supertyyppi-merkinnän käyttö on
yleisintä oliopohjaisten suunnittelumenetelmien
26
yhteydessä.
Kohdemallin muodostamisohjeita



Kohdemallia laadittaessa ei ole syytä olettaa,
että ensimmäinen kohdemallin versio olisi
lopullinen. Yleensä joudutaan tekemään useita
työversioita ennen kuin lopullinen hyväksyttävä
versio valmistuu.
Ensimmäinen versio piirretään usein sen
käsitteistön perusteella, joka kuvaa
tietojärjestelmää ja sen käyttöä käyttäjän
näkökulmasta.
Kohdemallin toistuva piirtäminen ja
uudelleenkäsittely tuo esiin uusia kohdetyyppejä
ja / tai karsii niitä.
27



Kohdemallista poistetaan kaikki monestamoneen –relaatiot, synnyttämällä assosiatiivisia
kohteita ja muodostamalla yhdestä moneen –
relaatiot uuden ja aikaisempien kohteiden välille.
Kohdemallista poistetaan myös sellaiset kohteet,
joissa on vain tunnistin, ei muita attribuutteja
sekä sellaiset kohteet, joista on vain yksi
esiintymä.
Esim. henkilöstö-tietokannassa on olemassa
erillinen kohde ’avio- tai avopuoliso’, josta on
relaatio ’työntekijä’-kohteeseen. Jos jokaisella
työntekijällä on vain 1 avio- tai avopuoliso,
voidaan ko. kohde poistaa ja tieto tallentaa
’työntekijä’-kohteen attribuutiksi.
28
ER-mallista relaatiotietokannan
tauluiksi



Kun ER-malli on viimeistelty ja hyväksytty,
sen pohjalta voidaan rakentaa tietokannan
tauluja
Jokaisesta kohteesta tulee yleensä oma
taulunsa ja kohteiden attribuuteista taulun
sarakkeet
Kullekin taululle pitää myös miettiä
perusavaimet, sekä mahdolliset muut
rajoitukset, kuten not-null –rajoitus yms.
29


Jos kyseessä on ’yhden suhde moneen’
relaatio, ota sarakkeeksi N-puolelle
relaation 1-puolen kohteen avainattribuutti
(viittaamaan 1-puoleen)
Jos kyseessä on ’monen suhde moneen’
relaatio, tulisi se purkaa tekemällä siitä
oma taulunsa (esim. ’tuote ja asiakas’ –
relaatiosta ’tilaus’-taulu). Tällaisen taulun
sarakkeiksi tulee yleensä molempien
relaatioon liittyvien kohteiden
avainattribuutit (esim. tuotenro ja
asiakasnro) sekä mahdolliset yhteyden
omat attribuutit (esim. tilauspvm)
30

Jos kyseessä on ’yhden suhde yhteen’
relaatio, tulee toiseen tauluun
viiteavaimeksi toisen taulun
perusavainsarake. Se, kumpaan tauluun
viiteavain määritellään, riippuu
tapauksesta.
31
ER-malliharjoitus nro 1

Tee ER-malli sekä sen perusteella
taulumääritykset seuraavanlaisen casen
pohjalta:
Kyseessä on pienehkö 24 henkilöä työllistävä
postimyyntifirma, joka myy polkupyöriä.
Yritykseen kuuluu 3 osastoa: myynti,
markkinointi ja kirjanpito. Jokaisella osastolla on
yksi johtaja ja työntekijä voi työskennellä vain
yhdellä osastolla. Asiakkaiden tekemät tilaukset
toimitetaan kokonaisina (ei osatoimituksia) ja
jokaisesta tilauksesta vastaa aina yksi työntekijä.
32
tuotenro
TUOTE
ASIAKAS
asnimi
asnro
1:N
postinro
lähios
ptoimip
TILAUS
tilausnro
nimike
hinta
tilauspvm
kpl
0:N
TOIMITTAA
1:1
osastonro
TYÖSKENTELEE
2:N
OSASTO
TYÖNTEKIJÄ
1:1
ttnro
ttnimi
1:1
JOHTAA
0:1
osnimi
33
Taulut em. ER-kaavion perusteella
Asiakas (asnro, asnimi, lähios, postinro,
ptoimip)
Tuote (tuotenro, nimike, hinta)
Tilaus (tilausnro, tilauspvm, kpl, ttnro,
asnro, tuotenro)
Työntekijä (ttnro, ttnimi, osastonro)
Osasto (osastonro, osnimi, ttnro)
(ttnro on johtajan ttnro)
34
ER-malliharjoitus nro 2

Piirrä ER-malli eli kohdemalli seuraavasta:
Kyseessä on tietosysteemi, joka ottaa vastaan
ilmoittautumisia urheiluopiston järjestämille lasten
kesäleireille. Leirejä järjestetään useita kappaleita ja
ne ovat teemoiltaan erilaisia. Järjestelmään on
tarkoitus kirjata ilmoittautumisen lisäksi lapsen
yhteystietoja ja leirien tarkemmat tiedot. Mallissa
tulisi olla näkyvillä ainakin entiteettien/kohteiden ja
yhteyksien lisäksi tärkeimmät attribuutit.
35
hetu
nimi
puhelin
Leirin nimi
0:N
LAPSI
1:N
huoltaja
lähiosoite
postinro
ajat
hpuh
paikka
LEIRI
hinta
vetäjä
sisältö
ptoimip
ILMOITTAUTUMINEN
ilmnro
ilmoaika
36
Tietohakemisto



(data dictionary)
Sisältää kuvauksen kaikista järjestelmään sisältyvistä
tiedoista.
Siinä kuvataan järjestelmän syötteet, tulosteet,
tietovarastojen rakenteet ja tietojen tarkat määritykset.
Tietohakemistoa laadittaessa:
 kuvaa kaikki tietovirtakaavion tietovirrat ja
tietovarastot
 kuvaa tietovirtojen ja tietovarastojen sisältämät
tietoalkiot
 kuvaa kunkin tietoalkion mahdolliset arvot
 kuvaa miten tietoalkiot liittyvät toisiinsa
 käytä oikeaa notaatiota
 älä kuvaa mitään tietoalkiota useammin kuin kerran
37
Tietohakemisto

Tietojen kuvaamisessa käytettävät merkinnät:
= muodostuu seuraavista
+ ja
( ) vaihtoehto (saattaa esiintyä tai puuttua)
{ } iteraatio eli toisto
[ ] valitse yksi vaihtoehdoista
| vaihtoehtojen erotin
* * kommentti
@ avainkenttä tai tietovaraston tunnistinkenttä
38
Tietohakemisto
Esimerkki:
Asiakasrekisteri
Asiakas

Henkilötunnus
Asiakkaan nimi
Sukupuoli
Yhteystieto
Etunimi
Sukunimi
Laillinen_merkki
Numero
Kirjain
= { Asiakas }
= @Henkilötunnus + Asiakkaan nimi +
Yhteystiedot
= { Numero }6 + ’-’ + { Laillinen_merkki }4
= Etunimi + Sukunimi
= [ mies | nainen ]
= 1{ Laillinen merkki }n
= 1{ Kirjain }n
= 1{ Kirjain }n
= [ Numero | Kirjain | ’ | - | ]
= { 0-9 }
= [ A-Ö | a-ö ]
39