Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

ER (Entity-Relationship) –mallinnuksen perusteet

Samankaltaiset esitykset


Esitys aiheesta: "ER (Entity-Relationship) –mallinnuksen perusteet"— Esityksen transkriptio:

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


Lataa ppt "ER (Entity-Relationship) –mallinnuksen perusteet"

Samankaltaiset esitykset


Iklan oleh Google