2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen. Luku 2. Arkkitehtuuri ja analyysi. ITKA204 kevät

Samankaltaiset tiedostot
1.1 Käsitteet ja termit 1.2 Historia. Luku 1. Johdanto. ITKA204 kevät

3. Käsiteanalyysi ja käsitekaavio

Luento 3 Tietokannan tietosisällön suunnittelu

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HELIA 1 (20) Outi Virkki Tiedonhallinta

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

ITKA204 Tietokannat ja tiedonhallinnan perusteet

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

2. Käsiteanalyysi ja relaatiomalli

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Tietokanta (database)

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Tietokannan suunnittelu

8.1 Oliosuuntautunut 8.2 Oliorelaationaalinen 8.3 NoSQL. Luku 8. Tietokantaparadigmat. ITKA204 kevät

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantakurssit / TKTL

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

5.1 Normalisoinnin tarkoitus 5.2 Funktionaalinen riippuvuus 5.3 Normaalimuodot. Luku 5. Normalisointi. ITKA204 kevät

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

Tietokannanhallintajärjestelmä (DBMS)

Luokka- ja oliokaaviot

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Tietokannan suunnittelu

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tieto/datamallit. Marttila-Kontio/Unicta Oy

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

SQL - STRUCTURED QUERY LANGUAGE

YHTEYSSUHDE (assosiation)

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Tietokannat II -kurssin harjoitustyö

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

UML - unified modeling language

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

2. Olio-ohjelmoinnin perusteita 2.1

Relaatiomalli ja -tietokanta

TIETOKANNAT I. Kurssimoniste. Mika Karhulahti Syksy 2002

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

HELIA 1 (14) Outi Virkki Tiedonhallinta

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Käsitteellinen mallintaminen

Ohjelmistojen mallintaminen kertausta Harri Laine 1

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

UML Luokkakaavio 14:41

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Sopimuspohjainen olio-ohjelmointi

Yhteistoimintakaavio (Esimerkki)

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Ohjelmistojen mallintaminen, kesä 2010

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

A TIETOKANNAT, 4 op Kevät TI09

JHS 179 ICT-palvelujen kehittäminen: Kokonaisarkkitehtuurin kehittäminen Liite 2 Arkkitehtuurikehyksen kuvaus

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Ohjelmistojen mallintaminen, kesä 2009

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

JYVÄSKYLÄN YLIOPISTO Valintakoe s2011 Sivu 1 Tietojärjestelmätieteen opiskelijavalinta. Nimi: Henkilötunnus:

TIETOKANNAN SUUNNITTELU

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Fronter Varauskalenteri-työkalu

TIETOKANNAT JOHDANTO

2. Olio-ohjelmoinnin perusteita 2.1

SELECT-lauseen perusmuoto

Analyysi on tulkkaamista

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

UML ja luokkien väliset suhteet

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

T Testitapaukset TC-1

Transkriptio:

2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen Luku 2 Arkkitehtuuri ja analyysi ITKA204 kevät 2016 1

2.1 Sovellusarkkitehtuuri Tietokannanhallintajärjestelmien luokittelua DBMS:iä voidaan luokitella mm. seuraavien kriteerien perusteella: Tietomallin mukaan esim. Relaationaalisiin (esim. SQL Server, Oracle, PostgreSQL) Oliokeskeisiin (esim. ObjectDB, Gemstone) Dokumenttikeskeisiin (MongoDB, CouchDB) Samanaikaisten käyttäjien lukumäärän mukaan: Monen käyttäjän (esim. yllä mainitut) vs. yhden käyttäjän (esim. Access, Base) Maantieteellisen sijainnin mukaan: Keskitetty vs. hajautettu. Käyttötarkoituksen mukaan: Yleiskäyttöiset vs. spesifiset käyttötarkoitukset. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 2

2.1 Sovellusarkkitehtuuri Tietokannanhallintajärjestelmän ominaispiirteitä Keskeisimpiä ominaispiirteitä, joita edellytetään tietokannanhallintajärjestelmiltä: 1. Suorittavat perusoperaatioita (luominen, etsiminen, muokkaaminen, poistaminen eli CRUD). 2. Mahdollistavat tietoriippumattomuuden (data independence) Fyysinen tietoriippumattomuus: sovellusohjelmaa ei tarvitse muokata, vaikka tietokannan fyysistä rakennetta (esim. tiedon sijaintia, esitysmuotoa, apurakenteita) muokattaisiin. Looginen tietoriippumattomuus: sovellusohjelmaa ei tarvitse välttämättä muuttaa loogisen rakenteen muuttuessa. 3. Mahdollistavat samanaikaiset käyttäjät 4. Mahdollistavat tiedon eheyden eli ristiriidattomuuden sekä toisteisuuden minimoinnin. 5. Mahdollistavat tiedon turvaamisen: käyttöoikeuksien määrittämisen ja valvonnan. 6. Ovat suorituskykyisiä. 7. Pyrkivät yhteensopivuuteen muiden järjestelmien, tekniikoiden ja DBMS:ien kanssa. 8. Pyrkivät vaivattomaan skaalautuvuuteen käyttäjien ja datan määrän sekä laitteiston suorituskyvyn suhteen. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 3

