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)