Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in...

40
Datamodellering en –verwerking 8C020 college 3

Transcript of Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in...

Page 1: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Datamodellering en –verwerking8C020

college 3

Page 2: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5

Page 3: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Terugblik college week 2

• Aspecten van modelleren– Meerwaardige atribuut-type– Herhalende groep– Tijdsafhankelijke gegevens

• Classificeren

• ISA relatie

• Constraints (Beperkingen)

• UML

• Oefening E-R modeleren: Ziekenhuis

Page 4: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Onderwerpen college week 3

• Relationeel Model

• Transformatie van ERM naar Relationeel Model

• Opdracht

Page 5: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Software Life Cycle/Fasering

analyseren

eisen

specificeren

ontwerpen

coderen

testen

invoeren

onderhouden

Omgevings anlyse, ontwikkelingsplan (kosten en tijd)

Eisen, planning en begroting, haalbarheidsanalyse

Conceptueel model

Iplementatiemodel, handleidigen, testmodel

Code, onderhoudshandeling

tesrapporten

Installatie, acceptierapport

Correctief, preventief, modificatief

Page 6: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Functie van databasemodel

• een volledig conceptueel model geeft een abstracte beschrijving van het te bouwen informatiesysteem

• datamodel – beschrijft de relevante gegevens

• databasemodel – beschrijft de relevante gegevens passend bij de te gebruiken

databasesoftware

• het databasemodel specificeert dus hoe de informatie concreet wordt ondergebracht in een database

Page 7: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Relationeel model

• een databasemodel hangt af van het te gebruiken DBMS

• in dit college richten wij ons op relationele databases

• het begrip Relationeel Model (de relationele aanpak) duidt eigenschappen en randvoorwaarden aan voor het maken van databasemodellen voor relationele databases

• naam afgeleid van het belangrijkste concept: relatie

• relationeel (database)model – een databasemodel voor relationele databases

Page 8: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Waarschuwing

• in het Nederlands kan verwarring ontstaan door dubbel gebruik van het woord relatie

 

 

in ER-model: relationship

 

in Relationeel Model: relation

Page 9: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Transformatie

• een databasemodel is een uitbreiding van een datamodel

•  wij willen dus een relationeel databasemodel maken op basis van een ER-model

 

• behoefte aan een transformatie van een ER-model naar een (relationeel) databasemodel

 

• stapsgewijze transformatie:

1. representatie van entiteiten

2. representatie van relaties

3. normalisatie

4. samennemen van relaties

Page 10: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Relationele aanpak

• Relationeel Model – geïntroduceerd in 1970 door Edgar F. Codd

• Turing Award 1981• ook bijdrage in het gebied van cellulaire automaten, “self-

reproducing automata”

• de relationele aanpak wordt nu beschouwd als de standaard

• gegevens worden geordend in de vorm van relaties

• relaties worden gerepresenteerd in de vorm van tabellen

• de aanpak is gebaseerd op een wiskundige theorie: dit geeft een solide theoretische onderbouwing en vele praktische voordelen

Page 11: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Drie componenten

• datastructuren– gegevens zijn georganiseerd in de vorm van tabellen

(relaties)

• datamanipulatie– krachtige operaties om de opgeslagen gegevens te

manipuleren

 

• data-integriteit– faciliteiten voor het specificeren van (het behouden van) de

integriteit

Page 12: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Relatie

• een relatie is te beschouwen als een twee-dimensionale tabel met gegevens

• elke relatie heeft een – naam, – bestaat uit

• een verzameling van kolommen (elk voorzien van een naam) en uit

• een willekeurig aantal rijen

 

• elke kolom correspondeert met een attribuut van de relatie

• elke rij correspondeert met een record (instantie, entiteit)

Page 13: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld

WN1WNID NAAM AFD SALARIS100 Anna Bruinsma Verkoop 50.000140 Carla Dik Administratie 41.000110 Eef Groen Informatiesystemen 49.000

