Post on 20-Jul-2015
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 1/92
Databases 1
Wilfried Wuyts & Kristof Nuyts
Technologie Geel
Bachelor in Elektronica-ICT
Database Design
© 2011
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 2/92
Databases 1 – Database Design 2
Inhoud
Data vs informatie
Deel 1: ontwerp van een ERDEntiteiten, instanties, attributen, identifiers
ERD
Relaties
ERD-tekenafsprakenSuper- en subtypes
Business rules (structural en procedural)
Relationship transferability
RelatietypesRedundante relaties
Veel op veel-relaties oplossen
Unique identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 3/92
Databases 1 – Database Design
Inhoud
Deel 1: ontwerp van een ERD (vervolg)
Normalisatie (eerste, tweede en derde norm.-vorm)Hierarchie, recursive relationships
Tijdsafhankelijke gegevens
Deel 2: van ERD naar databasemodelPrimary, foreign en unique key
ERD-omzetting (+ terminologie)Relaties
Super- en subtypes
3
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 4/92
Databases 1 – Database Design 4
Data versus informatie
Allerhande data kan bewaard worden in een database
Enkel data die achteraf nuttig blijkt te zijn moet bewaardworden
Deze cursus: ‘wat’ en vooral ‘hoe’ moet dit gebeuren
Data en informatie worden meestal als synoniemen
gebruiktData: Ruw materiaal, hieruit kan informatie gehaald worden
Informatie: kennis, intelligentie, is meestal het resultaat vanhet combineren, vergelijken of uitvoeren van berekeningen opdata
Voorbeeld:Data: Alle punten van het vak ‘databases 1’
Informatie: gemiddelde score op dit vak, aantal geslaagden,…
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 5/92
Databases 1 – Database Design
Data versus informatie
Wat is een database
Een gecentraliseerde en gestructureerde hoeveelheid data opeen computersysteem
Het is mogelijk om met de database gegevens op te vragen,toe te voegen, aan te passen en te verwijderen
De database maakt het mogelijk om informatie uit deze data
te halenDe database wordt meestal door een database administratorbeheerd (DBA)
5
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 6/92
Databases 1 – Database Design
Overzicht
In deze cursus worden ‘Data
Modeling’ en ‘Database Design’ bekeken. De fase ‘DatabaseBuild’ gebeurt pas later in SQLServer en werd al bekeken inMS Access
De klant die een database nodigheeft zal zorgen voor een
‘conceptual model’ (beschrijvingvan het probleem)
Wij zullen hiervan een ‘physicalmodel’ moeten maken
Dit ‘physical model’ moetvervolgens omgezet wordennaar een database-ontwerp
6
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 7/92Databases 1 – Database Design
Deel 1: ontwerp van een ERD
Deel 1: ontwerp van een ERD
7
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 8/92Databases 1 – Database Design
Entiteiten
Entiteiten (Entities) zijn de ‘dingen’ waarover data
bewaard wordenVoorbeelden over een school: STUDENTen, DOCENTen,VAKken, LOKA(A)L(en)
Meestal zelfstandige naamwoorden
8
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 9/92Databases 1 – Database Design
Instanties
Instanties: de elementen aanwezig in een entiteit
Voorbeelden bij de entiteit STUDENT:S5042451, Jefke Verhagen, 2ELO/ICT3
S5044234, Bert Sauviller, 2ELO/ICT1
PERSOON: President Obama
PRODUCT: Volkswagen Golf PRODUCT TYPE: Schoen
BEROEP: Kok
DIER: Hond
Er zijn veel entiteitenSommige hebben vele instanties, andere weinig (voorbeelden?)
9
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 10/92Databases 1 – Database Design
Instanties
Is HOND een instantie of een entiteit?
Als het gaat over soorten dieren dan zal de entiteit DIER eenaantal instanties kunnen hebben zoals hond, kat, paard,…
Als het gaat over een hondenkennel dan kan de entiteit HONDeen aantal instanties kunnen bevatten zoals terriër, poedel,labrador,…
10
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 11/92Databases 1 – Database Design
Attributen
Attributen (Attributes) geven meer informatie over de
entiteitenZe helpen om op zoek te gaan naar specifieke data
Voorbeelden
Entiteit STUDENT: studentID, naam, adres, klas,…
Entiteit VAK: benaming, studiepunten, examenvorm,…
Een attribuut is een bepaald stukje informatieDat een entiteit beschrijft
Dat ‘de hoeveelheid’ van een entiteit bepaalt
Dat een entiteit indeeltDescribes, quantifies, qualifies, classifies and specifies an entity
Een attribuut bevat slechts één waarde (bvb. het adres vaneen persoon kan maar 1 waarde bevatten)
11
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 12/92Databases 1 – Database Design
Attributen
Voorbeelden van attributen
KLANT: voor- en familienaam, leeftijd, schoenmaat, adres,emailadres
AUTO: model, gewicht, catalogusprijs
JOBOVEREENKOMST: startdatum, loon
De waarde van een attribuut kan een getal, tekst, datum,afbeelding,… zijn. Dit moet aangegeven worden met eendatatype (integer, text, boolean, image,…)
Sommige attribuutwaarden zijn veranderbaar (in de tijd),bvb. leeftijd, schoenmaat,…
Andere zijn niet-wijzigbaar, bvb. besteldatum,geboortedatum
Als je de keuze hebt, kies dan de niet-wijzigbare(geboortedatum i.p.v. leeftijd)
12
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 13/92Databases 1 – Database Design
Attributen
Sommige attributen moeten een waarde bevatten(mandatory), bvb. De naam van een student
Anderen zijn niet verplicht om een waarde te bevatten(optional, mogen de waarde ‘NULL’ bevatten), bvb.GSMnummer
Geef enkele attributen van de entiteit BOEK
13
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 14/92Databases 1 – Database Design
Identifier
Unique Identifiers (UID) zijn nodig om de instanties vanelkaar te onderscheiden
Voorbeelden: studentnummer, rijksregisternummer
Meestal een fictief ID (oplopend getal) zoals bij eenbankoverschrijving, offertenummer
UID’s kunnen een attribuut zijn of een combinatie vanattributen
14
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 15/92Databases 1 – Database Design
ERD
Een ‘Entity Relationship Diagram’ of ERD is een tool dat (de verbandentussen) data kan weergeven,ongeacht welke type database latergaat gebruikt worden
Een ERD is dus ‘implementation-
free’
15
4 doelstellingen van een ERDAlle benodigde data moet aanwezig zijn
Data mag maar één keer voorkomen
Geen data bewaren die kan afgeleid worden
Plaats data op een voorspelbare logische plaats
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 16/92Databases 1 – Database Design
Relaties
Niet alleen entiteiten zijn belangrijk binnen een ERD maarook de relaties ertussen hebben een belangrijke rol
Elke relatievormt een belangrijke schakel in het model
geeft aan hoe entiteiten aan elkaar gelinkt worden
bestaat tussen twee entiteiten of tussen dezelfde entiteitheeft steeds twee kanten
is langs beide kanten benoemd
heeft een ‘optionality’
heeft een graad of cardinaliteit (geeft een aantal aan)
16
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 17/92Databases 1 – Database Design
Relaties: voorbeelden
Voorbeeld 1 (vliegtuigreis)
Elke zetel kan aan één of meerdere passagiers verkochtworden (overbooking is mogelijk)
Elke passagier kan één zetel kopen
Voorbeeld 2 (muziek)Elke muzieknummer wordt geplaatst binnen één TYPE (rock, jazz, pop,…)
Optionaliteit: ‘moet’ of ‘kan’?Elk lied MOET ondergebracht worden in één type
Elk type KAN één of meerdere liedjes omvatten
Kardinaliteit: hoeveel?Elk lied moet ondergebracht worden in EXACT ÉÉN type
Elk type kan ÉÉN OF MEERDERE liedjes omvatten17
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 18/92Databases 1 – Database Design
Relaties: voorbeelden
Kunnen types bestaan zonder dat er liedjes toe behoren?Is dit logisch?
Afgesproken regels bepalen de kardinaliteit‘waarom mag een lied maar tot één type behoren?’
Als een lied tot meerdere types mag behoren: Elk lied moetondergebracht worden in ÉÉN OF MEERDERE types
18
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 19/92Databases 1 – Database Design
Relaties: voorbeelden
Bespreek optionaliteit en kardinaliteit
19
Elke bestelling moet door exact één
klant gebeurenElke klant kan één of meerderebestellingen doen
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 20/92Databases 1 – Database Design
Relaties: voorbeelden
Een relatie kan een entiteit aan zichzelf koppelen
In een bedrijf werken managers en werknemers. Elkewerknemer heeft één manager. Elke manager kan meerderewerknemers coördineren.
Aangezien een manager ook een werknemer is van het bedrijf blijft er maar één entiteit over: WERKNEMER
Elke werknemer kan één of meerdere werknemers coördineren
Elke werknemer kan gecoördineerd worden door éénwerknemer
Waarom staat in beide voorgaande zinnen ‘kan’ en niet ‘moet’?
20
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 21/92Databases 1 – Database Design
ERD: tekenafspraken
Entiteiten worden voorgesteld door een softbox (afgeronderechthoek)
De namen van de entiteiten worden bovenaan de softboxgeplaatst (in enkelvoud en in drukletters)
21
SONG TYPE
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 22/92Databases 1 – Database Design
ERD: tekenafspraken
22
SONG# songID* title* duration
* artist° songwriter
CLIENT# number* first name* last name
* phone number° email address
Attributen worden onder de entiteitsnaam geplaatst
Verplichte attributen worden aangegeven met een asterisk, *Optionele attributen worden aangegeven met een cirkel, o
Unieke identifiers worden aangegeven met een hekje, #
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 23/92Databases 1 – Database Design
ERD: tekenafspraken
Relaties worden door lijnen voorgestelddie de entiteiten met elkaar verbinden
De lijnen…kunnen vol of onderbroken zijn
eindigen in een ‘single toe’ of een ‘crow’sfoot’
23
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 24/92Databases 1 – Database Design
Relaties
Relaties verklaren:
Elke relatie kan onderverdeeld worden in een 6-tal delen1. Elke
2. Entiteit A
3. OptionaliteitMoet: volle lijn
Kan: onderbroken lijn
4. Naam van de relatie
5. Kardinaliteitexact één: single toe
één of meerdere: crow’s foot6. Entiteit B
Aangezien een relatie twee uiteinden heeft , kan de relatie
tweemaal besproken worden (links=>rechts, rechts=>links) 24
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 25/92Databases 1 – Database Design
Relaties
Elke werknemer moet werken in exact één afdeling
Elke afdeling kan de kostenplaats zijn voor één of meerdere werknemers
Noteer zelf twee aan elkaar gekoppelde entiteiten enschrijf de verklarende zinnen op
25
WERKNEMER AFDELING
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 26/92Databases 1 – Database Design
Supertypes en subtypes
Soms bevatten instanties van entiteiten een aantalattributen of relaties die andere instanties niet bevatten
Voorbeeld: betalingenKlanten kunnen betalen via: cash, cheque en kredietkaart
Alle betalingen hebben een aantal gemeenschappelijkeattributen: betaaldatum, bedrag,…
Kredietkaart: ook het kredietkaartnummer moet bewaardworden
Bij kredietkaart en cheque moet bijgehouden worden welkeklant de betaling deed
Oplossing?Eén entiteit: BETALING
Drie aparte entiteiten (maar wat als er een vierdebetaalmogelijkheid bijkomt?)
26
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 27/92Databases 1 – Database Design
Supertypes en subtypes
Soms is het handig om een entiteit onder te verdelen insubtypes, hoofdentiteit wordt dan het supertype (tevergelijken met overerving in OO-programmering)Een subtype
Erft alle attributen én relaties van het supertype
Heeft meestal nog eigen attributen of relaties
Wordt binnen het supertype getekend
Bestaat nooit alleen (er is steeds een tweede subtype)
Kan zelf ook nog subtypes bevatten
27
DIER
GEWERVELDE
ONGEWERVE
LDE
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 28/92Databases 1 – Database Design
Supertypes en subtypes
Supertype : EXAM
Subtypes: MIDTERM, FINALen QUIZ
Relatie tussen EXAM enSTUDENT
Relatie tussen BONUSQUESTION en (enkel!) QUIZ
FINAL bevat bvb. 6attributen
28
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 29/92Databases 1 – Database Design
Supertypes en subtypes
Er zijn altijd minstens twee subtypes: dit leidt tot tweeregels
Exhaustive : elke instantie van een supertype is ook altijdeen instantie van één van de subtypes
Mutually exclusive: elke instantie van een supertype behoorttot exact één subtype
Soms kan een extra subtype ‘OTHER’ handig zijn
29
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 30/92
Databases 1 – Database Design
Business rules
Niet alle business rules (afspraken over de functionaliteitenvan de database) kunnen in een ERD wordenweergegeven. Deze moeten achteraf bijgeprogrammeerdworden
Structural business rules: geven aan welke informatiemoet bewaard worden en hoe deze aan elkaar gelinked is.
Kunnen meestal in een ERD worden weergegevenProcedural business rules: geven workflow of business-gerelateerde processen aan
Moeten meestal geprogrammeerd worden
30
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 31/92
Databases 1 – Database Design
Structural business rules
Voorbeelden
Elke bestelling moet doorexact één medewerkerafgehandeld worden
Er is dus geen self-service
Elke leraar moet over eengeldig ‘teaching certificate
number’ beschikken
31
TEACHER# id
* name* address* Teachingcertificatenumber
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 32/92
Databases 1 – Database Design
Procedural business rules
Voorbeelden
Studenten moeten eerst een credit behaald hebben op ‘databases 1’ voor ze ‘databases 2’ kunnen aanvatten
Een werknemer die meer dan 2 overuren per week doet moet1,5 keer zijn uurloon verkrijgen
Klanten die hun facturen na 30 dagen nog niet betaaldhebben kunnen geen nieuwe bestellingen plaatsen
Geef enkele voorbeelden op beide soorten business rules
32
VAK STUDENT
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 33/92
Databases 1 – Database Design
Relationship transferability
Kan een klas die aan een docent gekoppeld is (les krijgt)later een andere docent krijgen?
Kan je je duurbetaalde fitness-abonnement doorgeven aaneen vriend?
Kan je het type/genre van een lied achteraf wijzigen?
33
f
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 34/92
Databases 1 – Database Design
Relationship transferability
Transfereerbare relaties
Een student kan na een bepaalde tijd overstappen naar eenandere klas
Niet-transfereerbare relaties (ruit op de relatie / diamond)Een student die een examen heeft afgelegd (punten heeftbehaald) kan deze punten niet doorgeven aan een andere
student
34
EXAMEN STUDENT
l h f b l
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 35/92
Databases 1 – Database Design
Relationship transferability
Andere voorbeelden?
35
R l i
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 36/92
Databases 1 – Database Design
Relatietypes
Kan een PERSOON meerdere CD’s bezitten?
Kan een CD in het bezit zijn van meerdere PERSONEN?
De antwoorden op bovenstaande vragen hebben een effectop het ERD
Er zijn drie types van relatiesÉén op veel (one-to-many)
Veel op veel (many-to-many)
Één op één (one-to-one)
36
R l ti t
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 37/92
Databases 1 – Database Design
Relatietypes
Één op veel-relatie
komen het meest voor in een ERD
37
WERKNEMER AFDELING
R l ti t
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 38/92
Databases 1 – Database Design
Relatietypes
Veel op veel-relatie
Komen veel voor in de ontwerpfase van een ERD maarworden in latere stadia vervangen door één op veel-relaties
38
R l ti t
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 39/92
Databases 1 – Database Design
Relatietypes
Één op één-relatie
Komen voor in de ontwerpfase van een ERD maar wordenmeestal weggewerkt
39
R d d t l ti
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 40/92
Databases 1 – Database Design
Redundante relaties
Een redundante relatie kan afgeleid worden van eenandere relatie uit het model
40
LinkerschemaHet land waarin depersoon woont kan
afgeleid worden via detwee zwarte relaties
(grijze) relatie is dusoverbodig
Rechterschema
De relatie tussen persoonen land is anders dan inhet linkerschema en kan
niet afgeleid worden
V l l l ti l
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 41/92
Databases 1 – Database Design
Veel op veel-relaties oplossen
Medewerkers van een bedrijf worden ingezet bij events
Als extra attribuut willen we destatus van hun job bijhouden(wat is de status van iemand bijeen bepaald event?)
Bij welke entiteit moet ditattribuut geplaatst worden?
41
Een derde entiteit is nodig. Ditwordt de ‘intersection entity’ genoemd
Veel op eel elaties oplossen
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 42/92
Databases 1 – Database Design
Veel op veel-relaties oplossen
De originele veel op veel-relatie is omgezet naartwee één op veel-relatiesWat zou de uniqueidentifier worden van dezenieuwe entiteit?
42
De UID wordt decombinatie van de UID’svan de originele relaties (indit geval: combinatie vanPARTNERid en EVENTid)Het wordt aangegeven viade ‘barred relationships’,dwarse lijnen op de relatie
Intersectionentity
Veel op veel relaties oplossen
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 43/92
Databases 1 – Database Design
Veel op veel-relaties oplossen
Voorbeeld: TV-show
Oplossing:
43
Veel op veel relaties oplossen
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 44/92
Databases 1 – Database Design
Veel op veel-relaties oplossen
Voorbeeld: schoonmaakbedrijven / poetsdiensten.
Oplossing:
44
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 45/92
Databases 1 – Database Design
Unique Identifiers
Een Unique Identifier is de waarde (of combinatie vanwaardes) die het mogelijk maakt voor de gebruiker omeen uniek item uit alle instanties van een entiteit te halenEnkelvoudige UID
Een UID die maar één attribuut omvat
Samengesteld UIDEen UID die bestaat uit twee (of zelden nog meer) attributen
45
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 46/92
Databases 1 – Database Design
Unique Identifiers
Artificiële UID’s zijn attributen die worden toegevoegdomdat in de entiteit geen volwaardig UID beschikbaar is
Voorbeelden:Studentnummer, rijksregisternummer,…
46
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 47/92
Databases 1 – Database Design
Unique Identifiers
Soms is de UID de combinatie van een attribuut en eenrelatie
In onderstaand voorbeeld moet in gedachten gehoudenworden dat een bankrekeningnummer bij meerderebanken kan gebruikt worden, bvb bankrek.nr 1256 kan bijbank A voorkomen maar ook bij bank B
Bij een overschrijving zal dus zowel het bankrek.nr als hetbanknummer moeten opgegeven worden
47
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 48/92
Databases 1 – Database Design
Unique Identifiers
UIDs van ‘barred relationships’ (veel op veel-relaties opgelost)
48
De UID van ‘PLAY LIST ITEM’ isafkomstig van EVENT enSONG, dus combinatie vanEVENTid en SONGid
De bars ‘trekken’ de UIDs naarPLAY LIST ITEM en vormendaar samen het nieuwe UID
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 49/92
Databases 1 – Database Design
Unique Identifiers
49
Het is ook mogelijk om eenartificieel UID te gebruiken
Geef een voorbeeld van een ‘intersection entity’ en bepaalhiervoor de UID
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 50/92
Databases 1 – Database Design
Unique Identifiers
Soms bestaan er meerdere attributen in een entiteit diezouden kunnen doorgaan voor UID. In dat geval spreektmen van kandidaat-UID’sDegene die gekozen wordt: Primary UID
De andere ‘kandidaten’: Secundary UIDs
50
Één primary UID (studentID) en éénsecundary UID (badge number)
Één primary UID (studentID) en tweesecundary UIDs
badge number
Combinatie van first name en last name
Unique Identifiers
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 51/92
Databases 1 – Database Design
Unique Identifiers
51
ERD : Unique identifiers
Database model : Primary keys
Normalisatie
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 52/92
Databases 1 – Database Design
Normalisatie
Normaliseren is het proces waarbij redundante gegevensin een database vermeden worden
Er zijn drie normaalvormen (normalisatiestappen vanCodd) die één voor één moeten doorlopen worden
Na deze drie stappen: genormaliseerde database
52
Normalisatie: eerste normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 53/92
Databases 1 – Database Design
Normalisatie: eerste normaalvorm
Eerste normaalvorm vereist dat er geen meerdere waardenmogelijk zijn bij een attribuut
Nakijken dat elk attribuut maar één waarde bevat voorelke instantie van een entiteit
53
Classroom kan meerdere waarden bevatten
voor een specifiek schoolgebouwSchending van eerste normaalvorm
Oplossing: haal dit attribuut uit deentiteit en maak er een aparte entiteit
van (met een één op veel-relatie)
Normalisatie: eerste normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 54/92
Databases 1 – Database Design
Normalisatie: eerste normaalvorm
Schenden onderstaande ERD’s de eerste normaalvorm?
54
HUIS# id* straat* huisnummer* postcode* gemeente
* bewoner DOCENT# id* naam* adres* vak
Normalisatie: eerste normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 55/92
Databases 1 – Database Design
Normalisatie: eerste normaalvorm
Oplossingen
55
HUIS# id* straat* huisnummer* postcode* gemeente
BEWONER# id* naam* geb_datum° tel_nummer
DOCENT# id* naam* adres
VAK # id* benaming* Studiepunten° ECTS-fiche
Welke attributen in de intersection entity?
Normalisatie: Tweede normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 56/92
Databases 1 – Database Design
Normalisatie: Tweede normaalvorm
Wat is de UID van de entiteit LESOPDRACHT?
56
DOCENT# id
* naam* adres
VAK # id
* benaming* studiepunten° ECTS-fiche
LESOPDRACHT
* tijdstip* lokaal* semester*initiaalDocent
DOCENT# id* naam* adres
VAK # id* benaming* studiepunten° ECTS-fiche
LESOPDRACHT# tijdstip* lokaal# semester*initiaalDocent
DOCENT# id* naam
* adres
VAK # id* benaming
* studiepunten° ECTS-fiche
LESOPDRACHT#
lesopdrachtID* tijdstip* lokaal* semester*initiaalDocent
Of
Welk attribuut staat niet op zijn plaats?
Normalisatie: Tweede normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 57/92
Databases 1 – Database Design
Normalisatie: Tweede normaalvorm
Tweede normaalvormEnkel na te kijken bij een meervoudige UID
Definitie: alle niet-UID-attributen mogen enkel afhankelijkzijn van het ganse UID
Voorbeeld bovenaan: initiaaldocent is enkel afhankelijk vanDOCENTid en moet dan ook naar die entiteit verplaatstworden
57
DOCENT# id* naam* adres
VAK # id* benaming* studiepunten° ECTS-fiche
LESOPDRACHT
# tijdstip* lokaal# semester*initiaalDocent
DOCENT# id* naam
* adres*initiaalDocent
VAK # id* benaming
* studiepunten° ECTS-fiche
LESOPDRACHT# tijdstip* lokaal# semester
Normalisatie: Tweede normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 58/92
Databases 1 – Database Design
Normalisatie: Tweede normaalvorm
UID van entiteit ACCOUNT is combinatie vanaccountnumber en banknumber
‘bank location’ is enkel afhankelijk van banknumber enmoet bijgevolg verplaatst worden naar entiteit BANK
58
Normalisatie: Tweede normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 59/92
Databases 1 – Database Design
Normalisatie: Tweede normaalvorm
Een DJ houdt in een database alle songs bij en de playlistsdie hij speelde op events
59
duration is enkelafhankelijk van deentiteit SONG
event date is enkel
afhankelijk van de entiteit
EVENT
Beide zijn schendingenvan de tweedenormaalvorm
Normalisatie: Derde normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 60/92
Databases 1 – Database Design
Normalisatie: Derde normaalvorm
Derde normaalvormDefinitie: geen enkel niet-UID-attribuut mag afhankelijk zijnvan een ander niet-UID-attribuut
Voorbeeld: per CD houd je bij in welke winkel je dezegekocht hebt
Het adres van de winkel is afhankelijk van de winkelnaam
Als ooit het adres zou wijzigen van de winkel dan moet dit bijalle CD’s aangepast worden
60
Normalisatie: Derde normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 61/92
Databases 1 – Database Design
Normalisatie: Derde normaalvorm
Oplossing: maak een nieuwe entiteit en verplaats beideattributen
61
Schending van derde normaalvorm?
Oplossing:
Normalisatie: Derde normaalvorm
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 62/92
Databases 1 – Database Design
Normalisatie: Derde normaalvorm
Schending van derde normaalvorm?
62
Oplossing:
Niet echt eenverbetering!
Hierarchie, recursive relationships
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 63/92
Databases 1 – Database Design
a , u a o p
Hierarchische
structuur
63
Recursiverelationship
Waarom streeplijnenals relaties?
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 64/92
Databases 1 – Database Design
j j g g
Vele eigenschappen wijzigen in de loop der tijd:schoenmaat, loon, verhuurgegevens videotheek,
procesgegevens in een bedrijf,…
Voorbeeld: loon bij werknemersVia onderstaande entiteit kan enkel het huidige loon bewaard
worden
Voor tijdsafhankelijke gegevens is steeds een extra entiteitvereist
64
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 65/92
Databases 1 – Database Design
j j g g
Wat is de UID van de entiteit SALARY HISTORY?
65
Waarom is het attribuut ‘salary end date’ optioneel?
Combinatie van ‘salary start date’ en EmployeeID
Voor het huidige loon is de einddatum nog niet gekend
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 66/92
Databases 1 – Database Design
j j g g
Een winkel verhuurt juwelen aan beroemdheden. Men wilper juweel de verhuurgeschiedenis kennis
Via onderstaand ERD wordt enkel de huidige huurderbewaard
Hoe zou jij dit probleem oplossen?
66
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 67/92
Databases 1 – Database Design
j j g g
Je komt uit op een veel op veel-relatie
67
, welke vervolgens omgezet wordt naar:
Wat is de UID van de entiteitRENTAL HISTORY?
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 68/92
Databases 1 – Database Design
j j g g
Oplossing:
68
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 69/92
Databases 1 – Database Design
j j g g
Voor elke aankoop in onze groentenwinkel houden wegegevens bij:
We zouden het verband willen zien tussen aankoopgedragen max- en min-temperatuur van die dag om zo beter aanstockbeheer te kunnen doen:
69
Probleem: we zondigen
tegen een normaalvorm,welke?
De derde normaalvorm:
Temperaturen zijn afhankelijk van datum
Tijdsafhankelijke gegevens
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 70/92
Databases 1 – Database Design
j j g g
Oplossing:
Een gelijkaardige structuur is nodig voor gegevens dievan kostprijs wijzigen
70
Oefening 1
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 71/92
Databases 1 – Database Design
Noteer voor elkerelatie zowel van links
naar rechts alsomgekeerd deverklarende zin
Geef voor elke entiteit
de UID
71
Oefening 2
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 72/92
Databases 1 – Database Design 72
Noteer voor elkerelatie zowel van links
naar rechts alsomgekeerd deverklarende zin
Geef voor elke entiteit
de UID
Deel 2: van ERD naar databasemodel
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 73/92
Databases 1 – Database Design 73
Deel 2: van ERD naar databasemodel
Primary key
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 74/92
Databases 1 – Database Design
Een relationele database is een database waarbij detweedimensionale tabellen aan elkaar gelinkt zijn d.m.v.
relatiesDe primary key (primaire sleutel) is de kolom of combinatie van kolommen die een rij in een tabel uniekmaakt
74
Een primary key kan nooitde waarde NULL bevatten
Foreign key
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 75/92
Databases 1 – Database Design
Een foreign key (FK, refererende sleutel) is een kolom inéén tabel die gekoppeld is aan een primary key-kolom in
een andere tabel
75
De foreign key-kolomkan enkel waarden
bevatten die in deprimary-kolom van deandere tabel voorkomen(referentiële integriteit)
Unique key
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 76/92
Databases 1 – Database Design
Een tabel kan soms meerdere primary keys bevattenKies één primaire sleutel
De andere sleutels worden ‘unique keys (UK)’ of kandidaatsleutels genoemd
76
Foreign key
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 77/92
Databases 1 – Database Design
Als een foreign key deel uitmaakt van een primary key dankan deze FK niet NULL zijn
77
Omzetting van ERD naar database-model
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 78/92
Databases 1 – Database Design
Omzetting van ERD naar database-model (of vanconceptueel model naar fysisch model)
78
pk: primary key
fk: foreign key
uk: unique key
Terminologie bij omzetting
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 79/92
Databases 1 – Database Design
ERD
EntiteitInstantie
Attribuut
Primary UID
Secundary UIDRelatie
79
Database modelTabel
Rij of record
Kolom of veld
Primary key
Unique keyForeign key veld
Tabel-diagram notatie
Tabelnamen zijn de meervouden vande entiteitsnamen, Vb.
Entiteit STUDENT wordt
tabel STUDENTEN
Omzetting van ERD naar database-model
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 80/92
Databases 1 – Database Design 80
Voorbeeld:
Omzetting van relaties
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 81/92
Databases 1 – Database Design
Een relatie in een ERD zorgt voor één of meerdere foreign-key kolommen in de tabel aan de ‘veel’-kant
De foreign key-kolom is verplicht of optioneel net zoals derelatie dit was.
81
Het primarykey-veld wordtals het warenaar de crow-foot-tabel
‘getrokken’
Omzetting van relaties
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 82/92
Databases 1 – Database Design
Er is geen verschil in database-ontwerp als de één-kantvan een relatie verplicht is in plaats van optioneel. Er is
extra programmatie nodig om dit te eisen
82
Men kan via detabellen niet eisen
dat elke BANDvoorkomt in detabel MUSICIANS
Omzetting van relaties
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 83/92
Databases 1 – Database Design
Het is in het database-model niet aan te geven dat eenrelatie ‘niet-tranfereerbaar’ is.
Via extra programmatie moet aangegeven worden dat hetforeign key-veld niet kan ge-update worden
83
Omzetting van relaties
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 84/92
Databases 1 – Database Design
Bij een barredrelationship zal het UID
van de één-kant zoweleen primary key wordenals in de gerelateerdetabel een deel van deprimary key
Voorbeeld:Bank_number is deprimary key in de tabelBANKS
Bank_number vormtsamen metAccount_number deprimary key in de tabelACCOUNTS
84
Omzetting van relaties
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 85/92
Databases 1 – Database Design
Veel op veel-relaties worden opgelost d.m.v. eenintersection entity (dit wordt in het databasemodel een
intersection table of koppeltabel). Deze tabel zal foreignkeys bevatten die gelinkt zijn aan de originele tabellen
85
Omzetting van relaties
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 86/92
Databases 1 – Database Design
Één op één-relaties worden meestal opgelost door alleattributen van beide entiteiten onder te brengen in één
tabelZelden wordt gekozen om er twee aparte tabellen van temaken zoals in onderstaand voorbeeld. Één van beidetabellen zal dan het foreign key-veld bevatten
86
Omzetting van super- en subtypes
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 87/92
Databases 1 – Database Design
Supertype implementatie
Er wordt gebruik gemaakt van één tabel
RegelsEr wordt één tabel aangemaakt, onafhankelijk van het aantalsubtypes
De tabel bevat evenveel velden als het aantal attributen van desupertype-entiteit, met de originele optionaliteit
De tabel krijgt voor elk attribuut uit de subtype-entiteiten eenkolom, deze is altijd optioneel
Één verplicht veld is nodig om te kunnen bepalen van welk soortsubtype de instantie is
UID’s worden in het databasemodel primary en unique keys
Relaties aan het supertype worden gewoon omgezet zoals invoorgaande slides werd uitgelegd
Relaties aan het subtype worden omgezet naar optionele foreignkey-velden
87
Omzetting van super- en subtypes
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 88/92
Databases 1 – Database Design 88
Salary en hourly ratezijn verplicht in het
ERD, echter optioneelin het databasemodel.Daarom: extra teprogrammeren…
Als epe-type=‘full time’ Salary is not null
Hourly rate is null
Agy_id is null
Als epe-type=‘part time’ Vul zelf aan…
Supertype implementatie
Omzetting van super- en subtypes
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 89/92
Databases 1 – Database Design
Subtype implementatie
Er wordt gebruik gemaakt van evenveel tabellen als subtypes
RegelsEr wordt een tabel aangemaakt per subtype
Elke tabel bevat een veld voor elk attribuut uit het supertype metdezelfde optionaliteit
De tabel krijgt voor elk attribuut uit het eigen subtype een veld metdezelfde optionaliteit
De primary UID uit het supertype wordt een primary key in elketabel. Secundary UID’s van het supertype worden unique keys inelke tabel
Alle tabellen krijgen een foreign key-veld voor elke relatie met hetsupertype, met de originele optionaliteit
Relaties aan een subtype worden enkel omgezet naar een foreignkey in de tabel die hoort bij dat subtype (met originele optionaliteit)
89
Omzetting van super- en subtypes
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 90/92
Databases 1 – Database Design 90
Subtype implementatie
Omzetting van super- en subtypes
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 91/92
Databases 1 – Database Design
Welke keuze maken?
Kiezen voor ‘Supertype implementatie’ De meeste attributen behoren tot het supertype
De meeste relaties hangen aan het supertype
Kiezen voor ‘Subtype implementatie’ De subtypes hebben weinig kenmerken gemeenschappelijk
Er zijn weinig supertype-attributen maar meerdere subtype-attributen
De meeste relaties hangen aan de subtypes
91
Oefening 1
5/17/2018 Database Design 20120423 - slidepdf.com
http://slidepdf.com/reader/full/database-design-20120423 92/92
Geef de tabellen voorelke entiteit met de
attributen die erbijhoren.
Zorg voor een goedetabelnaam en
afkorting tussenhaakjes.
Geef aanduidingenvan primary key,unique key, foreign
key, verplicht,optioneel.