Tietokantojen suunnittelu

Samankaltaiset tiedostot
Normalisointi. Jouni Huotari & Ari Hovi. kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 5

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

TIETOKANTOJEN SUUNNITTELU

KÄSITEANALYYSI JA -MALLINNUS HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 3

Käsiteanalyysi. Jouni Huotari & Ari Hovi. kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luku 3

Ari Hovi & Jouni Huotari M3-1

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

3. Käsiteanalyysi ja käsitekaavio

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Käsiteanalyysi prosessina ja tarveanalyysi

Tietokannan suunnittelu

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

FYYSINEN SUUNNITTELU

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

TIETOKANNAN SUUNNITTELU

Fyysinen suunnittelu

IIO10200 Tietokantaohjelmointi (4 op)

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

Tietokantojen suunnittelu, relaatiokantojen perusteita

TTZC0800 TIETOKANNAT (5 OP)

IIO30100 Tietokantojen suunnittelu (6 op)

FYYSINEN SUUNNITTELU

HELIA 1 (17) Outi Virkki Tiedonhallinta

IIO30100 Tietokantojen suunnittelu (6 op)

TIETOKANNAN JÄRKEISTÄMINEN

Relaatiomalli ja -tietokanta

IIO30200 TIETOKANNAN HALLINTA (5 OP)

IIO30200 Tietokannan hallinta (5 op)

2. Käsiteanalyysi ja relaatiomalli

IIZO3030 TIETOKANNAT (5 OP)

Luento 3 Tietokannan tietosisällön suunnittelu

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Tietokannan suunnittelu

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

TIETOKANNAT JOHDANTO

HELIA 1 (20) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (12) Outi Virkki Tiedonhallinta

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

Tietokantojen perusteet

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

YHTEYSSUHDE (assosiation)

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

HARJOITUS 2. Kasvattamot ja mittaukset

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Myyntitilaus -tiedoston kuvaus

Tietovarastojen suunnittelu

Visual Case 2. Miika Kasnio (C9767)

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

TIETOVARASTOJEN SUUNNITTELU

Tietokannat II -kurssin harjoitustyö

Mikko Mäkelä KONEHUOLTOJEN TIETOKANNAN SUUNNITTELU JA TOTEUTUS

SELECT-lauseen perusmuoto

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

SQL - STRUCTURED QUERY LANGUAGE

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen. Luku 2. Arkkitehtuuri ja analyysi. ITKA204 kevät

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tietokantakurssit / TKTL

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Kuva 7.2 vastaustaulu harjoitukseen 7.2

RADAR - RANDOM DATA GENERATOR

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

Testidatan generointi

Päivityspalvelu. Tietuekuvaus. Tietuekuvaus 1 (5) Päivityspalvelu. Julkinen - Public

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

Aditro Tikon versio 6.2.0

Visma Business AddOn Factoring-laskuaineisto. Käyttäjän käsikirja

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

HELIA 1 (11) Outi Virkki Tiedonhallinta

Visma Business AddOn Tositteiden tuonti. Käsikirja

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Tietokannan suunnittelu

Tieto/datamallit. Marttila-Kontio/Unicta Oy

Hovi Huotari Lahdenmäki TIETO- KANTOJEN SUUNNITTELU & INDEKSOINTI

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Jimmy Valkama TIETOKANNAN SUUNNITTELU HARJOITTELUNOHJAUSHANK- KEESEEN

RELAATIOTIETOKANNAN SUUNNITTELU JA TOTEUTUS

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Liitokset - haut useaan tauluun

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Transkriptio:

Informaatioteknologian instituutti IIZO3020 Tietokantojen perusteet Tietokantojen suunnittelu - suunnitteluputki käsiteanalyysistä toteutukseen S2008

