Lataa esitys
Esittely latautuu. Ole hyvä ja odota
199
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
200
ER-mallin peruskomponentit
Entiteettityyppi: Edustaa reaalimaailman konkreettisia tai abstrakteja olioita. Heikko entiteettityyppi: Olemassa vain liittyneenä vahvaan entiteettiin, eikä sillä ole omaa identifioivaa avainta (mahd. osittaisavain) Henkilö Tilaus 3-1-EER-malli Tuomisto 2006, Teuhola-2012
201
ER-mallin peruskomponentit (jatk.)
Liittymä (relationship): Entiteettien välinen suhde, Osapuolia 2 (binäärinen) tai useampia (kork.asteinen) Max-lukumääräsuhde 1 tai M (‘monta’) kunkin osapuolen suhteen. Min-lukumääräsuhde 0 (osittainen eli valinnainen liittymä) tai > 0 (totaalinen eli pakollinen liittymä; tuplaviiva) Rekursiivisen liittymän osapuolille roolinimet. Työntekijä Osasto Kuuluu M 1 Henkilö Avioliitto Mies Vaimo 3-1-EER-malli Tuomisto 2006, Teuhola-2012
202
ER-mallin peruskomponentit (jatk.)
Attribuutti: Entiteettiä tai liittymää karakterisoiva ominaisuus Erikoistapauksia: Työntekijä Nimi Osasto Toimipaikka Työntekijä Hetu Avain (id) Moniarvoinen Osoite Katuos Postino Postitmp Rakenteinen #työntek Johdettu 3-1-EER-malli Tuomisto 2006, Teuhola-2012
203
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’) Työntekijä Lapsi Huoltaja 1 M Hetu Nimi 3-1-EER-malli Tuomisto 2006, Teuhola-2012
204
Esimerkki ER-kaaviosta
Opettaja Onimi Hetu Opiskelija Opnimi Opnro Kurssi Tentti Kurssi-id Kurssinimi Liittyy 1 M Pvm Ohjaa Luennoi Suorittaa Arvos. Osallistuu 3-1-EER-malli Tuomisto 2006, Teuhola-2012
205
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
206
Esimerkki luokkahierarkiasta
Työntekijä Nimi Hetu Teknikko Sihteeri Kouluttaja Johtaja d Kirj.nop Oppiarvo Koul.ala Osasto Johtaa 1 ‘d’=disjoint OsNo 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
207
Esimerkki luokkahierarkiasta: erilliset ja kattavat aliluokat
Henkilö Nimi Hetu Mies Nainen d Parran pit. #Synnyt. Jokainen henkilö on joko mies tai nainen 3-1-EER-malli Tuomisto 2006, Teuhola-2012
208
Esimerkki luokkahierarkiasta: Päällekkäiset aliluokat
Henkilö Nimi Hetu Opettaja Opiskelija o Oppiarvo ‘o’ = overlapping OpPist Opettaja voi olla samalla (jatko-)opiskelija Henkilön ei tarvitse kuulua kumpaankaan aliluokkaan 3-1-EER-malli Tuomisto 2006, Teuhola-2012
209
Esimerkki entiteettiluokkien yhteisestä aliluokasta.
Henkilö Nimi Hetu Opettaja Opiskelija o Oppiarvo Opiskelija-assist. Tutkimusaihe OpPist Kyseessä on ns. moni-perintä, eli opiskelija-assistentilla on sekä opettajan että opiskelijan attribuutit ja liittymät (henkilöattribuuttien lisäksi). 3-1-EER-malli Tuomisto 2006, Teuhola-2012
210
Yleistys luokkahierarkiasta: unionityyppi eli kategoria
Rek.ajoneuvo Rek.no Hlöauto Kuorma-auto U Kantavuus Henk.lkm Ajoneuvo-id 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
211
(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
212
Esimerkki: Tavallinen entiteettityyppi relaatioksi
Työntekijä Osoite Katuos Postino Postitmp Hetu Nimi Työntekijä (Hetu, Nimi, Katuos, Postino, Postitmp) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
213
(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
214
Esimerkki heikon entiteetin muuntamisesta relaatioksi
Työntekijä Lapsi Huoltaja 1 M Hetu Lnimi Tnimi Työntekijä (Hetu, Tnimi) Lapsi (Hetu, Lnimi) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
215
(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
216
Esimerkki 1:1 –liittymän muuntamisesta relaatioiksi
Osasto Osnimi Osno Työntekijä Hetu Tnimi Johtaa 1 Nimityspvm Työntekijä (Hetu, Tnimi) Osasto (Osno, Osnimi, Hetu, Nimityspvm) Työntekijä (Hetu, Tnimi, Nimityspvm, Osno) Osasto (Osno, Osnimi) EI: 3-1-EER-malli Tuomisto 2006, Teuhola-2012
217
(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 mukaan M-puoleiseen relaatioon 3-1-EER-malli Tuomisto 2006, Teuhola-2012
218
Esimerkki 1:M –liittymän muuntamisesta relaatioiksi
Kurssi Knimi Kurssi-id Opettaja Hetu Onimi Luennoi 1 M Periodi Opettaja (Hetu, Onimi) Kurssi (Kurssi-id, Knimi, Hetu, Periodi) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
219
(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
220
Esimerkki M:N –liittymän muuntamisesta relaatioiksi
Kurssi Knimi Kurssi-id Opiskelija Opno Opnimi Osall. M N Periodi Opiskelija (Opno, Opnimi) Kurssi (Kurssi-id, Knimi) Osall (Opno, Kurssi-id, Periodi) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
221
3-1-EER-malli Tuomisto 2006, Teuhola-2012
Esimerkki vähän instansseja omaavan M:1 –liittymän muuntamisesta relaatioiksi Prof Profnimi Hetu Opiskelija Opno Opnimi Gradun ohj. M 1 Aihe Opiskelija (Opno, Opnimi) Prof (Hetu, Profnimi) GradunOhj (Opno, ProfHetu) Huom! Pääavain voi olla myös viiteavain 3-1-EER-malli Tuomisto 2006, Teuhola-2012
222
(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
223
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
224
(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
225
Esimerkki 3-asteisen liittymän muuntamisesta relaatioiksi
Kurssi Knimi Kurssi-id Opiskelija Opno Opnimi Suoritus M 1 Sali Tentti N Ajankohta Arvosana Laitos 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
226
3-1-EER-malli Tuomisto 2006, Teuhola-2012, Bergroth-2013
Huom! 3- tai korkeampiasteista liittymää ei yleisesti voi jakaa binäärisiksi Projekti Projnimi Projnum Toimittaja Toimnum Toimnimi Toimitus M O Osanum Osa N OsanNimi 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
227
3-1-EER-malli Tuomisto 2006, Teuhola-2012, Bergroth-2013
Huom! 3- tai korkeampiasteista liittymää ei yleisesti voi jakaa binäärisiksi (jatk.) Toimnum Osanum A 1 3 B 2 Toimnum Projnum A P1 P2 B P3 Osanum Projnum 1 P1 P3 3 P2 Oletetaan seuraavaksi, että alkuperäisessä 3-asteisessa relaatiossa Toimitus esiintyisi 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
228
(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
229
(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
230
Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto A)
Henkilö Nimi Hetu Opettaja Opiskelija o Oppiarvo OpPist Henkilö (Hetu, Nimi) Opettaja (Hetu, Oppiarvo) Opiskelija (Hetu, OpPist) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
231
(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
232
Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto B)
Henkilö Nimi Hetu Mies Nainen d Parran pit. #Synnyt. Mies (Hetu, Nimi, ParranPit) Nainen (Hetu, Nimi, SynnytMäärä) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
233
(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
234
Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto C)
Työntekijä Nimi Hetu Teknikko Sihteeri Kouluttaja d Kirj.nop Oppiarvo Koul.ala Työntekijä (Hetu, Nimi, Tehtävä, Kirj.nop, Oppiarvo, Koul.ala) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
235
(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
236
Esimerkki luokkahierarkian muunnosta relaatioiksi (vaihtoehto D)
Henkilö Nimi Hetu Opettaja Opiskelija o Oppiarvo OpPist Henkilö (Hetu, Nimi, OnkoOpettaja, OnkoOpisk, Oppiarvo, OpPist) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
237
(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
238
(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
239
3-1-EER-malli Tuomisto 2006, Teuhola-2012
Esimerkki luokkien ja niiden yhteisen aliluokan kuvaamisesta relaatioiksi Nimi Hetu Opettaja Opiskelija Oppiarvo Opiskelija-assist. Tutkimusaihe OpPist 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
240
(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
241
Esimerkki kategorian kuvaamisesta relaatioiksi: sijaisavaimen käyttö
Omistaja Ostopvm Henkilö Yritys U Ynimi Hnimi Y-tunnus Hetu Osoite Kunta Henkilö (Hetu, Hnimi, Osoite, OmistajaId) Yritys (Y-tunnus, Ynimi, Kunta, OmistajaId) Omistaja (OmistajaId, Ostopvm) Huom! null-arvoiset viiteavaimet mahdollisia 3-1-EER-malli Tuomisto 2006, Teuhola-2012
242
Esimerkki kategorian kuvaamisesta relaatioiksi: ei sijaisavainta
Rek.ajoneuvo Rek.pvm Hlöauto Kuorma-auto U Kantavuus Henk.lkm Ajoneuvo-id Rek.no Huom! Ei viite- avaimia, koska pääavain ei voi olla null-arvoinen Hlöauto (Ajoneuvo-id, Henk.lkm) Kuorma-auto (Ajoneuvo-id, Kantavuus) Rek.ajoneuvo (Ajoneuvo-id, Rek.no, Rek.pvm) 3-1-EER-malli Tuomisto 2006, Teuhola-2012
243
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
244
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.