TIETOKANTOJEN SUUNNITTELU



Samankaltaiset tiedostot
NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

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

Ari Hovi & Jouni Huotari M3-1

Tietokantojen suunnittelu

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

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

3. Käsiteanalyysi ja käsitekaavio

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

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

Käsiteanalyysi prosessina ja tarveanalyysi

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokannan suunnittelu

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

Fyysinen suunnittelu

TIETOKANNAN SUUNNITTELU

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

FYYSINEN SUUNNITTELU

Tietokantojen suunnittelu, relaatiokantojen perusteita

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

IIO10200 Tietokantaohjelmointi (4 op)

FYYSINEN SUUNNITTELU

2. Käsiteanalyysi ja relaatiomalli

IIO30100 Tietokantojen suunnittelu (6 op)

IIO30100 TIETOKANTOJEN SUUNNITTELU (6 OP)

HELIA 1 (17) Outi Virkki Tiedonhallinta

Relaatiomalli ja -tietokanta

TTZC0800 TIETOKANNAT (5 OP)

IIO30100 Tietokantojen suunnittelu (6 op)

TIETOKANNAN JÄRKEISTÄMINEN

IIZO3030 TIETOKANNAT (5 OP)

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

IIO30200 TIETOKANNAN HALLINTA (5 OP)

IIO30200 Tietokannan hallinta (5 op)

TIETOKANNAT JOHDANTO

Luento 3 Tietokannan tietosisällön suunnittelu

Tietokannan suunnittelu

HELIA 1 (20) Outi Virkki Tiedonhallinta

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

YHTEYSSUHDE (assosiation)

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

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Visual Case 2. Miika Kasnio (C9767)

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

Tietokantojen perusteet

HARJOITUS 2. Kasvattamot ja mittaukset

TIETOVARASTOJEN SUUNNITTELU

Myyntitilaus -tiedoston kuvaus

Tietovarastojen suunnittelu

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

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

Tietokannat II -kurssin harjoitustyö

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

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

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

Mikko Mäkelä KONEHUOLTOJEN TIETOKANNAN SUUNNITTELU JA TOTEUTUS

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

SQL - STRUCTURED QUERY LANGUAGE

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

SELECT-lauseen perusmuoto

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Tietokannan suunnittelu

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

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Liitokset - haut useaan tauluun

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Hovi Huotari Lahdenmäki TIETO- KANTOJEN SUUNNITTELU & INDEKSOINTI

RELAATIOTIETOKANNAN SUUNNITTELU JA TOTEUTUS

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

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

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

Testidatan generointi

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

Janina Puistovaara RELAATIOTIETOKANNAN SUUNNITTELU JA MALLINTAMINEN KÄSITEANALYYSI- MENETELMÄLLÄ

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

HAAGA-HELIA Heti-09 1 (27) ICT05 Tiedonhallinta ja Tietokannat O.Virkki

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

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

Toad Data Modeler Lari Hoppula Annika Koppelomäki Johanna Pietilä Esko-Pekka Tähti

RADAR - RANDOM DATA GENERATOR

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

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Tietokantakurssit / TKTL

HELIA 1 (11) Outi Virkki Tiedonhallinta

Tietokannan rakenteen suunnittelu

Transkriptio:

TIETOKANTOJEN SUUNNITTELU - SUUNNITTELUPUTKI KÄSITEANALYYSISTÄ TOTEUTUKSEEN JOUNI HUOTARI & ARI HOVI 2000-2009

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

SUUNNITTELUPUTKI Määrittely & suunnittelu Käyttäjien näkemykset Näytöt, raportit Käsiteanalyysi Tarveanalyysi Normalisointitarkistus Käsitemalli Käsitemalli, täydennetty Perusavain Tieto1 Tieto2 Perusavain Tieto1 Tieto2 3. normaalimuodossa olevat käsitteet Toteutus Tietokannan fyysinen suunnittelu Suorituskyvyn viritys Relaatiotietokanta