S2008 2 Tietokantojen perusteissa osattava Käsiteanalyysin ja käsitemallinnuksen perusidea: Käsitteiden tunnistaminen Yhteyksien muodostaminen Tietojen eli ominaisuuksien lisääminen Moni-moneen-yhteyksien purkaminen Käsitemallin piirtäminen Tietokannan määrittely: Käsitteistä tulee tauluja Tiedoista sarakenimet tauluun Yhteyksien luominen perus- ja viiteavaimien avulla

S2008 3 Suunnitteluputki Käsitemalli Käyttäjien näkemykset Näytöt, raportit Käsiteanalyysi Tarveanalyysi Normalisointitarkistus Käsitemalli, täydennetty Perusavain Tieto1 Tieto2 Perusavain Tieto1 Tieto2 3. normaalimuodossa olevat käsitteet Tietokannan fyysinen suunnittelu Relaatiokanta Suorituskyvyn viritys

Tietokantaprojektin vaiheet: inkrementaalinen ja iteratiivinen lähestymistapa Määrittely Suunnittelu v a i h e e t Toteutus (ml. prototyypit/inkrementit) Käyttöliittymä Sovellus Tietokanta Testaus Käyttöönotto Ylläpito S2008 4 t

S2008 5 Tietokannan elinkaari Tietokantojen (TK) perusteet SQL TK-ohjelmointi TK-suunnittelu TK-käsittely Käsite-ja tarveanalyysi (Conceptual and logical design) Ohjelmistosuunnittelu DBMSympäristön suunn Normalisointi Tietoturva Varmistukset -suunn. Fyysinen suunn (Physical) Kannan toteutus Tietojenkeruu Suunn+testaus Mittaus, säädöt, muutokset Kuormitustesti Tuotantotesti Tietoturva Varmistukset Arkkitehtuurit Infra-suunn DBA Kehitys Tuotanto - OLTP - DW Helia / Martti Laiho; täydentänyt JAMK / Jouni Huotari

S2008 6 Käsitemalli on kuvaus tietokannan toteutusta varten Käsitemalli Tietokannan taulut

S2008 7 Käsitemalli Reaalimaailma Kohdealue Tietokanta Kohdealueen valinnasta käsitemallin kautta toteutettavaan tietokantaan

S2008 8 Systeemimetodologian malli

S2008 9 Termejä Käsite = kohde (Entity) = yksilö- tai oliotyyppi ~ luokka johdetaan yksittäisistä olioista (esiintymät, ilmentymät, instanssit) Käsiteanalyysi = kohdeanalyysi Käsitemalli (ER-malli, tietomalli) Ks. Tietoanalyysi (Soini) ER-kaavio ~ luokkakaavio: graafinen esitys Yhteys = riippuvuus = assosiaatio = suhde (Relationship) Ominaisuus = tieto = attribuutti (Attribute) Lukumääräsuhde = kardinaliteetti Notaatio = kuvaustekniikka

S2008 10 Käsiteanalyysi Käsiteanalyysi on tietokantoihin johtavan suunnitteluprosessin ensimmäisiä vaiheita Selvitetään, mitkä ovat tietokantaan talletettavat tiedot Aloitetaan karkealla tasolla; toisaalta yksittäisten olioiden tunnistaminen auttaa käsitteiden löytymistä Tuloksena on käsitemalli Mitkä ovat tietokantaan talletettavat tiedot ja niiden väliset riippuvuudet tietyllä karkeustasolla Tietokannan piirustukset Yhteinen näkemys (tai sopimus) kohdealueesta

S2008 11 Käsiteanalyysistä Selventää kohdealueen käsitteistöä yhteinen kieli kohdealueen sanakirja On täysin riippumaton tulevasta teknisestä toteutuksesta ja tietokannan hallintajärjestelmistä Kuvittele, että käsitemalli toimii äärettömän tehokkaassa koneessa ei suorituskykypohdintoja vielä kaikki tiedot esiintyvät vain kertaalleen - ei toistoa Käsiteanalyysiä ei kannata jatkaa liian pitkään tee välillä muita systeemityön alueita toteuta prototyyppi ja paranna käsitemallia

