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

Samankaltaiset tiedostot
HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Luento L: Normalisointi

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (17) Outi Virkki Tiedonhallinta

Tietokannan suunnittelu

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

HELIA 1 (14) Outi Virkki Tiedonhallinta

CSE-A1200 Tietokannat

Tietokannan suunnittelu

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (20) Outi Virkki Tiedonhallinta

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

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

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

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

Luento 3 Tietokannan tietosisällön suunnittelu

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

2. Käsiteanalyysi ja relaatiomalli

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

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

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

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

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

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

3. Käsiteanalyysi ja käsitekaavio

Tietokannan rakenteen suunnittelu

Relaatiomalli ja -tietokanta

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

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

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

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

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

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

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

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

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

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

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

HARJOITUS 2. Kasvattamot ja mittaukset

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

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

CSE-A1200 Tietokannat

Tietokannat II -kurssin harjoitustyö

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 54

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

TIETOKANTOJEN SUUNNITTELU

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

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

MVD- ja EMVD-riippuvuudet - riippumattomuuden riippuvuus

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Opintopiiritehtävä 3: Verkkohuutokauppa

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Hannes Ranta SOVELLUKSEN TIETOKANNAN UUDELLEENSUUNNITTELU

MS-A0402 Diskreetin matematiikan perusteet

TIETOKANNAN JÄRKEISTÄMINEN

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

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

Käsitteellinen mallintaminen

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Kokonaislukuaritmetiikka vs. logiikkaluupit

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA TIETOTEKNIIKAN LAITOS. Petteri Kaikkonen

7. ER- ja EER-mallin kuvaaminen relaatiotietokannaksi

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

Tietokantojen suunnittelu

Tietokannat II -kurssin harjoitustyö

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

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

Johdatus tn-laskentaan perjantai

HELIA 1 (14) Outi Virkki Tiedonhallinta

Matemaatiikan tukikurssi

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

HELIA TiKo-05 1 (10) Outi Virkki ICT03D Tieto ja tiedon varastointi yrityksessä

Rinnakkaistietokoneet luento S

1.1 Funktion määritelmä

Johdatus logiikkaan I Harjoitus 4 Vihjeet

Transkriptio:

HELIA TIKO-05 1 (20) Normalisointi Normalisointi...2 Tavoitteet...2 Attribuuttien väliset riippuvuudet...4 Funktionaalinen / moniarvoinen riippuvuus...4 Täydellinen / osittainen riippuvuus...6 Suora / välillinen riippuvuus...7 1. Normaalimuoto...9 Miksi 1NF?... 10 2. Normaalimuoto... 11 Miksi 2NF?... 12 3. Normaalimuoto... 13 Miksi 3NF?... 14 Normalisointiprosessi... 15 3NF = Normalisoinnin tavoitetaso!... 16 Normalisointiesimerkki: Kurssihallinto... 17

HELIA TIKO-05 2 (20) Normalisointi (Normalization) Tavoitteet Relaatiotietokannasta saadaan relaatiomallin mukainen Relaatioiden ja kohdealueen objektien välille pyritään saamaan läheinen rakenteellinen vastaavuus Minimoidaan tietokantaan sisältyvää käsitteellistä ja talletettavista tiedoista aiheutuvaa toisto (=redundanssia) Tietokannan päivitysten yhteydessä mahdollisten anomalioiden (=ei-toivottujen sivuvaikutusten) välttäminen (lisäys-, muutos- ja poistoanomalia) Relaatioiden riveistä pyritään tekemään lisäysten, poistojen ja muutosten kannalta itsenäisiä kokonaisuuksia Tietokannan mahdollisimman suuri rakenteellinen joustavuus tulevien muutosten mahdollistamiseksi

HELIA TIKO-05 3 (20) 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

HELIA TIKO-05 4 (20) Attribuuttien väliset riippuvuudet Funktionaalinen / moniarvoinen riippuvuus Vastaako attribuuttia A yksi vai useampi attribuutin B arvo Funktionaalinen riippuvuus Jos attribuutin A arvo määrää yksikäsitteisesti attribuutin B arvon niin 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 --> työajankäyttö

HELIA TIKO-05 5 (20) Moniarvoinen riippuvuus Jos ominaisuuden A arvoon voi liittyä useita ominaisuuden B arvoja tavalla, joka ei riipu mistään 3. ominaisuudesta A ->> B Esim. projektino -->> henkilono osastono -->> projektino Yhteenveto: funktionaalinen / moniarvoinen riippuvuus Funktionaalinen riippuvuuden A -> B voimassaolo ei merkitse funktionaalisen riippuvuuden B -> A voimassaoloa Riippuvuus voi olla (ja yleensä on) Toisesta suunnasta funktionaalinen Toisesta suunnasta moniarvoinen Esim: Henkilötunnus <<--> nimi Rekisterinumero <<--> auton merkki