190 Henk Israël Inkoop 39.500150 Janny Kramer Verkoop 45.000

 

Afkorting van de structuur van die relatie:

WN1(WNID, NAAM, AFD, SALARIS)

Page 14: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Atomaire waarden

WN2a

WNID NAAM AFD SALARIS CURSUS DATUM

100 Anna Bruinsma

Verkoop 50.000 PRWord

6-6-941-12-94

140 Carla Dik Administratie 41.000 Belastingen 25-8-94

110 Eef Groen Informatiesystemen 49.000 C++Word

13-11-941-12-94

190 Henk Israël Inkoop 39.500 Logistiek 8-3-94

150 Janny Kramer Verkoop 45.000 PRWorkflow

6-6-9411-12-94

De waarden in de kolommen moeten atomair (ondeelbaar) zijn

Page 15: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Atomaire waarden

WN2

WNID NAAM AFD SALARIS CURSUS DATUM

100 Anna Bruinsma Verkoop 50.000 PR 6-6-94

100 Anna Bruinsma Verkoop 50.000 Word 1-12-94

140 Carla Dik Administratie 41.000 Belastingen 25-8-94

110 Eef Groen Informatiesystemen 49.000 C++ 13-11-94

110 Eef Groen Informatiesystemen 49.000 Word 1-12-94

190 Henk Israël Inkoop 39.500 Logistiek 8-3-94

150 Janny Kramer Verkoop 45.000 PR 6-6-94

150 Janny Kramer Verkoop 45.000 Workflow 11-12-94

Page 16: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Domain

• bij elke kolom hoort een collectie van waarden die mogen voorkomen in de kolom (als waarden voor dat attribuut)

• zo'n collectie van waarden heet een domein

• Voorbeeld:– bij WNID hoort een domein van identificatienummers

– bij DATUM hoort een domein van examendata

Page 17: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Unieke rijen

• elke rij is uniek:– dit drukt uit dat records (instanties) uniek zijn– deze eigenschap wordt gegarandeerd door het aanwijzen van

een primaire sleutel (uit de verzameling kandidaat-sleutels)

 

• WN1: WNID of NAAM

• WN2: WNID,CURSUS of NAAM,CURSUS

• de waarden van de primaire sleutel mogen niet null zijn

Page 18: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Volgorde irrelevant

• de volgorde van kolommen is irrelevant: het maakt niet uit in welke volgorde de attributen worden vermeld– in de relationele aanpak wordt dit bereikt door te kiezen voor

een verzameling van kolommen

• de volgorde van rijen is irrelevant: het maakt niet uit in welke volgorde de records worden vermeld– in de relationele aanpak wordt dit bereikt door te kiezen voor

een verzameling van records

Page 19: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Goed gestructureerd

• bij het ontwerpen van relaties streef je naar – een minimum aan redundantie en – de situatie dat gebruikers rijen kunnen

• toevoegen, • veranderen, of • wegnemen

zonder dat er fouten ontstaan

 

Page 20: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Een niet goed gestructureerde relatie

WN2

WNID NAAM AFD SALARIS CURSUS DATUM

100 Anna Bruinsma Verkoop 50.000 PR 6-6-94

100 Anna Bruinsma Verkoop 50.000 Word 1-12-94

140 Carla Dik Administratie 41.000 Belastingen 25-8-94

110 Eef Groen Informatiesystemen 49.000 C++ 13-11-94

110 Eef Groen Informatiesystemen 49.000 Word 1-12-94

190 Henk Israël Inkoop 39.500 Logistiek 8-3-94

150 Janny Kramer Verkoop 45.000 PR 6-6-94

150 Janny Kramer Verkoop 45.000 Workflow 11-12-94

Page 21: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Anomalieën

• anomalie van toevoegen– nieuwe werknemer toevoegen

• een waarde voor beide cursus en wind moet er ingevoerd worden

– werknemer zonder cursus?

• anomalie van verwijderen– verwijderen gegevens werknemer

