Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Polku luokkakaavioista taulujen toteutukseen kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 7 Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI LOOGINEN MALLI: tietomalli valittu FYYSINEN MALLI: DBMS valittu 2 Ari Hovi & Jouni Huotari M3-1
Käsitemallinnuksesta relaatiokantaan toteutus opintojaksoilla II030100, IIO30200, IIO10200 KÄSITEMALLI (UML:n luokkakaavio): Kuvataan keskeiset käsitteet ja niiden väliset yhteydet LOOGINEN MALLI (tietokantakaavio): relaatiomalli (puretaan moni-moneen-yhteydet, 3. NF) FYYSINEN MALLI (DDL-skripti): Oracle, SQL Server, MySQL, PostgreSQL tms. 3 Luokkakaavio Luokkakaaviosta tauluihin ER-kaavio Taulukaavio (normalisoitu) Relaatiotietokannan taulut 4 Ari Hovi & Jouni Huotari M3-2
Luokkakaavio 5 ER- eli tietokantakaavio 6 Ari Hovi & Jouni Huotari M3-3
Normalisoitu (3. normaalimuoto) tietokanta- eli taulukaavio 7 Yhteyksien merkintätapoja Yhden suhde moneen -yhteys, 1:M, voidaan ilmaista lukuisilla eri tavoilla riippuen käytettävästä notaatiosta, esim. 8 Ari Hovi & Jouni Huotari M3-4
UML-luokkakaavioiden perusnotaatio Luokka Luokan tiedot (attribuutit) ja operaatiot eli metodit LuokanNimi attribuutti 1: Tyyppi = alkuarvo attribuutti 2 operaatio(argumenttilista) Assosiaatio Yksi-moneen Kooste Vahva kooste Yleistys (kolmion kärki osoittaa yliluokkaan) 1 * Navigointisuunta (nuoli osoittaa riippumattomaan käsitteeseen) 9 Esimerkki luokasta lisaa() muuta() poista() Luokan Attribuutit Operaatiot eli metodit 10 Ari Hovi & Jouni Huotari M3-5
Esimerkki assosiaatiosta tekee Tilaus 1 * tilausnro tilauspvm Assosiaatio Tilaus 1..1 0..* tilausnro tilauspvm Lukumääräsuhde 11 Lisää esimerkkejä assosiaatiosta 1 tekee * Tilaus tilausnro tilauspvm Navigointisuunta 1 * Tilaus tilausnro tilauspvm Vahva kooste 12 Ari Hovi & Jouni Huotari M3-6
Esimerkki yli- ja aliluokasta (periytyminen) Henkilöauto vuosimalli rekisterinro kiihtyvyys huippunopeus hinta Kuorma-auto vuosimalli rekisterinro akselipaino hinta Henkilöauto kiihtyvyys huippunopeus Auto vuosimalli hinta rekisterinro Kuorma-auto akselipaino 13 Esimerkki luokkahierarkkiasta Kulkuväline hinta Auto vuosimalli rekisterinro Vene materiaali Henkilöauto kiihtyvyys huippunopeus Kuorma-auto akselipaino 14 Ari Hovi & Jouni Huotari M3-7
Käyttöliittymä Välikerros sovelluksen ja TKHJ:n välissä Sovellus Sovellusluokka Välikerros Tietokantaluokka Tietokannan hallintajärjestelmä Relaatiotietokannan taulut 15 Luokkakaaviosta ER-kaavioon Luokkakaavio ER-kaavio 16 Ari Hovi & Jouni Huotari M3-8
Moniarvoinen attribuutti: oma taulu (vrt. 1. normaalimuoto) Henkilo henkiloid puhelinnrot HENKILO henkiloid PUHELIN henkiloid puhelinnro puhtyyppi 17 Koosteen muuttaminen yksi-moneen-yhteydeksi Tuote tuoteid tuotenimi Tuote tuoteid tuotenimi 1 * Osa OsaID osanimi Osa OsaID osanimi tuoteid (FK) 18 Ari Hovi & Jouni Huotari M3-9
Koosteen muuttaminen viittaukseksi itseensä Osa osaid osanimi EmoOsaID tai Tuote tuoteid tuotenimi emotuoteid 19 Luokkahierarkia (Fowler 2000) Yritysasiakas yhteysnimi luottoluokitus luottoraja Henkiloasiakas luottokortinnro 20 Ari Hovi & Jouni Huotari M3-10
Kolme käsitettä: aliluokista tulee omat käsitteensä asiakasid (asiakasluokka) 1 0..1 Yritysasiakas yrid yhteysnimi luottoluokitus luottoraja 0..1 Henkiloasiakas hloid luottokortinnro 21 Yksi käsite: luokat yhdistetään asiakasid asiakasnimi asiakasluokka yhteysnimi luottoluokitus luottoraja luottokortinnro luokka: joko yritys tai henkilö Yleensä tehokkain! Pienenä haittana tyhjäksi jäävät tiedot (onko sillä merkitystä huomioiden nykyiset levyhinnat? 22 Ari Hovi & Jouni Huotari M3-11
Kaksi käsitettä: aliluokista tulee omat käsitteensä ja yliluokan ominaisuudet yhdistetään aliluokkiin Yritysasiakas yrid yhteysnimi luottoluokitus luottoraja Henkiloasiakas hloid luottokortinnro 23 Kaksi käsitettä: aliluokista tulee omat käsitteensä ja yliluokan ominaisuudet yhdistetään aliluokkiin Selvitä, onko aliluokilla yhteys toisiinsa! Yritysasiakas yrid yhteysnimi luottoluokitus luottoraja Henkiloasiakas hloid luottokortinnro yrid 24 Ari Hovi & Jouni Huotari M3-12