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

Samankaltaiset tiedostot
Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

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

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

HELIA 1 (17) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CSE-A1200 Tietokannat

Relaatiomalli ja -tietokanta

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

ITKA204 Tietokannat ja tiedonhallinnan perusteet

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Luento L: Normalisointi

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

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

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

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

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

2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen. Luku 2. Arkkitehtuuri ja analyysi. ITKA204 kevät

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

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

Tietokannan suunnittelu

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA TIETOTEKNIIKAN LAITOS. Petteri Kaikkonen

Relaatioalgebra. Kyselyt:

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

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

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

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

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

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

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

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

TIETOKANTOJEN SUUNNITTELU

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

1.1 Käsitteet ja termit 1.2 Historia. Luku 1. Johdanto. ITKA204 kevät

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

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

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

2. Käsiteanalyysi ja relaatiomalli

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

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

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

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

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

TIETOKANNAN JÄRKEISTÄMINEN

Johdanto. Rough Sets. Peruskäsitteitä

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

Käsiteanalyysi prosessina ja tarveanalyysi

MVD- ja EMVD-riippuvuudet - riippumattomuuden riippuvuus

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

3. Käsiteanalyysi ja käsitekaavio

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

MS-A0402 Diskreetin matematiikan perusteet

SELECT-lauseen perusmuoto

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

FYYSINEN SUUNNITTELU

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

SQL - STRUCTURED QUERY LANGUAGE

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

Tietokantojen suunnittelu

Fyysinen suunnittelu

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

Esimerkkejä vaativuusluokista

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

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

Hannes Ranta SOVELLUKSEN TIETOKANNAN UUDELLEENSUUNNITTELU

Luento 3 Tietokannan tietosisällön suunnittelu

Tietovarastojen suunnittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Visual Case 2. Miika Kasnio (C9767)

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

CSE-A1200 Tietokannat

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

Tietokannat II -kurssin harjoitustyö

Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa.

Transkriptio:

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

5.1 Normalisoinnin tarkoitus Loogisen tason suunnittelu ja validointi Käsitekaava transformointi normalisointi Relaatiokaavat denormalisointi fyysinen suunnittelu Saantimenetelmät, tiedostorakenteet, indeksit, hajautus ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 2

5.1 Normalisoinnin tarkoitus Ratkaisu kahteen ongelmaan 1. Loogisen rakenteen ongelmat: Huonosti nimetyt relaatiot ja attribuutit kuvaavat reaalimaailman vastinettaan heikosti tai virheellisesti. Tyhjäarvoja runsaasti suosivat attribuutit. Relaatiorakenteet, joihin on tarpeettomasti mallinnettu tietoa useasta reaalimaailman kohteesta. Attribuutit, joiden arvot ovat tarpeettomasti koosteisia. Huonosti suunnitellut liitosattribuutit tuottavat sisällöltään harhaisia (spurious) monikoita. tt_kaup kaup=kaup tt_proj tt_kaup tt_proj htun ptun kaup nimi nimi kaup htun ptun kaup h1 p1 HKI Aatami Aatami HKI h1 p1 HKI h1 p1 HKI Bertta Aatami TRE h1 p2 TRE h1 p2 TRE Aatami Bertta HKI h2 p1 HKI h2 p1 HKI Aatami h2 p1 HKI Bertta ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 3

5.1 Normalisoinnin tarkoitus Ratkaisu kahteen ongelmaan 2. Datan toisteisuudesta (redundancy) eli tarpeettomasta toistosta johtuvat ongelmat: Kasvavat tallennustilavaatimukset. Erilaiset kirjoitusoperaatioista johtuvat poikkeamat (anomaly). ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 4

5.1 Normalisoinnin tarkoitus Poikkeamat Codd (1972b) jakaa toisteisuudesta johtuvat poikkeamat kolmeen luokkaan: Lisäysoperaatioista johtuvat poikkeamat (insertion anomaly) Poisto-operaatioista johtuvat poikkeamat (deletion anomaly) Muokkausoperaatioista johtuvat poikkeamat (modification anomaly) optun opnimi kurssitun kurssinimi arvosana o7111 Aatami Laippa itka204 Tietokannat 5 o7111 Aatami Laippa itkp113 Oliosuunnittelu 4 o7111 Aatami Laippa tjta114 Tietohallinto HYV o6800 Bertta Hukari itka204 Tietokannat 5 o6604 Cecilia Rastas tjta114 Tietohallinto HYV ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 5