• als werknemer 140 wordt verwijderd zijn we de informatie kwijt dat er op 25-8-94 iemand een cursus heeft afgerond

• anomalie van wijzigen– veranderen van salaris

• moet in elk van de rijen voor de weknemer gebeuren– niet efficient

Page 22: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Normalisatie

• Probleem– WN2 bevat gegevens over twee entiteiten

• Oplossing – Verdeel zo’n relatie in twee relaties: WN1 en WN-CURSUS

Page 23: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Normalisatie

WN1WNID NAAM AFD SALARIS100 Anna Bruinsma Verkoop 50.000140 Carla Dik Administratie 41.000110 Eef Groen Informatiesystemen 49.000

190 Henk Israël Inkoop 39.500150 Janny Kramer Verkoop 45.000

 WN-CURSUS

WNID CURSUS DATUM 

100 PR 6-6-94 

100 Word 1-12-94 

140 Belastingen 25-8-94  

110 C++ 13-11-94 

110 Word 1-12-94 

190 Logistiek 8-3-94 

150 PR 6-6-94 

150 Workflow 11-12-94 

Page 24: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Transformatie van ERM naar Relationeel Model

• als we een relationeel databasemodel ontwerpen willen we het beschikbare datamodel gebruiken

• het transformeren van het datamodel naar een databasemodel is één van de belangrijkste stappen in de ontwikkeling

• (deel van) transformatiemethode:

1. het representeren van entiteiten

2. het representeren van relaties

Page 25: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Representatie entiteiten

• Drie stappen:

1. elk entiteit-type wordt vertaald in een relatie

2. de primaire sleutel van het entiteit-type wordt de primaire sleutel van de relatie

3. elk niet-sleutel attribuut-type van het entiteit-type wordt een (niet-sleutel) attribuut van de relatie

• er volgen mogelijk nog veranderingen als het entiteit-type betrokken is in (ER)relatie-typen

Page 26: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld

KLANT

NAAM

KLANTNUMMER

ADRES WOONPLAATS

KORTING

KLANT(KLANTNUMMER, NAAM, ADRES, WOONPLAATS, KORTING)

KLANT 

  KLANTNUMMER NAAM ADRES WOONPLAATS KORTING

  1273 Super Spullen Markt 1 Eindhoven 10%

 6333 Audiogigant Markt 3 Eindhoven 2%

ER:

RM:

Page 27: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Representatie relaties

• onderscheid tussen soorten relatie-typen:– binaire één-op-veel relatie-typen– binaire veel-op-veel relatie-typen– unaire één-op-veel relatie-typen– unaire veel-op-veel relatie-typen– ISA-relatie-typen

Page 28: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld binaire 1-op-veel relatie

ORDER

ORDERDATUM ORDERNUMMER LEVERDATUM

KLANT

Plaatst

NAAM

KLANTNUMMER

ADRES

WOONPLAATS

KORTING

KLANT(KLANTNUMMER, NAAM, WOONPLAATS, KORTING, ADRES)

ORDER(ORDERNUMMER, ORDERDATUM, LEVERDATUM)

PLAATST(KLANTNUMMER, ORDERNUMMER)

Page 29: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld

ORDER

ORDERDATUMORDERNUMMER LEVERDATUM

KLANT

Plaatst

NAAM

KLANTNUMMER

ADRES

WOONPLAATS

KORTING

KLANT(KLANTNUMMER, NAAM, ADRES, WOONPLAATS, KORTING)ORDER(ORDERNUMMER, ORDERDATUM, LEVERDATUM, KLANTNUMMER)

Page 30: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld

KLANT

KLANTNUMMER NAAM ADRES WOONPLAATS KORTING

1273 Super Spullen Markt 1 Eindhoven 10%

6333 Audiogigant Markt 3 Eindhoven 2%

ORDER

ORDERNUMMER ORDERDATUM LEVERDATUM KLANTNUMMER

57194 15-3-94 28-3-94 6333

63725 17-3-94 1-4-94 1273

80149 14-3-94 24-3-94 6333

