4.4.2017 Tieto/datamallit
4.4.2017 Data Governance Data governance (DG) refers to the overall management of the availability, usability, integrity, and security of the data employed in an enterprise.
4.4.2017 Eri tasojen tietomallit (käsitemallit)
4.4.2017 Enterprise data model (EDM) Yleistason kuvaus (käsitteellinen malli), ei sisällä teknisiä yksityiskohtia Mallit ovat yleensä graafeja, esim. yksilöitä ja niiden välisiä yhteyksiä (Entity/Reationship, ER) Kuvaa yrityksen pääprosessit, toiminnot ja datan yleistasolla (mihin dataa käytetään eri prosesseissa ja päätöksenteossa) Ei omaa teknistä kaaviota, yleensä käytetään vuokaavioita, ER-kaavioita, prosessikaavioita, Tärkeää kuvata yrityksen osa-alueet ja niiden väliset yhteydet ja mahdolliset dataintegraatiot Osa-alueet esimerkiksi pankissa: sijoitustoiminta, luotot, lainat, vakuutukset
4.4.2017 EDM:n osia Yleiskuva (käsitteellinen malli) Aihealueet Osa-aluejaottelu (lainat, luotot, sijoitukset, ) Yksilötyypit Yhteydet Business area analysis (osaalueiden analyysi) Datamallit Prosessimallit Attribuutit
4.4.2017 Looginen ja fyysinen tietomalli Seuraavaksi tutustutaan oikeaoppiseen relaatiotietokannan suunnitteluun, johon kuuluvat ER-kaavion (Entity Relationship Model) määrittely Relaatiokaavion määrittely Suunnittelu alkaa ER-kaaviolla (ER-kaaviota käytetään myös ylätason EDM:n kuvaamisessa) ER-kaaviosta muodostetaan tiettyjen askelten/toimenpiteiden avulla relaatiokaavio, joka on kuvaus tietokannan relaatiotauluista ja niiden sisältämistä tiedoista (metadata). Relaatiokaaviota voidaan edelleen tarkentaa yksityiskohdilla mm. attribuuttien ja taulujen viite-eheysrajoitteista ym. (Tuloksena fyysinen tietomalli)
4.4.2017 ER-kaavioiden notaatiota
4.4.2017 Esimerkki ER-kaaviosta
ER-mallin rakenneosat Mallin kaksi peruskomponenttia ovat 1. Yksilötyyppi (entity) ja sen attribuutit 2. Yhteys (relationship) ja sen mahdolliset attribuutit. Yksilötyypit ovat perusobjekteja, joista kerättävää tietoa tallennetaan tietokantaan. Esimerkiksi Asiakas, Tuote, Työntekijä, Opiskelija Kielellisesti ne ovat tavallisesti tällaisia yleisnimiä (nomineja). Erisnimet vastaavat yksilötyypin ilmentymiä. Yhteystyyppi kuvaa sellaisia yksilötyyppien välisiä yhteyksiä, jotka on tarpeen kuvata tietokannassa Esimerkiksi Asiakas ostaa Tuotteen. Kielellisesti ne ovat tavallisesti tällaisia teonsanoja (verbejä) jotka kokoavat predikaatteina yleisnimistä lauseita. 4.4.2017
Linnunpontto 4.4.2017 Yksilötyyppi PK pontto_id Yksilötyypin nimeäminen: sisältöä kuvaava nimi merkityksellinen ja itsedokumentoiva yksikäsitteinen luettava Yksilötyypin ominaisuuksia: sillä pitäisi olla useita ilmentymiä tietokannassa sillä pitäisi olla useita attribuutteja Yksilötyypillä pitää olla avain (tunniste). sijainti_gps kuvaus arvosana Yksilötyyppiin liitetään sitä kuvaavia attribuutteja (yllä 4kpl)
4.4.2017 Esimerkki (Crows Foot database notation ) Asiakas Auto PK Asiakasnro omistaa PK rekisterinro Etunimi Merkki Sukunimi email Malli Vuosimalli
4.4.2017 Esimerkki (Chen s database notation ) ASIAKAS omistaa AUTO etunimi sukunimi asiakasnro vuosimalli reknro merkki malli
4.4.2017 Tässä mukana ei-kelvollisia yksilötyyppejä, miksi? Taloudenhoitajia (treasurer) on vain 1. Kuluraportit ovat informaatiota, joka tuotetaan tietokannan sisältämästä muusta tiedosta. Ota malliin mukaan vain sellaisia yksilötyyppejä, joista (ainakin teoriassa) voi olla useampi kuin 1 ilmentymä. Ota malliin mukaan sama tieto vain yhden kerran. Tässä vain kelvollisia yksilötyyppejä
Vahva vs. heikko yksilötyyppi ja id-yhteys 4.4.2017 1. Vahva yksilötyyppi (strong entity): olemassaolo ei riipu muista yksilötyypeistä ja sillä on omat tunnisteet, siis avainattribuutit. 2. Heikko yksilötyyppi (weak entity): olemassaolo riippuu jostain toisesta yksilötyypistä (vahvasta yt:stä), ei voi esiintyä ilman sitä, jota sanotaan myös omistajatyypiksi. Myös sen avainattribuutit ovat vain osittaisia tunnisteita. Ne esitetään kaaviossa kaksinkertaisella alleviivauksella. Myös heikon yksilötyypin suorakaide piirretään kaksinkertaisella viivalla. 3. Indentifioiva yhteystyyppi eli id-yhteys: liittää heikon yksilötyypin omistajaansa.
Esimerkki heikosta yksilötyypistä 4.4.2017 Työntekijä on vahva yksilötyyppi. Dependent on heikko yksilötyyppi. Carries on ns. identifioiva yhteys.
Yksilöt ja niiden väliset yhteydet Yksilöiden väliset yhteydet (yhteystyypit) ovat tärkeässä roolissa tietokantaa suunniteltaessa Yhteys voi olla normaali perusyhteys tai heikkoon yksilötyyppiin liitetty heikko yhteys Yhteyden aste kuvaa, kuinka moneen muuhun yksilöön se on yhteydessä (1-, 2- tai 3-asteinen) Yhteyden kardinalisuus/kardinaliteetti on tärkein yhteystyyppiin liitetty ominaisuus ja se kuvaa, kuinka moni yksilön ilmentymä voi liittyä yhteyn kautta toisen yksilön ilmentymään (1:1, 1:N ja N:M) 4.4.2017
4.4.2017 Viiva kuvaa yhteyden olemassaolon Yhteydellä voi olla myös omia attribuutteja, ks. esimerkkejä jäljempänä Yhteyden aste: unary, binary tai ternary ( ) Yhteyden kardinaalisuus: 1:1, 1:n, m:n Kardinaalisuusrajoitteet ilmaisevat kuinka moneen ilmentymään yksittäinen ilmentymä voi enintään liittyä tai kuinka moneen sen pitää liittyä: Minimikardinaalisuus eli alaraja Jos=0, on optionaalinen Jos >=1, on pakollinen Maksimikardinaalisuus eli yläraja Yhteyksien maksimimäärä Totaalisuusrajoite: ilmentymän on aina oltava yhteydessä toiseen ilmentymään
ER-mallin grafiikka 4.4.2017 Yksilötyypit esitetään suorakaiteen muotoisella laatikolla (tässä perustyyppi strong sekä 2 erikoistapausta) Attribuutit luetellaan laatikon sisällä Yhteys kuvataan viivalla ja sen aste (degree) voi olla unary binary ternary, Yhteyden kardinaalisuus, ks. kuvan symbolit: yksi optional(ei-pakollinen) mandatory (pakollinen) monta optional(ei-pakollinen) mandatory (pakollinen) Huom: jos kardinaalisuutta ei ilmoiteta, sen oletetaan olevan optional-many.
4.4.2017 Kardinaalisuudet voidaan merkitä viereisessä kuvassa käytetyin symbolein. Nämä ovat täydelliset merkintätavat ja suositellaan käytettäväksi. Merkintätavat eivät kuitenkaan ole vakiintuneita. Jos alarajaa ei ole merkitty, oletetaan se nollaksi. Jos ylärajakaan ei ole merkitty, oletetaan sen arvoksi = 1. Valitettavasti eri kirjoissa ja työkaluissa käytetään erilaisia piirroksia näille samoille asioille. Seuraavissa kuvissa on kaikki em. vaihtoehdot esillä. Muistisääntö: kun lähestytään yhteyttä (viivaa) pitkin yksilötyyppiä (laatikkoa) niin ensin tulee alaraja eli vähintään ympyrä eli nolla poikkiviiva eli yksi Sitten tulee yläraja eli enintään poikkiviiva eli yksi haarautuminen eli monta.
Esimerkkejä yhteyden asteesta 4.4.2017
Esimerkkejä yhteyden asteesta 4.4.2017 Tietty myyjä voi toimittaa useaa eri osaa monelle eri varastolle. Tiettyä osaa voidaan toimittaa usean eri myyjän toimesta usealle eri varastolle. Tietty varasto hankkii usealta eri myyjältä useita eri osia.
Esimerkkejä yhteyden kardinaalisuusrajoitteista 4.4.2017 Potilaalla on aina vähintään yksi potilaskertomus. Jokainen yksittäinen potilaskertomus liittyy aina tasan yhteen potilaaseen.
Esimerkkejä yhteyden kardinaalisuusrajoitteista 4.4.2017 Projektilla pitää olla vähintään yksi työntekijä. Työntekijä voi kuulua 0-n projektiin.
Esimerkkejä yhteyden kardinaalisuusrajoitteista 4.4.2017 Esimerkki rekursiivisesta yhteydestä: Henkilö voi olla naimisissa enintään yhden toisen henkilön kanssa tai ei ole naimisissa lainkaan.
Esimerkki yhteystyypistä, jolla attribuutti 4.4.2017 Completes-yhteyteen on liitetty (katkoviivalla) attribuutti Date Completed. Se siis ilmoittaa pvm:n, jolloin tietty työntekijä on suorittanut tietyn kurssin. Completes-yhteydellä on siis yksi attribuutti. Date Completed on selkeästi yhteyden ominaisuus, ei pelkästään Työntekijän tai Kurssin ominaisuus.
4.4.2017 Harjoitus: mitä kuva esittää? PK LUOKKA LTUNNUS LuokanNimi LK_OPP OPPILAS PK OppNro Nimi Luokanvalvoja Numero Arvosana OPETTAJA PK OpeNro Nimi Opetustaito PK OPPIAINE OAineKoodi AineenNimi
Maa matkakohteena Kaupunki tarjotaan Retki 4.4.2017 PK Maatunnus PK Nimi Nimi Nimi Väestön lkm Kuvaus Valuutta lyhyt esittely on tarjolla Google Map - Koordinaatit työskentelee max_osall viikonpäivä Valtiomuoto vetää Opas Hotelli PK PK Nimi Osoite Kuvaus Huone_lkm PK ID Nimi Puh Koulutus Nettisivujen osoite
ER-kaavion muuttaminen relaatiokaavioiksi Askeleet suunnitelmasta kohti konkretiaa! 4.4.2017
Yksilötyypistä relaatiotaulu 4.4.2017 1. Jokaisesta tavallisesta yksilötyypistä tehdään relaatiotaulu Tavalliset attribuutit siirtyvät sellaisenaan Yhdistelmäattribuutit hajotettava yksinkertaisiksi attribuuteiksi (Esim. Nimi muotoon Etunimi, Sukunimi)
Heikosta yksilötyypistä relaatiotaulu 4.4.2017 2. Heikosta (weak) yksilötyypistä tehdään relaatiotaulu Vierasavaimeksi päätyypin perusavain Perusavain: heikon tyypin avaimen ja vierasavaimen yhdistelmä Perusavain
4.4.2017 Binääriset YHTEYDET 3. Binäärisen yhteystyypin muuntaminen 1:n-yhteys: 1-puolen perusavain lisätään vierasavaimeksi n-puolen relaatioon. m:n-yhteys: tehdään uusi relaatio, jonka attribuuteiksi tulevat yhteyteen kuuluvien yksilötyyppien perusavaimet. Ne yhdessä muodostavat syntyvän relaation perusavaimen. 1:1-yhteys: toisen yksilötyypin perusavain viedään toisen vierasavaimeksi. Usein yhteyden toinen pää on pakollinen (= aina 1), toinen vapaaehtoinen (= 0 tai 1). Silloin viedään pakollisen pään perusavain vapaaehtoiseen päähän. Näin vältetään NULLit (eli tyhjät arvot).
Esimerkki 1:n 1-puolen perusavain lisätään vierasavaimeksi n-puolen relaatioon 4.4.2017
4.4.2017 Esimerkki m:n Huom! DateCompleted oli yhteyteen liittyvä attribuutti m:n-yhteys: tehdään uusi relaatio, jonka attribuuteiksi tulevat yhteyteen kuuluvien yksilötyyppien perusavaimet. Ne yhdessä muodostavat syntyvän relaation perusavaimen Kuva 3. 12 Yhteystyypistä relaatio (Hoffer & al.)
4.4.2017 Esimerkki 1:1 1:1-yhteys: toisen yksilötyypin perusavain viedään toisen vierasavaimeksi. Pakollisen pään perusavain vapaaehtoiseen päähän
5. Rekursiivinen yhteystyyppi Tehdään samoin kuin edellä, mutta nyt yhteyden kummassakin päässä onkin sama relaatio. 1:n-yhteys ja 1:1-yhteys: kyseisestä yksilötyypistä syntyvään relaatioon lisätään vierasavaimeksi tämän relaation perusavain. m:n-yhteys: yhteys kuvataan omana relaationaan, johon tulee vastaavan yksilötyypin perusavain kahteen kertaan. Tämä attribuuttipari toimii syntyvän relaation perusavaimena. 4.4.2017
Esimerkki rekursiivisesta yhteydestä 4.4.2017
4.4.2017 Harjoitus: muodosta relaatiokaavio PK LUOKKA LTUNNUS LuokanNimi LK_OPP OPPILAS PK OppNro Nimi Luokanvalvoja Numero Arvosana OPETTAJA PK OpeNro Nimi Opetustaito PK OPPIAINE OAineKoodi AineenNimi
Maa matkakohteena Kaupunki tarjotaan Retki 4.4.2017 PK Maatunnus PK Nimi Nimi Nimi Väestön lkm Kuvaus Valuutta lyhyt esittely on tarjolla Google Map - Koordinaatit työskentelee max_osall viikonpäivä Valtiomuoto vetää Opas Hotelli PK PK Nimi Osoite Kuvaus Huone_lkm PK ID Nimi Puh Koulutus Nettisivujen osoite
4.4.2017 Harjoitus Suunnittele mattokauppiaan tietokanta Jos mattokauppias ei ole mielenkiintoinen case, voit keksiä itseäsi kiinnostavamman aiheen!