Oefening 1. Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst.

Vergelijkbare documenten
Database ontwerp Normaliseren.

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.

Normaliseren voor Dummies

Normaliseren versie 1.1

In deze appendix wordt bekeken wat er moet gebeuren voordat

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

9 Werken met meer tabellen (zie ook query s)

Tentamen Informatica 6, 2IJ60,

OEFENFIRMA. Handleiding ordergenerator-marktplaats. Auteur: Albert Geuens

Normaliseren volgens Codd.

Implementierungsrichtlinie Datenaustausch BESTELLUNGEN / AUFTRAG Version Implementierungsrichtlinie. Datauitwisseling Bestellingen / Opdrachten

Cursus Access voor Beginners Hoofdstuk 2

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Opdrachten databaseontwikkeling. Niveau 3/4

Datamodelleren en databases 2011

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober A. Snippe ICT Lyceum 1

Redundancy Normaalvormen

Tentamen Informatica 6, 2IJ60,

Toets informatica V5 module VIII hfst 1, 2 en 3 februari 2011

Navision inkoop Groep 63

databases & SQL - antwoorden

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur:

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen.

Normaalvormen. DB kent vijf normaalvormen, elke strenger dan de vorige De eerste drie zijn veelgebruikt. ax 2 + bx + c =0

Na het inloggen zie je eerst de pagina Mijn dashboard. Dit is een overzicht van jouw traject, jouw berichten en de acties die je nog moet doen.

Projecten Applicatie Ontwikkeling

Plaatsen van een bestelling in de Hanze Webshop

Databases (INFODB) 24 januari 2007

Gebruikshandleiding module Party-Feestdagen

Databases Ontwerpen en Normaliseren. 5 & 6 Informatica. Ontwerpen van een database volgens de regels van Boyce/Codd

Een database voor MEDIAGROEP DE CASE OBJECTTYPEN EN LABELTYPEN

Opstart document 8 FEBRUARI v1.24

Tentamen Databases voor iku

Databanken: Inleidende begrippen, normalisatie en ERD

In 5 stappen naar een Goede planning

Oplossingen Datamining 2II15 Juni 2008

Tentamen Databases. 18 december :00-12:00, Educatorium Gamma

4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen.

Normaliseer proces factuur PDA shop.nl

De receptie. De aankoopafdeling. De verkoopafdeling

Tentamen Databases voor ica

Schrijven OPDRACHTKAART. U leert formulieren in te vullen.

Database Structuur via menus

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Briljant Projectbeheer

IMAP-handleiding Bookinto

Handleiding: Internet Bestel Applicatie Meco Online Shop

Handleiding Sellerconnect ordersysteem. Versie mei 2016

Inhoud leereenheid 3. Normalisatie. Introductie 67. Leerkern 68. Samenvatting 85. Zelftoets 87. Terugkoppeling 89

> AANMELDFORMULIER DEELTIJD

AFO Leveranciers

Aanvraag Internetspaarrekening

Aanvraag van een vergunning voor het exploiteren van een dienst voor het verhuren van voertuigen met bestuurder

Deze optie biedt u het standaard dialoogvenster voor bibliografische zoekacties.

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

Gebruiksaanwijzing webwinkel januari 2013

Handleiding Internet bestel Horesca Smulders

Handleiding e-commerce. 1. Inloggen

Handleiding PDF Generator

Inschrijven via Zon op Nederland stap voor stap

Inschrijven via Zon op Nederland stap voor stap

HANDLEIDING WEBSHOP shop Maak een keuze in het menu

Electronisch bestellen naar CEBEO vanuit CAFCA

TOETSTIP 2 MAART 2006 TIP 2: HOE NEEM JE MONDELINGE INTERACTIETAKEN OP EEN BETROUWBARE MANIER AF?

Jufmelis.nl. -uitleg klasabonnement -

eservice Gebruikershandleiding eservice Gebruikershandleiding v1.0 Pagina 1

Deze handleiding zal je in een aantal stappen uitleggen hoe je PlanManager kunt gaan gebruiken. De volgende handelingen worden kort behandeld:

Gebruik het scrollwiel van uw muis of de pijltjes van uw toetsenbord om te bladeren

HOE WERKT FLOOW2? Volg ons ook op:

Instructie voor de inschrijfmodule voor het Ruitenboertoernooi

Examen VMBO-GL versie rood

Zen Cart Attributen (artikel opties)

Starten website/homepage

INHOUDSOPGAVE BESTELLINGEN KLANTEN...

Phishing Simulatie & Security Awareness trainingen

Les S-01: De basisbeginselen van SQL

Mijn.PvdA.nl. Handleiding voor de secretarissen en ledenadministrateurs om eigen gegevens aan te passen en ledenadministratie te raadplegen