Page 31: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Binair één-op-veel relatie-type

• stel het datamodel bevat een binair één-op-veel relatie-type tussen A en B

• dit relatie-type wordt gerepresenteerd door het toevoegen van het primaire sleutel attribuut (of attributen) van A als attribuut van B

•  zo'n niet-sleutel attribuut (ergens anders wel sleutel) heet een vreemde sleutel (foreign key)

Page 32: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld binair veel-op-veel relatie-type

ORDER

ORDERDATUMORDERNUMMER LEVERDATUM

PRODUKT

Betreft HOEVEELHEID

PRODUKTNUMMER

KLANTNUMMER

BESCHRIJVING

Page 33: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld binair veel-op-veel relatie-type

ORDER

ORDERNUMMER ORDERDATUM LEVERDATUM KLANTNUMMER

57194 15-3-94 28-3-94 6333

63725 17-3-94 1-4-94 1273

80149 14-3-94 24-3-94 6333

PRODUKT

PRODUKTNUMMER BESCHRIJVING

M128 Boekenkast

A261 Wandmeubel

R149 Kastje

  ORDERREGEL  

ORDERNUMMER PRODUKTNUMMER HOEVEELHEID

57194 M128 2

57194 A261 1

Page 34: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Binair veel-op-veel relatie-type

• stel het datamodel bevat een binair veel-op-veel relatie-type tussen A en B

 

1. er wordt een nieuwe relatie C (tabel) gevormd

2. de primaire sleutel van C is een combinatie van die van A en B

3. eventuele attribuut-typen (van het relatie-type) worden niet-sleutel attributen van C

Page 35: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld unair één-op-veel relatie-type

WERKNEMER

NAAMWNID GEBOORTEDATUM

Geeft-leiding- aan

WERKNEMER(WNID, NAAM, GEBOORTEDATUM, MANAGER-ID)

Page 36: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Unair één-op-veel relatie-type

• stel het datamodel bevat een unair één-op-veel relatie-type met betrekking tot A

1.  A wordt al gerepresenteerd via een relatie (tabel)

2. om het ER-relatie-type uit te drukken voegen we een attribuut (of attributen) toe aan de relatie (tabel) dat refereert naar de primaire sleutel

Page 37: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld unair veel-op-veel relatie-type

PRODUKT

NAAMPRODUKTNUMMER PRIJS

BevatAANTAL

PRODUKT(PRODUKTNUMMER, NAAM, PRIJS)BEVAT(PRODUKTNUMMER, ONDERDEELNUMMER, AANTAL)

Page 38: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Unair veel-op-veel relatie-type

• stel het datamodel bevat een unair veel-op-veel relatie-type met betrekking tot A

 

• A wordt al gerepresenteerd via een relatie (tabel)

 

• er wordt een nieuwe relatie B gevormd voor het ER-relatie-type– de primaire sleutel van B is een combinatie van tweemaal de

primaire sleutel van A – eventuele attribuut-typen van het ER-relatie-type worden niet-

sleutel attributen van B

Page 39: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

Voorbeeld ISA-relatie-type

STRANDHUIS

ADRES

SKI?

CHALET

AFSTAND-TOT-ZEE

VAKANTIEHUISADRES HUUR

PLAATS AANTAL-KAMERS

ISA ISA

PLAATS ADRES PLAATS

VAKANTIEHUIS(ADRES, PLAATS, AANTAL-KAMERS, HUUR)STRANDHUIS(ADRES, PLAATS, AFSTAND-TOT-ZEE)CHALET(ADRES, PLAATS, SKI?)

Page 40: Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5.

ISA-relatie-type

• stel het datamodel bevat een ISA-relatie-type

• er is al een relatie voor elke betrokken (sub)klasse

• de tabel voor de superklasse heeft slechts die attributen die alle (sub)klassen gemeenschappelijk hebben

• de tabel van een subklasse heeft behalve de primaire sleutel slechts die attributen specifiek voor de subklasse