HELIA TIKO-05 6 (20) Täydellinen / osittainen riippuvuus Onko jokainen pääavaimen attribuutti mukana riippuvuudessa? Osittainen riippuvuus Pääavaimen osa riittää identifioimaan 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. Tilausno, tuoteno --> tilaus_maara Tuoteno --> tuotenimi

HELIA TIKO-05 7 (20) Suora / välillinen riippuvuus Määrääkö attribuutti A attribuutin C suoraan vai välillisesti ominaisuuden B kautta Välillinen eli transitiivinen riippuvuus attribuutti C on välillisesti riippuva attribuutista A, jos ja vain jos A -> B ja B -> C ja lisäksi B -/-> A ja C-/-> A 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

HELIA TIKO-05 8 (20) Normalisoinnissa tavoitellaan riippuvuuksia, jotka ovat 1. Funktionaalisia 2. Täydellisiä 3. Suoria

HELIA TIKO-05 9 (20) 1. Normaalimuoto 1NM (1 Normal Form, 1NF) Relaatio R on 1. normaalimuodossa jos ja vain jos sen jokainen arvoalue sisältää ainoastaan atomaarisia arvoja Relaatiomalli perustuu arvojoukon määritelmän kautta olettamukseen, jonka mukaan attribuuttien arvot ovat atomaarisia Ts. relaation on oltava kaksiulotteinen, 1. Relaatiossa ei saa olla toistuvia attribuutteja Moniarvoiset ominaisuudet on purettava omiksi relaatioikseen 2. Relaation jokainen attribuutti on jakamaton kokonaisuus Esim. JULKAISU(julkaisuno, tekijat, otsake, ) JULKAISU(julkaisuno, tekija1, tekija2,.., otsake, ) ei 1NF! 1NF: JULKAISU(julkaisuno, otsake, ) J_TEKIJA(julkaisuno, tekija, tekijan _i)

HELIA TIKO-05 10 (20) Miksi 1NF? Minkälaisen kyselyn joutuisit tekemään etsiäksesi Mielosen julkaisut? (normalisoimattomissa vaihtoehdoissa) Mitä, jos tietyn julkaisun 2. tekijä halutaan poistaa (esim. kirjoitusvirheen takia)? Mitä, jos tekijöitä onkin useampi, kuin mihin on varauduttu? ~ Normalisoimattomaan relaatioon liittyviä anomalioita

HELIA TIKO-05 11 (20) 2. Normaalimuoto 2NM (2 Normal Form, 2NF) Relaatio R on 2. normaalimuodossa jos ja vain jos se on 1NF:ssa ja jokainen avaimeen kuulumaton ominaisuus on täydellisesti riippuvainen avaimesta Ts. avaimen osa ei saa riittää identifioimaan jotakin relaation attribuuteista Avaimen osasta riippuvat ominaisuudet esitetään omana relaationaan Esim: TYOPANOS(projno, hlono, vuosi, kk, hnimi, tunnit) ei 2NF 2NF: TYOPANOS(projno, hlono, vuosi, kk, tunnit) HLO(hlono, hnimi, )

HELIA TIKO-05 12 (20) Miksi 2NF? Kuinka moneen kertaan henkilön nimi pitää tallentaa tietokantaan? Miten tallennetaan henkilön nimi, jos hänelle ei ole kertynyt vielä lainkaan projektityötunteja? Jos henkilön nimi muuttuu, moneenko relaatioon muutos on tallennettava? Jos työpanostiedot päätetään poistaa projektin päättyessä, miten käy tiedolle henkilön nimestä? ~ Normalisoimattomaan relaatioon liittyviä anomalioita

HELIA TIKO-05 13 (20) 3. Normaalimuoto 3NM (3 Normal Form, 3NF) Relaatio R on 3. normaalimuodossa jos ja vain jos se on 2NF:ssa ja mikään sen avaimeen kuulumattomista ominaisuuksista ei ole avaimesta transitiivisesti riippuvainen (Relaatio R on 3. normaalimuodossa jos jokaisessa funktionaalisessa riippuvuudessa X -> A joko a) attribuuttijoukko X on relaation R yliavain tai b) A on avainattribuutti) Ts. ei-avaimena oleva ominaisuus ei saa riippua avaimen lisäksi jostakin muusta, ei-avaimena olevasta ominaisuudesta Siirrä attribuutit, jotka riippuvat avaimen lisäksi jostakin ei-avaimena olevasta ominaisuudesta omaksi relaatiokseen Esim: HLON_TYO(hlono, tyopaikan_nimi, tyopaikan_os) Ei 3 NF.. 3NF: HLON_TYO(hlono, tyopaikan_nimi) TYOPAIKKA(tyopaikan_nimi, tyopaikan_os)

