300 likes | 430 Views
4. Laajennettu ER- (=EER) ja objektimallinnus. Monissa liike-elämän ja teollisuuden perinteisissä tietokantasovelluksissa ER-malli on riittävän voimakas kuvaamaan tietokannan kaavaa.
E N D
4. Laajennettu ER- (=EER) ja objektimallinnus • Monissa liike-elämän ja teollisuuden perinteisissä tietokantasovelluksissa ER-malli on riittävän voimakas kuvaamaan tietokannan kaavaa. • Nykyisin on kuitenkin paljon sovellusalueita, joissa perinteinen ER-mallinnus on riittämätön. Tällaisia sovelluksia ovat mm. CAD/CAM-tietokannat, tiedonlouhinta (data mining), tietovarastointi ja multimediatietokannat. Näihin tietokantoihin kohdistuvien vaatimusten esittämiseksi mahdolli-simman tarkoin ja selkeästi tarvitaan ns. semanttista datan mallinnusta. • Näitä sovelluksia varten kehitetään usein oliokeskeisiä tietokantoja, joiden hahmottamiseksi esitellään aluksi laajennettu ER-malli eli EER-malli (EER = enhanced entity relationship).
4.1. Aliluokat, yliluokat ja periytyvyys • Tietokannan funktionaalisia vaatimuksia voidaan kuvata myös OMT- (Object Modeling Technique) ja UML-kuvauskielen (Universal Modeling Language) avulla. EER-malli sisältää kaikki ER-malliin sisällytetyt ominaisuudet tietokannan kaavan kuvaamiseksi. • Lisäominaisuuksia ovat mm. erikoistaminen ja yleistäminen, joihin liittyvät tiiviisti ali- ja yliluokkien käsitteet, kategoriat sekä attribuuttien ja suhteiden periytyminen. • EER-mallin avulla muodostettavaa tietokannan kaaviota kutsutaan laajennetuksi ER-kaavioksi tai EER-kaavioksi. • Entiteetin aliluokalla tarkoitetaan tietyn kriteerin mukaisesti rajoitettua entiteettityypin edustajien osajoukkoa. Esimerkiksi työntekijä-entiteetti voitaisiin jakaa ositteisiin vaikkapa ammattinimikkeen (mm. sihteerit, insinöörit, johtajat, teknikot) tai palkkaustyypin (mm. tuntipalkka, kuukausipalkka, urakkapalkka) mukaisesti.
Jokaisella tietyn entiteettityypin aliluokan edustajalla on myös sen kantaentiteettityypin eli yliluokan ominaisuudet. • Tiettyyn aliluokkaan liittyvistä lisäominaisuuksista käytetään nimitystä spesifiset eli paikalliset attribuutit. Yliluokan ja minkä tahansa sen aliluokan välistä suhdetta kutsutaan yli- ja aliluokan tai lyhyemmin luokan ja sen aliluokan väliseksi relaatioksi. Esimerkki: työntekijän ja sihteerin tai työntekijän ja teknikon välinen relaatio. • Edustaessaan yliluokkaansa aliluokan jäsen esiintyy samanlaisessa asemassa kuten kaikki muutkin yliluokan edustajat. • Toimiessaan aliluokkansa edustajana aliluokan jäsen erottuu aliluokkaan kuulumattomista yliluokkansa edustajista ainakin jonkin erityispiirteen osalta. Vaikka aliluokan esiintymät ovat yliluokkansa tarkennuksia, ne edustavat kuitenkin käsitteellisesti samaa esiintymää kuin niiden yliluokassa oleva vastine. • Mikäli esiintymä kuuluu johonkin aliluokkaan, sen on kuuluttava myös kyseisen aliluokan yliluokkaan, eli ns. kantaentiteettiin. Esimerkki: jos henkilö on teknikko, hän on samalla myös työntekijä. • Entiteetin tyyppi = entiteetin attribuutit + relaatiot, joihin se osallistuu. • Tyypin periytyvyys: aliluokan edustaja perii kaikki yliluokkansa attribuutit arvoineen sekä relaatiot, joihin yliluokka osallistuu.
4.2. Erikoistaminen ja yleistäminen • Erikoistamisella tarkoitetaan entiteettityypin aliluokkien määrittelyä. Erikoistamisen kohteena olevaa entiteettityyppiä kutsutaan erikoistamisen yliluokaksi. • Erikoistaminen aliluokkiin voi tapahtua erilaisin kriteerein. Esimerkki: työntekijä-entiteettityypille muodostettava aliluokkien joukko { sihteeri, insinööri, teknikko } on työntekijän erikoistus ammattinimikkeen suhteen. Vastaavasti työntekijät voitaisiin erikoistaa palkkaustyypin mukaan vaikkapa joukkoon { tuntipalkatut, kuukausipalkatut }. • Aliluokilla voi olla erilaisia paikallisia attribuutteja ( esimerkiksi sihteereillä konekirjoitusnopeus, insinööreillä insinööritutkinnon toimiala jne.). • Lisäksi voidaan määritellä aliluokille erityisiä relaatioita, jotka eivät ole voimassa yliluokassa (esimerkiksi tuntityöntekijöiden kuuluminen ammattiliittoon jne.). • Kirjan esimerkki 4.1. selkeyttää käsitteitä.
Aliluokkaan kuuluminen voidaan tulkita toimimiseksi jossain tarkennetussa roolissa ( vrt. kuka tahansa työntekijä vs. insinööri yms.). • Luokan ja sen aliluokan välinen yhteys muistuttaa 1:1 -suhdetta niiden esiintymien välillä. Aliluokan edustaja on sama tapaus kuin luokkatasoa korkeammalla oleva, mutta se esiintyy aliluokassa tarkennettuna, erikoistuneena johonkin rajoitettuun alijoukkoon kuuluvaksi. • Perusteita erikoistamiselle: • joitain attribuutteja ei välttämättä tarvita luokan kaikille edustajille, vaan ainoastaan johonkin luokan tiettyyn alijoukkoon kuuluville (esimerkiksi konekirjoitusnopeus: (vain sihteerit)) • voidaan muodostaa relaatioita, jotka on tarpeen määritellä vain tietyn aliluokan edustajille (esimerkiksi ammattiliittoon kuuluminen) • Yleistäminen on erikoistamiselle käänteinen abstrahointiprosessi, jossa yritetään löytää luokkien yhteisiä piirteitä ja koota niistä luokille yhteinen yliluokka. • Esimerkki:henkilö- ja kuorma-autoille voitaisiin muodostaa yliluokka kulkuneuvo. Yhtäläisesti voitaisiin yleistää sihteeri, teknikko ja insinööri työntekijäksi. • Sekä luokkaa että sen aliluokkia esitetään EER-kaaviossa entiteettityyppeinä, sillä ne voivat kumpikin osallistua relaatioihin.
4.3. Erikoistamisen ja yleistämisen rajoitteet ja piirteet • Koska erikoistaminen ja yleistäminen ovat toisilleen käänteiset lähestymistavat, puhutaan jatkossa yleensä vain erikoistamisesta. • Samasta entiteettityypistä voidaan tehdä useita erikoistuksia (vrt. työn-tekijän luokitteleminen ammattinimikkeen tai palkkaustyypin mukaan ). • On myös mahdollista, että aliluokkia on määritelty ainoastaan yksi (esimerkiksi johtajien erottelu muista työntekijöistä). • Erittely aliluokkiin tapahtuu yleensä joidenkin attribuuttien arvojen yhdistelmän mukaan. Tällöin on kyseessä predikaatti- tai ehtomääritteinen aliluokka (predicate- / condition-defined subclass). Edelleen, jos vain yhden attribuutin arvo määrää aliluokan, on erittely attribuutti-määritteinen. • Erittelykriteerinä oleva attribuutti merkitään EER-kaavioon näkyviin luokan ja sen erikoistumisjaottelua kuvaavan pallukan väliin. • On myös mahdollista, että käyttäjä itse tekee jaottelun eri aliluokkiin, jolloin jaottelu ei tapahdu automaattisesti jonkin attribuutin arvon perusteella. Tällä tavoin määritellystä aliluokasta käytetään nimitystä käyttäjän määrittelemä aliluokka (user-defined subclass).
Erikoistamiseen liittyy läheisesti ns. erillisyysrajoitus. On mahdollista vaatia, että erikoistettaessa sama entiteettityypin esiintymä voi kuulua ainoastaan yhteen kriteerin mukaiseen aliluokkaan. Tällöin on kyse erillisistä aliluokista (disjoint subclasses). Tätä ominaisuutta merkitään kaaviossa d-symbolilla erikoistamista kuvaavassa pallukassa. Esimerkki erillisistä ositteista: työntekijän luokittelu palkkaustavan mukaan. • Mikäli aliluokkien ei tarvitse olla erillisiä osituskriteerin suhteen, ne voivat olla päällekkäisiä. Esimerkki: insinööri voi olla samalla myös tekninen johtaja. • Erikoistaminen voi osallistumisen tapaan olla osittaista tai täydellistä. • Mikäli tietyn luokan esiintymän on kuuluttava ainakin johonkin sen aliluokista, on kyseessä täydellinen erikoistaminen (esimerkiksi työntekijän palkkaustyyppi). • Jos puolestaan aliluokkaan kuuluminen ei ole välttämätöntä, on kyseessä osittainen erikoistaminen. Esimerkki: kaikilla ammattiryhmillä ei välttämättä ole erityispiirteitä, jotka olisivat mielenkiintoisia.
Erikoistamisen erillisyys- ja täydellisyyskriteerit ovat toisistaan riippumattomia, joten kaikki niiden neljä kombinaatiota ovat mahdollisia: • erillinen ja täydellinen (esimerkiksi työntekijän palkkaustapa yrityksessä: jokaisella henkilöllä on oltava joko kuukausi- tai tuntipalkka, muttei molempia) • erillinen ja osittainen (esimerkiksi työntekijän ammattinimikkeen mukainen tarkentava erittely sihteereihin, insinööreihin ja teknikoihin: henkilöllä voi olla vain jokin em. ammattinimikkeistä, muttei välttämättä mitään, sillä henkilö voisi olla vaikkapa tutkija, jota varten ei ole perustettu erillistä aliluokkaa) • päällekkäinen ja täydellinen (esimerkiksi yrityksen tuotannossa tarvittavat osat: ne on väistämättä hankittava jollain tavalla joko ostamalla ja/tai valmistamalla itse) • päällekkäinen ja osittainen (em. kolmen ammattinimikkeen valikoima lisättynä valikoiman erillisyysrajoituksen ulkopuolisella johtajalla (kts. kirjan kuva 4.6): henkilön ammattinimike voisi olla – paitsi joko johtaja tai yksi kolmikosta {sihteeri, insinööri, teknikko} – myös kumpikin samanaikaisesti, muttei välttämättä mikään näistä (esim. tutkija)!
Vaikka erikoistaminen ja yleistäminen ovat näennäisesti toisilleen vastakkaisia operaatioita, on erikoistaminen kuitenkin useammin osittaista kuin yleistäminen, sillä yleistettäessä kaikki yleistämisen kohteena olevat luokat ovat jo usein määritellyt, kun taas erikoistettaessa kaikkia tapauksia ei välttämättä ole vielä ehditty huomioida. • Tietueiden lisääminen ja poistaminen tietokannasta, jossa on luokka-aliluokkarakenteita: • Jos yliluokan tietue poistetaan, kyseinen tietue tuhotaan automaattisesti myös kaikista niistä aliluokista, joissa se on edustettuna. • Mikäli yliluokkaan lisätään uusi tietue, se lisätään automaattisesti myös kaikkiin niihin predikaatti- (tai attribuuttimääritteisiin) aliluokkiin, joihin kuulumisehdot tietue täyttää. • Mikäli aliluokkiin kuulumisrajoite on täydellinen, tietueen lisääminen yliluokkaan edellyttää, että tietue lisätään ainakin yhteen sen aliluokista. • Erikoistamiselle (yleistämiselle) muodostuu joko hierarkia- tai hiladiagrammi.
Hierarkia muodostuu silloin, kun jokainen aliluokka osallistuu aliluokkana ainoastaan yhteen luokka/aliluokka-relaatioon (kts. kirjan esimerkki 4.4: työntekijöiden luokitteleminen ammattiryhmiin) • Jos puolestaan luokka osallistuu aliluokkana useampaan kuin yhteen luokka/aliluokka-relaatioon, muodostuu hila (=lattice). • Kirjan esimerkki 4.6: tekninen johtaja (=engineering manager) on paitsi johtaja, niin samalla myös insinööri ja kuukausipalkkaa nauttiva työntekijä. Se on niin sanottu jaettu aliluokka. Teknisellä johtajalla on siten ominaisuuksinaan työntekijän perusattribuutit, insinööriin, johtajaan ja kuukausipalkkaiseen työntekijään liittyvät erikoisattribuutit sekä lisäksi omat paikalliset attribuuttinsa. • Mikäli luokka perii ominaisuuksia kahdelta tai useammalta yliluokalta, kyseessä on ns. moniperintä. • Kirjan esimerkki 4.7. on laajempi ja monimutkaisempi esimerkki yliopiston tietokannasta. Kannattaa huomioida, että sama entiteetin esiintymä voi esiintyä tietokannan graafin useassa eri alimman tason solmussa eli ns. lehtisolmussa. Esimerkki: valmis opiskelija voi olla lisäksi myös vaikkapa tutkimusassistentti.
Mikäli samat attribuutit peritään yliluokilta useammin kuin kertaalleen, niitä ei enää toisteta aliluokassa (Esimerkki: henkilön attribuuttien periytyminen opiskelija-assistentille sekä luokan ’opiskelija’ että ’työntekijä’ kautta). • Jos järjestelmä ei tue moniperintää, joudutaan ne aliluokat, joissa sitä tarvittaisiin, osittamaan niin moneen ositteeseen, että kaikki mahdolliset yliluokkien kombinaatiot saadaan esitettyä. Tämä voi aiheuttaa melkoista aliluokkien määrän kasvua. • Esimerkki: Henkilö voisi olla samanaikaisesti vaikkapa työntekijä, alumni ja opiskelija. Mikäli kaikkia näiden luokkien kombinaatiot haluttaisiin esittää ilman moniperintää, olisi perustettava näiden rinnalle aliluokat {työntekijä + alumni}, {työntekijä + opiskelija}, {alumni + opiskelija} sekä {työntekijä + alumni + opiskelija}. • Samantyyppinen tilanne syntyisi, vaikka järjestelmä tukisikin moniperintää, mutta ei hyväksyisi kahden eri alkuperäisen entiteettityypin yhdistämistä (tähän palataan myöhemmin).
Yliopiston tietokannan erikoistaminen eli mallintaminen ylhäältä alaspäin ( yksityiskohtaisempi kuvaus kirjan esimerkissä 4.7 ) : • Yhtäläisesti lähestymistapa olisi voinut olla alhaalta ylöspäin, eli yleistäminen. • Käytännön suunnittelussa etenemistä tapahtuu molempiin suuntiin, eli tarpeen mukaan joko erikoistetaan tai yleistetään.
4.4. Unionityypin mallinnus kategorioiden avulla • Tähän mennessä olemme käsitelleet ainoastaan sellaisia moniperintä-tilanteita, joissa luokan kaikkien yliluokkien ominaisuudet on peritty yhdeltä ja samalta entiteettityypiltä. Esimerkki: teknistä johtajaa kuvaava aliluokka: kaikki matkan varrella perityt luokat ovat olleet HENKILÖn aliluokkia. • Mikäli luokalla perii usealta alkuperäiseltä entiteettityypiltä ominaisuuksia, on kyseessä unionityyppi eli kategoria. • Esimerkki unionityypin tarpeellisuudesta: auton omistajan kuvaaminen. Omistaja voi olla joko yritys, pankki tai yksityishenkilö. Siten kategoria OMISTAJA muodostuu em. entiteettityyppien unionista. Tarkastellaan kirjan esimerkkiä 4.8. • Unionia merkitään entiteettien yhdistymistä kuvaavassa renkaassa -symbolilla.
Unionityypin eli kategorian edustajan tarvitsee sijaita vain yhdessä sen yliluokista (esimerkiksi kulkuneuvon omistaja on yleensä vain yksi kolmesta edellä mainitusta) - päinvastoin kuin silloin, kun yliluokka ei muodostu unionista, jolloin aliluokan edustajan pitää löytyä kaikista sen yliluokista (vrt. tekninen johtaja, jonka pitää olla sekä johtaja, insinööri että kuukausipalkkainen). • Jos kategoria on täydellinen, se edellyttää, että kaikkien unioniin osallistuvien entiteettityyppien esiintymät ovat edustettuina kategoriassa (vrt. kirjan 3. painoksen esimerkki 4.9. (b)). • Täydellinen kategoria merkitään kaksinkertaisella viivoituksella kategoriasta unionia kuvaavaan renkaaseen. • Mikäli kategoria on täydellinen, se voidaan esittää yhtäläisesti täydellisenä erikoistamisena (vrt. kirjan esimerkki 4.9. (b): jokaisen rakennuksen ja tontin on oltava samalla myös kategoriassa OMAISUUSLAJI (property). • Jos kategoria on puolestaan osittainen, ei kaikkien unioniin kuuluvien entiteettien tietueiden tarvitse olla edustettuna kategoriassa (vrt. kirjan esimerkki 4.9. (a)).
4.5. Esimerkki yliopiston tietokannasta EER-mallinnuksella ja mallin käsitteiden formaaleja määritelmiä • Tällöin ei kategorian korvaaminen erikoistamisella onnistu, sillä kaikkien unionin edustajien ei tarvitse enää kuulua kategoriaan. Tällöin aliluokkaan päätyisi tietueita, joilla ei ole edustajaa yliluokassaan ( vrt. kirjan 3. painoksen esimerkki 4.9. (a): kaikki yhtiöt ja yksityishenkilöt eivät välttämättä ole tilinomistajia ). • Käsitellään kirjan esimerkin 4.9. mukainen EER-kaavio yliopiston tietokannasta. • EER-mallin käsitteiden formaalit määrittelyt: • luokka on yleisnimitys entiteettien kokoelmalle, joka koostuu entiteettityypeistä, ali- ja yliluokista sekä kategorioista • aliluokka S on luokka, jonka kaikki esiintymät ovat jonkin sen yliluokan C osajoukkona, eli S C
Erikoistus Z = { S1, S2, ..., Sn } on aliluokkien joukko, joilla on sama yliluokka G, eli G/Si on luokka-/aliluokkarelaatio, kun i = 1, 2, ..., n. Vastaavasti G on aliluokkien Si yleistetty entiteettityyppi eli yliluokka. • Erikoistus on täydellinen, jos Si:tten unioni on G. • Jos Si Sj = , kun i j, niin erikoistus on erillinen, muutoin se on päällekkäinen. • C:n aliluokka S on predikaattimääritteinen, jos C:n attribuuttien ominaisuuksista voidaan päätellä, mitkä sen esiintymistä kuuluvat S:ään. Jos predikaattiin kuuluu vain yksi attribuutti, S on samalla attribuuttimääritteinen. Muutoin S on käyttäjän määrittelemä erikoistus. • Attribuuttimääritteinen erikoistus on erillinen, mikäli attribuutti on yksiarvoinen. • Kategoria T on unioni, jonka määräävät n kappaletta yliluokkia D1, D2, ..., Dn, n > 1, seuraavasti: T (D1 D2 ... Dn).
4.7. Astelukua 2 korkeamman asteen liittymätyypit 4.6. Erikoistamisen / yleistämisen ja perinnän esittäminen UML:n luokkadiagrammien avulla • Yksittäisen luokan kaikki aliluokat yhdistetään pystysuoran viivan avulla vaakasuoraan viivaan, jonka keskellä sijaitsee erikoistamisen lajia kuvaava kolmio. Tämä kolmio on puolestaan yhdistetty pystysuoralla viivalla yliluokkaan. Valkoinen kolmio kuvaa erillistä erikoistamista ja musta kolmio päällekkäistä (tarkastellaan aiheeseen liittyvää kirjan esimerkkiä 4.10.). • Yliluokasta käytetään myös nimitystä perusluokka ja alimman tason aliluokista nimitystä lehtiluokka. • Sekä yksinkertainen että moniperintä pystytään esittämään. • Tarkastellaan kertauksen vuoksi ternääristä relaatiota kuvaavaa kirjan esimerkkiä 3.10.
Kolmen entiteettityypin välinen relaatio tavaratoimitus ( =supply ) toimittajan, osan ja projektin välillä pitää sisällään kolme binääristä relaatiota: toimittaja — osa,toimittaja — projekti ja osa — projekti. Ternääristä relaatiota merkitään argumentteineen merkinnällä tavaratoimitus( t, o, p ), missä t, o ja p viittaavat suhteeseen osallistuviin entiteettityyppeihin. Vastaavasti siihen sisältyviä binäärisiä relaatioita merkitään seuraavasti: toimittaa_osaa( t, o ), osien_käyttö( o, p ) sekä toimittaa_projektille( t, p ). • Binääristen relaatioiden merkitys: • toimittaa_osaa( t, o ) sisältää kaikkien valmistajien toimittamat osat mille projektille tahansa. • toimittaa_projektille( t, p ) sisältää kaikkien valmistajien eri projekteille tekemät minkä tahansa osan toimitukset. • osien_käyttö( o, p ) sisältää kaikkien osien toimitukset eri projekteille riippumatta siitä, mikä toimittaja on milloinkin kyseessä.
Binääristen relaatioiden esiintymien toimittaa_osaa( t, o ), osien_käyttö( o, p ) ja toimittaa_projektille( t, p ) olemassaolo EI TAKAA, että myös ternäärisen relaation tavaratoimitus( t, o, p ) olisi olemassa, sillä ternäärinen relaatio sitoo kaikki kolme entiteettityyppiä toisiinsa, kun taas binäärisissä yksi entiteettityypeistä jää huomiotta. • Esimerkki: toimittaa_osaa( t, o ): TOIMITTAJA OSA T1 kuulalaakeri T1 pultti T2 hammaspyörä T2 kuulalaakeri T3 venttiili toimittaa_projektille( t, p ): TOIMITTAJA PROJEKTI T1 risteilijä T1 säiliöalus T2 säiliöalus T3 risteilijä
osien_käyttö( o, p ): OSA PROJEKTI kuulalaakeri risteilijä kuulalaakeri säiliöalus pultti risteilijä pultti säiliöalus hammaspyörä säiliöalus Selvästikin ovat voimassa toimittaa_osaa( T1, kuulalaakeri ), toimittaa_projektille( T1, säiliöalus ) ja lisäksi osien_käyttö( kuulalaakeri, säiliöalus ), mutta sen sijaan ei välttämättä pidä paikkaansa, että toimittaja T1 huolehtisi kuulalaakerien toimittamisesta säiliöaluksiin, sillä yhtäläisesti sen voisi tehdä myös toimittaja T2. • Kaikki tietokantojen suunnitteluvälineet eivät salli ternääristen tai sitä korkeamman asteisten relaatioiden esittämistä, vaan on turvauduttava heikon entiteettityypin käyttöön. Esimerkissämme toimitustapahtuma esitettäisiin heikkona entiteettityyppinä, jolla olisi attribuuttina toimitettu tavaramäärä. Omistajatyyppejä olisivat kaikki kolmikosta projekti, osa ja toimittaja. Toimitustapahtumalla ei olisi lainkaan osittaisavainta.
Tarkastellaan seuraavaksi kirjan esimerkkiä 4.12, jossa on muodostettu ternäärinen relaatio luennoitsijan, kurssin ja lukukauden välille. • Kannattaa huomioida, että ternäärisen relaation esiintymän luentokurssi( luennoitsija, kurssi, lukukausi ) olemassaolo takaa myös sen, että samoihin yksittäisten entiteettityyppien edustajiin liittyvät binääristen relaatioiden esiintymät luennoi( luennoitsija, kurssi ), luennoidaan( kurssi, lukukausi ) sekä pystyy_opettamaan( luennoitsija, kurssi ) ovat myös samalla olemassa. Esimerkki: ternäärisen relaation esiintymä luentokurssi( Tietäväinen, kryptografia, sl98 ) takaisi myös, että 1) luennoitsija nimeltä Tietäväinen opettaa jotakin kurssia syyslukukaudella 1998! 2) joku luennoi kurssia kryptografia syyslukukaudella 1998! 3) luennoitsija Tietäväinen pystyy ylipäätään opettamaankurssia kryptografia!
Kuten jo edellä todettiin, binääristen relaatioiden esiintymien olemassaolo ei takaa ternäärisen relaation esiintymän olemassaoloa, ellei jokin binäärisistä relaatioista ole lukumääräsuhteeltaan 1:1. Esimerkki: mikäli tiedetään, että kurssi 'Kryptografia' luennoidaan syyslukukaudella 1998, luennoitsija nimeltä 'Tietäväinen' pitää kyseisellä lukukaudella opetusta, luennoitsija 'Tietäväinen' pystyy opettamaan kryptografiaa ja kutakin kurssia pystyy opettamaan vain yksi opettaja, on voimassa myös ternäärisen relaation esiintymä luentokurssi( Tietäväinen, kryptografia, sl98 ). • Myös astelukua 2 korkeammille relaatioille voidaan esittää lukumääräsuhde ja osallistumisrajoite. • Mikäli ternäärisen relaation lukumääräsuhde on muotoa 1 : ( M : N ), ei relaatioon kuuluvien esiintymien avaimeen tarvita tietokenttää siitä entiteettityypistä, johon arvo 1 kohdistuu. Esimerkki: Oletetaan, että relaation tavarantoimitus( toimittaja, osa, projekti )lukumääräsuhde on 1 : ( M :N ). Tällöin tiettyä osaa yksittäiselle projektille pystytään tilaamaan vain yhdeltä toimittajalta. Siten jokainen osa - projekti -pari määrää yksikäsitteisesti relaatioon kuuluvat esiintymät, joten toimittajaa ei tarvita avaimeksi relaatioon.
4.8. Tiedon abstrahointiin ja tietämyksen esittämiseen liittyviä käsitteitä • Tietämyksen esittämisen ( knowledge representation, lyh. KR ) tavoitteena on mallintaa tarkastelun kohteena olevaa pienoismaailmaa niin tarkoin, että mallin perusteella voidaan johtaa tiettyjä tuloksia, tehdä päätelmiä tai pelkästään vastata kysymyksiin. • Tietämyksen esittämisen tavoitteet ovat pitkälti samoja kuin semanttisissa tietomalleissa, mutta joitakin erojakin löytyy. • Yhtäläisyyksiä: Molemmissa lähestymistavoissa pyritään hahmottamaan tietokannan keskeiset kokonaisuudet ja niiden piirteet samalla, kun merkityksettömät yksityiskohdat jätetään huomiotta. Kummassakin lähestymistavassa on käytettävissä käsitteitä, operaatioita, ja rajoituksia sekä kieliä tiedon mallintamiseen.
4.8.1. Luokittelu ja instantiointi • Eroavuuksia: Toisin kuin semanttisissa tietomalleissa, KR:ssä pystytään esittämään tietoa laajemmin, kuten sääntöinä (johtamista, deduktiota ja hakustrategioita varten), käsittelemään puuttuvaa ja oletuksen mukaista tietoa, aikaan ja paikkaan sidoksissa olevaa tietoa jne. KR:ssä on tarjolla päättelyvälineet, joiden avulla voidaan johtaa uusia faktoja tietokannassa jo paraikaa olevista, kun taas semanttisen tietomallin mukaisessa tietokannassa tyydytään usein pelkästään kyselyihin vastaamiseen. KR:ssä myös tiedon instanssien esittäminen mallinnuksen yhteydessä on mahdollista. • Luokittelun tavoitteena on koota yhteen samankaltaiset entiteetit (objektit) entiteettityypiksi (luokaksi). • Yhteen entiteettityyppiin kuuluvilla esiintymillä on saman tyyppiset attribuutit, relaatiot ja rajoitukset.
4.8.2. Tunnistaminen • Instantiointi on luokittelulle päinvastainen tarkastelu. Sillä tarkoitetaan yksittäisten entiteettityyppien esiintymien tarkastelua. • Luokan yksittäisen objektin ja itse luokan välillä vallitsee suhde Y_ON_LUOKAN_X_ESIINTYMÄ. • Luokan kaikkia yleisiä ominaisuuksia täyttämättömiä objekteja, poikkeavia objekteja, voidaan hyväksyä KR:ssä vapaammin kuin EER:ssä. • EER:ssä esiintyvät eri luokkatyypit ovat entiteettityyppi, aliluokka, kategoria ja suhdetyyppi. • EER:ssä ainoa suhde kahden eri luokan välillä on luokka-aliluokkasuhde, mutta KR:ssä myös ns. metaluokat ovat laillisia. Metaluokassa luokka voi toimia jonkin toisen luokan esiintymänä. • Tunnistamisella tarkoitetaan abstrahointiprosessia, jossa luokat ja objektit pystytään erottelemaan toisistaan jonkin tunnisteen perusteella.
Tietokannan eri luokat pitää pystyä erottamaan toisistaan, samoin luokkiin kuuluvat objektit. • Jokaisella EER-mallin luokalla on oltava erillinen nimi riippumatta siitä, onko kyseessä entiteettityyppi, aliluokka, kategoria tai suhdetyyppi. • Luokan nimi riittää erottelemaan eri luokat toisistaan. • Kahden tietueen tunnistaminen samaa reaalimaailman objektia tarkoittaviksi: yhteys tietueiden välille määriteltävä suunnitteluvaiheessa. Esimerkki: Henkilö-entiteettityypin tietue <Matti Meikäläinen, 7944162, 249-1122> sekä opiskelija-entiteettityypin tietue <89446, TKO, 1997> voivat edustaa samaa reaalimaailman henkilöä, mutta tietueiden tunnistaminen toisiinsa liittyviksi on sellaisenaan mahdotonta yhteisten tietokenttien puuttuessa.
4.8.3. Erikoistaminen ja yleistäminen • Luokan sisällä attribuuttien nimeämisen on oltava yksikäsitteinen. • Yhden luokan sisällä tietueet tunnistetaan avainattribuuttien arvojen yhdistelmän mukaan. • Mikäli kyseessä on heikko entiteetti, tietueet tunnistetaan osittaisavaimen ja omistajaentiteettien avainkenttien mukaan. • Erikoistamalla pyritään luokan objektit jakamaan aliluokkiin mielekkään kriteerin mukaisesti. • Yleistäminen tuottaa puolestaan korkeamman tason abstraktion usean luokan yhteisille piirteille. • Erikoistaminen tarkoittaa käsitteellistä hienosäätöä, yleistäminen puolestaan käsitteellistä synteesiä. • Luokan ja sen yliluokan välillä vallitsee suhde Y_ON_X:N_ALILUOKKA.
4.8.4. Aggregaatio ja assosiaatio • Aggregaatio tarkoittaa koosteisen objektin muodostamista komponenteistaan. • Aggregaatiota esiintyy kolmessa eri kohdin: • Objektin attribuuttien arvojen kerääminen koko objektin muodostamiseksi. • Aggregaation esittäminen normaalina relaationa. • Muodostettaessa korkean tason koosteinen objekti. Tätä ominaisuutta ei EER:ssä tueta. • Assosiaatiolla tarkoitetaan toisistaan riippumattomien luokkien välistä yhteyttä. Tätä kuvataan EER:ssä relaatioina (UML:ssä käytetään assosiaatio-nimitystä). • Assosiaation tulkinta on 'X_ON_RELAATIOSSA_Y Z:N_KANSSA.
Esimerkkejä aggregaation eri lajeista (kirjassa 4.16.): 1. Luokka YHTIÖ on attribuuttien YhtiönNimi ja Osoite aggregaatio. 2. Luokkien YHTIÖ ja TYÖNHAKIJA välinen suhde: suhteen attribuutit YhteyshenkilönNimi ja YhteyshenkilönPuhelin liittyvät siihen yhtiön työntekijään, joka vastaa haastatteluista. 3. Uuden, korkeamman tason koosteisen objektin muodostaminen: haastattelutapahtuma. Esitettävä EER-mallissa kiertoteitse heikon entiteetin kautta, mikäli halutaan, että kaikki työpaikkahaastattelut eivät johda työtarjouksen syntymiseen, mikä on varsin ilmeistä. • Kahden entiteetin välisen assosiaation purkautuminen ei välttämättä johda entiteettien poistamiseen tietokannasta, mutta aggregaatiossa tulkinta on yleensä päinvastainen. Esimerkki: alainen-esimies -suhteen olemassaolon lakkaaminen kahden työntekijän väliltä ei välttämättä tarkoita, että kyseisistä henkilöistä ainakaan molemmat eivät enää olisi yrityksessä töissä. Sen sijaan koosteisen objektin, esimerkiksi auton, poistaminen tietokannasta aiheuttaa usein myös sen kaikkien rakenneosien, kuten moottorin, korin ja renkaiden poistamisen tietokannasta samalla.
4.8.5. Ontologiat ja semanttinen verkko • Monet verkosta ( www ) saatavilla olevat tiedot ovat dokumenttimuotoisia, joten niiden rakenne on huomattavasti vaikeammin hahmotettavissa kuin tietokannalla. • Semanttisella verkolla tarkoitetaan tutkimusprojektia, jonka tavoitteena on kehittää tietämyksen esittämismalleja, joita voitaisiin hyödyntää haettaessa johonkin yksittäiseen aihepiiriin kuuluvaa tietoa verkosta. • Semanttisten verkkojen kannalta keskeinen käsite on ns. ontologian käsite, joka voidaan tulkita käsitteellistämisen tarkentamisena. • Käsitteellistäminen pitää sisällään kaikki käsitteet, jotka ovat tietyn käyttäjäryhmän mielenkiinnon kohteena. • Haluttaessa etsiä tietyn aihepiirin mukaisia dokumentteja vaikkapa kahdella eri kielellä kirjoitettuina pitää käsitteellistäminen tarkentaa erikseen kummallekin haun kohteena olevalle kielelle ---> muodostuu kaksi erillistä ontologiaa. • Ontologian kuvaustekniikoina voidaan käyttää mm. sanakirjoja, taksonomioita, tietokannan kaavaa tai logiikan teoriaa.