HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005



Samankaltaiset tiedostot
HELIA 1 (17) Outi Virkki Tiedonhallinta

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

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

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

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

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

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Luento L: Normalisointi

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

HELIA 1 (12) Outi Virkki Tiedonhallinta

Relaatiomalli ja -tietokanta

2. Käsiteanalyysi ja relaatiomalli

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

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

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

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (20) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

CSE-A1200 Tietokannat

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

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

Tietokannan suunnittelu

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

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

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

Tietokannan rakenteen suunnittelu

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

Luento 3 Tietokannan tietosisällön suunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TIETOKANNAT JOHDANTO

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

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

CSE-A1200 Tietokannat

Tietokannan suunnittelu

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

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

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

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

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

8 Joukoista. 8.1 Määritelmiä

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

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

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

Johdatus diskreettiin matematiikkaan Harjoitus 1,

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

CSE-A1200 Tietokannat

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Relaatioalgebra. Kyselyt:

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

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

TIETOKANNAT kevät 2002 Itseopiskeluosio osa 2/3

Tietokannat II -kurssin harjoitustyö

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

CSE-A1200 Tietokannat

3. Käsiteanalyysi ja käsitekaavio

CS-A1150 Tietokannat CS-A1150 Tietokannat / 54

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

Opintopiiritehtävä 3: Verkkohuutokauppa

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

CS-A1150 Tietokannat

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

MVD- ja EMVD-riippuvuudet - riippumattomuuden riippuvuus

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

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

CSE-A1200 Tietokannat

Transkriptio:

HELIA 1 (21) Luento 7 Relaatiomallin kertausta... 2 Peruskäsitteet... 2 Relaatio... 4 Määritelmä... 4 Relaatiokaava (Relation schema)... 4 Relaatioinstanssi (Relation instance)... 4 Attribuutti ja arvojoukko... 6 Monikko... 6 Eheyssäännöt / -rajoitukset (Integrity Constraints)... 7 Yksilön eheyssäännöt... 7 Viite-eheyssäännöt... 7 Arvojoukkosäännöt... 7 Sovelluskohtaiset eheyssäännöt... 7 Käsittely... 8 Relaatioalgebra... 8 SQL... 8 Apukäsitteitä... 9 Riippuvuudet... 9 Funktionaalinen riippuvuus... 9 Transitiivinen / suora riippuvuus... 11 Osittainen / täydellinen / riippuvuus... 12 Avaimet... 14 Normalisointi... 15 Tavoitteet... 15 1. normaalimuoto 1NF... 16 2. normaalimuoto 2NF... 17 3. normaalimuoto 3NF... 18 Normalisointiprosessi... 19 Normalisointiesimerkki... 21

HELIA 2 (21) Relaatiomallin kertausta Relaatiomalli on eräs tietomalli (muita mm. hierarkkinen malli, verkkomalli) Tietomalli Malli, jonka mukaan tietokannan tiedot organisoidaan. Malli koostuu joukosta peruskäsitteitä, -sääntöjä ja - operaatioita Perusajatuksiltaan yksinkertainen yksiselitteinen selkeä Pohjautuu perinteisen joukko-opin käsitteisiin Loogisen minimaalisuuden tavoittaminen Erinomainen väline tietokannan rakenteen ja käsittelyn kuvaamiseen Peruskäsitteet 1. Relaatio (Relation) 2. Attribuutti (Attribute) 3. Monikko (Tuple) Viralliset Käytännölliset Tiedostoista periytyvät Relaatio Taulu / Taulukko Attribuutti Sarake Kenttä Monikko Rivi Tietue

