HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000



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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

Luento L: Normalisointi

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CSE-A1200 Tietokannat

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

HELIA 1 (17) Outi Virkki Tiedonhallinta

2. Käsiteanalyysi ja relaatiomalli

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (20) Outi Virkki Tiedonhallinta

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

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.

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

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

Johdatus diskreettiin matematiikkaan Harjoitus 1,

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

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

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

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

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

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

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

Relaatiomalli ja -tietokanta

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

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

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

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA TIETOTEKNIIKAN LAITOS. Petteri Kaikkonen

Opintopiiritehtävä 3: Verkkohuutokauppa

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

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

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

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

MVD- ja EMVD-riippuvuudet - riippumattomuuden riippuvuus

3. Käsiteanalyysi ja käsitekaavio

Johdatus tn-laskentaan perjantai

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

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

8 Joukoista. 8.1 Määritelmiä

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

HELIA 1 (12) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

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

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

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,

CSE-A1200 Tietokannat

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

CS-A1150 Tietokannat CS-A1150 Tietokannat / 54

Käsitteellinen mallintaminen

PlanMan Project projektihallintaohjelmisto koulutusohjeistus

Tietokannan suunnittelu

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

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä.

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

X R Matematiikan johdantokurssi, syksy 2016 Harjoitus 5, ratkaisuista

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

Tietokannan suunnittelu

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

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Esimerkkimodaalilogiikkoja

Luento 3 Tietokannan tietosisällön suunnittelu

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

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

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

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Huom. muista ilmoittautua kokeeseen ajoissa. Ilmoittautumisohjeet kurssin kotisivuilla.

TIETOKANNAN JÄRKEISTÄMINEN

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

1.1 Funktion määritelmä

MS-A0402 Diskreetin matematiikan perusteet

Tietovaraston tietomallin suunnittelu

811120P Diskreetit rakenteet

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

CSE-A1200 Tietokannat

HELIA 1 (11) Outi Virkki Tiedonhallinta

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

Rinnakkaistietokoneet luento S

Transkriptio:

HELIA 1 (17) Luento 4.5 Normalisointi... 2 Tavoitteet... 2 Attribuuttien väliset riippuvuudet... 4 Funktionaalinen / moniarvoinen riippuvuus... 4 Transitiivinen / suora riippuvuus... 6 Täydellinen / osittainen riippuvuus... 7 Funktionaalisiin riippuvuuksiin liittyviä päättelysääntöjä... 8 1. Normaalimuoto 1NF... 9 Miksi 1NF?... 10 2. Normaalimuoto 2NF... 11 Miksi 2NF?... 12 3. Normaalimuoto 3NF... 13 Miksi 3NF?... 14 Normalisointiprosessi... 15 3NF = Normalisoinnin tavoitetaso!... 16 Normalisointiesimerkki: Kurssihallinto... 17

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

HELIA 3 (17) Normalisointi perustuu normaalimuotoihin 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

HELIA 4 (17) 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 5 (17) 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 X -> Y voimassaolo ei merkitse funktionaalisen riippuvuuden Y -> X voimassaoloa Riippuvuus voi olla Toisesta suunnasta funktionaalinen Toisesta suunnasta moniarvoinen Esim: Henkilötunnus <<--> nimi Rekisterinumero <<--> auton merkki

HELIA 6 (17) Transitiivinen / suora riippuvuus Määrääkö attribuutti A attribuutin C suoraan vai välillisesti ominaisuuden B kautta Transitiivinen riippuvuus attribuutti C on transitiivisesti 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 7 (17) Osittainen / täydellinen / riippuvuus Onko jokainen pääavaimen elementti 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 kuulumatttomat attribuutit määräytyvät koko pääavaimen perusteella Esim. Tilausno, tuoteno --> tilaus_maara Tuoteno --> tuotenimi

HELIA 8 (17) Funktionaalisiin riippuvuuksiin liittyviä päättelysääntöjä Päättelysääntöjä voi käyttää relaatioiden yhdistämiseksi, (tavoitteena on sovellusalueen kuvaus pienimmällä mahdollisella relaatiomäärällä) Refleksiivisyys Jos Y X niin X -> Y Esim: otsake, vuosi -> otsake Esim: otsake -> otsake Ns. triviaali riippuvuus (riippuvuuden olemassaolo on itsestään selvää) Täydentäminen Ositus Unioni Jos X -> Y niin XZ -> YZ Jos X -> YZ niin X-> Y ja X -> Z Jos X -> Y ja X -> Z niin X -> YZ Transitiivisuus Jos X -> Y ja Y-> Z niin X -> Z Pseudo-transitiivisuus Jos X -> Y ja YW -> Z niin XW -> Z

HELIA 9 (17) 1. Normaalimuoto 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 atomisia 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, tekijät, otsake, ) JULKAISU(julkaisuno, tekijä1, tekijä2,.., otsake, ) ei 1NF! JULKAISU(julkaisuno, otsake, ) J_TEKIJA(julkaisuno, tekija, tekijän _i)

HELIA 10 (17) Miksi 1NF? Minkälaisen kyselyn joutuisit kirjoittamaan? Mitä, jos esim. 3. tekijä päätettäisiinkin poistaa? Mitä jos tekijöitä tulee useampi, kuin mihin on varauduttu?

HELIA 11 (17) 2. Normaalimuoto 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 TYOPANOS(projno, hlono, vuosi, kk, tunnit) HLO(hlono, hnimi, )

HELIA 12 (17) 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ä?

HELIA 13 (17) 3. Normaalimuoto 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 riippuu avaimen lisäksi jostakin muusta ei-avaimena olevasta ominaisuudesta Siirrä attribuutit, jotka riippuvat avaimen lisäksi jostakin eiavaimena olevasta ominaisuudesta omaksi relaatiokseen Esim: HLON_TYO(hlono, tyopaikan_nimi, tyopaikan_os) Ei 3 NF..

HELIA 14 (17) 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ää?

HELIA 15 (17) Normalisointiprosessi Normalisoimaton muoto Poista toistuvat ryhmät, 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 16 (17) 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)

HELIA 17 (17) 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, opino, arvosana)