HELIA TIKO-05 1 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnittelu Tietokannan suunnitteluprosessi... 2 Tavoitteet...2 Tietojärjestelmän suunnitteluprosessi...3 Abstraktiotasot tietokannan suunnittelussa...4 3-taso -malli...4 TIHA-standardi...5 Looginen mallintaminen... 6 Muunnos luokkakaaviosta relaatiokaavioksi 1.vaihe...7 Relaatiokaaviosta relaatiokaavoiksi 2.vaihe...9 Käsitekaavion ja relaatiokaavion eroja... 11 Käsitteitä... 12
HELIA TIKO-05 2 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnitteluprosessi Tavoitteet 1. Tyydyttää käyttäjien tietotarpeet 2. Tiedon luotettavuus 3. Hyvä suorituskyky 4. Yhteensopivuus 5. Jatkokehitettävyys Vastaa todellisuuden rakennetta Eheä Yksinkertainen Ilmaisuvoimainen Ei toistoa Suunnittelumenetelmä on työkalu tavoitteiden saavuttamiseksi 1. Vaihejako 2. Työskentelymenetelmät 3. Kuvaustavat
HELIA TIKO-05 3 (12) ICT03D Tieto ja tiedon varastointi Tietojärjestelmän suunnitteluprosessi Tietokannan suunnittelu osana tietojärjestelmän suunnittelua 1. Esitutkimus 2. Vaatimusmäärittely 3. Rakenteen ja toiminnan suunnittelu 4. Toteutus 5. Käyttöönotto 6. Ylläpito
HELIA TIKO-05 ICT03D Tieto ja tiedon varastointi 4 (12) Abstraktiotasot tietokannan suunnittelussa 3-taso -malli Käsitetaso Looginen taso Fyysinen taso Tiedon nimi, merkitys ja arvot Tiedon esitys valitulla tietomallilla Tiedon esitys fyysisellä tallennusvälineellä Riippumaton toteutusratkaisuista Sidottu käytettävään tietomalliin Sidottu käytettävään toteutusympäristöön Eri tasojen kuvaukset yhdessä kuvaavat tiedot kokonaisuudessaan Samaa asiaa ei kuvata monella tasolla. Kullakin tasolla on oma peruskäsitteistönsä ja esitystekniikkansa Piirrokset / piirroskielet (Formaalit) tekstimuotoiset kuvauskielet; Tietohakemistot tks_loog.doc 11.9.2007 10:18:00
HELIA TIKO-05 ICT03D Tieto ja tiedon varastointi 5 (12) TIHA-standardi Taso Keskeinen sisältö Suunnittelun tulos Käsitetaso Looginen taso Tekninen taso Fyysinen taso (SFS-106) 198 Kohdealueen käyttämien käsitteiden rakenne Tietomallin mukainen (looginen) tietorakenne Tietyn DBMS:n mukainen (tekninen) tietorakenne Tietyn tiedostonhallintaohjelmiston mukainen (fyysinen) talletusrakenne Käsitekaavio / Luokkakaavio Tietohakemistokuvaukset Normalisoidut relaatiokaavat Eheysmäärittelyt Tietokannan luontilauseet SQL:llä Tietokannan talletusmääritykset tks_loog.doc 11.9.2007 10:18:00
HELIA TIKO-05 6 (12) Looginen mallintaminen ~ Tietokannan käsitteellinen malli sovitetaan käytettävän tietomallin mukaiseksi (esim. relaatiotietokannan malliksi) Looginen suunnittelu on riippumaton käytettävästä tietokantatuotteesta ja laitealustasta 1. Laadi luokkakaavion pohjalta relaatiokaavio 2. Lisää viiteavaimet 3. Johda relaatiokaavat 4. Normalisoi tarvittaessa 5. Tarkista relaatiot suhteessa tietotarpeisiin 6. Korjaa relaatiokaaviota tarvittaessa 7. Määrittele eheyssäännöt (vaiheet 1 & 2 voi kokemuksen karttuessa yhdistää)
HELIA TIKO-05 7 (12) Muunnos luokkakaaviosta relaatiokaavioksi 1.vaihe Luokkakaavio vaatii tiettyjä muutoksia, jotta siitä saadaan relaatiotietomallin mukainen relaatiokaavio 1. Jokainen monen suhde moneen yhteys kuvataan omana relaationaan (luo uusi ns. apurelaatio / välittävä relaatio) 2. Mahdollinen ylemmän asteen yhteys (Yhteys jossa on useampi kuin 2 osapuolta) muutetaan binääriyhteyksiksi, jonka toiseksi osanottajaksi luodaan välittävä relaatio 3. Yhteys, johon liittyy attribuutteja, kuvataan omana relaationaan 4. Jokainen moniarvoinen ominaisuus kuvataan omana relaationaan 5. Pääluokan ja aliluokan välinen perintäsuhde muutetaan yhden suhde yhteen yhteydeksi. Mahdollisia aggragaattiyhteyksiä käsitellään kuten tavallisia assosiaatioyhteyksiä Jos kirjoitat kaavioon myös attribuutit, lisää viiteavaimet vaihe2:n ohjeen mukaisesti
HELIA TIKO-05 8 (12) Esim. Kurssihallinto Luokkakaavio Opettaja ope_id ope_sukunimi ope_etunimi ope_huone ope_puh 1 0..* Kurssi kurssi_id krs_nimi krs_laajuus krs_alku_pvm krs_loppu_pvm 0..* 0..* Opiskelija opi_id opi_sukunimi opi_etunimi opi_katuosoite opi_postino opi_puhno Relaatiokaavio 1. Ei monen suhde moneen -yhteyksiä 2. Ei korkeamman asteen yhteyksiä (vain binääriyhteyksiä) 3. Ei yhteyksiä joihin liittyy attribuutteja 4. Ei luokkia joissa moniarvoisia attribuutteja 5. Ei aliluokkia Opettaja ope_id ope_sukunimi ope_etunimi ope_huone ope_puh 1 0..* Kurssi krs_id krs_nimi krs_laajuus krs_alku_pvm krs_loppu_pvm krs_ope_id Opiskelija opi_id opi_sukunimi opi_etunimi opi_katuosoite opi_postino opi_puhno 1 1 0..* 0..* Osallistuminen krs_id opi_id opi_krs_arvosana
HELIA TIKO-05 9 (12) Relaatiokaaviosta relaatiokaavoiksi 2.vaihe Luokkien attribuutteihin lisätään viiteavaimet kuvamaan relaatioiden välisiä yhteyksiä: 1. Jokainen 1:n yhteys kuvataan lisäämällä viiteavain yhteyden n-päässä olevaan relaatioon 2. Jokainen 1:1 yhteys kuvataan lisäämällä viiteavain toiseen osallistuvaan osapuoleen sen mukaan kumpi osapuoli on yhteydessä pakollinen 3. Jokainen aliluokka kuvataan omana relaationaan se. pääavain on sama kuin pääluokan pääavain pääavain määritellään myös viiteavaimeksi viittaamaan pääluokkaa vastaavaan relaatioon. Ominaisuuksiksi määritellään vain sen omat emotyypistä poikkeavat ominaisuudet (ja mahd. viiteavaimet) Aliluokan relaatiototeutuksessa voidaan päätyä myös muunlaisiin ratkaisuihin! tks_loog.doc 11.9.2007 10:18:00
HELIA TIKO-05 10 (12) Esim. Kurssihallinto OPETTAJA(ope_id, ope_sukunimi, ope_etunimi, ope_huone, ope_puh) KURSSI(krs_id, krs_ope_id, krs_nimi, krs_laajuus, krs_alku_pvm, krs_loppu_pvm) OPISKELIJA(opi_id, opi_sukunimi, opi_etunimi, opi_katuosoite, opi_postino, opi_puh) OSALLISTUMINEN(krs_id, opi_id, opi_krs_arvosana)
HELIA TIKO-05 11 (12) Käsitekaavion ja relaatiokaavion eroja Käsitekaavio tavoitteena ymmärtää ja kuvata kohdealueen käsitteistö ja rakenne kuvaa kohdealueen käsitteet / luokat (ja attribuutit) sekä käsitteiden / luokkien väliset yhteydet pääavain jokaiselle käsitteelle / luokalle viiteavainta ei tarvita (mutta saa olla) luokkahierarkia ja koostumussuhde OK monen suhde - moneen yhteydet sallittu tietotyyppejä ei tarvitse vielä määritellä Relaatiokaavio = looginen kaavio tavoitteena kuvata kohdealueen rakenne relaatiotietomallin mukaisesti kuvaa kohdealueen käsitteitä vastaavat relaatiot (ja attribuutit) sekä relaatioiden väliset yhteydet relaatiotietomallin mukaisesti pääavain jokaiselle relaatiolle viiteavain kuvaamaan yhteyttä relaatioiden välillä vain assosiaatiot sallittu monen suhde - moneen yhteydet ei sallittu tietotyypit mieluusti määritelty tks_loog.doc 11.9.2007 10:18:00
HELIA TIKO-05 12 (12) Käsitteitä Formaali Muodollinen, tiettyjen sääntöjen mukainen Kuvauskieli Tiettyjen sääntöjen mukainen tapa kuvata kohteen rakennetta, merkitystä ja sisältöä Käsitekaavio (Conceptual Schema) Tietokannan tietosisällön kuvaus, jossa kohdetta kuvataan käsitteinä ja niiden välisinä suhteina. Kuvaus on riippumaton toteutusratkaisuista. Relaatiokaavio Tietokannan tietosisällön kuvaus, jossa kohdetta kuvataan relaatioina ja niiden välisinä yhteyksinä relaatiotietomallin mukaisesti. Kuvaus on riippumaton toteutusratkaisusta. Relaatiokaava (Relation schema) Formaali tapa kuvata relaation rakenne R(a1, a2, an) Tietohakemisto Tietokannan käsitteiden määrittely sanallisesti. Voi sisältää sekä käsitteellisen että loogisen vaiheen määrittelyjä