Inhoudsopgave. Korte handleiding module Facturering versie Datum : Door : Peter Tieman. A. Opbouwen algemene bestanden

EEN KRUISWOORDRAADSEL MAKEN MET HOT POTATOES IN 10 STAPPEN

Handleiding webshop Bunzl Retail & Industry. Algemene handleiding

titel/kopje/plaatje Ik denk aan: Dit weet ik er al over:

In de eerste stap start u de internetbrowser en u gaat naar de website bestellingplaatsen

En hoe gaan ze dit allemaal terugvinden?

Aanvraag van een vergunning voor het exploiteren van een dienst voor het verhuren van voertuigen met bestuurder

Het ontwerpen van een databaseschema


Electronic Brains. Horeca automatisering. Handleiding EBorder2 Electronic Brains B.V. Augustus E:

Handleiding werkwijze e-bestel site Smulders

VERBETERING IN BEELD

Zeggen ze Persoon A Persoon B Persoon C Persoon D Persoon E Iets over de maat? Iets over de kleur? Iets over de stof? Iets over de prijs?

Aanvraag van een vergunning voor het exploiteren van een dienst voor het verhuren van voertuigen met bestuurder

De ontwikkelaar heeft het recht om af te zien van verdere ontwikkeling en/of ondersteuning van dit pakket.

1 Coördinaten in het vlak

Technische handleiding

Handleiding Ariba INVOICING NON-PO

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

Menu item Mijn Account Onder mijn account kun je je bestelling(en) en adres gegevens bekijken en aanpassen.

Handleiding: inloggen op Klantportaal

Normaliseren. Er zijn 5 stappen in het normaliseren, maar meestal worden alleen de eerste 3 uitgevoerd.

Handleiding voor de AEGON LevensloopCalculator. versie oktober 2007

Transcriptie:

Oefening 1 Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst.

Oplossing 1 Bijvoorbeeld een werknemer die leiding geeft aan andere werknemers.

Oefening 2 Gegeven is de relatie R (a, b, c, d). Geef voor de onderstaande gevallen de normaalvorm waarin R zich bevindt. a) a,b c ; a,b d ; c d. b) a,b d ; a c. c) a,b c ; a,b d. d) a,b,c d ; d a. e) a,b,c d ; d a ; d b ; d c. f) a b ; a c ; a d ; b a ; b c. g) a b ; a c ; a d ; b c ; b d. h) a b ; a c ; a d ; b a ; c d.

Oplossing 2 a) 2NF b) 1NF c) 3NF & BCNF d) 3NF e) 3NF & BCNF f) 3NF & BCNF want b -> d geldt ook zodat zowel a als b kandidaatsleutel zijn. g) 2NF er zijn transitieve afhankelijkheden. h) 2NF a en b zijn kandidaatsleutel maar er is een transitieve afhankelijkheid.

Oefening 3 Gegeven is de relatie R (a, b, c, d, e) en de volgende functionele afhankelijkheden: a b ; a d ; b,c e ; c e ; c a ; c b. In welke normaalvorm is het model? Indien R niet in BNCF is, transformeer het dan tot BNCF.

Oplossing 3 c b volgt uit c a en a b ; b,c e volgt uit c e en c b. Dus c is de primaire sleutel van de relatie. De relatie is in 2NV maar niet in 3NV want er zijn de transitieve afhankelijkheden a b en a d. Om naar 3NV en BCNV te gaan splitsen we de relatie in: R1 (c,a,e) R2 (a,b,d).

Oefening 4 Gegeven is de relatie R (a, b, c, d, e, f) met de functionele afhankelijkheden: a,b c,d,e,f a d d e d f. Normaliseer naar BCNF.

Oplossing 4 a,b is de primaire sleutel. Relatie is in 1NF want d is afhankelijk van deel van de sleutel. Om naar 2NF te gaan: R1 (a,b,c) R2 (a,d,e,f). Om naar 3NF te gaan: R1 (a,b,c) R2 (a,d) R3 (d,e,f).

Oefening 5 Een groot detailhandelsbedrijf X betrekt goederen van diverse kleine leveranciers. Bedrijf X geeft hiertoe bestelbonnen uit die naar de leveranciers worden verstuurd. De bestelbonnen zien er uit zoals op de pagina die volgt. De volgende aannames zijn er: Op een bon staan 1 tot 30 bestellingen van verschillende artikelen. De stukprijzen variëren tussen leveranciers; bij elke nieuwe bon kan elke leverancier bovendien een andere prijs opgeven. Er woont nooit meer dan 1 leverancier op één adres. Bonnummers worden eenmalig uitgegeven en dan naar verschillende leveranciers gestuurd met ingevulde artikelnummers en aantallen. De leverancier stuurt de bon terug naar bedrijf X met ingevulde prijzen en leverdatum, en levert alle artikelen van de bon in één keer op de leveringsdatum. X kiest dan op basis van leveringsdatum en prijs de leverancier die de bestelling mag leveren. Enkel de gekozen bestelling wordt in de databank bijgehouden. Maak van dit model een genormaliseerde gegevensstructuur. Begin met vooreerst alle attributen in één tabel te stoppen als volgt (we gebruiken geen herhaalde groepen): bestelling (bonnummer, artikelnummer, stukprijs, aantal, prijs, leveranciersnummer, adres, postcode, woonplaats, leveringsdatum) Spoor functionele afhankelijkheden op. Welke kandidaat-sleutels zijn er? Kies een identificerende sleutel. Normaliseer en leg bij elke stap uit waarom het model beter is dan het vorige.