TIETOKANTAPROJEKTIN VAIHEET: INKREMENTAALINEN JA ITERATIIVINEN LÄHESTYMISTAPA Määrittely Suunnittelu Toteutus (ml. prototyypit/inkrementit) Käyttöliittymä v a i h e e t Sovellus Tietokanta Testaus Käyttöönotto Ylläpito t

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

KÄSITEMALLI ON KUVAUS TIETOKANNAN TOTEUTUSTA VARTEN Käsitemalli Tietokannan taulut

Käsitemalli Reaalimaailma Kohdealue Tietokanta KOHDEALUEEN VALINNASTA KÄSITEMALLIN KAUTTA TOTEUTETTAVAAN TIETOKANTAAN

SYSTEEMIMETODOLOGIAN MALLI

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) ER-kaavio ~ luokkakaavio: graafinen esitys Yhteys = riippuvuus = assosiaatio = suhde (Relationship) Ominaisuus = tieto = attribuutti (Attribute) Lukumääräsuhde = kardinaliteetti Notaatio = kuvaustekniikka Ks. Tietoanalyysi (Soini)

KÄSITEANALYYSI Käsiteanalyysi on tietokantoihin johtavan suunnitteluprosessin ensimmäisiä vaiheita Selvitetään, mitä tietoja tietokantaan talletetaan 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

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

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 toimeksiantoon liittyvistä käsitteistä (nk. käsiteehdokkaiden 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

KÄSITEMALLINNUS

ESIMERKKEJÄ KUVAUSTEKNIIKOISTA ELI NOTAATIOISTA Käsite ASIAKAS ASIAKAS Yhteys eli riippuvuus ASIAKAS 1:1 tekee 0:N TILAUS ASIAKAS TILAUS ASIAKAS tekee * 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 Mieti, mihin tarkoitukseen tietokanta tulee 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ä? Tee myös päätös: halutaanko historiatietoa tallentaa (esim. tuotteen myyntihistoria)

YHTEYKSIEN MERKINTÄTAPOJA Yhden suhde moneen -yhteys, 1:M, voidaan ilmaista lukuisilla eri tavoilla riippuen käytettävästä notaatiosta, esim.

2 VAIHTOEHTOISTA SUOSITUSTA YHTEYKSIEN KUVAAMISEKSI harakanvarvasnotaatio UML-notaatio yksi-yhteen yksi-moneen moni-moneen * * * crow s feet

KÄSITEMALLI VOIDAAN JOHTAA ESIINTYMISTÄ, ESIM. PANKKITILIT Esiintymiä: Pekka Joki 203040-43567 Pirkko Joki 203050-77564 Käsitemalli: HENKILÖ TILI

MALLINNUSTEHTÄVÄ 2 a) Mallinna toimeksiantoon liittyvien käsitteiden väliset yhteydet

KÄSITEMALLI, VERSIO 0.1 (KÄSITTEET JA NIIDEN VÄLISET YHTEYDET)

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

ESIMERKKEJÄ ASIAKAS asiakastunnus asiakas_nimi puhelinnumero asiakasluokka perustamispvm ASIAKASRYHMA Perusavain Muut tiedot Viiteavain ASIAKAS asiakastunnus asiakas_nimi ryhmatunnus (FK) ryhmatunnus asryhmannimi

MALLINNUSTEHTÄVÄ 2 (JATKUU) b) Mitä ominaisuuksia liittyy mallinnustehtävässä 2 a tunnistettuihin käsitteisiin? Kirjaa ne käsitteiden viereen.

KÄSITEMALLI, VERSIO 0.2 (LISÄTTY KÄSITTEISIIN LIITTYVÄT TIEDOT)

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

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

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 projtun projnimi osallistuu HENKILO henktun etunimi sukunimi osoite PROJEKTI projtun projnimi henktun etunimi sukunimi osoite OSALLISTUMINEN osallistumisid projtun henktun Tunnit kirjauspvm

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 eli karakteristiset käsitteet 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) PROJEKTI projtun projnimi OSALLISTUMINEN projtun henktun Tunnit kirjauspvm HENKILO henktun etunimi sukunimi osoite

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