HELIA 3 (21) Relaatiotietomallissa kaikki tieto tallennetaan taulukkomuotoon relaatioihin (tauluihin) Relaation nimi Attribuutit OPETTAJA Lyhenne Nimi Huone Vastaanotto BenAn Benson 3012 BurOt Burman 3012 Monikot VirOu Virkki 3012 Ke 12-13 VirPe Virkki 3012 Arvo Ominaisuuksia: Relaatiossa ei saa olla kahta täysin samanlaista riviä! (relaatio on rivien joukko ja tietty alkio voi esiintyä joukossa vain kerran) Relaation jokaisella rivillä tulee olla yhtä monta attribuuttia Kukin attribuutti on homogeeninen, eli sisältää arvoja vain yhdestä arvoalueesta Kukin attribuutti on atominen, eli jakamaton Attribuuttien järjestyksellä ei ole merkitystä (tietyn relaation attribuuteilla on yksikäsitteiset nimet) Rivien järjestyksellä ei ole merkitystä (joukossa ei ole järjestystä)

HELIA 4 (21) Relaatio Määritelmä Olkoon D 1, D 2,, D n arvojoukkoja, joiden ei tarvitse olla erillisiä. Relaatio R on joukko monikkoja, joiden 1. arvo kuuluu joukkoon D 1, 2. arvo joukkoon D 2 jne. Relaatio on siis karteesisen tulon D 1 * D 2 * * D n osajoukko (Codd, 1970) Relaatiokaava (Relation schema) Määrittelee relaation rakenteen (pysyvät ominaisuudet) R(A 1, A 2,, A n ) R = relaation nimi A 1, A 2,, A n = attribuuttilista Jokaisella relaatiolla on yksikäsitteinen nimi Tietyssä relaatiossa jokaisella attribuutilla on yksikäsitteinen nimi Relaation aste = attribuuttien määrä Relaation koko = rivien määrä Relaatioinstanssi (Relation instance) Monikkojen joukko r = {r 1, r 2,, r n }

HELIA 5 (21) Johdannaistermejä: Relaatiotietokanta joukko relaatioita tiettyä kohdealuetta kuvaavien tietojen kokoelma joka on organisoitu relaatiotietomallin mukaisesti relaatiotietomalliin perustuvan tietokannan hallintajärjestelmän avulla toteutettu tietokanta Relaatiotietokantakaava joukko relaatiokaavoja joissain määritelmissä sisältää myös eheysmäärittelyt joissain määritelmissä sisältää myös käyttöoikeuksien määrittelyt Relaatiotietokantainstanssi joukko relaatioinstansseja

HELIA 6 (21) Attribuutti ja arvojoukko Jokaisen relaatiokaavan attribuuttiin A i liittyy arvojoukko / arvoalue dom(a i ), joka sisältää attribuutin A i mahdolliset (atomiset) arvot Tyhjä arvo (NULL) sisältyy jokaiseen arvojoukkoon Relaatiotietomallissa attribuuttien arvojoukot / arvoalueet voidaan määritellä vapaasti attribuuttien merkityksen mukaan esim. sukunimi arvoalue sisältää kaikki olemassaolevat sukunimet Relaatiotietokantatuotteissa arvoaluekäsitettä ei yleensä tunneta eikä tueta Sarakkeet esitellään perus tietotyyppien (Char, Int, ) ja niiden maksimipituuksien avulla Monikko koostuu arvoista ja niihin liittyvistä attribuuteista. monikko on siis tällaisten arvo-attribuutti parien joukko Arvo-attribuutti-pari sisältää merkityksen esim. hinta: 10,99 Tarkan merkityksen selvittäminen vaatii yleensä enemmän tietoa

