1 / 46

3.1. ER-malli ja sen laajennos

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

gloria
Download Presentation

3.1. ER-malli ja sen laajennos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. (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

  14. 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

  15. (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

  16. 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

  17. (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

  18. 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

  19. (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

  20. 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

  21. (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

  22. 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

  23. 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

  24. (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

  25. 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

  26. (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

  27. 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

  28. 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

  29. 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

  30. (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

  31. (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

  32. 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

  33. (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

  34. 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

  35. (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

  36. 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

  37. (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

  38. 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

  39. (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

  40. (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

  41. 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

  42. (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

  43. 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

  44. 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

  45. 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

  46. 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

More Related