5.2 Funktionaalinen riippuvuus Funktionaalinen riippuvuus yleisesti Normalisoinnin keskeisin käsite on funktionaalinen riippuvuus (functional dependency, FD). FD:llä tarkoitetaan jonkin attribuutin arvon määräytymistä saman relaation attribuuttijoukon (1..n attribuuttia) arvon perusteella. Ts. relaation R jokaisella monikolla m 1..m n, jolla attribuutin X arvo on a, on vastaavilla monikoilla m 1..m n attribuutin Y arvo aina b. Tällöin pätee funktionaalinen riippuvuus Y riippuu funktionaalisesti X:stä. Funktionaalinen riippuvuus merkitään seuraavalla notaatiolla, jossa attribuuttijoukko {X} on määräävä attribuuttijoukko, ja Y on {X}:stä riippuvainen attribuutti. { X } Y htun (X) etunimi (Y) h1 h2 h3 Aatami Bertta Cecilia ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 6

5.2 Funktionaalinen riippuvuus Funktionaalinen riippuvuus yleisesti Tarkastellaan funktionaalista riippuvuutta käytännön esimerkin kautta. htun 010160-ABCD 020270-EFGH 030380-IJKL 040490-MNOP nimi Aatami Laippa Bertta Hukari Aatami Laippa Cecilia Rastas jos tiedetään henkilötunnus, tiedetään yksiselitteisesti myös nimi jos tiedetään nimi, ei tiedetä yksiselitteisesti henkilötunnusta Relaatiossa pätee siis funktionaalinen riippuvuus {htun} nimi, koska aina kun henkilötunnus on arvoltaan a, on nimi vastaavilla riveillä aina arvoltaan b. Relaatiossa ei kuitenkaan päde funktionaalinen riippuvuus {nimi} htun, koska nimen ollessa Aatami Laippa, ei htun ole jokaisella vastaavalla rivillä samanarvoinen. Ts. htun on funktionaalisesti riippumaton nimestä. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 7

5.2 Funktionaalinen riippuvuus Funktionaalinen riippuvuus Vaikka notaatio on matemaattinen, kyseessä ei ole matemaattinen ilmiö. Funktionaalisten riippuvuuksien löytäminen edellyttää relaation merkityksen ymmärtämistä. Funktionaaliset riippuvuudet pyritään tavallisesti löytämään rakennetta (ei sisältöä) tutkimalla. petun peetu pesuku pesynt_aika kilptun kilpnimi maalit erilaisia esitysmuotoja funktionaalisille riippuvuuksille {petun} peetu {petun} pesuku {petun} pesynt_aika {kilptun} kilpnimi {petun, kilptun} maalit Selitykset: - petun = pelaajatunnus - peetu = pelaajan etunimi - pesuku = pelaajan sukunimi - pesynt_aika = pelaajan syntymäaika - kilptun = kilpailun tunnus - kilpnimi = kilpailun nimi - maalit = pelaajan tekemien maalien lukumäärä kilpailussa ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 8

5.2 Funktionaalinen riippuvuus Päättelysäännöt Sellaisia funktionaalisia riippuvuuksia, joita ei voida edes teoriassa rikkoa, kutsutaan triviaaleiksi. Armstrong (1974) on esittänyt funktionaalisiin riippuvuuksiin liittyvien päättelysääntöjen joukon: 1. Refleksiivisyyssäännön mukaan aina, jos attribuutti Y on attribuuttijoukon {X} osajoukko, pätee triviaali funktionaalinen riippuvuus Y riippuu X:stä, ts. X riippuu itsestään : Y X niin { X } Y esim. {htun} htun tai {etunimi, sukunimi} etunimi 2. Transitiivisuussäännön mukaan aina jos pätevät funktionaaliset riippuvuudet "Y riippuu X:stä" ja "Z riippuu Y:stä" pätee myös funktionaalinen riippuvuus "Z riippuu X:stä". { X } Y ja { Y } Z niin { X } Z esim. jos {htun} osastonro ja {osastonro} osastonimi, niin {htun} osastonimi ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 9

5.2 Funktionaalinen riippuvuus Päättelysäännöt 3. Yhdistesäännön mukaan aina jos pätevät funktionaaliset riippuvuudet Y riippuu X:stä" ja "Z riippuu X:stä", pätee myös funktionaalinen riippuvuus "Y ja Z riippuvat X:stä". { X } Y ja { X } Z niin { X } { Y, Z } esim. jos {htun} etunimi ja {htun} sukunimi, niin {htun} {etunimi, sukunimi} 4. Jakosäännön mukaan aina, jos pätee funktionaalinen riippuvuus "Y ja Z riippuvat X:stä", pätevät myös funktionaaliset riippuvuudet "Y riippuu X:stä" ja "Z riippuu X:stä". { X } { Y, Z } niin { X } Y ja { X } Z esim. jos {htun} {etunimi, sukunimi}, niin {htun} etunimi ja {htun} sukunimi ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 10