S2008 12 Käsitteen tunnistaminen Osoitettavissa oleva reaalimaailman objekti, kuten työntekijä, tuote, asiakas tai organisaatioyksikkö Abstrakti tai kuvitteellinen asia, kuten tulosyksikkö, vakuutuskorvaus tai budjettikuukausi Pysyvän luontoinen, kuten asiakas, tuote tai tapahtumatyyppinen, kuten tilausrivi, tilitapahtuma Käsite ilmaisee jotain asiaa, josta haluamme tallettaa tietoa tulevaa käyttöä varten Käsite on lauseessa substantiivi Asiakas tekee tilauksia

Tehtävä 1: käsitteiden tunnistaminen Tee lista opinnäytetöiden hallintaan liittyvistä käsitteistä (nk. käsite-ehdokkaiden kirjaus) Voit käyttää joko kynää ja paperia tai listata käsitteet tietokoneella Tee lista nopeasti miettimättä aluksi kovin tarkkaan mikä olisi paras nimitys eri käsitteille Lopuksi voit hieman ryhmitellä käsitteitä (esim. mind-map) ja miettiä oliko kirjaamasi käsite paras mahdollinen vaihtoehto Ratkaisuehdotus toisessa moduulissa (yhtä ainutta oikeata vastausta ei ole olemassa) Näistä käsite-ehdokkaista mietitään, mitkä käsitteet ovat yläkäsitteitä ja mitkä kuuluvat yläkäsitteen alle S2008 13

Käsitemallinnus

S2008 15 Esimerkkejä kuvaustekniikoista eli notaatioista Käsite ASIAKAS ASIAKAS ASIAKAS Yhteys eli riippuvuus ASIAKAS 1:1 tekee ASIAKAS ASIAKAS tekee 0:N TILAUS TILAUS TILAUS

Yhteys eli riippuvuus Riippuvuus ilmaisee yhteyttä tai suhdetta käsitteiden välillä Yhteyttä voi kuvata verbillä Isällä on monta lasta Asiakas tekee monta tilausta Myyjä myy monta tuotetta Tilin avaa yksi henkilö Muista lukea lause molempiin suuntiin ja kysyä (toimeksiantajalta) esim.: Voiko lapsella olla monta isää? Voiko yhdessä tilauksessa olla monta asiakasta Voiko samaa tuotetta myydä moni myyjä? Voiko yksi henkilö avata monta tiliä Mieti, mihin tarkoitukseen tietokanta tulee Tee myös päätös: halutaanko historiatietoa tallentaa (esim. tuotteen myyntihistoria) S2008 16

S2008 17 Yhteyksien merkintätapoja Yhden suhde moneen -yhteys, 1:M, voidaan ilmaista lukuisilla eri tavoilla riippuen käytettävästä notaatiosta, esim.

S2008 18 2 vaihtoehtoista suositusta yhteyksien kuvaamiseksi harakanvarvasnotaatio UML-notaatio yksi-yhteen yksi-moneen moni-moneen * * * crow s feet

S2008 19 Käsitemalli voidaan johtaa esiintymistä, esim. pankkitilit Esiintymiä: Pekka Joki 203040-43567 Pirkko Joki 203050-77564 Käsitemalli: HENKILÖ TILI

S2008 20 Mallinnustehtävä 2 a) Mallinna töidenhallintaan liittyvien käsitteiden ASIAKAS, TEKIJÄ ja TYÖ väliset yhteydet

S2008 21 Käsitemalli, versio 0.1 ASIAKAS * TEKIJÄ * * antaa toimeksiannoksi TYÖ *

S2008 22 Käsitemalli, versio 0.2 ASIAKAS AsiakasID AsiakasNimi Yhteyshenkilö AsiakasPuhelin ArvioTyöstä MuutTiedot * antaa toimeksiannoksi * TYÖ TyöID TyöAihe Työluokitus TyöAloitettava (pvm) TyönOltavaValmis (pvm) Budjetti LiiteDokumentti MuutTiedot TEKIJÄ TekijäID TekijäNimi TekijäPuhelin * *