2.1 Sovellusarkkitehtuuri Tietokannanhallintajärjestelmän osat Edellä mainittujen toimintojen lisäksi DBMS voi sisältää komponentteja esim.: Samanaikaisten tapahtumien käsittelyyn (erityisesti RDBMS:t) Varmuuskopiointiin ja palautukseen Suorituskyvyn ja kuormituksen monitorointiin Virhetilanteista toipumiseen Raportointiin, analysointiin ja tiedonlouhintaan Eräajoon eli suuren datamäärien tuomiseen kantaan ja viemiseen kannasta. Lisäksi voi olla väliohjelmistoja DBMS:n liittämiseksi muihin järjestelmiin tai DBMS:iin sekä jaetut komponentit käyttöjärjestelmän tai kernelin kanssa. Erityisesti kaupallisten tuotteiden kalliimmissa versioissa graafinen käyttöliittymä. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 4

2.1 Sovellusarkkitehtuuri Sovellusohjelman tietokantakyselyt Tietokantajärjestelmän sovellusohjelman tietokantakyselyt tehdään tavallisesti: upottamalla kyselykieltä (esim. SQL) isäntäkieleen (esim. Java), kutsumalla isäntäkielessä tietokantaan tallennettua rutiinia (esim. PL/SQL tai T/SQL), kokonaan isäntäkielellä (ns. natiivikyselynä) tai ORM (object-relational mapper) työkaluja käyttäen. Käyttöliittymä HAE-painike Sovellusohjelma tuotteet.objects.raw( SELECT hinta FROM tuote; ) DBMS SELECT hinta FROM tuote; π hinta (tuote) 0 init 0 8 9 00 1 openread 0 3 0 1 00 2 rewind 0 6 0 00 3 column 0 0 1 00 ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 5

2.1 Sovellusarkkitehtuuri Tietokantakäskyn kulku Sovellusohjelma Kysely loogisiin tietorakenteisiin korkean tason kyselykielellä Käskykomponentti Kysely loogisiin tietorakenteisiin matalan tason kysely- tai ohjelmointikielellä Varastointikomponentti Kyselty data Muisti Levy DBMS Kysely fyysisiin tietorakenteisiin matalan tason ohjelmointikielellä ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 6

2.1 Sovellusarkkitehtuuri Tietokantakäskyn kulku Sovellusohjelma Kysely Saantipolun hallinta Metadata Tietokanta-ajuri tai DBMS Yhteyden myöntäminen Lokinhallinta Tapahtumaloki Parseri Uudelleenkirjoitus Rinnakkaisuudenhallinta Lukkotaulu Optimointi Ajo Muistinhallinta Tietokanta Käskykomponentti Varastointikomponentti ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 7

Tietokantajärjestelmän suunnittelun vaiheet Vaatimusmäärittely ytun nimi ostun budjetti Yritys 1 N Osasto DBMS-riippumaton DBMS-spesifinen Toimintoanalyysi Sovellusohjelman suunnittelu Käsitteellinen mallintaminen Looginen suunnittelu Fyysinen suunnittelu Yritys ytun CHAR(10) nimi VARCHAR(20) Osasto ostun CHAR(5) budjetti INT ytun CHAR(10) Sovellusohjelman toteutus y y y y y y o o o o ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 8

ER-malli Chenin (1976) ER-malli (Entity-Relationship model) on käsitteellisen tason tietomalli. Tunnetuin ja perusosiltaan sovelletuin. Myöhemmin muunneltu ja laajennettu: EER-malli, ERT-malli, ER+-malli jne. Mallintaa nimensä mukaisesti kohteita ja suhteita (vrt. UML-luokkakaavion luokat ja assosiaatiot). Käsitteellinen taso Looginen taso Suunnittelu Toteutus Fyysinen taso Data ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 9