5.2 Funktionaalinen riippuvuus Päättelysäännöt 5. Täydentämissäännön mukaan aina jos pätee funktionaalinen riippuvuus Y riippuu X:stä, pätee myös funktionaalinen riippuvuus Y riippuu X:n ja Z:n yhdistelmästä. { X } Y niin { X, Z } Y esim. jos {htun} etunimi, niin {htun, sukunimi} etunimi Huomattakoon, että seuraava päättelysääntö ei ole välttämättä voimassa: { X, Y } Z niin { X } Z ja { Y } Z Esim. aikaisemmin esitetyn esimerkin mukaan, jos {petun, kilptun} maalit ei päde {petun} maalit eikä myöskään {kilptun} maalit ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 11

5.2 Funktionaalinen riippuvuus Luentotehtävä 6 Tarkastella alla olevan relaation attribuutteja ja esitä funktionaaliset riippuvuudet kohdealueen tietämyksesi perusteella. Kohdealue koskee opiskelijoita, oppiaineita, opintojaksoja (oj) ja suorituksia. htun etunimi sukunimi pääaine sivuaine laitosnimi ojtunnus ojnimi arvolause suorituspvm ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 12

5.2 Funktionaalinen riippuvuus Luentotehtävä 6: ratkaisu Tarkastella alla olevan relaation attribuutteja ja esitä funktionaaliset riippuvuudet kohdealueen tietämyksesi perusteella. Kohdealue koskee opiskelijoita, oppiaineita, opintojaksoja (oj) ja suorituksia. 3) 1) 2) htun etunimi sukunimi pääaine sivuaine laitosnimi ojtunnus ojnimi arvolause 4) 5) suorituspvm 1) {htun} {etunimi, sukunimi, pääaine, laitosnimi} 2) {sivuaine} laitosnimi 3) {pääaine} laitosnimi 4) {ojtunnus} {ojnimi, laitosnimi} 5) {ojtunnus, htun} {arvolause, suorituspvm} Huom., ei päde: {htun} sivuaine ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 13

Yleistä normaalimuodoista Normalisoinnilla tarkoitetaan tietokannan loogiseen suunnitteluun kuuluvaa toimintaa, jossa relaatioiden rakennetta muokataan jonkin tietyn normaalimuodon (normal form, NF) vaatimukset täyttäväksi. Normalisoinnin tavoitteena on tietokannan rakenteen selkeyttäminen ja datan toisteisuuden vähentäminen. Normaalimuodot voidaan nähdä sisäkkäisinä, esim. toisessa normaalimuodossa oleva relaatio on myös ensimmäisessä normaalimuodossa. Normalisoimaton 1NF 2NF 3NF BCNF 4NF ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 14

Normalisointiprosessi Normalisointiprosessi on relaatiokohtainen. Jos relaatio ei täytä jonkin normaalimuodon vaatimuksia, se tulee jakaa osiin. Jako tapahtuu relaatioalgebran mukaisella projektiolla (eli taulukkona kuvattu relaatio jaetaan pystysuunnassa). Jaon täytyy tapahtua siten, että jakamisen tuloksena syntyvien relaatioiden liitos ei tuota erilaisia monikoita kuin alkuperäinen relaatio, jokainen jaettavassa relaatiossa esiintyvä funktionaalinen riippuvuus säilytetään jossakin jaon tuloksena muodostetussa relaatiossa tai näiden liitoksessa niin, että liitos ei tuota harhaisia (spurious) monikoita ja lopulta relaatioita ei ole määrällisesti enempää kuin mitä tavoitellun normaalimuodon saavuttaminen vaatii. Kaikkia (tai yhtäkään) relaatiota ei välttämättä tarvitse saattaa vahvimpaan normaalimuotoon. Normalisointiprosessi tehdään juuri niin pitkälle, kuin kohdealueen tarpeet vaativat. Vahvemmat normaalimuodot suosivat ympäristöjä, joissa päivitetään (INSERT, UPDATE, DELETE) usein. Vahvemmat normaalimuodot käytännössä tavallisesti hidastavat lukuoperaatioita. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 15

