Upload
nathalie-bos
View
222
Download
2
Embed Size (px)
Citation preview
• 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
week 3
Normaliseren
De 0e Normaalvorm
• Inventariseer alle elementaire gegevens.
• Bepaal de sleutel (unieke identificatie).
• Bepaal de repeterende groep.
• Bepaal de procesgegevens
•
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
•
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
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”
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
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
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:
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:
week 3
Drie mogelijkheden:
1 volledig functioneel afhankelijk
2 niet- volledig functioneel afhankelijk
3 transitief functioneel afhankelijk
•
Functioneel afhankelijk
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
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:
?
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
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
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
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
•
^
?
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
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
•
^
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.
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
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