SQL deel 2: datamodel ontwerp

19
SQL DEEL 2: DATAMODEL ONTWERP Datamodel + DB schema Criteria

description

Datamodel + DB schema Criteria. SQL deel 2: datamodel ontwerp. Zelf een database maken , zie maar …. DVD/ CD collectie Artiesten, groepen, platen, nummers, etc Sporttoernooi Teams, wedstrijden, uitslagen, etc Schoolorganisatie - PowerPoint PPT Presentation

Transcript of SQL deel 2: datamodel ontwerp

Page 1: SQL deel 2: datamodel ontwerp

SQL DEEL 2: DATAMODEL ONTWERP

Datamodel + DB schema

Criteria

Page 2: SQL deel 2: datamodel ontwerp

ZELF EEN DATABASE MAKEN, ZIE MAAR …

DVD/ CD collectie• Artiesten, groepen, platen, nummers, etc

Sporttoernooi• Teams, wedstrijden, uitslagen, etc

Schoolorganisatie• Studenten, klassen , vakken, werkgroepen, docenten,

beoordelingen, etc

Familiebanden• Ouders, kinderen, huwelijken, etc.

Page 3: SQL deel 2: datamodel ontwerp

OP TE LEVEREN IN WEEK 9: ÉÉN DOCUMENT MET DAARIN

1. Domein afbakening

2. Entiteiten Relatie Diagram + toelichting

3. Tabel Definities

4. Eventueel voorbeeld Data

5. Queries ( VIEWS )

Page 4: SQL deel 2: datamodel ontwerp

ONTWERPEN

1. Afbakening van het domein1. Beschrijven van de relevante informatie2. Beschrijven van gebruiksmogelijkheden (use cases)

2. Conceptueel model: ERD op papier !1. Benoemen van entiteiten, attributen en relaties2. Entity relation diagram3. Functionele toetsing

3. Fysiek model: ERD in mySQL WorkBench1. Datatypen 2. Primary Keys & Foreign Keys3. Views

Page 5: SQL deel 2: datamodel ontwerp

HOE MAAK JE EEN ERD?

1. Zoek entiteiten• Meer dan één attribuut• Betekenisvolle business termen

2. Vraag je af welke relaties (soorten) er zijn tussen de entiteiten : 1 – op – 1, 1 – op – n , n – op – n

3. Vraag je af of de relatie verplicht is of optioneel

Page 6: SQL deel 2: datamodel ontwerp

VGM12 6

ENTITEITEN

Betekenisvolle business termen

Voorbeelden:

KLANT WERKNEMERPROJECT ORDER

Page 7: SQL deel 2: datamodel ontwerp

VGM12 7

ACHTERHALEN VAN DE KARDINALITEIT

AFSTUDEER-BEGELEIDER

STUDENT heeft

Vragen:•één student, hoeveel afstudeerderbegeleiders kan deze maximaal hebben?•kan een student ook géén afstudeerbegeleider hebben?

•Maximum: één afstudeerbegeleider, hoeveel studenten kan deze maximaal begeleiden?•kan een afstudeerbegeleider ook géén studenten begeleiden?

Page 8: SQL deel 2: datamodel ontwerp

ACHTERHALEN VAN DE KARDINALITEIT

VGM12 8

AFSTUDEER-BEGELEIDER

STUDENT heeft

Een student heeft geen ( bolletje) of één afstudeerbegeleider.Een afstudeerbegeleider begeleidt één (minimum) of meer (harkje) studenten.

child tabel parent tabel

Page 9: SQL deel 2: datamodel ontwerp

OPDRACHT.

Maak een eerste versie van een ERD voor Jari amusement op papier

Controleer• Zijn alle belangrijkste entiteiten gevonden?• Zijn de attributen in kaart gebracht?• Zijn de relaties in kaart gebracht?

Page 10: SQL deel 2: datamodel ontwerp

VAN ERD NAAR DATABASE SCHEMA

1 – op – 1 : in één van beide tabellen verwijssleutel

1 – op – n : alleen aan de n- kant een verwijssleutel ( harkje)

n – op – n : extra (koppel) tabel

Optioneel verwijssleutel mag NULL zijn

Verplicht verwijssleutel mag NIET NULL zijn (NN)

Gelukkig regelt MySQL Workbench .. Dit voor het grootste deel zelf.

Page 11: SQL deel 2: datamodel ontwerp

MYSQL WORKBENCH

1. Tabellen, recht toe recht aan

2. Relaties,

• Identifying• 1 – op – 1 , 1 – op – n , n – op – n

• NON identifying

• Klik eerst de child tabel, dan de parent tabel• Geef vervolgens op de juiste plek aan mandatory yes/no

Page 12: SQL deel 2: datamodel ontwerp

CRITERIA VOOR EEN GOED DATAMODEL

Page 13: SQL deel 2: datamodel ontwerp

NAAMGEVING

Geen spaties ( eventueel underscore _ )

Geen gekke karakters

Geen afkortingen

Niet beginnen met een cijfer

Consistent gebruik hoofdletters

Beschrijvend • De naam beschrijft het element precies,

• Laat niets te raden over.

• Liever een lange naam, dan een onduidelijke naam

Page 14: SQL deel 2: datamodel ontwerp

TABELNAAM: ENKELVOUDTabel naam: Enkelvoud

forum berichtID auteur tekst datum

bericht berichtID auteur tekst datum

berichten berichtID auteur tekst datum

Page 15: SQL deel 2: datamodel ontwerp

NAAMGEVING ATTRIBUUT/KOLOM

bericht berichtID berichtauteur berichtTekst datum

bericht berichtID auteurID tekst datum

Page 16: SQL deel 2: datamodel ontwerp

DATA-ELEMENTEN ZIJN ‘ATOMAIR’

Geen samengestelde waarden in één kolom• Fout: Voor+achternaam, straat+nummer+plaats

Geen herhalende waarden in één tabelcel

• Fout: Komma gescheiden lijst productnummers(wel: gebruik een aparte tabel)

Laat de betekenis niet afhangen van andere elementen• Fout: Bij temperatuur de ene keer Kelvin en de andere keer

Celcius.

Page 17: SQL deel 2: datamodel ontwerp

VERMIJDT REDUNDANTIEIedere rij in een tabel bevat attributen van één entiteit en niets dan

attributen van die ene entiteit, of is een verwijssleutel

Iedere rij heeft een unieke sleutel ( of gecombineerde sleutel )

Data-elementen die afgeleid kunnen worden mogen niet in de tabel voor komen

Page 18: SQL deel 2: datamodel ontwerp

“3DE NORMAALVORM”

Regel 1: eenvoud

Data-elementen zijn atomair

Regel 2: vermijdt redundantie

Per rij, een entiteit (zo niet dan tabel splitsen )

Geen kolommen die berekend kunnen worden

Geen relaties die afgeleid kunnen worden

Page 19: SQL deel 2: datamodel ontwerp

HUISWERK

Download mySQLWorkBench

Maak een genormaliseerde versie van een ERD voor jouw database, waarbij de nadruk ligt op • volledigheid

• Zijn alle belangrijkste entiteiten gevonden• Zijn de attributen in kaart gebracht• Zijn de relaties in kaart gebracht

• 3de normaalvorm• Atomaire data-elementen• Geen redundante data• Geen redundante relaties