Ensimmäinen normaalimuoto Relaatio, joka ei ole ensimmäisen normaalimuodon (first normal form, 1NF) mukainen, on normalisoimaton. Normalisoimaton (non-first normal form, NFNF) relaatio ei ole relaatiomallin mukainen. Relaatio on 1NF:ssä, jos sen kaikki attribuutit ovat atomisia ja sopivaa tyyppiä. Sopivalla tyypillä tarkoitetaan, että mikään attribuutti ei ole viittaus toiseen relaatioon (attribuutti voi kuitenkin olla viittaus toisen relaation attribuuttiin), eikä samaa tyyppiä kuin relaatio, johon attribuutti kuuluu. htun etunimi puhelin 010160-ABCD Matti 0401234567 020270-EFGH Maija [014123456, 040556123, 014567123] 030380-IJKL Teppo [05012345, 05098765] Relaatio ei ole 1NF:n mukainen, koska puhelin ei ole atominen. Normalisoidaan 1NF:ään jakamalla relaatio kahteen osaan: HENKILÖ(htun, etunimi) ja PUHELIN(htun, puh) ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 16

Toinen normaalimuoto Toiseen normaalimuotoon (second normal form, 2NF) liittyy käsite täydestä funktionaalisesta riippuvuudesta (full functional dependency). Täydellä funktionaalisella riippuvuudella tarkoitetaan sellaista funktionaalista riippuvuutta {X} Y, jossa attribuuttijoukkoa {X} ei voida jakaa osiin niin, että funktionaalinen riippuvuus säilytetään. Ts. {X}:n todellinen osajoukko ei ole Y:n suhteen määräävä attribuuttijoukko. Relaatio on 2NF:ssä, jos se on 1NF:ssä ja relaation kaikki perusavaimeen kuulumattomat attribuutit ovat täysin funktionaalisesti riippuvia relaation perusavaimesta. R ( A, B, C, D ) ei ole 2NF:n mukainen, koska {B} D S ( A, B, C, D ) on 2NF:n mukainen! ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 17

Toinen normaalimuoto 2NF:n täyttämättömien relaatioiden ongelma on tavallisesti se, että perusavaimeen kuulumaton attribuutti riippuu funktionaalisesti perusavaimen todellisesta osajoukosta. Näin ollen relaatiot, joiden perusavain koostuu useammasta kuin yhdestä attribuutista, vaativat erityistä huomiota. htun projnro tehtava projnimi 010170-ABCD p555 projektipäällikkö Louhinta 020280-EFGH p555 avustaja Louhinta 030390-IJKL p597 projektipäällikkö HR Relaatio ei ole 2NF:n mukainen, koska {projnro} projnimi 010170-ABCD p597 avustaja HR Normalisoidaan 2NF:ään jakamalla relaatio: PROJEKTI ( projnro, projnimi ), jossa pätee {projnro} projnimi TEHTAVA_PROJEKTISSA ( htun, projnro, tehtava ), jossa pätee {htun, projnro} tehtava ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 18

Toinen normaalimuoto Toisesta normaalimuodosta on olemassa myös vahvempi muoto: Relaatio on 2NF:ssä, jos se on 1NF:ssä, ja jokainen avainehdokkaisiin kuulumaton attribuutti on täysin funktionaalisesti riippuvainen kaikista avainehdokkaista. Yllä esitettyä, vahvempaa muotoa ei kurssilla käsitellä. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 19

Esimerkki normalisointiprosessista Suomen talvessa järjestetään joka viikonloppu lukuisia kalastuskilpailuja. Oletetaan, että kukin kilpailu on yksipäiväinen. Paikkakunta voi vaihdella, mutta kukin kilpailu pidetään vain yhdellä paikalla. SAALIS ( kilp_tunnus kilp_paikka kilp_pvm kalastajatun kalastaja_nimi syntvuosi saaliin_paino_yht kalojen_lkm_saaliissa sijoitus_kisassa ) Relaation perusavaimeksi sopisi {kilp_tunnus, kalastajatun} tai {kilp_tunnus, sijoitus_kisassa}. Valitaan perusavaimeksi toinen. Relaatio on 1NF:ssä, koska kaikki attribuutit ovat atomisia ja ne oletetaan sopivan tyyppisiksi. Relaatio ei ole 2NF:ssä, koska kilp_paikka ja kilp_pvm eivät ole täysin funktionaalisesti riippuvaisia perusavaimesta (valittiin kumpi hyvänsä). relaatio täytyy siis jakaa ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 20

