DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met...

11

Click here to load reader

Transcript of DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met...

Page 1: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

1

1/33

Datamodelleren en databases 2011

Introductie

Leen Breure

2/33

Opzet van de cursus

• Twee hoorcolleges in totaal– week 1 en week 8 (14 juni)

• Wekelijks practicum: ca. 2 * 1 uur– 1 uur: ontwikkeling van eigen database

• toepassing van de handboekstof

• team-van-2: ontwerp en implementatie

– 1 uur: hulp en feedback bij weekopdrachten

Simon Pool

Pauline Hovers

3/33

Werkwijze per week

1. Handboekstof lezen *)2. Weekopdrachten maken3. Practicum:

– eventueel hulp vragen bij opdrachten– bespreking ingeleverde opdrachten

4. Practicum: voortgang eigen database bespreken (invullen template!)

5. Inleveren weekopdrachten

*) Zie ook de slides bij elk hoofdstuk

Page 2: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

2

4/33

Ontwerp eigen database

• Leerstof toepassen op je eigen wereld

• Begrenzing: niet te groot, niet te klein

• Requirements – datamodel – bevraging

• Ruimte voor individuele niveauverschillen

• Deliverable aan het einde: databaseontwerp (template) + database met data + queries

5/33

Toetsing

A. Weekopdrachten (individueel): 25%• alle opdrachten inleveren via Submit• enkele worden nagekeken: 0..8 (bonus: 9, 10)• niet te herkansen, wel te compenseren

B. Eigen databaseontwerp (team): 25%

C. Tentamen: 50%• mc-deel• modelleeropgaven (boek)

Proeftoets (alleen mc): tijdens practicum: 6 juni

6/33

Feedback

• Handboekstof: bij eigen databaseontwerp

• Weekopdrachten:stud. ass. bespreken nagekeken opgaven

• Eigen databaseontwerp: wekelijks

• Tentamen:– proeftoets

– inkijken na het tentamen

Page 3: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

3

7/33

Groepen en timeslots

• N = 60 4 vaste groepen: – elk ca. 15 personen

– lijst invullen!

• maandagmiddag

week-opgaven

databaseontwerp

Groep 4Groep 315-16 uur

Groep 3Groep 416-17 uur

Groep 1Groep 214-15 uur

Groep 2Groep 113-14 uur

BBL 103

overigezalen

8/33

Kalender

9/33

Is datamodelleren belangrijk?

“Data modeling is the hardest and most important activity in the RDBMS world.

If you get the data model wrong, your application might not do what users need, it might be unreliable, it might fill up the database with garbage”.

Philip Greenspun

http://philip.greenspun.com/sql/data-modeling.html

Page 4: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

4

10/33

Opmerkingen

• Datamodelleren = regels toepassenvoorbeelden nodig:– running example: Pine Valley

– je eigen database

• Datamodelleren = communiceren met klant

• Vaak belang pas ingezien, als het fout gaat kost geld, conflicten

• Doel van de cursus: iedereen op redelijk niveau database ontwerpen en datamodel kan beoordelen

11/33

Vragen over het praktische gedeelte?

Dan nu de inhoud van datamodelleren…

12/33

Datamodelleren: ontwerpen van de database = kern van informatiesysteem

data

requirements

bedrijfsproces

theoretisch databasemodelb.v. relationele database model

datamodel

diagram

Page 5: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

5

13/33

• Analyse van informatie & ontwerp database:– soorten entiteiten en hun attributen

– verbanden en afhankelijkheden

die bestaan in Universe of Discourse (UoD) = de “mini-wereld van de database”

• met als doel:– datamodel database-structuur

N.B.

Er is meestal niet een enkel goed model (varianten)

communiceren!

Dat wil zeggen…

14/33

Database en informatiesysteem

DBMS

15/33

Waarom een DBMS?

Wat is het verschil tussen A en B (implicaties)?

Page 6: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

6

16/33

DBMS data independence:

• Scheiding van de data en de programma’s

• Data access staat los van (veranderingen in) fysieke dataopslag

• In de database velden toevoegen / verwijderen zonder noodzakelijk programma’s aan te passen

• De data verwerkende programma’s worden robuust: immuun voor veranderingen in de database

17/33

Voorbeeld datamodellering

Hondenschool

18/33

Het begin lijkt makkelijk…

Maar wat te doen als iemand meer dan één hond heeft?

