POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU
KÄSITEMALLINNUKSESTA RELAATIOKANTAAN KÄSITEMALLI LOOGINEN MALLI: tietomalli valittu FYYSINEN MALLI: DBMS valittu
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 tms. Prototyyppi
Luokkakaavio LUOKKAKAAVIOSTA TAULUIHIN ER-kaavio Taulukaavio (normalisoitu) Relaatiotietokannan taulut
LUOKKAKAAVIO
ER- ELI TIETOKANTAKAAVIO
NORMALISOITU (3. NORMAALIMUOTO) TIETOKANTA- ELI TAULUKAAVIO
YHTEYKSIEN MERKINTÄTAPOJA Yhden suhde moneen -yhteys, 1:M, voidaan ilmaista lukuisilla eri tavoilla riippuen käytettävästä notaatiosta, esim. (esim. ErWin-työkalu) (= IE)
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)
ESIMERKKI LUOKASTA Asiakas osoite lisaa() muuta() poista() Luokan Attribuutit Operaatiot eli metodit
ESIMERKKI ASSOSIAATIOSTA Asiakas Asiakas osoite osoite tekee 1 * Assosiaatio 1..1 0..* Lukumääräsuhde Tilaus Tilaus tilausnro tilauspvm tilausnro tilauspvm
LISÄÄ ESIMERKKEJÄ ASSOSIAATIOSTA Asiakas Asiakas osoite osoite 1 tekee * Tilaus Navigointisuunta 1 * Tilaus Vahva kooste tilausnro tilauspvm tilausnro tilauspvm
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
ESIMERKKI LUOKKAHIERARKKIASTA Kulkuväline hinta Auto vuosimalli rekisterinro Vene materiaali Henkilöauto kiihtyvyys huippunopeus Kuorma-auto akselipaino
Käyttöliittymä VÄLIKERROS SOVELLUKSEN JA TKHJ:N VÄLISSÄ Sovellus Sovellusluokka Välikerros Tietokantaluokka Tietokannan hallintajärjestelmä Relaatiotietokannan taulut
LUOKKAKAAVIOSTA ER-KAAVIOON
MONIARVOINEN ATTRIBUUTTI: OMA TAULU (VRT. 1. NORMAALIMUOTO) Henkilo henkiloid puhelinnrot HENKILO henkiloid PUHELIN henkiloid puhelinnro puhtyyppi
KOOSTEEN MUUTTAMINEN YKSI-MONEEN-YHTEYDEKSI Tuote tuoteid tuotenimi 1 * Osa OsaID osanimi Tuote tuoteid tuotenimi Osa OsaID osanimi tuoteid (FK) CASCADE UPDATE ja CASCADE DELETE
KOOSTEEN MUUTTAMINEN VIITTAUKSEKSI ITSEENSÄ Osa osaid osanimi EmoOsaID tai Tuote tuoteid tuotenimi emotuoteid
LUOKKAHIERARKIA (FOWLER 2000) Asiakas osoite Yritysasiakas yhteysnimi luottoluokitus luottoraja Henkiloasiakas luottokortinnro
KOLME KÄSITETTÄ: ALILUOKISTA TULEE OMAT KÄSITTEENSÄ Asiakas asiakasid osoite (asiakasluokka) 1 0..1 Yritysasiakas yrasiakasid yhteysnimi luottoluokitus luottoraja Henkiloasiakas hloasiakasid luottokortinnro 0..1
YKSI KÄSITE: LUOKAT YHDISTETÄÄN Asiakas asiakasid asiakasnimi osoite asiakasluokka yhteysnimi luottoluokitus luottoraja luottokortinnro Asiakasluokka: joko yritys tai henkilö Yleensä tehokkain! Pienenä haittana tyhjäksi jäävät tiedot (onko sillä merkitystä huomioiden nykyiset levyhinnat?
KAKSI KÄSITETTÄ: ALILUOKISTA TULEE OMAT KÄSITTEENSÄ JA YLILUOKAN OMINAISUUDET YHDISTETÄÄN ALILUOKKIIN Yritysasiakas yrasiakasid osoite yhteysnimi luottoluokitus luottoraja Henkiloasiakas hloasiakasid osoite luottokortinnro
KAKSI KÄSITETTÄ: ALILUOKISTA TULEE OMAT KÄSITTEENSÄ JA YLILUOKAN OMINAISUUDET YHDISTETÄÄN ALILUOKKIIN Selvitä, onko aliluokilla yhteys toisiinsa! Yritysasiakas yrasiakasid osoite yhteysnimi luottoluokitus luottoraja Henkiloasiakas hloasiakasid osoite luottokortinnro yrasiakasid