390 likes | 578 Views
Kohdemallit. Entity-Relationship Diagrams ER-mallit Käsitemallit Kohde-suhde-kaavio. ER-mallit. käytetään tietokantojen, varsinkin relaatiotietokantojen suunnittelussa malli auttaa luomaan yhteisen näkemyksen rakennettavasta systeemistä; yhteinen kieli yhteinen työskentelytapa
E N D
Kohdemallit Entity-Relationship Diagrams ER-mallit Käsitemallit Kohde-suhde-kaavio
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
mallissa kuvataan tietokannan tieto-objektit 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
ER-mallin peruselementit • kohteet eli entiteetit • kohteen ominaisuudet eli attribuutit • kohteiden väliset yhteydet (relationships) • attribuutit yhteyksissä
Kohteet eli entiteetit • esitetään suorakaiteena • edustaa kohteiden kokoelmaa tai joukkoa, jonka yksittäisiä esiintymiä tieto-jä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
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
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
OSTAMINEN ASIAKAS TUOTE HOIDOT LÄÄKÄRI POTILAS LASKUTUS
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
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
ASIAKAS 1 N TUOTE OSTAMINEN ASIAKAS 1:N 0:N TUOTE SISÄLTYY VIIKKO VIIKONPÄIVÄ 1 7 ASIAKAS TUOTE
osallistuu opiskelija kurssi kuuluu luennoi suorittaa tentti opettaja suoritus Tehtävä:Lisää kardinaliteetit
1:N osallistuu 0:N opiskelija kurssi 1:1 0:N 0:N kuuluu luennoi 0:N suorittaa 0:N tentti 0:N 0:N opettaja suoritus
Tehtäviä: • Piirrä kohdemalli, joka kuvaa videovuokraamon vuokraustoimintaa (pelkistetysti). • käytä haluamaasi notaatiota • ilmoita kardinaliteetit
hankkii 0:N työntekijä 1:1 filmi 1:N 0:N vuokraa 0:N asiakas 0:N palauttaa
Kohteen attribuutit • jokaista kohdetta voi kuvata yhdellä tai useammalla attribuutilla asiakasnro tuotenro nimi TILAA ASIAKAS N TUOTE M nimike hinta puhelinnro
Attribuutit yhteyksissä • monen suhde moneen –yhteydellä voi olla itsessään attribuutteja • esim. tietyn asiakkaan tietyn tuotteen tilaukseen liittyy tilauspvm-attribuutti tilauspvm tilauspvm TILAA ASIAKAS N TUOTE M
Assosiatiivisten kohdetyyppien merkintä • kohdemallissa voidaan käyttää myös ns. assosiatiivista (yhdistävää) kohdetyyppiä • se edustaa suhdetta, josta tallennetaan tietoja systeemiin ASIAKAS TUOTE TILAUS- TAPAHTUMA
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 tilaustapahtuma-kohde voi olla tietojärjestelmässä vain tilaustapahtuman seurauksena, eli se edellyttää muiden kohteiden esiintymien yksilöintiä
ER-kaavion laatiminen: • Tunnista kohteet; niistä halutaan 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.
Tehtäviä: • Mieti mahdollisia attribuutteja kurssisuorituskaavion entiteeteille. (s. 13) • Olet suunnittelemassa mökkivarausjärjestelmää. Mieti • 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ä
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.
TYÖNTEKIJÄ MÄÄRÄAIKAINEN TYÖNTEKIJÄ VAKINAINEN TYÖTEKIJÄ Alityyppi/supertyyppimerkintä. Poikkiviiva työntekijä-objektin alla merkitsee supertyyppiä tai supertyyppiluokkaa.
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.
ON ON TILI • kolme eri kohdetta mallinnettuna: 1:1 1:1 0:1 0:1 LUOTOLLINEN TILI KÄYTTÖTILI • tässä ratkaisussa tili voisi olla samanaikaisesti käyttötili ja luotollinen tili
TILI • seuraavassa esimerkissä tilejä on mallinnettu yhteisen supertyypin avulla LUOTOLLINEN TILI KÄYTTÖTILI • Alityyppi / supertyyppi-merkinnän käyttö on yleisintä oliopohjaisten suunnittelumenetelmien 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ä.
Kohdemallista poistetaan kaikki monesta-moneen –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.
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.
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)
Jos kyseessä on ’yhden suhde yhteen’ relaatio, tulee toiseen tauluun viiteavaimeksi toisen taulun perusavainsarake. Se, kumpaan tauluun viiteavain määritellään, riippuu tapauksesta.
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ä.
tuotenro TUOTE ASIAKAS nimike asnimi hinta tilausnro 1:N postinro asnro lähios TILAUS ptoimip tilauspvm kpl TOIMITTAA 0:N osastonro TYÖSKEN- TELEE 1:1 2:N 1:1 OSASTO TYÖNTEKIJÄ JOHTAA 1:1 0:1 osnimi ttnro ttnimi
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)
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.
hetu nimi puhelin Leirin nimi paikka LAPSI LEIRI 0:N 1:N huoltaja lähiosoite ajat hinta postinro hpuh vetäjä sisältö ptoimip ILMOITTAUTU-MINEN ilmnro ilmoaika
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
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ä
Tietohakemisto • Esimerkki: Asiakasrekisteri = { Asiakas } Asiakas = @Henkilötunnus + Asiakkaan nimi + Yhteystiedot Henkilötunnus = { Numero }6 + ’-’ + { Laillinen_merkki }4 Asiakkaan nimi = Etunimi + Sukunimi Sukupuoli = [ mies | nainen ] Yhteystieto = 1{ Laillinen merkki }n Etunimi = 1{ Kirjain }n Sukunimi = 1{ Kirjain }n Laillinen_merkki = [ Numero | Kirjain | ’ | - | ] Numero = { 0-9 } Kirjain = [ A-Ö | a-ö ]