Esimerkki normalisointiprosessista Jakaminen johtaa seuraavaan relaatiorakenteeseen: SAALIS ( kilp_tunnus kilp_paikka kilp_pvm kalastajatun kalastaja_nimi syntvuosi saaliin_paino_yht kalojen_lkm_saaliissa sijoitus_kisassa ) KILPAILU ( kilp_tunnus, kilp_paikka, kilp_pvm ) KALASTAJA ( kalastajatun, kalastaja_nimi, synt_vuosi ) TULOS ( kilp_tunnus, kalastajatun, saaliin_paino_yht, kalojen_lkm_saaliissa, sijoitus_kisassa ) Nämä kolme relaatiota ovat 2NF:n mukaisia, koska kaikki perusavaimeen kuulumattomat attribuutit ovat täysin funktionaalisesti riippuvia relaatioidensa perusavaimista. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 21

Kolmas normaalimuoto Kolmanteen normaalimuotoon (third normal form, 3NF) liittyy käsite transitiivisesta riippuvuudesta. Attribuutti Z on transitiivisesti riippuvainen attribuuttijoukosta {X}, jos {X} Y ja {Y} Z Relaatio on 3NF:ssä, jos se on 2NF:ssä ja mikään relaation perusavaimeen kuulumaton attribuutti ei ole transitiivisesti riippuvainen relaation perusavaimesta. Ts. mikään perusavaimeen sisältymätön attribuutti ei saa riippua perusavaimeen sisältymättömästä attribuuttijoukosta. R ( A, B, C, D ) ei ole 3NF:n mukainen, koska {A,B} C ja {C} D, joten {A,B} D S ( A, B, C, D ) ei ole 3NF:n mukainen, koska {A} B ja {B} D, joten {A} D ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 22

Kolmas normaalimuoto Relaatiot normalisoidaan kolmanteen normaalimuotoon jakamalla: R ( A, B, C, D ) R1 ( A, B, C ) R2 ( C, D ) S ( A, B, C, D ) S1 ( A, B, C ) S2 ( B, D ) ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 23

Luentotehtävä 7 a) Esitä funktionaaliset riippuvuudet b) Normalisoi 3NF:ään. htun etunimi sukunimi projnro projnimi h1000 Aatami Laippa p900 HR h1002 Bertta Hukari p900 HR h1004 Cecilia Rastas p995 Louhinta h1005 Daavid Pörrö p886 HR ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 24

Luentotehtävä 7: ratkaisu Relaatio on 1NF:ssä, koska kaikki attribuutit ovat atomisia ja sopivaa tyyppiä. Relaatio on 2NF:ssä, koska kaikki perusavaimeen kuulumattomat attribuutit ovat täysin riippuvaisia perusavaimesta htun. Relaatio ei ole 3NF:ssä, koska pätee transitiivinen riippuvuus {htun} {projnimi} Relaatio täytyy siis jakaa: htun etunimi sukunimi projnro projnimi h1000 Aatami Laippa p900 HR h1002 Bertta Hukari p900 HR h1004 Cecilia Rastas p995 Louhinta h1005 Aatami Rastas p886 HR HENKILÖ ( htun, etunimi, sukunimi, projnro ) PROJEKTI ( projnro, projnimi ) ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 25

Boyce/Codd -normaalimuoto Boyce/Codd normaalimuoto (Boyce/Codd normal form, BCNF) tarkastelee attribuuttien funktionaalista riippuvuutta relaation avainehdokkaista. Relaatio on BCNF:ssä, jos se on 3NF:ssä ja jokaisen funktionaalisen riippuvuuden määräävä attribuuttijoukko {X} on myös relaation superavain. R ( A, B, C, D ) ei ole BCNF:n mukainen, koska {B,C} D, ja {B,C} ei ole superavain. S ( A, B, C ) ei ole BCNF:n mukainen, koska {C} B, ja C ei ole superavain. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 26

Boyce/Codd -normaalimuoto opiskelija kurssi opettaja Aatami Tietokannat Martikainen Bertta Tietokannat Onninen Cecilia Käyttöjärjestelmät Ruotsalainen Daavid Tietokannat Onninen Aatami Käyttöjärjestelmät Ruotsalainen Tiedetään pätevän: {opettaja} kurssi {opiskelija, kurssi} opettaja Relaatio ei ole BCNF:ssä, koska attribuutti opettaja ei ole superavain. Jaetaan jollakin kolmesta tavasta: Elmasri & Navathe (2007) suosittelevat tapaa 3. 1) R(opiskelija, opettaja) ja S(opiskelija, kurssi) 2) R(kurssi, opettaja) ja S(kurssi, opiskelija) 3) R(kurssi, opettaja) ja S(opiskelija, opettaja) ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 27

