Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuJorma Koskinen Muutettu yli 9 vuotta sitten
1
ER (Entity-Relationship) –mallinnuksen perusteet
Jotta voitaisiin saada tarkka ymmärrys datasta ja miten sitä käytetään, tarvitaan ei-tekninen malli. ER-malli on sekä asiakkaalle että suunnittelijoille. Liittyy ”top-down” –menetelmään. ER-malli mallintaa kohdealueen keskeiset kohteet (entity) ja kohteiden väliset yhteydet (relationship). ER, Entity - Relationship tMyn
2
Niinpä esim. kaikilla työntekijöillä on etunimi, sukunimi, asema etc.
Kohteita, entiteettejä voidaan ryhmitellä kohdetyypeiksi, entiteettityypeiksi (entity type). Voidaan esim. ajatella, että kaikki yksittäiset työntekijät kuuluvat entiteettityyppiin henkilökunta. Samaan entiteettityyppiin kuuluvilla ilmentymillä (entity occurrence) on yhteisiä ominaisuuksia eli attribuutteja. Niinpä esim. kaikilla työntekijöillä on etunimi, sukunimi, asema etc. Kohdeilmentymä on yksi rivi tietokannan taulussa. ER, Entity - Relationship tMyn
3
Käytetään mallinnuksessa UML (Unified Modeling Language)-kuvauskieltä.
Esimerkki kahdesta kohteesta kuvassa 1. ER, Entity - Relationship tMyn
4
Toimipiste Henkilokunta Kuva 1. UML-kuvaus kahdesta entiteetistä.
ER, Entity - Relationship tMyn
5
Kohteiden välillä on erilaisia yhteyksiä (relationship).
Yhteys on mikä tahansa kahden tai useamman kohteen välillä vallitseva riippuvuus tai muu kiinnostava suhde. Yhteyksien kohdalla voidaan myös erottaa yhteystyyppi, relationship type ja yhteysilmentymä, relationship occurrence. Esimerkki yksinkertaisesta yhteydestä kuvassa 2. ER, Entity - Relationship tMyn
6
Toimipiste Henkilokunta työskentelee
Kuva 2. Esimerkki yksinkertaisesta yhteydestä kahden entiteetin välillä. ER, Entity - Relationship tMyn
7
Yhteyteen voi myös liittyä roolinimi (role name).
Roolinimellä selkeytetään yhteyteen kuuluvien kohdeilmentymien tehtävää yhteydessä, kuva 3. konttori johtaja johtaa Toimipiste Henkilokunta työskentelee konttori projektihenkilö Kuva 3. Roolit yhteydessä. ER, Entity - Relationship tMyn
8
Ominaisuus eli attribuutti on entiteetin tietty ominaispiirre.
Jos attribuuttina on eNimi, niin attribuutin arvona voi olla silloin esim. Ville. Kullakin attribuutilla on tietty arvoalue (domain), josta arvot tulee valita. Esim. attribuutin eNimi arvoalue voisi olla VARCHAR(15), jolloin nimi voi koostua max. 15 merkkivakiosta. Yksinkertaista attribuuttia (simple attribute) ei voida jakaa pienempiin osiin. ER, Entity - Relationship tMyn
9
Koosteattribuutti (composite attribute) voidaan jakaa osiin, esim
Koosteattribuutti (composite attribute) voidaan jakaa osiin, esim. osoite koostuu katuosoitteesta, postinumerosta ja postitoimipaikasta. Yksiarvoinen attribuutti (single-valued attribute) voi saada vain yhden arvon. Vastaavasti moniarvoinen attribuutti (multi-valued attribute) voi saada useampia arvoja – näitä ei ole mukana tässä opintojaksossa. Johdettu attribuutti (derived attribute) saa arvonsa yhden tai useamman muun attribuutin arvoista. Esim. ikä voidaan laskea syntymäajasta ja nykyisestä päivämäärästä. ER, Entity - Relationship tMyn
10
Kuvassa 4 kohteet ovat saaneet lisää yksityiskohtia.
Jokaisella kohteella on jokin erityinen attribuutti, jonka perusteella se voidaan tunnistaa. Attribuuttia, jonka perusteella kohde yksilöidään, kutsutaan perusavaimeksi (primary key). Kuvassa 4 kohteet ovat saaneet lisää yksityiskohtia. ER, Entity - Relationship tMyn
11
Henkilokunta Toimipiste Kuva 4. Kahden kohteen ominaisuudet.
työskentelee perusavain henkiloNro {PK} eNimi sNimi asema palkka /kokonaisHloLkm toimipisteNro {PK} osoite katuosoite postinumero postitoimipaikka puhelinNro[1..3] koosteattribuutti johdettu attribuutti moniarvoinen attribuutti Kuva 4. Kahden kohteen ominaisuudet. ER, Entity - Relationship tMyn
12
Heikon kohteen olemassaolo riippuu toisesta kohteesta.
Kohteet voidaan jakaa vahvoihin ja heikkoihin (strong entity type, weak entity type), kuva 5. Vahvan kohteen olemassaolo ei ole riippuvainen jostakin toisesta kohteesta. Heikon kohteen olemassaolo riippuu toisesta kohteesta. ER, Entity - Relationship tMyn
13
Asiakas Paremmuus Kuva 5. Vahva ja heikko kohde.
asettaa asiakasNro {PK} eNimi sNimi puhelinNro tyyppi maksimiV vahva kohde heikko kohde Kuva 5. Vahva ja heikko kohde. ER, Entity - Relationship tMyn
14
Kerrannaisuutena voidaan myös antaa lukusarja, kuten (1, 4, 6, 8..12).
Yhteyteen osallistuville kohteille voidaan asettaa erilaisia rajoituksia. Yksi tällainen rajoite on osallistumisrajoite eli kerrannaisuus (multiplicity), kuva 6. Kerrannaisuuden ilmaisuun käytetään lukuväliä, joka kertoo, kuinka monta oliota yhteydessä voi olla. Lukuväli voi olla nollasta yhteen (0..1), nollasta moneen (0..* tai pelkkä *), yhdestä moneen (1..*), kaksi (2), viidestä yhteentoista (5..11) ja niin edelleen. Kerrannaisuutena voidaan myös antaa lukusarja, kuten (1, 4, 6, 8..12). ER, Entity - Relationship tMyn
15
Jos kerrannaisuutta ei ole määritelty, se on oletusarvoisesti yksi.
Kerrannaisuus näytetään yhteyden päässä sen kohteen lähellä, johon se pätee. ER, Entity - Relationship tMyn
16
Otetaan esimerkkeinä yhdestä yhteen –yhteys (1:1), yhdestä moneen –yhteys (1:*) sekä monesta moneen –yhteys (*:*) edellä luetellussa järjestyksessä: yksi toimipisteen henkilökunnasta johtaa toimipistettä (1:1) Kutakin vuokrattavaa kohdetta hallinnoi yksi henkilökuntaan kuuluva. Yksittäinen henkilökuntaan kuuluva henkilö voi hallinnoida useampaakin vuokrattavaa kohdetta. Jotkut eivät hallinnoi yhtäkään kohdetta jollakin ajan hetkellä (0..1:*). Vuokrattavia kohteita mainostetaan lehdissä (*:*) ER, Entity - Relationship tMyn
17
Henkilokunta Toimipiste
Kutakin toimipistettä johtaa yksi henkilökuntaan kuuluva työntekijä Henkilökuntaan kuuluva työntekijä johtaa nollaa tai yhtä toimipistettä johtaa Henkilokunta Toimipiste 1 0..1 kerrannaisuus Kuva 6. Esimerkki 1:1 -kerrannaisuuden käytöstä yhteydessä. ER, Entity - Relationship tMyn
18
Henkilokunta Vuokrattavat
Kutakin vuokrattavaa kohdetta hallinnoi yksi henkilökuntaan kuuluva työntekijä Kukin henkilökuntaan kuuluva työntekijä hallinnoi nollaa tai useampaa vuokrakohdetta Henkilokunta Vuokrattavat hallinnoi henkiloNro tilaNro 1 0..* Kuva 7. Esimerkki 1:* -kerrannaisuuden käytöstä yhteydessä. ER, Entity - Relationship tMyn
19
Sanomalehti Vuokrattavat
Kutakin vuokrattavaa kohdetta mainostetaan nollassa tai useammassa sanomalehdessä Kussakin sanomalehdessä mainostetaan yhtä tai useampaa vuokrakohdetta Sanomalehti Vuokrattavat mainostaa lehdenNimi tilaNro 0..* 1..* Kuva 8. Esimerkki *:* -kerrannaisuuden käytöstä yhteydessä. ER, Entity - Relationship tMyn
20
Kerrannaisuus koostuu kahdesta osasta: kardinaalisuudesta (cardinality) ja osallistumisesta (participation). Kardinaalisuus ilmaisee kuinka moneen yhteyteen entiteetti voi samaan aikaan osallistua ja/tai kuinka monta entiteettiä voi samaan aikaan osallistua tiettyyn yhteyteen. Osallistuminen ilmaisee onko yhteyteen kuuluminen kaikille pakollista (mandatory) vai osallistuuko siihen vain osa (optional), kuva 9. ER, Entity - Relationship tMyn
21
Henkilokunta Toimipiste Kuva 9. Kardinaalisuus ja osallistuminen.
Kutakin toimipistettä johtaa yksi henkilökuntaan kuuluva työntekijä Henkilökuntaan kuuluva työntekijä johtaa nollaa tai yhtä toimipistettä Henkilokunta Toimipiste johtaa henkilöNro toimipisteNro 1 0..1 Kullakin toimipisteellä on oltava johtaja (mandatory) Eivät kaikki työntekijät ole toimipisteen johtajia (optional) Osallistuminen Kuva 9. Kardinaalisuus ja osallistuminen. ER, Entity - Relationship tMyn
22
Jos mallinnettavaa elävän elämän problematiikkaa ei ymmärrä tarpeeksi syvällisesti, niin lopputulos voi olla, että malli ei kuvaa tarkasti todellisuutta. ER-mallinnuksessa tulee tyypillisesti kahden tyyppisiä mallinnusvirheitä: Fan Trap ja Chasm Trap. Fan Trap: Malli esittää, että yhteys on olemassa kahden entiteettityypin välillä, mutta ei voida olla varmoja yksittäisten ilmentymien yhteyksistä. Chasm Trap: Malli antaa ymmärtää, että yhteys on olemassa kahden entiteettityypin välillä. Tämä ei kuitenkaan ole totta joidenkin ilmentymien kohdalla. ER, Entity - Relationship tMyn
23
Fan Trap Mikkelin amk Henkilokunta Tulosalue Mikkelin amk Henkilokunta
työskentelee hallinnoi Mikkelin amk Henkilokunta Tulosalue 1..* 1 1 1..* Mikkelin amk työskentelee- yhteys hallinnoi- yhteys Henkilokunta Tulosalue ht01 t001 t002 Kuva 10. Työskenteleekö henkilö ht01 tulosalueella t001 vai t002? ER, Entity - Relationship tMyn
24
Mikkelin amk Tulosalue Henkilokunta Mikkelin amk Tulosalue
hallinnoi työskentelee Mikkelin amk Tulosalue Henkilokunta 1 1..* 1 1..* Mikkelin amk hallinnoi- yhteys työskentelee- yhteys Tulosalue Henkilokunta t001 ht01 t002 Kuva 11. Poistetaan ongelma muuttamalla malli vastaamaan paremmin todellisuutta. ER, Entity - Relationship tMyn
25
Chasm Trap Toimipiste Henkilokunta Vuokrattavat Toimipiste
työllistää hallinnoi Toimipiste Henkilokunta Vuokrattavat 1 1..* 0..1 0..* työllistää- yhteys hallinnoi- yhteys Toimipiste Henkilokunta Vuokrattavat t001 ha01 va01 t002 hm02 vm02 t003 hv04 vv07 Kuva 12. Mistä toimipisteestä kannattaisi kysyä tietoja kohteesta vm02? ER, Entity - Relationship tMyn
26
Kuvan 12 mallin ongelmana on se, että vuokrattava kohde on jo tiedossa (tarjolla, ”tyrkyllä”) jossakin toimipisteessä, mutta tilanne on niin uusi, että sitä ei ole vielä allokoitu kenenkään myyntineuvottelijan hallinnoitavaksi. Ratkaistaan ongelma lisäämällä yhteys ”antaa informaatiota” entiteettityyppien Toimipiste ja Vuokrattavat välille, kuva 13a ja 13b. ER, Entity - Relationship tMyn
27
Toimipiste Henkilokunta Vuokrattavat
työllistää hallinnoi Toimipiste Henkilokunta Vuokrattavat 1 1..* 0..1 0..* 1 1..* antaa informaatiota Kuva 13a. Kaaviokuva muutoksesta, joka poistaa puuttuvan informaation aiheuttaneen ongelman. ER, Entity - Relationship tMyn
28
Toimipiste Henkilokunta Vuokrattavat
työllistää- yhteys hallinnoi- yhteys Toimipiste Henkilokunta Vuokrattavat t001 ha01 va01 t002 hm02 vm02 t003 hv04 vv07 tarjoaa infor- maatiota -yhteys Kuva 13b. Semanttinen esitys muutoksesta, joka poistaa puuttuvan informaation aiheuttaneen ongelman. ER, Entity - Relationship tMyn
29
Periytyminen (inheritance) on kohteiden välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan (superclass, base class) rakenteen ja käyttäytymisen. Sitä nimitetään myös yleistys-/erikoistussuhteeksi (generalization/specialization relationship), sillä kantaluokka on johdetun luokan yleistys, ja toisinpäin, johdettu luokka erikoistaa kantaluokkaa. Kantaluokka on entiteettityyppi, joka sisältää yhden tai useamman aliryhmän jonka ilmentymät pitää esittää datamallissa erikseen. Johdettu luokka on entiteettityypin aliryhmä, jonka ilmentymät pitää esittää datamallissa erikseen. ER, Entity - Relationship tMyn
30
Johdettu luokka voi erikoistua lisäämällä uusia attribuutteja.
Periytyminen on yksiperiytymistä (single inheritance) tai moniperiytymistä (multiple inheritance) sen mukaan periikö johdettu luokka yhdestä vai useammasta kantaluokasta. Yleistys kuvataan yhtenäisellä viivalla luokkien välillä, jonka kantaluokan puoleisessa päässä on ontto kolmio, kuva 14. ER, Entity - Relationship tMyn
31
Hevosajoneuvo DTV Puhelin Kiesit Vankkurit Kannykka
Kuva 14. Yksiperiytyminen ja moniperiytyminen. ER, Entity - Relationship tMyn
32
Johdettu luokka perii kantaluokan attribuutit.
Esimerkkinä Henkilokunta –entiteettityypin (kantaluokka) sisällä voi olla ryhmiteltynä johdetut luokat Johtaja, Myyntihenkilo, Assistentti. Johdettu luokka perii kantaluokan attribuutit. Kantaluokan ja siitä johdetun luokan välinen yhteys on 1:1, ja sitä kutsutaan kantaluokka/johdettu luokka –yhteydeksi. ER, Entity - Relationship tMyn
33
Yleistys/erikoistus –suhdetta käytetään, jotta ei tarvitsisi yrittää sisällyttää yhteen relaatioon hyvin erilaisia ilmentymiä. Jos tällaista erilaisuutta kuitenkin halutaan toteuttaa, niin se merkitsee sitä, että relaatioon tulee paljon tyhjää, kuva 15. ER, Entity - Relationship tMyn
34
Kuva 15. Jos yrittää mahduttaa kaiken yhteen tauluun, niin käy näin…
Ainakin sihteerin on osattava kieliä!! Johtajille tarpeellisia attribuutteja Erityisesti käytännön myyntityötä tekeville oleellista tietoa Koko henkilökunnalle oleellisia attribuutteja hloNro nimi asema palkka jNimPvm bonus myyntAlu autoEtu kieliT ha01 Laakso johtaja 51600 3400 hv03 Telkkä assistentti 27800 hm07 Aarnio myyntjoht 49200 2900 hl01 Kiiski assistentti 29300 hi05 Palonen myyntNe 39700 ma2b 3900 ha04 Rahkola sihteeri 25900 e,ru,ra Kuva 15. Jos yrittää mahduttaa kaiken yhteen tauluun, niin käy näin… ER, Entity - Relationship tMyn
35
Esim. johtaja on henkilökunnan jäsen.
Kantaluokka ja johdettu luokka muodostavat tyyppihierarkian, puhutaan ”is-a”-hierarkiasta. Esim. johtaja on henkilökunnan jäsen. Kuvan 15 relaatiossa voidaan ajatella olevan kantaluokka Henkilokunta ja johdetut luokat Johtaja, Myyntihenkilo ja Assistentti. UML-kaavio yleistys/erikoistussuhteesta kuvassa 16. ER, Entity - Relationship tMyn
36
Toimipiste Henkilokunta Johtaja Myyntihenkilo Assistentti
työllistää toimipisteNro {PK} katuosoite postinumero postitoimipaikka henkiloNro {PK} eNimi sNimi asema palkka 1 1..* 1 {Optional, And} johtaa 1 Johtaja Myyntihenkilo Assistentti jNimPvm bonus myyntAlu autoEtu kieliT Kuva 16. Henkilokunta-relaation jakaminen kanta- ja johdettuihin luokkiin. ER, Entity - Relationship tMyn
37
Yleistys-/erikoistussuhteeseen liittyy kahden tyyppisiä rajoituksia (constraint), osallistumisrajoitukset (participation constraint) ja erillisyysrajoitukset (disjoint constraint). Osallistumisrajoitus: Määrittelee tuleeko jokaisen kantaluokan ilmentymän olla myös johdetun luokan ilmentymä. Osallistumisrajoituksen vaihtoehdot ovat pakollinen (mandatory) tai vapaaehtoinen (optional). ER, Entity - Relationship tMyn
38
Esimerkki kuvasta 16: osallistumisrajoitteeksi on merkitty optional.
SIIS: Kun lisätään tauluun Henkilokunta yksi monikko, niin ei ole pakko lisätä riviä johonkin tauluista Johtaja, Myyntihenkilo tai Assistentti. Ehkäpä uusi henkilökunnan jäsen onkin ohjelmoija! ER, Entity - Relationship tMyn
39
Erillisyysrajoitus: Määrittelee voiko kantaluokan ilmentymä olla yhden vaiko useamman johdetun luokan ilmentymä. Jos määritellään johdetulle luokalle erillisyysrajoitus disjoint, tarkoittaa se sitä, että kantaluokan ilmentymä voi esiintyä vain yhden johdetun luokan ilmentymänä. ER, Entity - Relationship tMyn
40
Tällaisessa tapauksessa rajoite merkitään kirjoittamalla ”Or” aaltosulkeisiin.
Jos määritellään johdetulle luokalle erillisyysrajoitus nondisjoint, tarkoittaa se sitä, että kantaluokan ilmentymä voi esiintyä useamman kuin yhden johdetun luokan ilmentymänä. Tällaisessa tapauksessa rajoite merkitään kirjoittamalla ”And” aaltosulkeisiin. ER, Entity - Relationship tMyn
41
Toimipiste Henkilokunta Johtaja Myyntihenk Assistentti Vakituinen
työllistää toimipisteNro {PK} katuosoite postinumero postitoimipaikka henkiloNro {PK} eNimi sNimi asema palkka 1 1..* 1 {Optional, And} {Mandatory, Or} johtaa 1 Johtaja Myyntihenk Assistentti Vakituinen Maaraaik jNimPvm bonus kkPalkka lomakertyma myyntiAlu autoEtu tuntipalkka kieliT Kuva 17. Henkilokunta-relaation jakaminen kanta- ja johdettuihin luokkiin. ER, Entity - Relationship tMyn
42
Kuvassa 17 on merkitty yliluokan Henkilokunta ja johdettujen luokkien Maaraaik ja Vakituinen välille osallistumisrajoitus Mandatory, joka tarkoittaa, että jokaisella työntekijällä pitää olla voimassa sopimus työnantajan kanssa siitä, millä perusteella hänelle maksetaan palkkaa. Käytännössä esim. vakituisessa työsuhteessa maksetaan kuukausipalkkaa, määräaikaisessa työsuhteessa maksetaan tehtyjen tuntien perusteella. Vastaavassa kohdassa on merkitty erillisyysrajoitus Or, mikä tarkoittaa, että henkilö on palkattu töihin joko vakituiseksi tai määräaikaiseksi, mutta ei sekä että! ER, Entity - Relationship tMyn
43
Vastaavasti kuvassa 17 on kantaluokan Henkilokunta ja johdettujen luokkien Johtaja, Myyntihenk ja Assistentti välille merkitty osallistumisrajoitus Optional, joka käytännössä mm. tarkoittaa, että jokaisella työntekijällä ei tarvitse olla työssään roolinimikkeenä joko johtaja, myyntihenkilö tai assistentti. Vastaavassa kohdassa on merkitty erillisyysrajoitus And, mikä tarkoittaa, että henkilö voi kylläkin olla samanaikaisesti esim. sekä johtaja että myyntihenkilö (esimerkkinä myyntijohtaja). ER, Entity - Relationship tMyn
44
Assosiaation erikoismuoto on koostesuhde (aggregation).
Yhteys on assosiaatio kahden samalla tasolla olevan entiteettityypin välillä. Assosiaation erikoismuoto on koostesuhde (aggregation). Tässä mallinnetaan kokonaisuus/osa –suhdetta. Koostesuhde piirretään viivana, jonka kokonaispuolella on ontto vinoneliö. Voidaan myös puhua ”has-a” –suhteesta tai ”is-part-of” -suhteesta. Koostesuhde (aggregation) ei mitenkään liitä kokonaisuuden ja osan elinkaaria yhteen. Esimerkki koostesuhteesta kuvassa 18. ER, Entity - Relationship tMyn
45
Mikkelin Purjehtijat Purjevene Kuva 18. Koosteyhteys (aggregation).
Tämä luokka edustaa ”kokonaisuutta”. 1 * Tämä luokka edustaa toisen osaa Purjevene Kuva 18. Koosteyhteys (aggregation). ER, Entity - Relationship tMyn
46
Entiteetti voi olla osana vain yhdessä vahvassa koosteessa kerrallaan.
Siinä tapauksessa, että koostesuhteeseen halutaan voimakas omistussuhde ja elinkaarien yhteneväisyys, puhutaan vahvasta koosteesta (composite aggregation, composition). Entiteetti voi olla osana vain yhdessä vahvassa koosteessa kerrallaan. Kokonaisuutta edustavan osuuden on hallittava osiensa elinkaaret. Vahva koostesuhde piirretään viivana, jonka kokonaispuolella on täytetty vinoneliö. Esimerkki vahvasta koostesuhteesta kuvassa 19. ER, Entity - Relationship tMyn
47
Windows- Ikkuna Tämä luokka edustaa ”kokonaisuutta”. 1 Tämä luokka edustaa toisen osaa – ja voi olla vain yhden kokonaisuuden osana. * Kehys Kuva 19. Vahva koosteyhteys (composite aggregation, composition). ER, Entity - Relationship tMyn
48
Esimerkki koosteyhteydestä vuokraustoimintaa harjoittavasta yrityksestä voisi olla entiteettityyppien Henkilokunta ja Toimipiste välillä sekä entiteettityyppien Toimipiste ja Vuokrattavat välillä, kuva 20. ER, Entity - Relationship tMyn
49
Henkilokunta Toimipiste Vuokrattavat
työllistää Toimipiste toimipisteNro henkiloNro hallinnoi Vuokrattavat tarjoaa informaatiota kohdeNro Kuva 20. Koosteyhteys vuokraustoimintaa harjoittavan yrityksen muutaman entiteettityypin välillä. ER, Entity - Relationship tMyn
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.