S2008 23 Tiedot eli ominaisuudet Käsitteisiin liittyy tietoja eli ominaisuuksia (attribute) Käsitteellä on oltava yksilöivä tunniste eli perusavain (primary key, PK) pakollinen, yksilöivä tieto voi koostua useasta tiedosta voi olla luonnollinen tai ns. surrogaatti (johdettu) ei saa olla tyhjä; moniosaisen perusavaimen kohdalla edes osittain Voidaan merkitä esim. alleviivaamalla tai lihavoimalla Joukko tavallisia tietoja (non-key attributes) Viiteavaimet (foreign key, FK) voi olla osa perusavainta voidaan merkitä esim. laittamalla kirjaimet FK tai kursivoimalla Tiedot kuvaavat käsitettä, johon ne liittyvät

S2008 24 Esimerkkejä ASIAKAS asiakastunnus asiakas_nimi puhelinnumero asiakasluokka perustamispvm ASIAKAS asiakastunnus asiakas_nimi puhelinnumero asiakasluokka perustamispvm ASIAKASRYHMA Perusavain Muut tiedot Viiteavain ASIAKAS as_tunnus as_nimi as_osoite ryhmatunnus (FK) ryhmatunnus asryhmannimi

S2008 25 Mallinnustehtävä 2 (jatkuu) b) Mitä ominaisuuksia liittyy mallinnustehtävässä 2 a tunnistettuihin käsitteisiin? Kirjaa ne käsitteiden viereen.

S2008 26 Tarkempaa käsitemallinnusta Ehdollisuus; riippumattomat ja riippuvat käsitteet Moni-moneen-yhteys ja sen purkaminen Yksi-yhteen-yhteys Esimerkkejä Yhteys itseensä; hierarkkiset rakenteet Käsitteiden yhdistäminen

S2008 27 Yhteyksien pakollisuus / ehdollisuus OSASTO osasto_id osastonimi OSASTO osasto_id osastonimi voi kuulua HENKILO henkilotunnus etunimi Sukunimi osasto_id Henkilö voi kuulua osastoon (ei siis ole pakko kuulua) 0..1 0..* on kuuluttava HENKILO henkilotunnus etunimi Sukunimi osasto_id Henkilö kuuluu osastoon (ei voi tallettaa henkilöä antamatta samalla osastoa) 1..1 0..* 0:1 0:M

S2008 28 Käsitetyypit 1) Moni-moneen-yhteydet => assosiatiiviset käsitteet Esimerkiksi projektin ja henkilön välillä on moni-moneen-yhteys Tämän yhteyden nimi on esim. osallistuu Tästä voidaan johtaa assosiatiivinen käsite osallistuminen HENKILO PROJEKTI ptun pnimi osallistuu HENKILO htun etunimi sukunimi osoite PROJEKTI ptun pnimi htun etunimi sukunimi osoite OSALLISTUMINEN OsallistumisID ptun htun Tunnit KirjausPvm

S2008 29 Käsitetyypit (jatkoa) 2) Riippumattomat käsitteet eli ydinkäsitteet (Independent entities) Käsitteen perusavaimessa ei tarvita muiden käsitteiden tietoja Käsite ei ole riippuvainen muista käsitteistä (voi tallettaa tietoja muista välittämättä) 3) Riippuvat käsitteet eli karakteristiset käsitteet PROJEKTI ptun pnimi HENKILO htun etunimi sukunimi osoite Käsitteen moniosaisessa perusavaimessa on mukana isä-käsitteen perusavain Käsite ei voi olla olemassa, jos ei isää ole (ei voida tallettaa projektitunteja jollei projektia ole olemassa) OSALLISTUMINEN ptun htun Tunnit KirjausPvm

