21
Uitgangspunt • Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier Doel • te komen tot een gestructureerde verzameling gegevens, die een duidelijk beeld geven van de relaties, die in de verzameling onderkend kunnen worden. Proces • onderzoeken van afhankelijkheden tussen attributen van een relatie • stapsgewijze uitvoering (0NF, 1NF, 2NF, 3NF, BCNF) Resultaat • een aantal genormaliseerde relaties zonder week 3 Normaliseren

•Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

Embed Size (px)

Citation preview

Page 1: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

• Uitgangspunt

• Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier

• Doel

• te komen tot een gestructureerde verzameling gegevens, die een duidelijk beeld geven van de relaties, die in de verzameling onderkend kunnen worden.

• Proces

• onderzoeken van afhankelijkheden tussen attributen van een relatie

• stapsgewijze uitvoering (0NF, 1NF, 2NF, 3NF, BCNF)

• Resultaat

• een aantal genormaliseerde relaties zonder zinloze redundanties

week 3•

Normaliseren

Page 2: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

De 0e Normaalvorm

• Inventariseer alle elementaire gegevens.

• Bepaal de sleutel (unieke identificatie).

• Bepaal de repeterende groep.

• Bepaal de procesgegevens

Page 3: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

NormaliserenDe 0e Normaalvorm Een voorbeeld:

Artiest/groep : WALTER TROUT BANDUitgever : PROVOGUEJaar van uitgave : 1990Titel : LIFE IN THE JUNGLEAankoopjaar : 1992Opnamekwaliteit : ADDTotale speelduur : 0:53:24 (zonder pauzes)Aantal liedjes : 10 1 GOOD ENOUGH TO EAT 0:4:22 2 THE MOUNTAIN SONG 0:3:37 3 LIFE IN THE JUNGLE 0:5:39 4 SPACEFISH 0:0:44 5 RED HOUSE 0:9:35 6 SHE'S OUT THERE SOMEWHERE 0:4:19 7 FREDERICA(I DON'T NEED YOU) 0:4:50 8 IN MY MIND 0:4:24 9 COLD COLD FEELING 0:8:41 10 SERVE ME RIGHT TO SUFFER 0:7:13

• Inventariseer alle elementaire gegevens.• Bepaal de sleutel (unieke identificatie).• Bepaal de repeterende groep.• Bepaal de procesgegevens

Page 4: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

De 1e Normaalvorm

• Verwijder procesgegevens

• Splits de repeterende groep af

• Neem de sleutel van de oorspronkelijke groep mee

• Breid de sleutel van de nieuwe groep uit

Page 5: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

NormaliserenVan 0 NV naar 3 NV

Een derde voorbeeld:

Ordernummer: 93-112orderdatum: 8 mrt 2001

leveranciersnummer: L3921naam: Kantje Boortplaats: Tilburg

Leverdatum: 3 april 2001

artikelnr omschrijving stukprijs hoeveelheid prijs3216 Bout 0,30 1200 360,004248 Moer M12 0,05 1000 50,006482 Flens 4,80 250 1200,00

Totaal: 1610,00prijs in euro’s

Firma “Draaibank”

Page 6: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

0 NV

ordernrorderdatumlevnrlevnaamlevplaatslevdatumartnrartomschr.stukprijsaantalprijstotaal

**

1 NV

artnrartomschr.stukprijsaantal

ordernr

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

• Verwijder procesgegevens

• Splits de repeterende groep af

• Neem de sleutel van de oorspronkelijke groep mee

• Breid de sleutel van de nieuwe groep uit

object 1

2

Page 7: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

1 NV

artnrartomschr.stukprijsaantal

ordernr

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

1

2

Het strokendiagram

levplaats levdatum

levnaamlevnrorderdatum

ordernr

aantalstukprijs

artomschr

artnrordernr

object 1

object 2

1:n

Page 8: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

1 NV

artnrartomschr.stukprijsaantal

ordernr

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

1

2

Het strokendiagram

ordernr orderdatum

levnr levnaam levplaats levdatum

ordernr

artnr artomschr

stukprijs

aantal

object 1

object 2

^

^

1:n

^

OF:

Page 9: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

1 NV

artnrartomschr.stukprijsaantal

ordernr

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

1

2

Het strokendiagram

ordernr orderdatum

levnr levnaam levplaats levdatum

ordernr

artnr artomschr

stukprijs

aantal

object 1

object 2^

1:nOF:

Page 10: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Drie mogelijkheden:

1 volledig functioneel afhankelijk

2 niet- volledig functioneel afhankelijk

3 transitief functioneel afhankelijk

Functioneel afhankelijk

Page 11: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Functioneel afhankelijk

Indien van iedere waarde van A één waarde van B hoort =>

B is functioneel afhankelijk van A =>

A bepaalt BA B in T

