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

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

Luento L: Normalisointi

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

5.1 Normalisoinnin tarkoitus 5.2 Funktionaalinen riippuvuus 5.3 Normaalimuodot. Luku 5. Normalisointi. ITKA204 kevät

HELIA 1 (17) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

CSE-A1200 Tietokannat

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

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

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Tietokannan suunnittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

Relaatiomalli ja -tietokanta

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2004 Tietokannan suunnittelusta. Harri Laine 1

Luento 3 Tietokannan tietosisällön suunnittelu

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

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokannan suunnittelusta Harri Laine 1

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. Harri Laine 1

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

2. Käsiteanalyysi ja relaatiomalli

3. Käsiteanalyysi ja käsitekaavio

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

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

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

Tietokannan suunnittelu

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Opintopiiritehtävä 3: Verkkohuutokauppa

Tietokannat II -kurssin harjoitustyö

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

Tietokannan rakenteen suunnittelu

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

HARJOITUS 2. Kasvattamot ja mittaukset

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

Tyyppiluokat II konstruktoriluokat, funktionaaliset riippuvuudet. TIES341 Funktio-ohjelmointi 2 Kevät 2006

TIETOKANTOJEN SUUNNITTELU

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA Takkulan taulut -tehtävien tulokset / Solid Server (10) atk72d Versiopvm:

Rinnakkaistietokoneet luento S

TIETOKANNAN JÄRKEISTÄMINEN

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

Ajoneuvotietopalvelun käyttöohje Päivitetty

HENKILÖKOHTAISEN OSAAMISEN KEHITTÄMISSUUNNITELMAN TIETOSISÄLTÖ JA KÄSITTEISTÖ ( ) Käsitteet ja selitteet

JYVÄSKYLÄN YLIOPISTO Valintakoe s2011 Sivu 1 Tietojärjestelmätieteen opiskelijavalinta. Nimi: Henkilötunnus:

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

811120P Diskreetit rakenteet

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

YHTEYSSUHDE (assosiation)

Tietokantojen suunnittelu

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Ryhmäkirjeen hyödyntäminen

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

2. Suoritettava tutkinto ja noudatettavat tutkinnon perusteet, mahdollinen osaamisala ja tutkinnon osat

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat

Luento 2: Tiedostot ja tiedon varastointi

Kokonaislukuaritmetiikka vs. logiikkaluupit

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Hannes Ranta SOVELLUKSEN TIETOKANNAN UUDELLEENSUUNNITTELU

Algoritmit 2. Luento 3 Ti Timo Männikkö

MVD- ja EMVD-riippuvuudet - riippumattomuuden riippuvuus

PlanMan Project projektihallintaohjelmisto koulutusohjeistus

Tietokannat I. c 2007 Olli Luoma olli.luoma@it.utu.fi

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Varhaiskasvatuksen tietovarannon tietoluettelo - huoltaja- ja maksupäätöstiedot

VIS Online 2.0 version uudistukset

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Transkriptio:

HAAGA-HELIA Heti-09 1 (27) Normalisointi Normalisointi... 2 Tavoitteet... 2 Attribuuttien väliset riippuvuudet... 4 1) Funktionaalinen vai Moniarvoinen riippuvuus?... 4 2) Täydellinen vai Osittainen riippuvuus?... 6 3) Suora vai Epäsuora riippuvuus?... 7 1. Normaalimuoto... 9 Miksi 1NF?... 12 2. Normaalimuoto... 13 Miksi 2NF?... 16 3. Normaalimuoto... 17 Miksi 3NF?... 20 Normalisointiprosessi... 21 3NF = Normalisoinnin tavoitetaso!... 22 Normalisointiesimerkki: Kurssihallinto... 23

HAAGA-HELIA Heti-09 2 (27) Normalisointi (Normalization) Tavoitteet Relaatiotietokannasta saadaan relaatiomallin mukainen Relaatioiden ja kohdealueen objektien välille pyritään saamaan läheinen rakenteellinen vastaavuus Minimoidaan tietokantaan sisältyvää toistoa Tietokannan päivitysten (lisäys, muutos, poisto) yhteydessä mahdollisten ristiriitaisuuksien välttäminen Relaatioiden riveistä pyritään saamaan lisäysten, poistojen ja muutosten kannalta mahdollisimman itsenäisiä kokonaisuuksia Tietokannan mahdollisimman suuri rakenteellinen joustavuus tulevien muutosten mahdollistamiseksi