HELIA 7 (21) Eheyssäännöt / -rajoitukset (Integrity Constraints) 1. Yksilön eheyssääntö (entity integrity constraints) 2. Viite-eheyssääntö (referential integrity constraints) 3. Arvojoukko-eheyssääntö (domain constraints) 4. Käyttäjän määrittelemät sovelluskohtaiset eheyssäännöt Yksilön eheyssäännöt Pääavain yksilöi kunkin relaation rivin Pääavain tai sen osa ei saa olla tyhjä Viite-eheyssäännöt Viiteavaimen arvon on löydyttävä viitatun taulun pääavaimen arvoista tai viiteavaimen arvon on oltava tyhjä Relaatiotietokannassa ei saa viitata objektiin, jota siellä ei ole. Arvojoukkosäännöt Tulkinta ja määrittely vaihtelee! Attribuutin arvot kuuluvat samaan arvojoukkoon. Kaikki arvojoukkoon liittyvät rajoitukset: tietotyyppi, pituus, sallitut arvot, oletusarvo, erilaisuus, välttämättömyys, ) Sovelluskohtaiset eheyssäännöt Sovelluksen toiminnan ja tietosisällön mielekkyyttä tukevat säännöt Esim. asiakas on kanta-asiakas, jos kuukausiostot ylittävät 1000 ja vip-asiakas jos kuukausiostot ylittävät 2000

HELIA 8 (21) Käsittely Relaatioalgebra SQL SQL:n DML käsitelty peruskurssilla

HELIA 9 (21) Apukäsitteitä Riippuvuudet Funktionaalinen riippuvuus Jos ominaisuuden A arvo määrää yksikäsitteisesti ominaisuuden B arvon niin B on funktionaalisesti riippuva A:sta A määrää B:n funktionaalisesti 1:1 n:1 A -> B Esim Henkilötunnus -> nimi Rekisterinumero -> auton merkki Yleistys: A, B -> C Esim. Tilausno, tuoteno -> tilausmäärä Projektino, henkilöno, kk -> työajankäyttö Funktionaalinen riippuvuuden X -> Y voimassaolo ei merkitse funktionaalisen riippuvuuden Y -> X voimassaoloa Ts. riippuvuus voi olla Toisesta suunnasta funktionaalinen Toisesta suunnasta moniarvoinen

HELIA 10 (21) Moniarvoinen riippuvuus Jos ominaisuuden A arvoon voi liittyä useita ominaisuuden B arvoja tavalla, joka ei riipu mistään 3. ominaisuudesta 1:n n:n A ->> B Esim. Äidin sotu ->> lapsen sotu projektino ->> henkilono osastono ->> projektino Riippuvuus voi olla Toisesta suunnasta funktionaalinen Toisesta suunnasta moniarvoinen

HELIA 11 (21) 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 12 (21) Osittainen / täydellinen / riippuvuus Onko jokainen 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 kuulumattomat attribuutit määräytyvät koko pääavaimen perusteella Esim. Tilausno, tuoteno --> tilaus_maara Tuoteno --> tuotenimi

HELIA 13 (21) Funktionaalisten riippuvuuksien ominaisuuksia / päättelysääntöjä 1. Refleksiivisyys Jos Y X niin X -> Y Esim: otsake, vuosi -> otsake Esim: otsake -> otsake Ns. triviaali riippuvuus (riippuvuuden olemassaolo on itsestään selvää) 2. Täydentäminen Jos X -> Y niin XZ -> YZ 3. Ositus Jos X -> YZ niin X-> Y 4. Unioni Jos X -> Y ja X -> Z niin X -> YZ 5. Transitiivisuus Jos X -> Y ja Y-> Z niin X -> Z Päättelysääntöjä voi käyttää relaatioiden yhdistämiseksi, (tavoitteena on sovellusalueen kuvaus pienimmällä mahdollisella relaatiomäärällä)