Tabel T

A B

•determinant

Page 12: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Functioneel afhankelijk

• A+B K dan is K volledig functioneel afhankelijk van AB

• B L dan is L niet- volledig functioneel afhankelijk van ABHet attribuut L wordt afgesplitst van 1NV naar 2NV(het afsplitsen van niet-volledige functionele afhankelijkheden)

Tabel T

A B K L

Indien:

Page 13: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

?

ordernr + artnr aantal ……………….. functioneel afhankelijk ordernr + artnr artomschr ……………….. functioneel afhankelijk artnr artomschr ……………….. functioneel afhankelijkordernr + artnr stukprijs ……………….. functioneel afhankelijk artnr stukprijs ……………….. functioneel afhankelijk

• week 3

Functioneel afhankelijk

Voorbeeld:

ordernrartnrartomschr.stukprijsaantal

object 2

Page 14: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

B is volledig functioneel afhankelijk van A

C is volledig functioneel afhankelijk van B

Dus C is afhankelijk van A via B

Dit noemt men ook wel transitief functioneel afhankelijk •

week 3

Functioneel afhankelijk

A BB C

Tabel T

A B C

Page 15: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

0 NV

ordernrorderdatumlevnrlevnaamlevplaatslevdatumartnrartomschr.stukprijsaantalprijstotaal

**

1 NV

artnrartomschr.stukprijsaantal

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

ordernr

2 NV

• Splits de attributen af die van een deel van de sleutel afhankelijk zijn

• Neem dat deel van de sleutel mee en maak dit sleutel

artomschr.stukprijs

artnr

ordernrartnraantal

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

1

2.1

1

2.2

2

Page 16: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

NormaliserenHet strokendiagram

ordernr orderdatum

levnr levnaam levplaats levdatum

ordernr

artnr aantal

object 1

object 2.1^

2 NV

artomschr.stukprijs

artnr

ordernrartnraantal

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

2.1

1

stukprijs

artomschr

artnr

object 2.22.2

^

?

Page 17: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

1 NV

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

2 NV

ordernrorderdatumlevnrlevnaamlevplaatslevdatum

3 NV• Splits de attributen af die van een niet-sleutelattribuut afhankelijk zijn

• Neem het niet-sleutelattribuut over en maak dit sleutel

artnrartomschr.stukprijsaantal

ordernr

artomschr.stukprijs

artnr

ordernrartnraantal

levnaamlevplaats

ordernrorderdatumlevnrlevdatum

levnr

artomschr.stukprijs

artnr

ordernrartnraantal

1

2.1

2.2

2.1

2.2

1.1

1.2

Page 18: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 3

Normaliseren

levnaamlevplaats

ordernrorderdatumlevnrlevdatum

levnr

artomschr.stukprijs

artnr

ordernrartnraantal

Het strokendiagram

ordernr order datum levnr levdatum

levnr levnaam levplaats

ordernr artnr aantal

artnr artomschr. stukprijs

^ ^Inkooporder

Leverancier

Order2.1

2.2

1.1

1.2

Artikel

^

Page 19: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

week 4 •

Herhaling normaliseren

Normalisatie-stappen:

0NF: Inventariseer alle elementaire gegevens.Bepaal de sleutel (unieke identificatie).Bepaal de repeterende groep.Bepaal de procesgegevens

1NF: Verwijder de procesgegevens Voer voor elke repeterende groep het volgende uit:Splits de repeterende groep af.Neem de sleutel van de oorspronkelijke groep over.Breid de sleutel van de nieuwe groep uit.

Page 20: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

determinant

week 4 •

Herhaling normaliseren

Normalisatie-stappen:2NF: Splits de attributen af die van een deel van de sleutel

afhankelijk zijn.Neem dat deel van de sleutel waar de attributen

vanafhankelijk zijn over en maak dit de sleutel

3NF: Splits de attributen af die van een niet-sleutelattribuut afhankelijk zijn.Neem het niet-sleutel attribuut waar de attributenvan afhankelijk zijn over en maak dit de sleutel.

BCNF: Wanneer sprake is van onderlinge functionele afhankelijkheid tussen sleutelattributen, splits dezeattributen dan af

Page 21: •Uitgangspunt •Een niet gestructureerde verzameling gegevens, bijvoorbeeld een kaartenbak of een ingevuld formulier •Doel •te komen tot een gestructureerde

Huiswerk

Einde week 3, les 1

DBS1-theorie

• Bestuderen Hoofdstuk 3 t/m 3.3 (tot aan funct. afh.) [Stwb]• Bestuderen Hoofdstuk 3,4 [RO]• Voorbeeld 3.7.2 blz 48 onderaan: zelf doen• Maken opgave 2.5.1, 2.5.2, 3.8.1, 3.8.5a, 3.8.6a en c

week 3