HAAGA-HELIA Heti-09 3 (27) Normalisointi perustuu normaalimuotoihin (normal form) Normaalimuodot ovat asteittain tiukkenevia ehtoja, jotka relaatioiden on täytettävä Relaatio on tietyssä normaalimuodossa, mikäli se täyttää tietyt rajoitusehdot Kaikki relaatiot 1NF 2NF 3NF BCNF 4NF 5NF 3.normaalimuoto on normalisoinnin 'minimitaso' / tavoitetaso Ylempiä normaalimuotoja käsitellään syventävillä kursseilla

HAAGA-HELIA Heti-09 4 (27) Attribuuttien väliset riippuvuudet 1) Funktionaalinen vai Moniarvoinen riippuvuus? Vastaako tiettyä attribuuttin a arvoa yksi vai useampi attribuutin b arvo Esim. vastaako attribuutin opiskelijanumero arvoa 1234 yksi vai useampi attribuutin sukunimi arvo? Funktionaalinen riippuvuus Jos attribuutin A arvo määrää yksikäsitteisesti attribuutin B arvon niin voidaan sanoa että B on funktionaalisesti riippuva A:sta A määrää B:n funktionaalisesti A -> B Vrt. Funktion käsite: funktio palauttaa aina yhden arvon Esim: Henkilötunnus -> hlo_nimi Rekisterinumero -> auton merkki Yleistys: A, B -> C Esim: Tilausno, tuoteno -> tilausmäärä Projektino, henkilono, kk, vuosi -> työajankäyttö

HAAGA-HELIA Heti-09 5 (27) Moniarvoinen riippuvuus Jos attribuutin A arvoon voi liittyä useita attribuutin B arvoja A ->> B Esim. projektino ->> henkilono osastono ->> projektino Yhteenveto: funktionaalinen / moniarvoinen riippuvuus Funktionaalinen riippuvuuden X -> Y voimassaolo ei merkitse funktionaalisen riippuvuuden Y -> X voimassaoloa Riippuvuus voi olla (ja yleensä on) Toisesta suunnasta funktionaalinen Toisesta suunnasta moniarvoinen Esim: Henkilötunnus <<--> hlön nimi Rekisterinumero <<--> auton merkki

HAAGA-HELIA Heti-09 6 (27) 2) Täydellinen vai Osittainen riippuvuus? Onko jokainen pääavaimen attribuutti mukana riippuvuudessa? Osittainen riippuvuus Pääavaimen osa riittää identifioiman osan relaation avaimeen kuulumattomista attribuuteista Esim. Tilausno, tuoteno --> tuotenimi, tilaus_maara Täydellinen riippuvuus Kaikki relaation avaimeen kuulumattomat attribuutit määräytyvät koko pääavaimen perusteella Esim. Tuoteno --> tuotenimi Tilausno, tuoteno --> tilaus_maara Huom! Osittaista riippuuvuutta on tarpeen tutkia vain, kun pääavain koostuu useammasta kuin yhdestä attribuutista!

HAAGA-HELIA Heti-09 7 (27) 3) Suora vai Epäsuora riippuvuus? Määrääkö attribuutti A attribuutin C suoraan vai välillisesti attribuutin B kautta Epäsuora eli Transitiivinen riippuvuus attribuutti C on transitiivisesti riippuva attribuutista A, jos ja vain jos A -> B ja B -> C Esim. Henkilötunnus -> hlo_nimi, os_tunnus, os_nimi Suora riippuvuus Attribuutti A määrää attribuutin C suoraan, (ilman välittäviä attribuutteja) Esim. Henkilötunnus -> hlo_nimi, os_tunnus Os_tunnus -> os_nimi

HAAGA-HELIA Heti-09 8 (27) Normalisoinnissa tavoitellaan riippuvuuksia, jotka ovat Funktionaalisia Täydellisiä Suoria

HAAGA-HELIA Heti-09 9 (27) 1. Normaalimuoto 1NM (1 Normal Form, 1NF) Relaatio on 1. normaalimuodossa jos (ja vain jos) sen jokainen arvoalue sisältää ainoastaan atomaarisia arvoja ts. attribuuttia ei voi jakaa mielekkäisiin osiin Relaation on oltava kaksiulotteinen: 1. Relaatiossa ei saa olla toistuvia attribuutteja Moniarvoiset attribuutit on purettava omiksi relaatioikseen 2. Relaation jokainen attribuutti on jakamaton kokonaisuus

