ER (Entity-Relationship) –mallinnuksen perusteet

Slides:



Advertisements
Samankaltaiset esitykset
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Advertisements

– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä.
ER-mallista relaatiomalliin
Koostumussuhde Jukka Juslin © Jukka Juslin.
Tämän esityksen avulla osaat ladata PAF 5
Ohjelmiston tekninen suunnittelu
Active directory.
Luokkien väliset koostesuhteet
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Luokkakaaviot Luokkakaaviot Tekninen suunnittelu.
Datan määrittely, MySQL
Relaatiomalli •Ted Codd 1970 •Matemaattinen perusta •Helppo toteuttaa •Helppo omaksua •Käytetyin tietomalli •Muodostaa perustan kurssin myöhemmille asioille.
Tietokanta.
Käsiteanalyysi Käsiteanalyysi on työskentelymenetelmä
Looginen suunnittelutMyn1 Looginen suunnittelu •Tässä lähdetään liikkeelle käsitemallista. •Laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus,
Relaatiomallin perusteet
EXtensible Markup Language
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
ITSETUNTEMUS JA OMA OSAAMINEN
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
Luokkien löytyminen käytännössä tMyn1 Luokkien löytyminen käytännössä Kun aletaan ratkaista elävän elämän ohjelmointitehtäviä, niin ensimmäisten asioiden.
Johdanto HTML-julkaisukieleen
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Normalisointi2tMyn1 Yksi kelpo perusavain on sarakkeet laakNro ja vastAika. Toinen voisi olla potNro ja vastAika, kolmas voisi olla huoneNro ja vastAika,…,
Tietokanta-analyysi, suunnittelu ja toteutus
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Polun pyöreä pöytä Eero Tuomenoksa Polku Eero Tuomenoksa Ohjelma 18:00 Polun tämän hetken tilanteen esittely 18:50 Polun kehityssuunnat.
Lomakkeet ja vuorovaikutteisuus
Käsitemallin suunnittelu
SQL Standardoitu kieli, jonka avulla voidaan
Muunnos luokkakaaviosta relaatiokaavioon
Käsitteellisen mallinnuksen tekniikkaa
Johdanto Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Tietokannan normalisointi
Ohjelman keskeytys virhetilanteessa tMyn1 Ohjelman keskeytys virhetilanteessa Poikkeustilanteet voidaan ryhmitellä logiikkavirheisiin ja muihin ajonaikaisiin.
17. Kooste Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa “A on B:n osa” tai “A kuuluu B:hen”. − Koostesuhteessa.
DTD Teppo Räisänen Liiketalouden yksikkö.
6. Relaatioalgebra ja relaatiokalkyyli
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 4 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.
11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen.
Tekstitiedostoon kirjoittaminen tMyn1 Tekstitiedostoon kirjoittaminen Tiedostoja käsitellään ohjelmassa tiedosto-olion avulla. Tiedosto-olion luokka sisältää.
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Fyysinen suunnittelutMyn1 Fyysinen suunnittelu Tässä lähdetään liikkeelle tietokannan loogisesta mallista. Nyt pitää olla tiedossa valittava DBMS-tuote.
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
DTD rakenne ELEMENT elementtien määrittely ATTLISTattribuuttien määrittely ENTITYentiteettien määrittely NOTATIONnotaatioiden määrittely.
UML-luokkakaavio ● Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakennetta ● Mitä luokkia on olemassa ● Minkälaisia luokat ovat ● Luokkien suhteet.
UML-mallinnus osana tietotuotemäärittelyä
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
8. Periytyminen.
– Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä
8. Periytyminen.
2. Olio-ohjelmoinnin perusteita
Esityksen transkriptio:

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

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

Käytetään mallinnuksessa UML (Unified Modeling Language)-kuvauskieltä. Esimerkki kahdesta kohteesta kuvassa 1. ER, Entity - Relationship tMyn

Toimipiste Henkilokunta Kuva 1. UML-kuvaus kahdesta entiteetistä. ER, Entity - Relationship tMyn

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

Toimipiste Henkilokunta työskentelee Kuva 2. Esimerkki yksinkertaisesta yhteydestä kahden entiteetin välillä. ER, Entity - Relationship tMyn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hevosajoneuvo DTV Puhelin Kiesit Vankkurit Kannykka Kuva 14. Yksiperiytyminen ja moniperiytyminen. ER, Entity - Relationship tMyn

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

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

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 10.11.1989 3400 hv03 Telkkä assistentti 27800 hm07 Aarnio myyntjoht 49200 06.05.1992 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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