Oefening 5 (vervolg) Leveranciernummer: Bonnummer: Adres: Leveringsdatum: Postcode: Woonplaats: Artikel Stukprijs Aantal Prijs Artikel Stukprijs Aantal Prijs................................................................................................ Subtotaal: Overgedragen: Totaal:

Oplossing 5 Welke zijn de functionele afhankelijkheden? leveranciersnummer -> adres, postcode, woonplaats postcode -> woonplaats woonplaats, adres -> leveranciersnummer postcode, adres -> leveranciersnummer bonnummer -> leveranciersnummer, leveringsdatum bonnummer, artikelnummer -> stukprijs, aantal, prijs De enige primaire sleutel die we kunnen vinden is artikelnummer, bonnummer. De tabel is in 1NF maar niet in 2NF want sommige attributen hangen slechts af van een deel van de sleutel. Om naar 2NF te gaan splitsen we de relatie als volgt: bestelling (bonnummer, leveranciersnummer, adres, postcode, woonplaats, leveringsdatum) lijn (bonnummer, artikelnummer, stukprijs, aantal, prijs) We hebben nu 2NF maar geen 3NF want er zijn nog transitieve afhankelijkheden. We werken die als volgt weg: bestelling (bonnummer, leveranciersnummer, leveringsdatum) leverancier (leveranciersnummer, adres, postcode) woonplaats (postcode, woonplaats) lijn (bonnummer, artikelnummer, stukprijs, aantal, prijs)

Oefening 6 Bekijken we een eenvoudige video bibliotheek: Elke video heeft een titel, een regisseur en een uniek serienummer. Uitleners hebben een naam, adres en lidnummer. Van elke video bestaat er maar één exemplaar. De databank bevat de verhuur van video's aan uitleners. Het model dat we krijgen ziet er als volgt uit: verhuur (titel, regisseur, serienummer, naam, adres, lidnummer, datum) a) Spoor functionele afhankelijkheden op. b) Welke kandidaat-sleutels zijn er? Kies een identificerende sleutel. c) Normaliseer en leg bij elke stap uit waarom het model beter is dan het vorige.

Oplossing 6 Welke zijn de functionele afhankelijkheden? serienummer -> titel, regisseur lidnummer -> naam, adres De enige primaire sleutel die we kunnen vinden is serienummer, lidnummer, datum. We zitten al in 1NF maar niet in 2NF want sommige attributen hangen slechts af van een deel van de sleutel. Om naar 2NF te gaan splitsen we als volgt: video (serienummer, titel, regisseur) uitlener (lidnummer, naam, adres) verhuur (lidnummer, serienummer, datum) Relatie is nu ook in 3NF en in BCNF.

Oefening 7 Normaliseer het volgende model. Het model geeft het rapport weer voor één student. Elke student kan één of meerdere hoofdvakken volgen en elk hoofdvak bestaat uit een aantal vakken waarvoor er punten worden gegeven. rapport (studentnummer, studentnaam, (hoofdvak, mentor, (vaknummer, vaktitel, leraar, lokaal, punten))) De afhankelijkheden zijn de volgende: studentnummer -> studentnaam vaknummer vaktitel,leraar leraar lokaal studentnummer, vaknummer, hoofdvak punten studentnummer, hoofdvak mentor

Oplossing 7 Het model is niet in 1NF. Om naar 1NF te gaan splitsen we als volgt: student (studentnummer, studentnaam) hoofdvak (studentnummer, hoofdvak, mentor) vak (studentnummer, hoofdvak, vaknummer, vaktitel, leraar, lokaal, punten) We zitten niet in 2NF. Om naar 2NF te gaan: student (studentnummer, studentnaam) hoofdvak (studentnummer, hoofdvak, mentor) punten (studentnummer, hoofdvak, vaknummer, punten) vak (vaknummer, vaktitel, leraar, lokaal) We zitten niet in 3NF. Om naar 3NF te gaan: student (studentnummer, studentnaam) hoofdvak (studentnummer, hoofdvak, mentor) punten (studentnummer, hoofdvak, vaknummer, punten) vak (vaknummer, vaktitel, leraar) leraar (leraar, lokaal)