HAAGA-HELIA Heti-09 10 (27) Esim. TUTTAVA (tuttava_id, tut_nimi, tut_vuosi) TAPAAMINEN1 (tapaamis_id, paikan_nimi, pvm, al_aika, osoite, tuttava_id1, tuttava_id2, tuttava_id3,, tuttava_id10) TAPAAMINEN2 (tapaamis_id, paikan_nimi, pvm, al_aika, osoite, tuttava_lista) TUTTAVA TUTTAVA_ID TUT_NIMI TUT_VUOSI ake Akseli Mäkelä 2001 make Kerälä Martti 2002 pera PERTTI Järvinen 2006 TAPAAMINEN1 TAPAAMIS_ID PAIKAN_NIMI PVM AL_AIKA OSOITE TUTTAVA_ID1 TUTTAVA_ID2 TUTTAVA_ID10 001 Vanha 1.2.2010 18:00 Mansku 3, ake make Helsinki 002 Uusi 1.9.2010 19:00 Mansku 5 HKI ake TAPAAMINEN2 TAPAAMIS_ID PAIKAN_NIMI PVM AL_AIKA OSOITE TUTTAVA_LISTA 001 Vanha 1.2.2010 18:00 Mansku 3, ake, make PERA Helsinki 002 Uusi 1.9.2010 19:00 Mansku 5 HKI ake ei 1NF! Millaisia ongelmia datassa näyttäisi olevan?

HAAGA-HELIA Heti-09 11 (27) 1NF: TUTTAVA (tuttava_id, etunimi, sukunimi, tut_vuosi, ) TAPAAMINEN (tapaamis_id, paikan_nimi, pvm, al_aika, katuosoite, postitmp) TAVATTU(tapaamis_id, tuttava_id) TUTTAVA TUTTAVA_ID ETUNIMI SUKUNIMI TUT_VUOSI ake Akseli Mäkelä 2001 make Martti Kerälä 2002 pera Pertti Järvinen 2006 TAPAAMINEN TAPAAMIS_ID PAIKAN_NIMI PVM AL_AIKA OSOITE POSTITMP 001 Vanha 1.2.2010 18:00 Mansku 3 Helsinki 002 Uusi 1.9.2010 19:00 Mansku 5 Helsinki TAVATTU TAPAAMIS_ID TUTTAVA_ID 001 ake 001 make 001 pera 002 ake

HAAGA-HELIA Heti-09 12 (27) Miksi 1NF? Minkälaisen kyselyn joutuisit tekemään etsiäksesi tapaamiset tuttavan ake kanssa? (normalisoimattomissa vaihtoehdoissa) Mitä jos useasti tapaamasi tuttava vaatii, että hänen tuttava_id:nsä on muutettava. Miten tiedon muuttaminen onnistuisi? (normalisoimattomissa vaihtoehdoissa) Mitä, jos tapaamiseen osallistuu useampi tuttava, kuin mihin on varauduttu? (TAPAAMINEN1:ssä) ~ Normalisoimattomaan relaatioon liittyviä hankaluuksia

HAAGA-HELIA Heti-09 13 (27) 2. Normaalimuoto 2NM (2 Normal Form, 2NF) Relaatio on 2. normaalimuodossa jos (ja vain jos) se on 1NF:ssa ja jokainen avaimeen kuulumaton attribuutti on täydellisesti riippuvainen avaimesta Ts. avaimen osa ei saa riittää identifioimaan jotakin relaation attribuuteista Avaimen osasta riippuvat attribuutit esitetään omana relaationaan Huom! 2. normaalimuotoa on tarpeen tutkia vain, kun pääavain koostuu useammasta kuin yhdestä attribuutista!

HAAGA-HELIA Heti-09 14 (27) Esim: tuttavalla voi olla monta eri harrastusta, harrastuksella voi olla tyyppi, esim. urheilu, taide, TUTTAVAN_HARRASTUS(tuttava_id, harrastus, harrastustyyppi) TUTTAVA TUTTAVA_ID HARRASTUS HARRASTUSTYYPPI ake kitaransoitto musiikki make ilmakitaransoitto leikki ake juokseminen urheilu make juokseminen urheilu pera juokseminen URHEILU ake laulu musiikki pera pingis urheilu ei 2NF! Millaisia ongelmia datassa näyttäisi olevan?

