460 likes | 978 Views
3.1. ER-malli ja sen laajennos. ER-malli on yleisimmin käytettyjä käsitetason malleja, erityisesti tietokannan suunnittelussa. Graafinen esitystapa Kuvaa tietokannan tietosisältöä ja tietyntyyppisiä rajoitteita. Perus-ER: Entiteetit, attribuutit, liittymät sekä niihin liittyvät lisäpiirteet
E N D
3.1. ER-malli ja sen laajennos • ER-malli on yleisimmin käytettyjä käsitetason malleja, erityisesti tietokannan suunnittelussa. • Graafinen esitystapa • Kuvaa tietokannan tietosisältöä ja tietyntyyppisiä rajoitteita. • Perus-ER: Entiteetit, attribuutit, liittymät sekä niihin liittyvät lisäpiirteet • Laajennettu (EER) malli: Ali-/ylityypit (-luokat), perintä, unionityypit. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Tilaus ER-mallin peruskomponentit • Entiteettityyppi:Edustaa reaalimaailmankonkreettisia tai abstraktejaolioita. • Heikko entiteettityyppi:Olemassa vain liittyneenävahvaan entiteettiin, eikäsillä ole omaa identifioivaaavainta (mahd. osittaisavain) Henkilö 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Työntekijä M Kuuluu 1 Osasto Henkilö 1 1 Mies Vaimo Avioliitto ER-mallin peruskomponentit (jatk.) • Liittymä (relationship): • Entiteettien välinen suhde, • Osapuolia 2 (binäärinen) taiuseampia (kork.asteinen) • Max-lukumääräsuhde 1 tai M(‘monta’) kunkin osapuolen suhteen. • Min-lukumääräsuhde 0 (osittaineneli valinnainen liittymä) tai > 0(totaalinen eli pakollinen liittymä;tuplaviiva) • Rekursiivisen liittymän osapuolilleroolinimet. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Työntekijä Nimi Moniarvoinen Avain (id) Osasto Työntekijä Toimipaikka Hetu Rakenteinen Johdettu Työntekijä Osoite Osasto #työntek Katuos Postino Postitmp ER-mallin peruskomponentit (jatk.) • Attribuutti:Entiteettiä tai liittymääkarakterisoiva ominaisuusErikoistapauksia: 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Työntekijä Hetu 1 Huoltaja M Nimi Lapsi ER-mallin peruskomponentit (jatk.) • Identifioiva liittymä:Heikolla entiteetillä ei ole täy- dellistä id-attribuuttia. Sen esiintymien identifiointiin tarvitaan (mahdollisen osittais-avaimen lisäksi) siihen liittyvän vahvan entiteetin id-attribuutti. • Huom! Oheinen esimerkki olettaa, että jos molemmat vanhemmat ovat työntekijöitä, vain toinen voi olla huoltaja. (Vrt. Company: ‘dependent’) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Kurssi-id M 1 Hetu Kurssi Opettaja Luennoi Onimi Kurssinimi M M 1 Osallistuu Liittyy Ohjaa M M M M M Opnro Pvm Tentti Suorittaa Opiskelija Opnimi Arvos. Esimerkki ER-kaaviosta 3-1-EER-malli Tuomisto 2006, Teuhola-2012
ER-mallin laajennuksia Entiteettien tyyppihierarkiat: • Kutsutaan jatkossa yli-/aliluokkasuhteiksi • Saadaan esim. erikoistamalla entiteettiluokasta aliluokkia tai (kääntäen) yleistämällä eli yhdistämällä useita entiteettiluokkia ylemmän tason luokaksi. • Ali-/yliluokkien esiintymäjoukkojen välillä sisältymissuhde • Aliluokka perii kaikki yliluokkansa attribuutit ja liittymät • Aliluokkia kannattaa muodostaa, jos niillä on lisäksi omia attribuutteja, liittymiä tai toimintoja. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
OsNo Hetu Työntekijä ‘d’=disjoint Osasto Nimi 1 d Johtaa 1 Sihteeri Teknikko Kouluttaja Johtaja Kirj.nop Oppiarvo Koul.ala Esimerkki luokkahierarkiasta • Sihteeri, teknikko ja kouluttaja ovat toisensa poissulkevia aliluokkia. Sen sijaan johtaja voi olla esim. teknikko. • Työntekijän ei ole pakko kuulua mihinkään aliluokkaan. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Henkilö Nimi d Mies Nainen Parran pit. #Synnyt. Esimerkki luokkahierarkiasta:erilliset ja kattavat aliluokat • Jokainen henkilö on joko mies tai nainen 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Henkilö Nimi ‘o’ = overlapping o Opettaja Opiskelija Oppiarvo OpPist Esimerkki luokkahierarkiasta:Päällekkäiset aliluokat • Opettaja voi olla samalla (jatko-)opiskelija • Henkilön ei tarvitse kuulua kumpaankaan aliluokkaan 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Henkilö Nimi o Opettaja Opiskelija Oppiarvo Opiskelija-assist. OpPist Tutkimusaihe Esimerkki entiteettiluokkien yhteisestä aliluokasta. • Kyseessä on ns. moni-perintä, eli opiskelija-assistentilla on sekä opettajan että opiskelijan attribuutit ja liittymät(henkilöattribuuttienlisäksi). 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Henk.lkm Kantavuus Ajoneuvo-id Ajoneuvo-id Hlöauto Kuorma-auto U Rek.ajoneuvo Rek.no Yleistys luokkahierarkiasta:unionityyppi eli kategoria • Kategoria ‘rekisteröity ajoneuvo’ voi olla henkilö- tai kuorma-auto, mutta kaikki autot eivät ole rekisteröityjä. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi(-> ’looginen suunnittelu’) • Vaihe 1: tavallinen entiteettityyppi: • Luo entiteettityypille oma relaatio ja liitä siihen yksinkertaiset attribuutit • Ota yhdistetyt attribuutit mukaan jaettuina komponenteikseen. • Valitse yksi avainattribuutti(joukko) pääavaimeksi • Viiteavaimia ei spesifioida vielä tässä vaiheessa 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Työntekijä Osoite Nimi Katuos Postino Postitmp Esimerkki:Tavallinen entiteettityyppi relaatioksi Työntekijä (Hetu, Nimi, Katuos, Postino, Postitmp) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 2: heikot entiteetit: • Luo heikolle entiteettityypille oma relaatio ja liitä siihen tavalliset attribuutit (hajoita yhdistetyt erillisiksi). • Liitä omistajaentiteetin pääavain viiteavaimeksi. • Relaation pääavain = omistajan pääavaimen ja heikon entiteetin osittaisen avaimen yhdelmä. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Työntekijä 1 Tnimi Huoltaja M Lnimi Lapsi Esimerkki heikon entiteetin muuntamisesta relaatioksi Työntekijä (Hetu, Tnimi) Lapsi (Hetu, Lnimi) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 3: binäärinen 1:1 –liittymä • Valitse toinen entiteeteistä ja liitä sen relaatioon viiteavaimeksi toisen osapuolen pääavain. • Viiteavain on parempi liittää osapuoleen, jolla on täydellinen osallisuus (kaikki esiintymät mukana liittymässä, jolloin ei synny NULL-arvoja). • Ota liittymän yksinkertaiset attribuutit mukaan samaan relaatioon kuin viiteavain. • Toinen mahdollisuus: molemmat entiteetit ja liittymä yhdeksi relaatioksi; sopiva, jos molempien osalli-suudet täydellisiä. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu 1 1 Osno Työntekijä Johtaa Osasto Osnimi Tnimi Nimityspvm Työntekijä (Hetu, Tnimi) Osasto (Osno, Osnimi, Hetu, Nimityspvm) Työntekijä (Hetu, Tnimi, Nimityspvm, Osno) Osasto (Osno, Osnimi) Esimerkki 1:1 –liittymän muuntamisesta relaatioiksi EI: 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 4: tavallinen binäärinen 1:M –liittymä(ei heikko): • Liitä M-puoleisen entiteetin relaation viiteavaimeksi 1-puolen pääavain. • Ota liittymän yksinkertaiset attribuutit mukaanM-puoleiseen relaatioon 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu 1 M Kurssi-id Opettaja Luennoi Kurssi Knimi Onimi Periodi Opettaja (Hetu, Onimi) Kurssi (Kurssi-id, Knimi, Hetu, Periodi) Esimerkki 1:M –liittymän muuntamisesta relaatioiksi 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 5: binäärinen M:N –liittymä: • Luo liittymälle oma relaatio. • Liitä sen viiteavaimiksi liittymään osallistuvien entiteettien pääavaimet (ovat yhdessä uuden relaation pääavain). • Ota myös liittymän yksinkertaiset attribuutit relaatioon. • 1:1 ja 1:N voidaan myös kuvata tällä tavalla, jos halutaan välttää NULL-arvoiset viittaukset (tässä mielekästä, jos liittymällä on vähän instansseja). 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Opno M N Kurssi-id Opiskelija Osall. Kurssi Knimi Opnimi Periodi Opiskelija (Opno, Opnimi) Kurssi (Kurssi-id, Knimi) Osall (Opno, Kurssi-id, Periodi) Esimerkki M:N –liittymän muuntamisesta relaatioiksi 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Opno M 1 Hetu Gradun ohj. Opiskelija Prof Profnimi Opnimi Aihe Opiskelija (Opno, Opnimi) Prof (Hetu, Profnimi) GradunOhj (Opno, ProfHetu) Esimerkki vähän instansseja omaavanM:1 –liittymän muuntamisesta relaatioiksi Huom!Pääavainvoi olla myös viiteavain 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 6: moniarvoinen attribuutti • Luo oma relaatio, jossa on entiteetin pääavain sekä attribuutti, joka vastaa moniarvoista attribuuttia. • Relaation pääavain on edellisten yhdistelmä • Jos moniarvoinen attribuutti on yhdistetty, se liitetään komponentteinaan (Huom. relaation pääavaimeen joko kaikki komponentit tai vain osa). 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Esimerkki moniarvoisen attribuutin muuntamisesta relaatioksi Osasto OsNo OsNimi Toimipaikka Osasto (OsNo, OsNimi) OsastoPaikat (OsNo, Toimipaikka) Huom. pääavaimet! 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 7: liittymät joiden aste > 2: • Luo liittymälle oma relaatio. • Liitä osallistuvien entiteettien pääavaimet relaation attribuuteiksi. • Ota relaatioon myös liittymän tavalliset attribuutit. • Pääavain on kaikkien viiteavainten yhdistelmä, paitsi ... • Jos jonkin entiteetin osallistumisessa max=1, sen pääavain ei kuulu liittymää edustavan relaation pääavaimeen; muiden avainten yhdistelmä riittää. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Arvosana Opno M 1 Kurssi-id Opiskelija Suoritus Kurssi Knimi Opnimi N Sali Tentti Ajankohta Laitos Esimerkki 3-asteisen liittymän muuntamisesta relaatioiksi Opiskelija (Opno, Opnimi) Kurssi (Kurssi-id, Knimi) Tentti (Sali, Ajankohta, Laitos) Suoritus (Opno, Kurssi-id, Sali, Ajankohta, Arvosana) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Toimnum M O Projnum Toimittaja Toimitus Projekti Projnimi Toimnimi N Osanum Osa OsanNimi Huom! 3- tai korkeampiasteista liittymää ei yleisesti voi jakaa binäärisiksi Yritetään nyt esittää 3. asteen liittymä Toimitus(Toimnum, Osanum, Projnum)jakamalla se kolmeksi binääriseksi relaatioksi seuraavasti: OsienToimitus (Toimnum, Osanum) (Eri toimittajilta saatavat osat) OsienKäyttö (Osanum, Projnum) (Mitä osia tarvitaan eri projekteihin?) ToimitusProjektille (Toimnum, Projnum) (Projektit, joille toimitetaan) 3-1-EER-malli Tuomisto 2006, Teuhola-2012, Bergroth-2013
Huom! 3- tai korkeampiasteista liittymää ei yleisesti voi jakaa binäärisiksi (jatk.) • Oletetaan seuraavaksi, että alkuperäisessä 3-asteisessa relaatiossa Toimitusesiintyisi monikko (A, 1, P1), mutta monikkoa (B, 1, P1) ei siellä esiintyisi. • Jos kyseinen liittymä puretaan kolmeksi binääriseksi liittymäksi, ei tarkalleen tätä tietoa pystytä säilyttämään (myös B voisi toimittaa osaa 1 projektille P1)! 3-1-EER-malli Tuomisto 2006, Teuhola-2012, Bergroth-2013
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Vaihe 8: Luokkahierarkioiden esittäminen • Merk. PK(R) = relaation R pääavain • Muunna luokkahierarkia, jossa • m (erikoistettua) aliluokkaa {S1 , S2 , ..., Sm} • (yleistetty) yliluokka C(k, a1 , a2 , ..., an) • PK(C) = k ... relaatiokaavoiksi käyttäen yhtä seuraavista optioista (8A) – (8D): 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • 8A: Luo C:lle relaatio L, jolla attribuutit {k, a1,..., an}, missä L:n pääavain PK(L) = k;luo jokaiselle aliluokalle Si oma relaatio Li , jolla attribuutit {k} {Si :n attribuutit}; pääavain PK(Li) = k. • Ominaisuuksia: • Liitos jollekin Li:lle ja L:lle pääavaimen suhteen tuottaa sekä kaikki periytyvät että Li :lle spesifiset attribuutit • Toimii sekä erillisillä (’d’), päällekkäisillä (’o’), täydellisillä (kattavilla ’||’) että osittaisilla (ei-kattavilla ’|’) hierarkioilla. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Henkilö Nimi o Opettaja Opiskelija Oppiarvo OpPist Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto A) Henkilö (Hetu, Nimi) Opettaja (Hetu, Oppiarvo) Opiskelija (Hetu, OpPist) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • 8B: Luo relaatio Li jokaiselle aliluokalle Si, jolla attri-buutit {Si :n attribuutit } {k, a1 , a2 , ..., an} ja PK(Li)=k. • Ominaisuuksia: • Toimii hyvin vain erillisillä ja täydellisillä (=kattavilla) optioilla. • Ongelmatapaukset: • Osittainen suhde: Yliluokan entiteetti ei välttämättä kuulu mihinkään aliluokkaan entiteetti menetetään. • Päällekkäisen, moneen luokkaan kuuluvan entiteetin perityt attribuutit toistetaan alirelaatioissa Li redundanssia. • Yliluokan entiteettijoukko ei esiinny kokonaisena missään relaatiossa. • OUTER UNION kaikille tuottaa yliluokan entiteetit. • Tietyn instanssin C haku vaatii kaikkien Li :iden haun. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Henkilö Nimi d Mies Nainen Parran pit. #Synnyt. Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto B) Mies (Hetu, Nimi, ParranPit) Nainen (Hetu, Nimi, SynnytMäärä) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • 8C: Yksi relaatio L, jolla attribuutit { k, a1 , a2 , ..., an } { Si :n attribuutit } ... { Sm:n attribuutit } { t }missä • L:n pääavain PK(L) = k, • aliluokkien on oltava erilliset, • t = tyyppiattribuutti, joka ilmoittaa aliluokan, johon monikko (eli relaation rivi) kuuluu. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Työntekijä Nimi d Sihteeri Teknikko Kouluttaja Kirj.nop Oppiarvo Koul.ala Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto C) Työntekijä (Hetu, Nimi, Tehtävä, Kirj.nop, Oppiarvo, Koul.ala) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • 8D: Yksi relaatio L, jolla attribuutit {k, a1 , a2 , ..., an} {Si :n attribuutit} ... {Sm :n attr.} {t1 , t2 , ..., tm}missä • L:n pääavain PK(L)=k; • sopii päällekkäisille (overlapping) aliluokille, • ti = Boolen-attribuutti (true/false), joka ilmoittaa kuuluuko monikko aliluokkaan Si 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Henkilö Nimi o Opettaja Opiskelija Oppiarvo OpPist Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto D) Henkilö (Hetu, Nimi, OnkoOpettaja, OnkoOpisk, Oppiarvo, OpPist) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Ratkaisuista 8A-8D: • C- ja D-kohtia ei suositella, jos aliluokilla on paljon spesifisiä attribuutteja syntyy paljon NULL-arvoja (muutoin OK). • Laajemman luokkahierarkian ja hilan (yhteisiä aliluokkia) kuvauksessa voidaan käyttää eri osissa eri optioita. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Yhteisten aliluokkien (moniperintätilanne) kuvaaminen relaatioiksi: • Yliluokilla on oltava sama pääavain, muuten mallinnetaan kategoriana. • Muunnoksessa yleisin vaihtoehto on 8A. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hetu Hetu Opettaja Opiskelija Nimi Nimi Oppiarvo Opiskelija-assist. OpPist Tutkimusaihe Esimerkki luokkien ja niiden yhteisen aliluokan kuvaamisesta relaatioiksi Huom!Viiteavaimia ei voi määritellä tässä kaavassa Opettaja (Hetu, Nimi, Oppiarvo) Opiskelija (Hetu, Nimi, OpPist) Opiskelija-assist (Hetu, Tutkimusaihe) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
(E)ER-kaaviosta relaatiokaavaksi (jatk.) • Kategorioiden kuvaaminen relaatioiksi:Yliluokilla voi olla useita avaimia • Jos eri avain, niin määritellään uusi (sijais)avain (surrogate key). • Jos sama avain, ei tarvita ylimääräistä avainta. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Hnimi Ynimi Y-tunnus Hetu Henkilö Yritys Osoite Kunta U Omistaja Ostopvm Huom!null-arvoiset viiteavaimet mahdollisia Henkilö (Hetu, Hnimi, Osoite, OmistajaId) Yritys (Y-tunnus, Ynimi, Kunta, OmistajaId) Omistaja (OmistajaId, Ostopvm) Esimerkki kategorian kuvaamisesta relaatioiksi: sijaisavaimen käyttö 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Henk.lkm Kantavuus Ajoneuvo-id Ajoneuvo-id Hlöauto Kuorma-auto U Rek.ajoneuvo Rek.no Rek.pvm Hlöauto (Ajoneuvo-id, Henk.lkm) Kuorma-auto (Ajoneuvo-id, Kantavuus) Rek.ajoneuvo (Ajoneuvo-id, Rek.no, Rek.pvm) Esimerkki kategorian kuvaamisesta relaatioiksi: ei sijaisavainta Huom! Ei viite- avaimia, koska pääavain ei voi olla null-arvoinen 3-1-EER-malli Tuomisto 2006, Teuhola-2012
Yleishavainto kategorioista • Kyseessä on moniperintätilanne, joka on aina hankala; nyt lisäksi kaikki yliluokkien instanssit eivät ole mukana aliluokassa (kategoriassa). • Viiteavainten null-arvot eivät ole toivottavia oikeellisuuden ylläpidon näkökulmasta. • Tilannetta selkeyttäisi jos yliluokilla olisi vielä yhteinen ‘super-yliluokka’, esim.Henkilöauto U Kuorma-auto = Ajoneuvo. 3-1-EER-malli Tuomisto 2006, Teuhola-2012
EER relaatiokaava –muunnoksen viimeistely • Liitetään saman pääavaimen omaavat relaatiot yhteen, jos avainten arvojoukot ovat joka tilanteessa samat. • Tarkistetaan lopputuloksena saadun relaatio-kaavan laatu soveltamalla normalisoinniksi kutsuttua teoriaa (esitellään seuraavassa kappaleessa). 3-1-EER-malli Tuomisto 2006, Teuhola-2012