Tietosisällön kuvaaminen Toteutusvälineistä riippumaton tietosisällön kuvaus Entity-Relationship malliperhe Lähtökohta: Chenin malli vuodelta 1976 Useita muunnelmia, pieniä eroja peruskäsitteissä ja erityisesti esitystekniikassa Mallit keskittyvät tiedon rakenteeseen ja tietojen välisiin riippuvuuksiin ja sääntöihin tiedon käsittelyäkin on mallinnettu, mutta tähän malliin pohjautuvia tietokannanhallintajärjestelmiä ei juurikaan ole tarjolla tarkoitettu suunnittelun apuvälineeksi, ihmisille ei koneille Tietosisällön kuvaaminen ER-mallilla laadittu tietosisällön kuvaus esitetään yleensä graafisena kaaviona kaaviotekniikoissa paljon vaihtelua tällä kurssilla käytetään graafisena esitystekniikkana UML:n luokkakaaviota 1 2 Kohdetyyppi (yksilötyyppi, entity type) määritelmä joukolle samankaltaisia kohteita, joihin liittyviä tietoja halutaan tallentaa tai käsitellä kohteet voivat olla abstrakteja tai konkreettisia Esimerkkejä: kurssi oppitunti kurssisuoritus ilmoittautuminen suunnittelija jäsentää kohdealuetta ja päättää kohdetyypit kohdetyypi (UML kaaviossa) <<entity>> 3 4 Attribuutti (attribute) Kohteiden ominaisuudet esitetään datana kohdetyyppikohtaisten attribuuttien ja niiden arvojen avulla kohteen ominaisuudelle annettu nimi attribuutit määritellään tyyppitasolla = kaikille kohdetyypin kohteille Esimerkkejä kohdetyyppiin liittyvistä attribuuteista: nimi syntymävuosi opiskelun aloitusvuosi pääaine 5 kohdetyyppi: opettaja määrittelee attribuutti: sukupuoli arvojoukko: {M (=mies),n (=nainen),t (=tuntematon)} määrittelee arvon tulkinta sukupuoli=m kuvaus datana 6 Harri Laine 1
Attribuutti: voi olla yksiarvoinen (:syntymävuosi) tai moniarvoinen (opettaja:suoritettu tutkinto) arvo voi olla pysyvä (:syntymävuosi) tai muuttuva (:osoite) voi olla pakollinen (:nimi) tai valinnainen (:puhelinnumero) arvoa voidaan käyttää kohteen identifiointiin (:numero) Attribuutit UML-luokkakaaviossa Opiskelijanumero <<id>> Nimi Syntymävuosi Opiskelun aloitusvuosi Pääaine opettaja Henkilönumero <<id>> Nimi Tutkinto [] 7 moniarvoinen [voitaisiin antaa arvojen määrä Jos se tiedetään esim 1..3] identifiointiin käytettävä 8 Yhteys (relationship) mallintaa kohteiden välistä kytkentää on saanut aikaan kurssisuorituksen oppitunti kuuluu kurssille ilmoittautuminen kohdistuu kurssiin ilmoittautuminen koskee a Tieto yhteyden olemassaolosta tallennetaan datana luento 31.10.07 10-12 salissa B123 kuuluu TIKAPE kurssiin Yhteydet määritellään kohdetyyppien välisinä ja toteutuvat yksilötasolla tyypin kohteiden välisinä Yhteydelle voidaan antaa nimi, samoin osapuolten roolille yhteydessä on saanut aikaan kurssisuorituksen nimi voisi olla suoritus n rooli: suorittaja kurssisuorituksen rooli: kohde 9 10 Yhteydet osallistumisrajoitteilla kuvataan kohdetyypin ja yhteyden välistä suhdetta (rakenteellista sääntöä) miten kohdetyypin kohteet osallistuvat yhteyksiin suoritus rooli suorittaja: voi olla tässä roolissa kytkeytynyt moneen suoritukseen mutta ei välttämättä yhteenkään rooli kohde: kurssisuoritus voi olla tässä roolissa kytkeytynyt vain yhteen an, eli kurssisuorituksella on vain yksi suorittaja. Henkilöllä ------------- 0..1 Matkakohdetta 11 12 Harri Laine 2
Henkilöllä ---------------------- 0..1 Matkakohdetta Matkakohteessa -------1..1 Henkilöä Henkilö 0..1 ------------- 0.. Matkakohde Henkilö 1..1 ------- 0..1 Matkakohde Esim: matkatoimiston kohdevastaava 13 Esim. Matkatoimiston opas 14 Henkilö 0.. ------------- 0.. Matkakohde Henkilö 1.. ------------- 0.. Matkakohde Esim: matkailu 15 Esim: kohteen myynti 16 Yhteydet UML-luokkakaaviossa rooli Yhteydet, joissa molemmat osapuolet saman tyyppisiä suoritus suorittaja kohde 1 0.. kurssisuoritus Kurssi seuraaja edeltäjä on esitietona kurssisuoritus mukana tasan yhdessä yhteydessä (oletusarvo) lla voi olla nolla tai useampia suorituksia ( 0.. on sama kuin ) 17 18 Harri Laine 3
Yhteyksien attribuutit Joissain ER-malliperheen malleissa voidaan myös yhteyksiin liittää attribuutteja henkilön ja yhdistyksen väliseen jäsenyysyhteyteen voitaisiin liittää attribuutti alkamisaika henkilö yhdistys Alisteiset kohdetyypit (weak entity type) Kohteet voivat olla riippumattomia tai alisteisia jollekin toiselle kohteelle. Alisteinen kohde on olemassaoloriippuva alistavasta kohteesta. Alistettu kohde on koko olemassaolonsa ajan kytkeytyneenä yhteyden kautta samaan kohteeseen. huone alisteinen rakennukselle kurssisuoritus alisteinen lle kurssisuoritus alisteinen kurssille jäsenyys alkamisaika 19 20 Alisteiset kohdetyypit ja alistussuhteet UMLluokkakaaviossa Sisältyvät kohdetyypit rakennus kurssi henkilö sisältyvyys, eli jokainen nainen on myös henkilö huone kurssisuoritus johtaja nainen 21 22 Tietosisällön analysointi Määrittelyprosessi Kokonaisvaltainen lähestymistapa: pyritään löytämään kerralla koko tietosisältöä kuvaava malli hankalaa, jos kohdealue on laaja ensin karkea yleiskuva, sitten lisää yksityiskohtia Tietokohteet ryhminä, joita sitten tarkennetaan Osista kokonaisuuteen: jaetaan kokonaisuus osiin ja tehdään osakohtaisia malleja, jotka sitten yhdistetään kokonaismalliksi osa voisi olla jonkin käyttötapauksen tietosisältö Edetään alhaalta ylös yksityiskohdista yleiskuvaan Yhdistelyn ongelmat (homonyymit, synonyymit, mallintaminen eri tavoin) Kartoita tietokohde-ehdokkaita. Karsi ehdokkaita. Tunnista tietokohteiden väliset yhteydet. Täsmennä kohdekuvauksia määrittelemällä attribuutit ja niiden arvojoukot. Määrittele yhteyksiin liittyvät osallistumisrajoitteet. Tarkista onko määritelty tietosisältö tarkoitukseensa soveltuva, täydennä 23 24 Harri Laine 4
Kohteiden kartoitus Laadi luettelo tarkasteltavan ilmiön kannalta keskeisistä kohteista tai ilmiöistä, jotka voisivat tulla kyseeseen tietokohteina: toimintaan osallistujat, toiminnan kohteet, toimintaan liittyvät tapahtumat, materiaalit, tuotteet ja välituotteet, toiminnalle edellytyksiä luovat asiat. Tekstianalyysi kartoitustapana Kartoituksen pohjana voi käyttää vapaamuotoista tekstikuvausta tarkasteltavasta ilmiöstä. Kuvauksesta alleviivataan tietokohde-ehdokkaita ja kerätään ne luetteloon. Ehdokkaat esiintyvät kuvauksessa usein subjekteina tai objekteina. Verbit voivat ilmaista yhteyksiä, samoin genetiivit. Alustavaa karsintaa voi tehdä sen perusteella, onko asia lainkaan oleellinen mallinnettavan ilmiön kannalta. Yksinkertaista, mutta toimivaa käytännössä kuitenkaan tekstikuvausta ei ole tiedot pitää kaivaa esiin haastattelemalla ja tutustumalla erilaisiin dokumentteihin >>> Katso suunnitteluistunnon nauhoitus verkkomateriaalista 25 26 Analysoi kartoituksen tulosta Löydetyt ehdokkaat käydään läpi ja arvioidaan sopiiko ehdokas tietokohteeksi Liittyykö kohteeseen tietosisältöä, joka on välttämätöntä järjestelmän kannalta yleensä pitäisi olla useita attribuutteja Tarvitaanko tietoa kohteiden olemassaolosta? Onko asia riittävän tärkeä kohdealueen kannalta? Eroon synonyymeistä Karsintaa ja ehdokkaiden kartoitusta voidaan joutua tekemään iteratiivisesti. Ensimmäinen karsintakierros ei välttämättä tuota lopullista tulosta. Määrittele yhteydet Yhteyksiä kohteiden välille voi etsiä vapaamuotoisesta kuvauksesta: verbit genetiivit muut ilmaukset, jotka kuvaavat kytkentää Yhteyksienkin suhteen tulisi miettiä onko yhteys oleellinen tarkasteltavan ilmiön kannalta? onko se rakenteellinen? (vallitseva asiaintila) Ei pitäisi jäädä irrallisia kohteita Asia pitäisi esittää vain kertaalleen: johdettavissa olevat yhteydet karsitaan tai merkitään Älä piilota yhteyksiä attribuuteiksi! 27 28 Määrittele attribuutit Attribuutteja saattaa löytyä vapaamuotoisesta kuvauksesta. Yleensä niiden löytäminen edellyttää lisäselvityksiä kohdealueesta, esimerkiksi toiminnan osapuolten haastatteluja. Attribuuttien kohdalla pitäisi myös selvittää, mihin niitä tarvitaan. Ja uudelleen: Älä piilota yhteyksiä attribuutteihin! Selvitä yhteyksiin liittyvät rajoitteet Osallistumisrajoitteiden avulla ilmaistaan rakenteellisia sääntöjä. Säännöt eivät välttämättä tule esiin vapaamuotoisessa kuvauksessa, vaan edellyttävät tarkempaa kohdealueen analysointia. 29 30 Harri Laine 5
Eräitä mallinnusongelmia Tietoon liittyvät metatiedot, Esim. Työntekijän palkka Jos halutaan tietää vain nykyinen palkka voidaan palkka määritellä työntekijän attribuutiksi (a) Jos halutaan säilyttää pakkahistoria, asia tulee hankalammaksi, palkan nauttiminen onkin mallinnettava tietokohteeksi, johon liittyy attribuutteja (b) Henkilö palkka (a) Henkilö (b) Henkilön palkka Palkka Alku_pvm Loppu_pvm 31 Harri Laine 6