database design 20120423

92
 Databases 1 Wilfried Wuyts & Kristof Nuyts Technologie Geel Bachelor in Elektronica-ICT Database Design © 2011

Upload: bob-van-de-looverbosch

Post on 20-Jul-2015

129 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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?)

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.