Databasemodellering

Databaseontwerp

Lis Sulmont

Curriculum Manager

Wat is databaseontwerp?

  • Bepaalt hoe data logisch wordt opgeslagen
    • Hoe wordt data gelezen en geüpdatet?
  • Gebruikt databasemodellen: high-level specificaties van de databasestructuur
    • Meest populair: relationeel model
    • Andere opties: NoSQL-modellen, objectgeoriënteerd model, netwerkmodel
  • Gebruikt schema’s: blauwdruk van de database
    • Definieert tabellen, velden, relaties, indexen en views
    • Bij het invoegen in relationele databases moeten schema’s gevolgd worden
Databaseontwerp

Datamodellering

Proces om een datamodel te maken voor de te bewaren data

1. Conceptueel datamodel: beschrijft entiteiten, relaties en attributen

  • Tools: datastructuurdiagrammen, bv. ER-diagrammen en UML-diagrammen

2. Logisch datamodel: definieert tabellen, kolommen, relaties

  • Tools: databasemodellen en schema’s, bv. relationeel model en stermodel

3. Fysiek datamodel: beschrijft fysieke opslag

  • Tools: partities, CPU’s, indexen, back-ups en tablespaces
1 https://en.wikipedia.org/wiki/Data_model
Databaseontwerp

Conceptueel - ER-diagram

ER-diagram van het liedjesvoorbeeld

Entiteiten, relaties en attributen

Logisch - schema

Logisch schema van het liedjesvoorbeeld

Snelste omzetting: entiteiten worden tabellen

Databaseontwerp

Andere opties voor databaseontwerp

Nog een mogelijk ER-diagram van het liedjesvoorbeeld

Tabellen bepalen

Nog een mogelijk ER-diagram van het liedjesvoorbeeld

Databaseontwerp

Voorbij het relationele model

Dimensioneel modelleren

Aanpassing van het relationele model voor datawarehouse-ontwerp

  • Geoptimaliseerd voor OLAP-queries: data aggregeren, niet updaten (OLTP)
  • Gebouwd met het stermodel
  • Schema is makkelijk te lezen en uit te breiden
Databaseontwerp

Elementen van dimensioneel modelleren

Feitentabel en dimensietabellen van het liedjesvoorbeeld

Orden op:

  • Wat analyseer je?
  • Hoe vaak veranderen entiteiten?

Feitentabellen

  • Bepaald door de businessusecase
  • Bevatten records van een metriek
  • Veranderen regelmatig
  • Koppelen aan dimensies via foreign keys

Dimensietabellen

  • Bevatten beschrijvingen van attributen
  • Veranderen minder vaak
Databaseontwerp

Laten we oefenen!

Databaseontwerp

Preparing Video For Download...