S2008 30 Suhteista Monta riippuvuutta samojen käsitteiden välillä: Asiakas omistaa käyttää => Jos on monta riippuvuutta, nimeä riippuvuudet Tili Moni-moneen-yhteys: muista purkaa, jos ollaan tekemässä relaatiotietokantaa! Asiakas Tili ASIAKAS TILI TILITAPAHTUMA Lapsen nimivaihtoehtoja: ASIAKAS_TILI Asiakkaan tilit

S2008 31 Mallinnustehtävä 2 c) Miten purat M:N-yhteydet ASIAKAS ja TYÖ => tehtiin tunnilla TYÖ ja TEKIJÄ => kotitehtävksi Kun M:N-yhteydet puretaan ja ominaisuudet lisätään, syntyy nk. kohdemalli Tee omasta harjoitustyöaiheestasi vaatimusmäärittely ja 1. käsitemalli

S2008 32 Esimerkki yksi-yhteen-yhteydestä MAA PÄÄ- KAUPUNKI

S2008 33 Esimerkki: osa tilaustenkäsittelystä UML:n luokkakaaviona Luokan nimi Omainaisuudet Minkälaisiin tilanteisiin oliopohjainen suunnittelu soveltuu? Metodit (toiminnot) Onko olemassa hybridiratkaisuja?

S2008 34 Esimerkki 4: Martinin ERD notaatio (kopio Vision helpistä)

S2008 35 4 mahdollista vaihtoehtoa OSASTO osasto_id osastonimi OSASTO osasto_id osastonimi OSASTO osasto_id osastonimi OSASTO osasto_id osastonimi HENKILO henkilotunnus etunimi sukunimi HENKILO henkilotunnus etunimi sukunimi HENKILO henkilotunnus etunimi sukunimi HENKILO henkilotunnus etunimi sukunimi

S2008 36 Hierarkiat ja BOM-rakenne kuuluu yhtiöön omistaa yhtiöitä YRITYS Yritystunnus Emon_yritystunnus (FK) Esimerkki hierarkiasta: yritys voi omistaa monta muuta yritystä; yksi yritys voi kuulua yhteen emoyhtiöön. YRITYS yritystun kauprekno nimi osoite puhelin tase liikevaihto Esimerkki BOM-rakenteesta (bill-of.material): Yritys voi omistaa monta muuta yritystä; yksi yritys voi kuulua moneen emoyhtiöön. YRITYS yritystun kauprekno nimi osoite puhelin tase liikevaihto kuuluu yhtiöön omistaa yhtiöitä YRITYSSUHDE yritystun1 yritystun2 omistuspros

S2008 37 Tietojen toistamista? ASIAKAS astun osoite Saaako asiakkaan osoitteen kopioida tilaukseen? Eikö ole kiellettyä toistamista? TILAUS tilnro toimitusosoite TILAUSRIVI tilnro rivinro hinta TUOTE tkoodi hinta Entä hinta?

S2008 38 Käsitteiden yhdistäminen Ennen: ASIAKAS YHTEISTYOKUMPPANI TOIMITTAJA Nyt: OSAPUOLI Ennen: 1_neljannes 2_neljannes 3_neljannes 4_neljannes tulos tase tulos tase tulos tase tulos tase Nyt: Neljannes neljannes_tunnus tulos tase

S2008 39 Määrittelyistä Yrityksemme kanssa liikesuhteessa oleva luonnollinen henkilö, yhteisö tai yritys. ESIM. Oy Kala Ab, Joutsenon kunta, Pekka Jokinen, Shakkipojat ry Anna käsitteille määritelmät + kirjoita esimerkkejä

S2008 40 Tähän päättyy Tietokantojen perusteet opintojakson suunnitteluosa Loput kalvot on tarkoitettu Tietokantojen suunnittelu opintojakson opiskelijoille ja niille, jotka haluavat tietää enemmän tietokantojen suunnittelusta ja siitä, kuinka käsitemallista luodaan varsinainen tietokanta (käsitteistä tulee tauluja )