Kokoava esimerkki normalisointiprosessista R ( A, B, C, D, E, F ) R1 ( A, B, D, E, F ) R2 ( B, C ) Relaatio on 1NF:ssä, koska kaikki attribuutit ovat atomisia ja ne oletetaan sopivan tyyppisiksi. Relaatio ei ole 2NF:ssä, koska attribuutti C ei ole täysin funktionaalisesti riippuvainen relaation perusavaimesta. Relaatiot ovat 2NF:ssä, koska kaikki attribuutit ovat täysin funktionaalisesti riippuvaisia relaatioidensa perusavaimesta. Relaatio R1 ei ole 3NF:ssä, koska attribuutti E on transitiivisesti riippuvainen perusavaimesta. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 28

Kokoava esimerkki normalisointiprosessista R11 ( A, B, D, F ) R111 ( A, B, D ) R12 ( D, E ) R112 ( F, B ) Relaatiot ovat 3NF:ssä, koska mikään perusavaimeen kuulumaton attribuutti ei ole transitiivisesti riippuvainen perusavaimesta. Relaatio R11 ei ole BCNF:ssä, koska attribuutti F ei ole R11:n superavain. Kaikki relaatiot ovat BCNF:ssä, koska jokainen määräävä attribuuttijoukko on myös relaation superavain. BCNF:n mukaisessa tietokannassa on siis tässä esimerkissä relaatiot R111, R112, R12 ja R2. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 29

Kokoava esimerkki normalisointiprosessista R 1NF R1 R2 2NF R11 R12 R2 3NF R111 R112 R12 R2 BCNF ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 30

Stressikäyrä Sisältörunko 1. Johdanto 2. Käsitteellinen mallintaminen 3. Relaatiomalli 4. Transformointi 5. Relaatioalgebra 6. SQL 7. Tapahtumanhallinta 8. Normalisointi 9. Tietovarastointi 10. Hajautus 11. Tietokantaparadigmat 10 9 8 7 6 5 4 3 2 1 0 Tässä 1 2 3 4 5 6 7 8 9 10 11 ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 31

Neljäs normaalimuoto Neljänteen normaalimuotoon (fourth normal form, 4NF) liittyy käsite moniarvoisesta riippuvuudesta (multivalued dependency, MVD). Moniarvoisella riippuvuudella tarkoitetaan tilannetta, jossa relaatio yrittää mallintaa useampaa kuin yhtä N:M suhdetta. Tällöin jotkin attribuuteista ovat arvoiltaan toisistaan riippumattomia, ja niiden arvon täytyy esiintyä relaation jokaisella monikolla. Esim. (Hoffer, Prescott & McFadden 2002): Kursseilla on tietyt opettajat. Kursseilla on tietyt kurssikirjat. Se kurssikirja, jota kurssilla käytetään, on riippumaton kurssin opettajasta. Jos kurssilla on 3 opettajaa ja 10 kurssikirjaa, kyseistä kurssia koskee 30 monikkoa. Tällöin jokainen opettaja toistetaan 10 kertaa ja jokainen kirja 3 kertaa. kurssi opettaja kirja itka204 o100 Fundamentals itka204 o100 Basics itka204 o222 Fundamentals itka204 o222 Basics itkp113 o333 Patterns itkp113 o333 Objects ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 32

Neljäs normaalimuoto Formaalimmin: relaatio R sisältää attribuuttijoukot (1..n attribuuttia) X, Y ja Z ja jokaisella monikolla m 1..m n, jolla X:n arvo on a, on Y:n arvojoukko b riippumatta Z:n arvoista sekä jokaisella monikolla, jolla X:n arvo on c, on Z:n arvojoukko d riippumatta Y:n arvoista. Tällöin sanotaan, että Y ja Z ovat moniarvoisesti riippuvaisia X:stä. kurssi opettaja kirja itka204 o100 Fundamentals itka204 o100 Basics itka204 o222 Fundamentals itka204 o222 Basics itkp113 o333 Patterns Funktionaalinen riippuvuus Moniarvoinen riippuvuus itkp113 o333 Objects ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 33