c) Miten purat M:N-yhteydet MALLINNUSTEHTÄVÄ 2 Kun M:N-yhteydet puretaan ja ominaisuudet lisätään, syntyy nk. kohdemalli Tee omasta harjoitustyöaiheestasi vaatimusmäärittely ja 1. käsitemalli

ESIMERKKI YKSI-YHTEEN-YHTEYDESTÄ M A A PÄÄ- K A U P U N K I

ESIMERKKI: OSA TILAUSTENKÄSITTELYSTÄ UML:N LUOKKAKAAVIONA Luokan nimi Omainaisuudet Minkälaisiin tilanteisiin oliopohjainen suunnittelu soveltuu? Metodit (toiminnot) Onko olemassa hybridiratkaisuja?

ESIMERKKI 4: MARTININ ERD NOTAATIO (KOPIO VISION HELPISTÄ)

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

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

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

KÄSITTEIDEN YHDISTÄMINEN E nnen: A S IA KAS YH T E IS T YO K U M P P AN I T O IM IT T A JA N yt: O S A P U O LI E nnen: 1_neljannes 2_neljannes 3_neljannes 4_neljannes tulos tulos tulos tulos tase tase tase tase N yt: N eljannes neljannes_tunnus tulos tase

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ä

TÄHÄN PÄÄTTYY TIETOKANTOJEN PERUSTEET (TIETOKANNAT) -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 )

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

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

Käsitemalli TIETOTARVEANALYYSI 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)

ANALYSOI TIETOTARPEET JA TEE TARVITTAESSA MUUTOKSET KÄSITEMALLIIN N äytöt Lom akkeet K äyttöliittym ä E räajot Listat R aportit K ortistot

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

ESIMERKKIRAPORTTI JA TEHTÄVÄ Täydennä Demox Oy:n käsitemallia kuvan raportista löytämilläsi uusilla tiedoilla

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

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

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

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

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 )?

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ä Toimittajan osoitteen muutos tulee moneen paikkaan

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

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)

TEHTÄVÄ: NORMALISOINTI Tarkista tekemäsi käsitemalli 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

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

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

RIIPPUVUUDET Isä-lapsisuhteesta (1:M) tulee viiteavain lapsitauluun O S A S T O osastotun osastonim i jne. O S AS TO os as totun os as tonim i jne K äsitem allin yhden-suhde-m oneen yhteys m uunnetaan lapsi-taulun viiteavaim eksi (isätaulun perusavain) H E N K ILO htun sukunim i etunim i H E N K ILO htun sukunim i etunim i osastotun HUOM. jos viiteavain on jo lapsitaulussa perusavaimen osana, ei viiteavainta tietenkään enää tarvitse lisätä.

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

PROJEKTI projtun projnimi HENKILO henktun etunimi sukunimi osoite Perusavain OSALLISTUMINEN projtun henktun tunnit Viiteavain Projektiin Viiteavain Henkilöön PERUSAVAIN VOI MUODOSTUA VIITEAVAIMISTA

USEITA YHTEYKSIÄ: USEITA VIITEAVAIMIA tilaa ASIAK AS vastaanottaa m aksaa K U LJE TU S - TIL AUS kolm e viiteavainta tila us n ro p vm... as tu n_tila aja as tu n_m a k s aja as tun _vas t_ otta ja

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 UNIQUE- indeksi esim. DB2, SQLBase Oracle ja SQL Server perustavat automaattisesti perusavainindeksin CREATE UNIQUE INDEX prhe_ind ON PRHE(ptun, htun)

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 voi kuulua parantaa liitosten tehokkuutta huomattavasti Osasto Henkilö ostun htun ostun (FK)

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

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

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)