S2008 41 Suunnitteluputki Käyttäjien näkemykset Näytöt, ikkunat Raportit Käsiteanalyysi Tarveanalyysi Normalisointitark. Tietokannan fyysinen suunnittelu Suorituskyvyn viritys Käsitemalli Käsitemalli, täydennetty Perusavain Tieto1 Tieto2 Perusavain Tieto1 Tieto2 3. normaalimuodossa olevat käsitteet Relaatiokanta

S2008 42 Tarveanalyysin tavoitteet Tarkistaa, että kaikki tietotarpeet toteutuvat käsitemallin pohjalta: mitä tietoja mistäkin käsitteistä Täydentää käsitemallia lisäämällä uusia tietoalkioita ja mahdollisesti myös uusia käsitteitä ja yhteyksiä Selvittää mitä hakuja ja missä järjestyksessä tieto-, käyttäjä- ja tapahtumamäärät (kuinka usein) tietoja haetaan ja päivitetään

S2008 43 Tietotarveanalyysi Käsitemalli Tietotarpeet Näytöt Ikkunat Eräajot Listat Raportit Tietotarpeita ovat suunnitellut sovelluksen ikkunat tai näytöt, raportit, eräajot ja kaikki muutkin ohjelmat, jotka tulevat käsittelemään tietokantaa. Pyydä toimeksiantajalta raportit ym. tiedostoina (esim. Word-asiakirjoina)

S2008 44 Analysoi tietotarpeet ja tee tarvittaessa muutokset käsitemalliin Näytöt Lomakkeet Käyttöliittymä Eräajot Listat Raportit Kortistot

S2008 45 Tarveanalyysi käytännössä 1. Ota käsittelyyn tietotarve, esimerkiksi jokin sovelluksen ikkuna. 2. Ota myös tämän hetkinen käsitemalli esille. 3. Tarkista, löytyvätkö kaikki ko. ikkunassa tarvittavat yksittäiset tiedot käsitemallista (useimmiten käsitemallin käsitteistä puuttuu vielä runsaasti tietoja käsitemallihan oli vielä karkealla tasolla). 4. Lisää puuttuvat tiedot käsitteiden yhteyteen. Joskus myös kokonainen käsite tai yhteys puuttuu ja ne on myös lisättävä käsitemalliin. 5. Ota seuraava tietotarve ja tee samat asiat (kohdat 2-4). 6. Näin jatketaan, kunnes kaikki tietotarpeet on läpikäyty

S2008 46 Esimerkkiraportti ja tehtävä Täydennä Demox Oy:n käsitemallia kuvan raportista löytämilläsi uusilla tiedoilla

S2008 47 Suunnitteluputki Käyttäjien näkemykset Näytöt, ikkunat Raportit Käsiteanalyysi Tarveanalyysi Normalisointitark. Tietokannan määrittely Suorituskyvyn viritys Käsitemalli Käsitemalli, täydennetty Perusavain Tieto1 Tieto2 Perusavain Tieto1 Tieto2 3. normaalimuodossa olevat käsitteet Relaatiokanta

S2008 48 Normalisoinnin tarkoitus Normalisointi (normalisation) on menetelmä, jonka avulla tietorakenteita voidaan jalostaa parempaan tallennusmuotoon Parempi tarkoittaa tässä yhteydessä rakennetta, jossa on tietojen toistaminen (redundanssi) minimoitu joka on tehokas päivitysten kannalta joka on helpompi pitää yhdenmukaisena, sillä tiedot tarvitsee päivittää vain yhteen paikkaan joka on muutosjoustava

S2008 49 Normalisointivaiheet 1. Normaalimuoto Erota toistuvat ryhmät ja moniarvoiset sarakkeet omaksi käsitteekseen 2. Normaalimuoto Jokaisen ei-avaintiedon tulee olla riippuvainen koko perusavaimesta 3. Normaalimuoto Poista sisäiset (ei-avaimeen kohdistuvat) riippuvuudet