Kohde ja kohdetyyppi Kohde (entity) on reaalimaailmaa kuvaava konkreettinen tai käsitteellinen asia tai tapahtuma. Kohde on kohdealueen kannalta mielenkiintoinen, ts. siitä halutaan tallentaa tietoa. Kohde voi olla esim. Matti, ABC-123 tai tilitapahtuma #222001 Kohdetyyppi (entity set) on kohteiden abstrahoitu joukko. Kohteiden samanlaisuus ilmenee niiden attribuuttien ja suhteiden samanlaisuutena. Kohdetyyppi voi olla esim. ihminen, auto tai tilitapahtuma. Kohdetyyppi Opiskelija ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 10

Attribuutti Attribuutti on ominaispiirre, joka on kohteen tai suhteen kannalta mielenkiintoinen. Esim. etunimi, sukunimi, rekisterinumero, saldo, nostomäärä. Attribuutilla on arvo, joka kuvastaa kohteen tai suhteen yksittäistä ominaispiirrettä. Esim. Matti, Meikäläinen, ABC-123, 150, 20. Kullakin attribuutilla on arvojoukko (domain), josta arvot tulee valita. Esim. nostomäärä = (20-100), rekisterinumero = ^[A-Z]{3}-[0-9]{3}$ Attribuutti sukunimi ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 11

Avainattribuutti ja koottu attribuutti Avainattribuutti (key) tunnistaa yksikäsitteisesti kohteen. Joskus tarvitaan useampia avainattribuutteja yksikäsitteiseen tunnistamiseen. Avainattribuutin arvo ei voi olla tyhjäarvo. Avainattribuuttien todellinen osajoukko ei saa tunnistaa kohteita yksiselitteisesti toisistaan. Jos attribuutti ei ole avainattribuutti, se on kuvaileva. Koottu attribuutti (composite) voidaan jakaa pienempiin osiin. Jos attribuutti ei ole koottu, se on yksinkertainen. katu Avainattribuutti htun Koottu attribuutti postinro osoite kaup ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 12

Johdettu ja moniarvoinen attribuutti Johdetun (derived) attribuutin arvo on johdettu joko toisen attribuutin tai attribuuttien arvosta tai johdettuun attribuuttiin liittyvän kohdetyypin mukaisten kohteiden lukumäärästä. Jos attribuutti ei ole johdettu, se on tallennettu. Moniarvoisella attribuutilla (multivalued) voi olla usea arvo kohdetta kohden. Jos attribuutti ei ole moniarvoinen, se on atominen. Johdettu attribuutti ikä Moniarvoinen attribuutti puh ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 13

Attribuuttien luokittelu Tyyppi Atominen attribuutti Yksinkertainen attribuutti Tallennettu attribuutti Avainattribuutti Tyhjäarvoinen attribuutti Vastakohta Moniarvoinen attribuutti Koottu attribuutti Johdettu attribuutti Kuvaileva attribuutti Arvon sisältävä attribuutti synt_aika optun katu ikä Opiskelija osoite postinro email kaup ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 14

Suhdetyyppi Suhde (relationship) on mikä tahansa 1..n kohteen välillä vallitseva riippuvuus tai muu kiinnostava asiayhteys. Esim. Aatami omistaa Toyotan tai Bertalla on arvosana 4 kurssista ITKP101. Suhteiden joukot muodostavat suhdetyyppejä. Esim. henkilöt omistavat autoja tai opiskelijoilla on kurssisuorituksia. Suhdetyyppiä kuvataan tavallisesti verbillä. Myös suhdetyypeillä voi olla attribuutteja. Attribuutit kuvaavat suhteen ominaisuuksia. Suhdetyypin asteluvun määrittää suhdetyyppiin liittyvien kohdetyyppien lukumäärä. suorituspvm Opiskelija Kurssi Työntekijä suorittaa on esimies ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 15

Kardinaliteetti Kardinaalisuus ilmaisee, kuinka moneen tietyn tyyppiseen suhteeseen kohde osallistuu tai voi osallistua. Kardinaalisuusmerkintöjen tulee vastata mallinnettavan kohdealueen liiketoimintalogiikkaa. Minimikardinaalisuus (ts. pakollisuus) ilmaistaan viivoilla: Yksi viiva: suhteeseen osallistuminen on vapaaehtoista (minimikardinaalisuus 0). Kaksi viivaa: suhteeseen osallistuminen on pakollista (minimikardinaalisuus 1). Maksimikardinaalisuus ilmaistaan merkinnällä 1 tai muuttuja. htun osoite rektun merkki Tälle kohdealueelle pätee: Autolla on vain yksi omistaja. Sellaiset autot, joilla ei ole omistajaa, eivät ole kiinnostavia. Henkilö 1 N Auto Henkilö omistaa 0..n autoa. Auton omistaa 1..1 henkilöä. omistaa ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 16