Neljäs normaalimuoto Oletetaan, että: relaatio R sisältää attribuuttijoukot (1..n attribuuttia) X, Y ja Z ja jokaisella monikolla m 1..m n, jolla X:n arvo on a, on Y:n arvojoukko b riippumatta Z:n arvoista sekä jokaisella monikolla, jolla X:n arvo on c, on Z:n arvojoukko d riippumatta Y:n arvoista. Relaatio on 4NF:ssä, jos se on BCNF:ssä ja jokaisen ei-triviaalin moniarvoisen riippuvuuden määräävä attribuuttijoukko {X} on myös relaation superavain. Moniarvoinen riippuvuus MVD{ X } Y relaatiossa R on ei-triviaali, jos Y ei ole X:n osajoukko ja X:n ja Y:n lisäksi relaatiossa on muita attribuutteja, ts. X Y R ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 34

Neljäs normaalimuoto Jos relaatio on transformoitu oikein, ongelmat 4NF:n suhteen ovat harvinaisia. kurssi opettaja kirja itka204 o100 Fundamentals itka204 o100 Basics itka204 o222 Fundamentals itka204 o222 Basics itkp113 o333 Patterns itkp113 o333 Objects KURSSIN_OPETTAJA ( kurssi, opettaja ) KURSSIN_KIRJA ( kurssi, kirja ) ovat 4NF:n mukaisia! ei ole 4NF:n mukainen! Jos kurssille itka204 lisätään uusi kurssikirja, joudutaan lisäämään kaksi uutta monikkoa (riviä). Entäs jos kurssilla ei ole kurssikirjaa? vrt. esim. TOIMITUS ( ttun, otun, ptun, maara ) on 4NF:n mukainen! ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 35

Koonti normaalimuodoista NF Keskeinen vaatimus Tyypillisiä ongelmarakenteita (eivät täytä vaatimuksia) 1NF Atomisuus, sopivat tyypit. A i v 1,v 2, 2NF Täysi funktionaalinen riippuvuus perusavaimesta. R(A1, A2, A3, A4) 3NF Ei transitiivisia riippuvuuksia perusavaimesta. R(A1, A2, A3) R(A1, A2, A3, A4) BCNF Määräävä attribuuttijoukko on myös superavain. R(A1, A2, A3) R(A1, A2, A3, A4) 4NF Moniarvoinen riippuvuus vain superavaimesta. Toisistaan riippumattomat N:M-suhteet. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 36

vaativuus 5.3 Normaalimuodot Muita normaalimuotoja (1NF < 2NF < 3NF) Perustavan avaimen normaalimuoto (elementary key normal form) (Zaniolo, 1982) (BCNF < 4NF) Keskeisen monikon normaalimuoto (essential tuple normal form) (Darwen, Date & Fagin, 2012) Toisteeton normaalimuoto (redundancy free normal form) (Vincent, 1998) Superavainnormaalimuoto (superkey normal form) Viides normaalimuoto (fifth normal form tai projection-join normal form) (Fagin, 1979) Vahva viides normaalimuoto (overstrong projection-join normal form) Kuudes normaalimuoto (sixth normal form) Arvojoukko-avain normaalimuoto (domain-key normal form) (Fagin, 1981) ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 37

Normalisointiprosessi 1. Jäsentävä (analytical) lähestymistapa: Ota lähtökohdaksi relaatiokaavat ja tunnista niiden sisäiset riippuvuudet. Jos jokin relaatio ei ole vaaditussa normaalimuodossa, jaa se osarelaatioiksi, kunnes ei ole tarvetta jatkaa. R R1 R2 R22 R21 Lähestymistavan ongelmat: Sopivan lähtökohdan löytäminen. Pelkästään jakamalla etenevä normalisointi ei välttämättä huomaa sellaisia vaihtoehtoja, jotka edellyttäisivät jossakin vaiheessa yhdistämistä (denormalisointia). ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 38

Normalisointiprosessi 2. Kokoava (synthetical) lähestymistapa: Ota lähtökohdaksi attribuutit ja niiden väliset riippuvuudet. Ryhmittele attribuutit relaatioiksi niitä tutkien ja riippuvuuksien mukaan ryhmitellen. a 1 a 2 a 4 R1 R22 a 6 a 3 a 5 R21 Lähestymistavan ongelmat: Jätetään pois attribuuttien ja niiden välisten riippuvuuksien ymmärtämisen kannalta olennaiset kontekstit (relaatiot). Vaatii suurta huolellisuutta ja erinomaista taustatietoa suorittaa attribuuttien ryhmittely luonnollisiksi relaatioiksi. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 39