S2008 50 1. Normaalimuoto HENKILÖ Htun Nimi Palkka Pvm_1 Palkka_1 Pvm_2 Palkka_2 1. Normaalimuoto : Poista toistuvat ryhmät ja moniarvoiset sarakkeet HENKILÖ PALKKAHISTORIA Htun Nimi Palkka Htun Pvm Palkka

S2008 51 Funktionaalinen riippuvuus A B Sarake B on funktionaalisesti riippuvainen A:sta, jos A:ta kohti on korkeintaan yksi B:n arvo kunakin ajanhetkenä. HENKILÖ ( Htun, Nimi, Osoite ) HENKILÖ ( Htun, Nimi, Osoite )?

S2008 52 2. Normaalimuoto TILAUS ToimNro Osanro Nimi Osoite Tilattu_kpl Mitä mieltä olet kenttien nimistä? Ymmärrätkö mitä ne tarkoittavat? 2. Normaalimuoto: Jos avain koostuu useasta sarakkeesta, on jokaisen muun sarakkeen oltava riippuvainen koko avaimesta. TOIMITTAJA ToimNro Nimi Osoite TILAUS ToimNro Osanro Tilattu_kpl Mitä jos näin ei tehdä? Ei voida tallettaa toimittajatietoja etukäteen Vanhoja tilauksia poistettaessa tietyn toimittajan tiedot voivat häipyä kokonaan Toimittajan osoitteen muutos tulee moneen paikkaan

3. Normaalimuoto TOIMITTAJA ToimNro Nimi Katuosoite Postinro Posti 122 Oy Fi Koekatu 3B 00530 Hki 3. Normaalimuoto: TOIMITTAJA Kaikkien sarakkeiden tulee olla riippuvia vain perusavaimesta. ToimNro Nimi Katuosoite Postinro 122 Oy Fi Koekatu 3B 00530 Mitä jos näin ei tehdä? POSTI Postinro 00530 Hki Postitoimipaikkoja ei voida tallettaa ennen toimittajan talletusta Postitoimipaikan nimen muutos tulee moneen paikkaan Postitoimip S2008 53

S2008 54 3NM ja Käsitteet Suunnitteluputkessa normalisoidaan käsitteitä Normalisointi voi tarvittaessa myöhemmin kohdistua tauluihin, tietueisiin jne. Käsitemallin normalisointi tarkistetaan käsite käsitteeltä Melko työlas operaatio, mutta vaivannäkö yleensä kannattaa Yhteenvetona (NM = normaalimuoto): kaikkien eiavaintietojen tulee olla funktionaalisesti riippuvia perusavaimesta (1. NM), koko perusavaimesta (2. NM) ja vain perusavaimesta (3. NM)

S2008 55 Tehtävä: normalisointi Tarkista tekemäsi käsitemalli (Demox Oy tai Formulaesimerkki) missä normaalimuodossa malli on? olisiko järkevää normalisoida mallia pitemmälle? mitä etuja tai haittoja pitkälle normalisoidusta ratkaisusta on? Vinkki: usein tehdään nk. ideaalimalli, jossa normalisointi on ulotettu kaikkiin tilanteisiin ja sen jälkeen tehdään perustellut rajaukset siitä, mikä tulee olemaan toteutettava ratkaisu (ts. palataan lähelle toista normaalimuotoa) Lisätehtävä: Tee kirjan (Hovi et. al. 2003) harjoitukset 9 ja 10 (sijaitsevat myös R5:ssä).

S2008 56 Suunnitteluputki Käyttäjien näkemykset Näytöt, ikkunat Raportit Käsiteanalyysi Tarveanalyysi Normalisointitark. Tietokannan määrittely Käsitemalli Käsitemalli, täydennetty Perusavain Tieto1 Tieto2 Perusavain Tieto1 Tieto2 3. normaalimuodossa olevat käsitteet Relaatiokanta Suorituskyvyn viritys