HAAGA-HELIA Heti-09 15 (27) 2NF: TUTTAVAN_HARRASTUS(tuttava_id, harrastus) HARRASTUS( harrastus, harrastustyyppi) TUTTAVAN_HARRASTUS TUTTAVA_ID ake make pera make ake pera HARRASTUS kitaransoitto ilmakitaransoitto juokseminen juokseminen laulu sarjakuvat HARRASTUS HARRASTUS kitaransoitto ilmakitaransoitto juokseminen laulu sarjakuvat HARRASTUSTYYPPI musiikki leikki urheilu musiikki keräily

HAAGA-HELIA Heti-09 16 (27) Miksi 2NF? Kuinka moneen kertaan harrastuksen tyyppi pitää tallentaa tietokantaan? Jos harrastuksen tyyppi tulikin kirjattua väärin, moneenko relaatioon korjaus on tallennettava? tietylle harrastukselle saattaa kirjautua eri harrastustyyppejä tietokantaan? ~ Normalisoimattomaan relaatioon liittyviä hankaluuksia

HAAGA-HELIA Heti-09 17 (27) 3. Normaalimuoto 3NM (3 Normal Form, 3NF) Relaatio on 3. normaalimuodossa jos (ja vain jos) se on 2NF:ssa ja mikään sen avaimeen kuulumattomista attribuuteista ei ole avaimesta epäsuorasti riippuvainen Ts. ei-avaimena oleva attribuutti ei saa riippua avaimen lisäksi jostakin muusta, ei-avaimena olevasta attribuutista Siirrä attribuutit, jotka riippuvat avaimen lisäksi jostakin ei-avaimena olevasta attribuutista omaksi relaatiokseen

HAAGA-HELIA Heti-09 18 (27) Esim: TAPAAMINEN (tapaamis_id, paikan_nimi, pvm, al_aika, katuosoite, kunta) TAPAAMINEN TAPAAMIS_ID PAIKAN_NIMI PVM AL_AIKA OSOITE POSTITMP 001 Vanha 1.2.2010 18:00 Mansku 3 Helsinki 002 Uusi 1.9.2010 19:00 Mansku 5 Helsinki 003 Vanha 1.10.2010 19:00 Mansku 3 Helsinki 004 Vanha 1.12.2010 10:00 Mansku 3 Helsinki ei 3NF!

HAAGA-HELIA Heti-09 19 (27) 3NF: TAPAAMINEN (tapaamis_id, paikan_nimi, pvm, al_aika) PAIKKA (paikan_nimi, katuosoite, kunta) huomaa että viiteavaimen on säilyttävä TAPAAMINEN TAPAAMIS_ID PAIKAN_NIMI PVM AL_AIKA 001 Vanha 1.2.2010 18:00 002 Uusi 1.9.2010 19:00 003 Vanha 1.10.2010 19:00 004 Vanha 1.12.2010 10:00 PAIKKA PAIKAN_NIMI OSOITE POSTITMP Vanha Mansku 3 Helsinki Uusi Mansku 5 Helsinki

HAAGA-HELIA Heti-09 20 (27) Miksi 3NF? Kuinka moneen kertaan osoitetiedot joudutaan kirjoittamaan? Kun lisätään uusi tapaaminen tuttuun paikaan, joudutaan osoite kirjoittamaan yhä uudelleen Jos vanhoja tapaamisia poistetaan tietokannasta, miten voi käydä tiedon jonkin paikan osoitteesta? ~ Normalisoimattomaan relaatioon liittyviä hankaluuksia

HAAGA-HELIA Heti-09 21 (27) Normalisointiprosessi Normalisoimaton muoto Pura rakenteiset attribuutit & Siirrä toistuvat / moniarvoiset attribuutit omaksi relaatiokseen 1NF (atomaariset attribuutit) Poista epätäydellinen riippuvuus ts. Siirrä attribuutit jotka riippuvat pääavaimen osasta omaksi relaatiokseen 2NF (täydellinen riippuvuus koko avaimesta) Poista transitiivinen riippuvuus ts. Siirrä attribuutit, jotka riippuvat pääavaimen lisäksi jostakin pääavaimeen kuulumattomasta attribuutista omaksi relaatiokseen 3NF (attribuutit keskenään riippumattomia)

