Normaliseren

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

description

Normaliseren. 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 - PowerPoint PPT Presentation

Transcript of Normaliseren

Page 1: Normaliseren

• 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: Normaliseren

week 3

Normaliseren

De 0e Normaalvorm

• Inventariseer alle elementaire gegevens.

• Bepaal de sleutel (unieke identificatie).

• Bepaal de repeterende groep.

• Bepaal de procesgegevens

Page 3: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

week 3

Drie mogelijkheden:

1 volledig functioneel afhankelijk

2 niet- volledig functioneel afhankelijk

3 transitief functioneel afhankelijk

Functioneel afhankelijk

Page 11: Normaliseren

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: Normaliseren

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: Normaliseren

?

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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: Normaliseren

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