Haaga-Helia / TIKO 1 (13) Käsitteellinen mallintaminen Käsitteellinen mallintaminen / Käsiteanalyysi...2 Tehtävät...2 Tietolähteet...2 Suunnitteluperiaatteita...3 ER-malli...4 Keskeiset käsitteet...4 Olio (Entity)...5 Ominaisuus (Property)...5 Yhteys (Relationship)...6 Alatyyppi (Subtype)...7 Erilaisia kuvaustapoja...9 Onko se olio, ominaisuus vai yhteys?...10 Suunnittelunäkemysten yhteensovittaminen...11 Terminologia...11 Muut erot...12 Oliomalli tietokannan mallintamisessa?...13 Conolly, Begg. Database Systems. 3.painos: 2.3: Data Models and Conceptual Modeling 9.1-9.6 Database Planning, Design and Administration 11 Entity-Relationship Modeling
Haaga-Helia / TIKO 2 (13) Käsitteellinen mallintaminen / Käsiteanalyysi Tehtävät Mitä kohdealueen tiedot tarkoittavat / merkitsevät ja minkälaisen kokonaisuuden ne muodostavat? 1. Käsitteiden tunnistaminen, nimeäminen ja määrittely 2. Yhteyksien tunnistaminen ja määrittely 3. Ominaisuuksien tunnistaminen ja määrittely 4. Avainten ja viiteavainten määrittely 5. Eri näkökulmista / käyttäjäryhmittäin tuotettujen käsitemallien kokoaminen yhteiseksi käsitemalliksi Tietolähteet Ryhmätyöskentely Haastattelut (+ iterointi) Nykyiset tietojärjestelmät ja niiden mahd. puutteet Lomakkeet Ohjeet, käsikirjat
Haaga-Helia / TIKO 3 (13) Suunnitteluperiaatteita Kunnioita todellisuutta Käsitekaavion tulisi vastata intuitiivisesti todellisuutta mahdollisimman pitkälle Käsitteet heijastavat käyttäjien ammattiterminologiaa Käsitekaavio on ymmärrettävä käyttäjille Ymmärrettävyys ja rakenteiden joustavuus (esim. voimakas yleistäminen) voivat toisinaan olla ristiriitaisia tavoitteita! Yksinkertainen on kaunista Ei pidä olettaa enempää olioita kuin on välttämätöntä (Occamin partaveitsi) Elementtien määrä lisää monimutkaisuutta monimutkaisuus lisää hallinnan tarvetta ja virheiden mahdollisuutta Kavahda redundanssia Elementtien määrä lisää monimutkaisuutta monimutkaisuus lisää hallinnan tarvetta ja virheiden mahdollisuutta Valitse oikea mallinnustapa Onko se olio, ominaisuus vai yhteys? Esim. avioliitto
Haaga-Helia / TIKO 4 (13) ER-malli Entity Relationship Model Aiemmin yleisimmin käytetty malli ja kuvaustekniikka Nykyään uudet järjestelmät kuvataan pääsääntöisesti UML:lla Chen PP. The Entity-Relationship Model Toward a Unified View of Data. ACM Transactions on Database Systems 1. 1976. (pp.9-36) EER Enhanced Entity Relationship Model Chen PP. The Entity-Relationship Model Toward a Unified View of Data. In Stonebraker M. (ed.) Readings in Database Systems. Morgan Kaufmann. 1988. Keskeiset käsitteet 1. Entity Entiteetti / Kohde / Olio 2. Property / Attribute Ominaisuus / attribuutti 3. Relationship Yhteys / riippuvuus / kytkentä Kuvaustekniikka on kehittynyt alkuperäisestä artikkelista (EER): + Modaliteetti (välttämätön mahdollinen, pakollinen - ehdollinen) + Olio hierarkia
Haaga-Helia / TIKO 5 (13) Olio (Entity) A thing which can be distinctly identified 1. olio ((regular) entity) 2. heikko olio (weak entity) olemassaolo riippuvainen jonkin muun olion olemassaolosta harvemmin käytössä asiakas sopimus Ominaisuus (Property) Kaikilla saman tyypin oliolla on tietyt yhteiset ominaisuudet. Kullakin ominaisuudella on sitä vastaava arvojoukko (= arvoalue) Yksinkertainen / yhdistelmä (composite) esim. nimi = sukunimi & etunimi etu nimi nimi suku Pääavain hetu Yksi- tai moniarvoinen (toistuvat ryhmät on sallittu ) puh Perus- tai johdettu vip
Haaga-Helia / TIKO 6 (13) Yhteys (Relationship) an association among entities osanottajat suhteeseen liittyvät oliot Aste (degree) = osanottajien määrä 1. unaariaste - vain 1 osanottaja esim. henkilö on aina jonkun henkilön lapsi 2. binääriaste - 2 osanottajaa tavallisin 3. tertiääriaste - 3 osanottajaa 4. n-aste Riippuvuustyyppi (connectivity) 1. funktionaalinen riippuvuus (1) 1 2. moniarvoinen riippuvuus (n) n Modaliteetti (existence) 1. välttämätön / pakollinen huom: heikon olion ja sen määräävän olion välinen yhteys 2. mahdollinen / ehdollinen
Haaga-Helia / TIKO 7 (13) Alatyyppi (Subtype) ei ollut mukana alkuperäisessä määrityksessä 1976, vaan lisättiin myöhemmin esim. ohjelmoija on työntekijän alatyyppi; kaikki työntekijän ominaisuudet ja suhteet ovat voimassa myös ohjelmoijalle tyyppihierarkia / oliohierarkia työntekijä ohjelmoija
Haaga-Helia / TIKO 8 (13) Daten esimerkki
Haaga-Helia / TIKO 9 (13) Erilaisia kuvaustapoja
Haaga-Helia / TIKO 10 (13) Onko se olio, ominaisuus vai yhteys? 1. Olioihin liittyy kuvailevia ominaisuuksia Esim. yrityksellä on kotipaikka Onko kotipaikka olio vai ominaisuus? Tarvitaanko kohdealueella kotipaikkaan liittyviä kuvailevia tietoja? Jos tarvitaan -> olio Jos ei (varmasti) tarvita -> ominaisuus Esim koodistot. 010537 punainen 235824 sininen voisi olla järkevämpää luoda arvoalue väri, ja käyttää värin nimeä ominaisuutena 2. Moniarvoiset ominaisuudet olioksi 3. Liitä ominaisuudet lähimpään olioon 4. Iteroi! Esim. katuosoite liitetään osastoon / yksikköön eikä suoraan työntekijään (.. tapauksesta riippuen )
Haaga-Helia / TIKO 11 (13) Suunnittelunäkemysten yhteensovittaminen Jos sovellusalue on pienehkö ja sovitettavia näkemyksiä on vähän, voi sovitustyön tehdä kerralla Muuten kannattanee sovittaa 2 näkemystä kerrallaan Terminologia Synonyymit (so. samaa asiaa tarkoittavat erilaiset termit). 1. Etsi synonyymit tietohakemistosta / käsitekaavioista 2. Valitse 1 ensisijaiseksi termiksi, jota käytetään mm. tietokantataulun nimessä (mahd. mukaan) 3. Määrittele muut sen synonyymeiksi. 4. Korjaa kaaviot se. kaikki käyttävät ensisijaista termiä Homonyymit (so. Eri asiaa tarkoittavat samanlaiset termit) 1. Etsi homonyymit tietohakemistosta / käsitekaavioista 2. Valitse ko. kohteille eri termit, jotta homonyymeistä päästään eroon. 3. Määrittele sanallisesti molempien terien tarkka merkitys! 5. Korjaa kaaviot se. kaikki käyttävät termejä yhdenmukaisella tavalla Esim. Tertun
Haaga-Helia / TIKO 12 (13) Muut erot Tyyppikonfliktit Olio, ominaisuus vai yhteys Yhteyksien määrät riippuvuustyyppi (funktionaalinen, moniarvoinen) modaliteetti Avaimet Toiminta Eheyssäännöt erityisesti null sekä insert, update, delete -säännöt Esim. Teorey
Haaga-Helia / TIKO 13 (13) Oliomalli tietokannan mallintamisessa? OMT Rumbauhg OOSE Booch UML Use Case Jacobson Unified Method UML - Unified Model Language oliomallien de facto standardi