Kardinaliteetti Maksimi 1: auton omistaa korkeintaan yksi henkilö. Maksimi N: henkilö omistaa korkeintaan N autoa. Opettaja M Henkilö 1 N Auto Opiskelija N P Kurssi omistaa Minimi 0: henkilö ei välttämättä omista autoa. Minimi 1: auton omistaa välttämättä joku henkilö. suorituksen arvostelu suorituspvm N Työntekijä 1 Vastapäivään: työntekijä on esimies 0..n työntekijälle. Myötäpäivään: työntekijällä on esimiehenä 1..1 työntekijää. on esimies ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 17

Muita kardinaalisuusnotaatioita Chen Martin harakanvarvas ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 18

Heikko kohdetyyppi ja tunnistava suhdetyyppi Jos kohdetyypin mukaisia kohteita ei voida tunnistaa sen omien attribuuttien avulla, sitä sanotaan heikoksi kohdetyypiksi (weak entity set). Heikko kohde tunnistetaan sen avainattribuuttien lisäksi tunnistavan kohdetyypin avainattribuuttien perusteella. Tunnistava kohdetyyppi on jokin heikkoon kohdetyyppiin liittyvä vahva kohdetyyppi. Tunnistavaa kohdetyyppiä merkitään tunnistavalla suhdetyypillä. Esim. tietokantaan tallennetuista lapsista ei voida tallentaa henkilötunnusta, vaan lapset tunnistetaan heidän huoltajiensa kautta tai yritysten osastot tunnistetaan yritysten, johon osastot kuuluvat, kautta. ytun nimi ostun budjetti Yritys 1 N Osasto ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 19

Luentotehtävä 1 Tee alla olevan kuvauksen mukainen ER-kaavio, josta ilmenevät kohdetyypit, suhdetyypit, olennaisimmat attribuutit, avainattribuutit sekä minimi- ja maksimikardinaalisuudet. Tietokannan tulee sisältää tietoja asiakkaista (astun, asnimi, asosoite), jotka tilaavat tiettyinä päivinä tuotteita (tuoteno, tuotenimi, hinta). Tilaus tunnistetaan tilausnumerolla (tilausno). Tilaus voi koskea useampia tuotteita (tiettyjä määriä). ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 20

Luentotehtävä 1: ratkaisu astun Ratkaisu 1: asnimi asosoite tilausno tilpvm kpl tuoteto tuotenimi hinta Asiakas 1 N Tilaus M N Tuote tekee koskee Ratkaisu 2: astun asnimi asosoite tilausno tilpvm tuoteto kpl tuoteto tuotenimi hinta Asiakas 1 N 1 N N 1 Tilaus Til_rivi Osasto Tuote tekee kuuluu koskee ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 21

Abstraktiorakenteet Abstraktiorakenteilla voidaan mallintaa yleistämistä (generalization) ja erilaistamista (specialization). Yleistämisen mukaan tarkastelu siirretään alikohdetyypeistä ylikohdetyyppeihin, esim. opiskelija ja henkilökunta ovat henkilöitä. Erilaistaminen on käänteinen muoto yleistämiselle: ylikohdetyypistä muodostetaan alikohdetyyppejä. puh htun Henkilö nimi Alikohdetyyppijoukon kattavuus kuvataan viivoilla: Kattava (kaksi viivaa): alijoukkojen yhdiste on sama kuin ylijoukko. Osittainen (yksi viiva): osa ylijoukon kohteista ei kuulu mihinkään alijoukkoon. huone o pääaine Abstraktiorakenteet muistuttavat perusperiaatteeltaan UML-luokkakaaviostakin tuttua perintää. Henkilökunta Opiskelija Alikohdetyypit perivät ylikohdetyyppinsä attribuutit. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 22

Erillinen abstraktiorakenne Abstraktiorakenne on erillinen (disjoint), jos alikohteet voivat kuulua korkeintaan yhteen alikohdetyyppiin. A A d B C d B C A B C B C Esim. ajoneuvot (A) ovat joko autoja (B) tai veneitä (C). Esim. ajoneuvot (A) ovat joko autoja (B) tai veneitä (C) tai joitakin muita. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 23

Leikkaava abstraktiorakenne Abstraktiorakenne on leikkaava (overlapping), jos alikohteet voivat kuulua useampaan kuin yhteen alikohdetyyppiin. A A o B C o B A C B C B C Esim. ajoneuvot (A) ovat joko autoja (B) tai veneitä (C) tai molempia. Esim. ajoneuvot (A) ovat joko autoja (B) tai veneitä (C) tai molempia tai joitakin muita. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 24