HELIA TIKO-05 14 (20) Miksi 3NF? Jos työpaikka muuttaa, moneenko kertaan uusi osoite joudutaan kirjoittamaan? Kun lisätään henkilö vanhalle työpaikalle, joudutaan työpaikan osoite kirjoittamaan yhä uudelleen Jos tietyn työpaikan henkilöstö irtisanoutuu, miten käy tiedon työpaikan osoitteesta? Miten lisätään uusi työpaikka, jos siellä ei vielä ole ensimmäistäkään työntekijää? ~ Normalisoimattomaan relaatioon liittyviä anomalioita

HELIA TIKO-05 15 (20) Normalisointiprosessi Normalisoimaton muoto Pura rakenteiset attribuutit. Poista moniarvoinen riippuvuus, ts. siirrä moniarvoiset attribuutit omaksi relaatiokseen 1NF (ei toistuvia eikä rakenteisia attribuutteja) Poista epätäydellinen funktionaalinen riippuvuus ts. siirrä attribuutit, jotka riippuvat pääavaimen osasta omaksi relaatiokseen. Jäljelle jäävät attribuutit riippuvat koko pääavaimesta täydellisesti 2NF (täydellinen riippuvuus koko avaimesta) Poista transitiivinen riippuvuus ts. siirrä attribuutit, jotka riippuvat pääavaimen lisäksi jostakin pääavaimeen kuulumattomasta ominaisuudesta omaksi relaatiokseen 3NF (ominaisuudet keskenään riippumattomia)

HELIA TIKO-05 O.Virkki 8.2.2007 16 (20) 3NF = Normalisoinnin tavoitetaso! 1. Yksilöivä avain 2. Ei toistuvia tai rakenteellisia attribuutteja 3. Ei epätäydellistä funktionaalista riippuvuutta 4. Ominaisuudet 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

HELIA TIKO-05 17 (20) Normalisointiesimerkki: Kurssihallinto Normalisoimaton kaava (0NF): OPETTAJA(openo, ope_nimi(etunimi, sukunimi), ope_tutkinto, ope_puh1, ope_puh2) OPISKELIJA(opino, opi_nimi(etunimi, sukunimi), aloitus_vuosi, osoite(katuos, postino, kunta)) KURSSI(kurssino, toteutusno, kurssin_nimi, vastuu_openo, opettava_openo, laajuus, aloitus_pvm) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana)

HELIA TIKO-05 18 (20) 1NF: 1. Pääavain määrää funktionaalisesti muut attribuutit 2. Ei rakenteellisia attribuutteja OPETTAJA(openo, ope_etunimi, ope_sukunimi, ope_tutkinto) OPE_PUH(openo, ope_puh) OPISKELIJA(opino, opi_etunimi, opi_sukunimi, aloitus_vuosi, katuos, postino, kunta) KURSSI(kurssino, toteutusno, kurssin_nimi, vastuu_openo, opettava_openo, laajuus, aloitus_pvm) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana)

HELIA TIKO-05 19 (20) 2NF: ~ Jokainen attribuutti riippuu koko pääavaimesta (ei sen osasta) OPETTAJA(openo, ope_etunimi, ope_sukunimi, ope_tutkinto) OPE_PUH(openo, ope_puh) OPISKELIJA(opino, opi_etunimi, opi_sukunimi, aloitus_vuosi, katuos, postino, kunta) KURSSITOTEUTUS(kurssino, toteutusno, opettava_openo, aloitus_pvm) KURSSI(kurssino, kurssin_nimi, vastuu_openo, laajuus) OSALLISTUMINEN(kurssino, toteutusno, opino, arvosana)

HELIA TIKO-05 20 (20) 3NF: ~ Jokainen attribuutti riippuu vain pääavaimesta (ei muista attribuuteista) OPETTAJA(openo, ope_etunimi, ope_sukunimi, ope_tutkinto) OPE_PUH(openo, ope_puh) OPISKELIJA(opino, opi_etunimi, opi_sukunimi, 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!