HELIA 14 (21) Avaimet Yliavain (Superkey) Attribuuttijoukko S on relaation R yliavain, mikäli X määrää funktionaalisesti relaation attribuuttien joukon Avain (Key) Attribuuttijoukko K on relaation R avain, mikäli K on relaation R yliavain, eikä attribuuttijoukosta K voida pudottaa pois yhtään attribuuttia siten, että K olisi edelleen relaation R yliavain Relaation avain on siis pienin relaation yliavaimista Jokaisella relaatiolla on ainakin yksi avain Relaatiolla voi olla myös useampia avaimia Pääavain (Primary key) Relaation avain tai mikäli niitä on useampia pääavaimeksi valittu avain Pääavaimen arvo ei voi olla tyhjä Avainehdokas (Key kandidate) Mikäli relaatiolla on useita avaimia, niitä nimitetään attribuuttijoukkoja avainehdokkaiksi Avainattribuutti (Prime attribute) Kaikki avainehdokkaisiin sisältyvät attribuutit

HELIA 15 (21) Normalisointi 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 redundanssia Tietokannan päivitysten yhteydessä mahdollisten anomalioiden välttäminen (päivitysanomalia, poistoanomalia) Relaatioiden riveistä pyritään tekemään lisäysten, poistojen ja muutosten kannalta itsenäisiä kokonaisuuksia Tietokannan mahdollisimman suuri rakenteellinen joustavuus tulevien muutosten mahdollistamiseksi 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 16 (21) 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, siinä ei saa olla toistuvia ryhmiä, Moniarvoiset ominaisuudet on purettava omiksi relaatioikseen Relaatio, jonka attribuutit ovat atomisia on 1NF:ssa Esim. JULKAISU(julkaisuno, tekijät, otsake, ) ei 1NF! JULKAISU(julkaisuno, otsake, ) J_TEKIJA(julkaisuno, tekija)

HELIA 17 (21) 2. normaalimuoto 2NF Relaatio R on 2. normaalimuodossa jos se on 1NF:ssa ja jokainen ei-avaimena oleva 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, hnimi, vuosi, kk, tunnit) ei 2NF TYOPANOS(projno, hlono, vuosi, kk, ) HLO(hlono, hnimi, )

HELIA 18 (21) 3. normaalimuoto 3NF Relaatio R on 3. normaalimuodossa jos se on 2NF:ssa ja mikään sen ei-avaimena olevista 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 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 ei-avaimena olevasta ominaisuudesta omaksi relaatiokseen Esim: HLON_OSOITE(hlono, katu, talo, postino, kunta) Ei 3 NF.. Normalisoinnin tavoitetaso! Ei toistuvia ryhmiä Yksikäsitteinen avain Ei epätäydellistä funktionaalista riippuvuutta Ominaisuudet keskenään riippumattomia Coddin alkuperäisessä määrittelyssä mukana vain 1NF, 2NF, 3NF

HELIA 19 (21) Normalisointiprosessi Normalisoimaton muoto Poista toistuvat ryhmät, se. Siirrä moniarvoiset attribuutit omaksi relaatiokseen 1NF (ei toistuvia ryhmiä) Poista epätäydellinen funktionaalinen riippuvuus se. 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 se. Siirrä attribuutit, jotka riippuvat avaimen lisäksi jostakin ei-avaimena olevasta ominaisuudesta omaksi relaatiokseen 3NF (ominaisuudet keskenään riippumattomia)

HELIA 20 (21) "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]

HELIA 21 (21) Normalisointiesimerkki Customer Rental Customer _No Cname CR76 John Kay PG4 Property _No CR76 John Kay PG16 CR56 CR56 CR56 Aline Stewart PG4 Aline Stewart PG36 Aline Stewart PG16 PAddress RentStart RentFinish Rent 6 Lawrence Street, Glasgow 5 Novar Drive, Glasgow 6 Lawrence Street, Glasgow 2 Manor Road, Glasgow 5 Novar Drive, Glasgow Owner _No Oname 1-Jul-93 31-Aug-95 350 CO40 Tina Murphy 1-Sep-95 1-Sep-96 450 CO93 Tony Shaw 1-Sep-23 10-June-9 3 350 CO40 Tina Murphy 10-Oct-93 1-Dec-94 375 CO93 Tony Shaw 1-Jan-95 10-Aug-95 450 CO93 Tony Shaw