S2008 57 Käsitteistä tauluiksi Käsitteistä tulee taulu! OSASTO Osastotunnus Osaston_nimi Osastot Osastotunnus Osaston_nimi Käsitteen tiedot (ominaisuudet) sarakkeiksi (kentiksi, field) Käsitteen yksilöivä tieto taulun perusavaimeksi (primary key)

S2008 58 Riippuvuudet Isä-lapsisuhteesta (1:M) tulee viiteavain lapsitauluun OSASTO osastotun osastonimi jne. OSASTO osastotun osastonimi jne Käsitemallin yhden-suhde-moneen yhteys muunnetaan lapsi-taulun viiteavaimeksi (isätaulun perusavain) HENKILO htun sukunimi etunimi HENKILO htun sukunimi etunimi osastotun HUOM. jos viiteavain on jo lapsitaulussa perusavaimen osana, ei viiteavainta tietenkään enää tarvitse lisätä.

S2008 59 Sarakkeiden roolit Taulun sarake voi olla Perusavain Viiteavain Toissijainen hakuavain tarvitaan nopea haku edellyttää usein indeksin Tavallinen tieto Sarake voi kuulua moniosaiseen perusavaimeen ja olla samalla viiteavain (ks. seuraava kuva)

S2008 60 PROJEKTI ptun pnimi HENKILO htun etunimi sukunimi osoite Perusavain OSALLISTUMINEN ptun htun tunnit Viiteavain Projektiin Viiteavain Henkilöön Perusavain voi muodostua viiteavaimista

S2008 61 Useita yhteyksiä: useita viiteavaimia ASIAKAS tilaa vastaanottaa maksaa KULJETUS- TILAUS kolme viiteavainta tilausnro pvm... as tun_tilaaja as tun_maksaja astun_vast_ottaja

S2008 62 Perusavain-resepti Määrittele perusavain pakolliseksi CREATE TABLE lasku (laskunro integer NOT NULL,. Määrittele perusavain SQL:lla, PRIMARY KEY (htun, ptun),. Joissakin tuotteissa on vielä perustettava UNIQUEindeksi esim. DB2, SQLBase Oracle ja SQL Server perustavat automaattisesti perusavainindeksin CREATE UNIQUE INDEX prhe_ind ON PRHE(ptun, htun)

S2008 63 Viiteavain-resepti Määrittele viiteavaimet pakollisiksi (NOT NULL) vain, jos viiteavain ei saa puuttua Kuvan mukaan ei-pakollinen yhteys, Henkilö-taulussa: ostun CHAR (4), -- ei siis NOT NULL CONSTRAINT henkilo_os_fk FOREIGN KEY (ostun) REFERENCES Osasto(ostun)... Perusta viiteavaimille indeksi; yleensä ei UNIQUE parantaa liitosten tehokkuutta huomattavasti voi kuulua Osasto Henkilö ostun htun ostun (FK)

S2008 64 Suunnitteluputki Käyttäjien näkemykset Näytöt, ikkunat Raportit Käsiteanalyysi Tarveanalyysi Normalisointitark. Tietokannan määrittely Käsitemalli Käsitemalli, täydennetty Perusavain Tieto1 Tieto2 Perusavain Tieto1 Tieto2 3. normaalimuodossa olevat käsitteet Relaatiokanta Suorituskyvyn viritys

S2008 65 Suorituskyvyn viritys Ennen kuin tietokanta otetaan tuotantokäyttöön, pitäisi sen suorituskyky testata todellisilla volyymeillä (mielellään jo protoiluvaiheessa) Useissa tietokantatuotteissa on erillinen performance analyzer, joka antaa suosituksia mm. indeksien perustamiseksi

S2008 66 Lisätietoja Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) Hovi, Ari. SQL-opas, Docendo (2004) Connolly & Begg: Database Systems, Addison Wesley (2003) Soini, Tapani. Tietoanalyysi, Weilin&Göös (1984)