Redundantie!

Page 7: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

7

19/33

Dan anders…

Ook dit werkt niet:

• Voor hoeveel honden moeten er velden komen?

• Wat te doen met de attributen van ‘hond’ (m/v, soort, etc.)

• Ingewikkeld bevragen:

waar zit ‘Nero’ (Hond1 / Hond2 / Hond3)?

20/33

Maar wel zó…

1:N-relatie

primary key

primary key

foreign key

21/33

Methodologie

• Datamodelleren gaat in stappen

• Verschillen, afhankelijk van de gekozen methodolgie voor systeemontwkkeling

• Meestal 3 niveau’s:– conceptueel

– logisch

– fysiek

Page 8: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

8

22/33

• Conceptueel– de wereld die wordt vastgelegd in de database (Universe of

Discourse)– entitytypes en attributen

• Logisch– een datamodel toegesneden op de implementatie-omgeving,

b.v. een RDBMS– tabellen en velden

• Fysiek– technische specificatie van tabellen, veldlengte. veldtype,

etc. indexen, etc.

Niveaus van datamodelleren

23/33

Conceptueel: ER-model

ER = Entity-Relationship– top-down benadering

– bedacht door P. Chen (1976)

– entiteitsklassen (= entity types) met attributen

– relaties tussen deze entiteitsklassen

– requirements te modelleren - ERD te lezen als verzameling beweringen (assertions) over samenhang in UoD

– resulteert in ERD (entity-relationship diagram)

24/33

Varianten in notatie

Entiteiten en relaties

Entiteit met attribuut

Relatie met attribuut

De notatie met de “kraaiepoot”is eenvoudiger, maar ookbeperkter (relaties geenattributen)

Page 9: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

9

25/33

Voorbeeld ERD

entiteitsklassemag ook attribuutnamen bevatten, i.h.b. PK en FK

relatiemet cardinaliteit (connectivity) en labels

Hoe het diagram te lezen?

optionaliteit

26/33

Logisch: normaliseren

• Logische ontwerp houdt rekening met het theoretische opslagmodel– meestal het relationele database model (tabellen)

• ERD verzameling tabellen– normaliseren = techniek hiervoor

• Normaliseren in stappen = normaalvormen:– 1NF– 2NF– 3NF– etc.

27/33

Relationele tabel

etc.etc.etc.etc.etc.

EdeZuidwal 3JansenM.A.136

UtrechtVoorstraat 1VerhoogK.135

BredaWestzoom 12PietersJ.A.P.134

PlaatsAdresNaamInitKlantNr

cel (atomaire waarde)kolom = veld

rij = record = tuplerecords: verzameling volgordeniet relevant voor het model

tabel = relatie

Altijd rechthoekig dus geen spreadsheet-tabel

Page 10: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

10

28/33

8BasicProgram 1B741

Web infosysB952

15AdvancedInformationB951MaComp Apps

B94

Hardware 2B745

11MediumProgram 2B744

Data Proc 1B743

Hardware 1B742

8BasicProgram 1B741BaComp SciB74

Credits

StatusMod-nameModLevelCourse-name

Crse

• Speadsheet format (GEEN relationele tabel)• Repeating groups: 1 Course-name met N Mod-names

Niet genormaliseerd

29/33

Doel van normaliseren

• De juiste indeling in tabellen– welke attributen horen logisch bij elkaar

– elke tabel: één entiteitstype

• Sleutels (primary keys, foreign keys) vinden– minimale PK

– FK verwijst naar PK

• Redundantie vermijden

30/33

Fysiek: dataopslag & -toegang

• Veldlengtes

• Datatypes

• Primaire en secundaire indexen

• Disk space

• Client/server

• Autorisatie en beveiliging

• etc.

Page 11: DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met attributen ...

DMD-2011 Introductie

11

31/33

Wat is een goed datamodel?

1. Compleet

2. Niet-redundant

3. Implementeert business-rules

4. Data herbruikbaar voor meerdere doelen

5. Stabiel (t.o.v. bedrijfspraktijk)

6. Flexibel (uitbreidbaar)

7. Elegant

8. Helder (communicatie van concepten en regels)

9. Past in bredere data-architectuur

32/33

Rest van de cursus

I. Bevraging (SQL)

II. Database-applicaties

33/33

Voor volgende week

• Lees handboek

• Maak weekopdrachten

• Kies een onderwerp voor je database