HAAGA-HELIA Heti-09 22 (27) 3NF = Normalisoinnin tavoitetaso! 1. Yksilöivä avain 2. Ei toistuvia tai rakenteellisia attribuutteja 3. Ei riippuvuutta pääavaimen osasta 4. Attribuutit keskenään riippumattomia "The rules leading to and including the 3. normal form can be summed up in a single statement: Each attribute must be a fact about the key, the whole key, and nothing but the key." [Wiorkowski, Kull. DB2 Design and Development Guide] Coddin alkuperäisessä määrittelyssä mukana vain 1NF, 2NF, 3NF Lisäksi myös Boyce-Codd normaalimuoto (BCNF) 4. Normaalimuoto (4NF) 5 normaalimuoto (5 NF) Näitä käsitellään syventävillä kursseilla

HAAGA-HELIA Heti-09 23 (27) Normalisointiesimerkki: Kurssihallinto OPETTAJA(openo, ope_nimi, ope_tutkinto, ope_puh1, ope_puh2) OPISKELIJA(opino, opi_nimi, aloitus_vuosi, osoite(katuos, postino, kunta)) KURSSI(kurssino, toteutusno, kurssin_nimi, vastuu_openo, opettava_openo, laajuus, aloitus_pvm) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana)

HAAGA-HELIA Heti-09 24 (27) OPETTAJA OPENO OPE_NIMI OPE_TUTKINTO OPE_PUH1 OPE_PUH2 111 Taina Torikas FM 09 123 040 123 222 Lainelin Lasse FM 040 234 333 Olga Osuva FL 09 345 040 567 666 Kurkela Kalle DI 09 456, 09 678 040 987 OPISKELIJA OPINO OPI_NIMI OSOITE AL_VUOSI 123 Heikki Herala Jokitie 3, 03100 Vantaa 2010 234 Isotalo Isa Jokitie 1 03100 VANTAA 2009 345 Jukka Jutila Jokitie 3; 03100 VANDA 2010 456 Kurkela Katja Meritie 2, 02100 ESPoo 2010 KURSSI KURSSINO TOTEUTUSNO KURSSI_NIMI VASTUU_OPENO OPETTAVA_OPENO LAAJUUS AL_PVM ICT05 1 Tiedonhallinta ja Tietokannat 333 111 6 10.1.2010 ICT05 2 Tiedonhallinta ja Tietokannat 333 333 6 20.1.2010 ICT03 50 Tieto ja tiedon varastointi 222 666 12 20.9.2009 OSALLISTUMINEN KURSSINO TOTEUTUSNO OPINO ALRVOSANA ICT05 1 123 3 ICT05 1 234 4 ICT03 50 123 5 Millaisia ongelmia datassa näyttäisi olevan?

HAAGA-HELIA Heti-09 25 (27) 1NF: 1. Pääavain määrää funktionaalisesti muut attribuutit 2. Ei rakenteellisia attribuutteja OPETTAJA(openo, ope_snimi, ope_enimi, ope_tutkinto) OPE_PUH(openo, ope_puh) OPISKELIJA(opino, opi_snimi, opi_enimi, aloitus_vuosi, katuos, postino, kunta) KURSSI(kurssino, toteutusno, kurssin_nimi, vastuu_openo, opettava_openo, laajuus, aloitus_pvm) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana)

HAAGA-HELIA Heti-09 26 (27) 2NF: ~ Jokainen attribuutti riippuu koko pääavaimesta (ei sen osasta) OPETTAJA(openo, ope_snimi, ope_enimi, ope_tutkinto) OPE_PUH(openo, ope_puh) OPISKELIJA(opino, opi_snimi, opi_enimi, aloitus_vuosi, katuos, postino, kunta) KURSSITOTEUTUS(kurssino, toteutusno, opettava_openo, aloitus_pvm) KURSSI(kurssino, kurssin_nimi, vastuu_openo, laajuus) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana)

HAAGA-HELIA Heti-09 27 (27) 3NF: ~ Jokainen attribuutti riippuu vain pääavaimesta (ei muista attribuuteista) OPETTAJA(openo, ope_snimi, ope_enimi, ope_tutkinto) OPE_PUH(openo, ope_puh) OPISKELIJA(opino, opi_snimi, opi_enimi, aloitus_vuosi, katuos, postino) POSTITMPK(postino, kunta) KURSSITOTEUTUS(kurssino, toteutusno, opettava_openo, aloitus_pvm) KURSSI(kurssino, kurssin_nimi, vastuu_openo, laajuus,) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana) Huolehdi että viiteavaimet (=yhteydet) säilyvät normalisoinnissa!