HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5 Tietokannan 3-tasomalli... 6.lVLWWHHOOLQHQPDOOLQWDPLQHQ Käsitekaavio... 9 Keskeiset käsitteet... 9 Yksilötyyppi... 10 Yhteystyyppi... 10 ER-kaavio... 12 Yksilötyyppi (Entity)... 12 Ominaisuustyyppi (Property/Attribute)... 12 Yhteystyyppi (Relationship)... 13 Alityyppi (Subtype) / EER... 14 Tietohakemistokuvaus... 16 <KWHHQYHWR.lVLWWHLWl
HELIA 2 (20) Tietokantapohjaisen sovelluksen suunnitteluprosessi Tietokannan suunnittelu osana tietojärjestelmän suunnittelua 1. Esitutkimus 2. Sisällön määrittely 3. Rakenteen ja toiminnan suunnittelu 4. Toteutus 5. Käyttöönotto 6. Ylläpito
HELIA 3 (20) Tietokannan suunnittelun 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 redundanssia Suunnittelumenetelmä on työkalu tavoitteiden saavuttamiseksi Vaihejako Työskentelymenetelmät Kuvaustavat
HELIA 4 (20) 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
HELIA 5 (20) TIHA-standardi Taso Keskeinen sisältö Suunnittelun tulos Käsitetaso Looginen taso Tekninen taso Fyysinen taso (SFS-106) 1988 Kohdealueen käyttämien käsitteiden rakenne Tietomallin mukainen (looginen) tietorakenne Tietyn DBMS:n mukainen (tekninen) tietorakenne Tietyn tiedostonhallintaohjelmiston mukainen (fyysinen) talletusrakenne Käsitekaavio Normalisoidut relaatiokaavat Eheysmäärittelyt Tietokannan luontilauseet SQL:llä Tietokannan talletusmääritykset
HELIA 6 (20) Tietokannan 3-tasomalli Ansi Sparc arkkitehtuuri Ulkoinen näkymä 1 Ulkoinen näkymä 2 Ulkoinen näkymä n Käsite kaavio Sisäinen kaavio Teknisen tason toteutus piilotetaan käyttäjiltä / ohjelmoijilta Modulaarisuus: Muutos ulkoisella tai sisäisellä tasolla ei aiheuta muutoksia muihin tasoihin
HELIA 7 (20) Käsitteellinen mallintaminen Conceptual modeling Käsitetason suunnittelu 1. Kohdealueen käsitteet (terminologia) 2. Käsitteiden merkitys 3. Käsitteiden väliset suhteet 4. Käsitteiden ominaisuudet 5. Yksilöiden identifiointi Käsite ~ Yksilötyyppi ~ Olioluokka 1. Kohdealueen yksilötyypit 2. Yksilötyyppien määrittely 3. Yksilötyyppien väliset yhteystyypit 4. Yksilötyyppien ominaisuustyypit 5. Avainten määrittely Riippumaton toteutusratkaisusta! Tiedonhallintajärjestelmä / DBMS Ohjelmointikieli Laitealusta... Perustuu käyttäjien (tieto)tarpeisiin (requirements) Käyttötapauskuvauksiin, skenaarioihin, Haastattelut,...
HELIA 8 (20) Esim. Kurssihallinto... Kohdealue Kansanopiston kurssihallinto Kohteen yksilötyypit / olioluokat Substantiivit, jotka ovat itsenäisesti olemassa Yksilötyyppien määrittely Rajaus: Mikä kuuluu ko. käsitteen piiriin
HELIA 9 (20) Käsitekaavio Conceptual schema Entity Relationship Model / ER-model Yleisin tapa kuvata tietokantaa käsitetasolla 1 perustekniikka monta murretta / notaatiotapaa Keskeiset käsitteet 1. Yksilötyyppi Entity 2. Yhteystyyppi Relationship (yhteys, suhde, riippuvuus, kytkentä) 3. Ominaisuustyyppi Property, Attribute (ominaisuus, attribuutti)
HELIA 10 (20) Yksilötyyppi Olio / käsite, joka on itsenäisesti olemassa ja jonka esiintymät voidaan identifioida OPISKELIJA Yhteystyyppi yksilötyyppien välinen kiinnostava yhteys 1. Määrärajoite Yksi Monta 1:n, n:1, n:m 2. Modaalisuus / osallistuminen Mahdollinen / valinnainen Välttämätön / pakollinen Monta eri kombinaatiomahdollisuutta!
HELIA 11 (20) Esim. Käsitekaavio OPETTAJA OPISKELIJA KURSSI SUORITUS
HELIA 12 (20) ER-kaavio Yksilötyyppi (Entity) DVLDNDV Olio / käsite, joka on itsenäisesti olemassa ja jonka esiintymät voidaan identifioida 1. Yksilötyyppi ((regular) entity) 2. Heikko yksilötyyppi (weak entity) Olemassaolo riippuvainen jonkin muun olion olemassaolosta sopimus Ominaisuustyyppi (Property/Attribute) Kaikilla saman tyypin oliolla on tietyt yhteiset ominaisuudet. Kullakin ominaisuudella on sitä vastaava arvojoukko / arvoalue (domain) nimi Yksinkertainen vrs. Yhdistelmä (composite) esim. nimi = sukunimi & etunimi etu suku Yksi- tai moniarvoinen (toistuvat ryhmät on sallittu ) puh Pääavain (primary key) yksilöivä ominaisuus / ominaisuusjoukko hetu
HELIA 13 (20) Yhteystyyppi (Relationship) yksilötyyppien välinen kiinnostava yhteys Aste (degree) = osanottajien määrä osanottajat suhteeseen liittyvät yksilötyypit 1. unaariaste - vain 1 osanottaja esim. henkilö on aina jonkun henkilön lapsi 2. binääriaste - 2 osanottajaa tavallisin 3. tertiääriaste - 3 osanottajaa 4. n-aste Määrärajoite (Cardinality) 1. funktionaalinen riippuvuus (1) 1 2. moniarvoinen riippuvuus (n) n Modaliteetti / Osallistuminen (Existence / Participation) 1. Välttämätön / pakollinen huom: heikon olion ja sen määräävän olion välinen yhteys 2. Mahdollinen / ehdollinen
HELIA 14 (20) Alityyppi (Subtype) / EER ei ollut mukana alkuperäisessä määrityksessä 1976, vaan lisättiin myöhemmin (ns. Enhanced Entity Relationship Model / EER) esim. ohjelmoija on työntekijän alatyyppi; kaikki työntekijän ominaisuudet ja suhteet ovat voimassa myös ohjelmoijalle tyyppihierarkia / oliohierarkia työntekijä ohjelmoija relationaalisten tiedonhallintajärjestelmien tuki oliohierarkialle on edelleen heikko
HELIA 15 (20) Esim. ER-kaavio OPETTAJA OPISKELIJA KURSSI SUORITUS
HELIA 16 (20) Tietohakemistokuvaus Tietohakemistoon kootaan yksilötyyppeihin liittyvä kiinnostava tieto, jota ei mahduteta käsitekaavioon 1. Yksilötyyppien määrittelyt 2. Ominaisuustyyppien määrittelyt Huom. Tiedonhallintajärjestelmä ylläpitää omaa tietohakemistoa toteutetuista tietokantaobjekteista Käsitteellisen tason tietohakemistoa nimitetään nykyään myös kuvauskannaksi (repository) CASE-tuotteet (Computer Aided System Engineering) tukevat määrittelytiedon tallentamista repositorytietokantaan sekä tietokanta- (ja ohjelmisto-) ratkaisun tuottamista määrittelyjen pohjalta.
HELIA 17 (20) Esim. Tietohakemisto Objektien kiinnostavat ominaisuudet Opettaja Sukunimi Etunimi Tutkinto... Kurssi Kurssin nimi Kurssin tunnus... Î Yksilötyypit Î Ominaisuustyypit Yksilötyypin kuvaus
HELIA 18 (20) Käsitteen nimi: Nimilyhenne: Synonyymit: Määritelmä: Pääavain: Ominaisuudet: Sukunimi, Etunimi, Tutkinto, Puhelinnumero, Huone, Lyhenne Esimerkki: Opettaja OPE Opettaja, lehtori Oppilaitoksessa ammatikseen opetustyötä tekevä henkilö, jonka työsuhde on voimassa tai päättynyt Opettajanumero Esiintymän / yksilön kuvaus Opettajanumero 1234 Sukunimi Valo Etunimi Into Tutkinto FM Puhelinnumero (09) 1498 01 Huone 3012 Lyhenne ValIn
HELIA 19 (20) Yhteenveto Tietokannan suunnitteluprosessi alkaa käsitteellisestä mallintamisesta Kohdealueen rajaus Tietotarpeet / vaatimukset 1. Kohdealueen yksilötyypit 2. Yksilötyyppien määrittely 3. Yksilötyyppien väliset yhteystyypit 4. Yksilötyyppien ominaisuustyypit 5. Yksilötyyppien identifiointi Lopputuloksina ER-kaavio / Käsitekaavio Tietohakemistokuvaukset Tarkista lopputulos asiakkaan edustajan kanssa! Käsitteellinen mallintaminen on kriittisin vaihe tietokannan suunnitteluprosessissa!
HELIA 20 (20) Käsitteitä Abstraktio Yleistys, asian esittäminen yleisemmällä tasolla Avain (Key) Yksilöivä tieto, yksilön (tietojen) tunniste 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. Tietokannan hallintajärjestelmä (Database Management System, DBMS) Yleisohjelmisto, joka avulla tietokannan tietoja käytetään ja ylläpidetään Tietomalli (Data Model) Malli jonka mukaan tietokannan tiedot organisoidaan. Koostuu joukosta käsitteitä, sääntöjä ja operaatioita. (esim. relaatiomalli, hierarkkinen malli, verkkomalli, oliomalli)