Normalisointiprosessi Käytännössä on vakiintunut seuraava tapa: Sovelletaan jäsentävää lähestymistapaa pitäen lähtökohtana ER-kaavasta transformoinnin kautta saatua relaatiokannan kaavaa. Jos ER-kaava on tehty huolellisesti ja transformointi sääntöjen mukaan, suurin osa relaatiokaavoista on jo valmiiksi normalisoituja. Huomio kannattaa kohdistaa: moniarvoisia attribuutteja sisältäviin relaatioihin ja koottuja avaimia sisältäviin relaatioihin Käytännön työssä tavallisesti riittää, että relaatioiden normalisointitarkastelu ulotetaan koskemaan kolmatta normaalimuotoa ja mahdollisesti Boyce/Codd-normaalimuotoa. Viidettä normaalimuotoa tarvitaan erityisesti silloin, kun ollaan suunnittelemassa hajautettua tietokantaa. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 40

Normalisointiprosessi Tietokannan suunnittelussa joudutaan usein tekemisiin satojen attribuuttien ja kymmenien relaatioiden kanssa. Niiden määrittely ja suhteiden tarkastelu käsin on työlästä ja virhealtista. Siksi on käytössä välineitä, jotka automaattisesti tai suunnittelijan tuella osaavat tehdä transformoinnin ER-kaaviosta relaatiorakenteiksi, perusnormalisointitarkastelun sekä relaatiokaavan SQL-määritykset useille tunnetuille tietokannanhallintajärjestelmille. Nämä määritykset tulee tietokannan suunnittelijan luonnollisesti vielä tarkistaa. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 41

Keinoavaimet ja luonnolliset avaimet Taulujen perusavaimiksi voidaan tapauskohtaisesti valita luonnollisen avaimen (natural key) sijaan keinoavain (surrogate key): Keinoavain ei kuvaa kohdealueen liiketoimintalogiikkaa, sillä sen arvo on merkityksetön. Siksi keinoavaimen arvoa ei ole syytä muuttaa, kun taas luonnollisen avaimen arvo voi muuttua. Keinoavain käyttää ylimääräistä tilaa levyllä (indeksin kanssa vieläkin enemmän) Toisaalta keinoavaimella toteutettu perusavain on atominen ja tavallisesti pieni (INT, CHAR). Pienen ja atomisen perusavainsarakkeen johdosta liitokset tällä sarakkeella ovat verrattain nopeita. Toisaalta taas keinoavainten vuoksi voidaan joutua tekemään ylimääräisiä liitoksia. ORM-työkalut suosivat keinoavaimia. Keinoavaimien johdosta joudutaan luomaan ylimääräisiä eheysrajoitteita. Keinoavainten vuoksi joudutaan tavallisesti indeksoimaan ylimääräisiä sarakkeita. Keinoavaimet aiheuttavat ongelmia erityisesti BCNF:n suhteen. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 42

TOP 5 -virheet 1. Ei ymmärretä peruskäsitteitä; esim. funktionaalinen riippuvuus, transitiivinen riippuvuus. Sekoitetaan funktionaalinen riippuvuus moniarvoiseen riippuvuuteen. 2. Ei esitetä perusavaimia (alleviivaamalla). 3. Ei anneta perusteluja normalisointiratkaisuille. 4. Relaatiotietokannan kaava on lopulta pirstaleinen. 5. Relaatiotietokanta on lopulta sellainen, että jotain tärkeää informaatiota on menetetty. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 43

Osaamistavoitteet Ymmärtää toisteisuudesta johtuvat ongelmat. Ymmärtää mikä on normalisoinnin tarkoitus, miksi sitä tehdään ja siihen liittyvät käsitteet. Osaa soveltaa normalisointisääntöjä neljänteen normaalimuotoon saakka, esim. Annetaan jokin attribuuttijoukko tai relaatio ja käsketään normalisoimaan se ja esittämään perustelut (viittauksin normaalimuotosääntöihin) ratkaisuille. Annetaan vapaamuotoinen kuvaus tietokannan sisällöstä ja käsketään sen mukaan tunnistamaan attribuutit ja niiden väliset funktionaaliset riippuvuudet sekä esittämään niiden pohjalta normalisoidut relaatiot perustellen ratkaisua normaalimuotosäännöin. Ei: muita normaalimuotoja kuin 1NF, 2NF, 3NF, BCNF ja 4NF. ITKA204 kevät 2016 Toni Taipalus Jyväskylän yliopisto 44