Koostaminen ja osittaminen Koostamisella (aggregation) voidaan muodostaa kokonaisuuksia alemman tason kohteista. Osittaminen on koostamisen käänteinen muoto: kokonaisuuksia voidaan jakaa osiksi. Erityistä merkintätapaa ei ER-notaatiossa ole. Auto Ovi Akku Moottori Pyörä Kaasutin Sylinteri ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 25

ER-notaation yhteenveto (vahva) kohdetyyppi moniarvoinen attribuutti Osasto heikko kohdetyyppi johdettu attribuutti suhdetyyppi tunnistava suhdetyyppi koottu attribuutti attribuutti avainattribuutti o abstraktiorakenne o = overlapping d = disjoint heikon kohdetyypin avainattribuutti vastaavan saat tenttiin ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 26

Mallintamisprosessi 1. Peruskohdetyyppien tunnistaminen Etsi toistuvia käsitteitä puheesta tai kirjallisesta kuvauksesta. Mallinna ne käsitteet, joista halutaan tallentaa tietoa tietokantaan. Helpoimmat kohteet tunnistaa ovat reaalimaailman konkreettiset asiat: tuote, asiakas jne. Vaikeampia kohteita ovat käsitteelliset asiat: tilaus, tilausrivi, sopimus jne. Valitse kohdetyypeille mahdollisimman täsmälliset nimet ja tarvittaessa kuvaile niiden merkitys. Huomaa, että erilaiset raportit ja tulosteet eivät ole kohdetyyppejä, vaan tietokannasta johdettua tulostietoa. 2. Attribuuttien tunnistaminen Pohdi, mitä kohdetyyppien ominaisuuksia halutaan tallentaa tietokantaan. Kaikki tieto ei välttämättä ole relevanttia, vaikka se toistuvasti mainittaisiinkin. Valitse erityiset attribuutit (avain-, moniarvoiset, johdetut, kootut). ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 27

Mallintamisprosessi 3. Suhdetyyppien tunnistaminen Etsi suhteet, jotka ovat tietokannan kannalta relevantteja. Suhteet voivat koskea esim. olemassaoloa, toimintaa tai tapahtumaa. 4. Iterointi Lisää mallintamisprosessin aikana löytyneitä uusia attribuutteja, kohdetyyppejä ja suhdetyyppejä. Nimeä kohdetyypit ja attribuutit tarkemmin ja kuvaavammin. Nimeä suhdetyypit kuvaavilla verbeillä tai muuten. Merkitse suhdetyyppien attribuutit. Merkitse kardinaalisuusmerkinnät. Käytä tarvittaessa abstraktiorakenteita selventämään rakennetta (useilla kohteilla on samoja attribuutteja). ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 28

Suuret kohdealueet Jos mallinnettava kohdealue on erityisen suuri, voi olla syytä mallintaa tietokanta osissa käsitteellisellä tasolla, ja integroida näkemykset (view) myöhemmin. Vähittäinen näkemysten integrointi: Big bang integrointi: A B C D A B C D Koko tietokannan kattava ER-kaava Koko tietokannan kattava ER-kaava ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 29

TOP 5 -virheet 1. Kardinaalisuudet on merkitty väärin. 2. Suhdetyyppejä on liikaa: ylimääräiset suhdetyypit kuvaavat tietokannan kannalta merkityksettömiä suhteita. Tavallisesti väärin: esim. asiakas katsoo autoa tai johtaja luo raportin. 3. Järjestelmän tulosteita on valittu kohdetyypeiksi. Tavallisesti väärin: esim. raportti, yhteenveto, kalenteri. 4. Kohdetyyppi on mallinnettu attribuuttina. Tavallisesti väärin: esim. attribuutit asiakas tai tuote. 5. Samat kohdetyypit toistuvat eri nimillä. Tavallisesti väärin: esim. tilavaraus, varaus, varauksen_tiedot mallintamassa samaa kohdetyyppiä. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 30

Osaamistavoitteet Osaa kuvailla tietokannanhallintajärjestelmän komponentit. Osaa kuvailla tietoriippumattomuuden merkityksen sovelluskehitykselle. Osaa soveltaa ER-mallia käsitteellisessä mallintamisessa, esim.: Annetaan ER-kaavio ja pyydetään muokkaamaan, tarkentamaan tai laajentamaan sitä. Annetaan ER-kaavio ja pyydetään selittämään tai korjaamaan sitä. Annetaan kuvaus kohdealueesta ja pyydetään esittämään sen mukainen ER-kaavio. Ei: Martinin kardinaalisuusnotaatiota eikä harakanvarvasnotaatiota. Huom. ER-notaation saat tentissä liitteenä! ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 31