Database Design Leerlijn

Deze lessenserie is verouderd en is opgevolgd door Lessenserie Databases en Ontwerpen van Informatiesystemen.

Eloq Arch

  1. Lees het boek.PDF. Doe de exercises bij elk hoofdstuk.

2. De belangrijkste onderwerpen doen we ok op video: ER Diagrammen (draw.io) en de Database realisatie (adminer)

Disclaimer: Ik ben geen theorie-purist dus de woorden database en DBMS/MS worden door elkaar heen gebruikt. Als je maar weet dat er ‘database’-systemen zijn die geen RDBMS zijn (Cassandra, NoSQL, MongoDB) en dat in de RDBMS die MySQL of MariaDB heet er meerdere databases zijn, voor elke toepassing minstens 1.

StofBoek = Lezen / snappen + de exercises in het boekVideo = na kunnen doen
Database Design, Adrianna Watt(source). PDF van 10Mb
Week 1.Basistermen: data, field, record, file, waarom een database, redundancy, data integrity, data consistency. Chapter 1: Before the advent of Databases. Doe de exercises onderaan de pagina.
Chapter 2. Fundamental Concepts
Week 2* Alle voordelen en functies van een database / RDBMS.
* Data Modellering.
* Skip “Physical Modeling” tenzij pro.
* Begrippen: Key, Primary Key, Foreign Key
Chapter 3. Characteristics and Benefits of a Database Translate every forking word you don’t get.
Chapter 4. Types of data models. Lekker belangrijk, heel snel doorbladeren dan.
Chapter 5 Data Modeling. Hier Gaat Het Om Ja !
* Kijken:
Designing an ER-Diagram by Mike Dane
* Opdracht:
Maak deze na in Draw.io, maak de 3 tabellen en leg de relaties netjes (1:1 / 1:n / n:m)

Week 3. ER Diagrammen tekenen

Kijk de video op ER Diagrammen en tabellen.

Het ER-diagram is een techniek die al tientallen jaren bestaat en internationaal gebruikt wordt. Ja, ook nu nog. Het is belangrij dat je:

  • geen zelfbedachte symbolen gebruikt
  • de symbolen gebruikt in correcte combinaties
  • de meest eenvoudige oplossing probeert te zoeken
  • geen zaken modelleert die buiten het systeem vallen.

Opdracht: maak een ER diagram bij de casus van je keuze. Overleg in een team van 2-3 personen. Het praatje over de casus is minstens zo leerzaam als het tekenen. Upload je diagram als PNG op ruim formaat incl. de lastigste keuzes naar je scrapbook.

Vraag als team een database account aan voor jullie samen ivm de opdracht in week 4.

Kies je Casus

Voor de betere leerlingen van V5: doe de Pro Casus. Anderen: de Prima Planten Casus

Casus “Prima” Planten

In een lokaal verzamelt de docent bijzondere planten. Hiervan wil hij registreren:

  • NL Naam
  • Latijse Naam
  • Foto (zelf genomen)
  • Benodigde zon
  • Benodigd water
  • Vermeerdering

De planten wil hij gaan vermeerderen bijv. door te stekken, te splitsen (wortelkluit doorsnijden met broodmes), zaden te winnen e.d. Leerlingen kunnen een exemplaar van een plant mee krijgen naar huis als zich aanmelden. Van de leerlingen registreert hij:Naam, Klas, Telefoon, Transportmethode (fiets / lopen / brengen met de auto). De aanmelding kan maar 1 plant tegelijk registreren voor 1 leerling, per aanmelding. Een leerling kan wel meerdere aanmeldingen doen. Verder wil je weten op welke datum de aanmelding is gedaan, op welke datum deze is geleverd en wat de status is (aangevraagd/geleverd/gecancelled). Van elke plant is bekend op welke manieren deze wordt vermenigvuldigd en hoeveel nakomelingen er per jaar worden verwacht van deze soort.

Het vermeerderen van de planten gebeurt wel maar dat gaan we niet opnemen in dit systeem. Evenals wie er wel of niet de planten water geeft.

Casus “Pro” De tandarts.

Om dit te kunnen modelleren kijk je nog de video “Complexe ER Diagrammen met M:N en Ternaire Relaties”.

Bij de tandarts werken allerlei personeelsleden, die elk meerdere rollen vervullen zoals assistent, tandarts, orthodontist, receptie en röntgen. Bij elke behandeling zijn er meerdere personeelsleden in verschillende rollen betrokken. Ook kan het zijn dat je een rol niet meer hebt, maar vroeger wel had. Dat heeft ook te maken met de diploma’s die iemand heeft en welke vereist zijn voor een bepaalde rol.

Van de patiënten zijn naast NAW (naam, adres, woonplaats) en de andere gebruikelijke gegevens ook IBAN nummer en de verzekeringsmaatschappij en het polisnummer bekend.

Behandeling van patiënten vindt plaats op een datum/tijdstip en deze wordt ingepland bij een tandarts. Er kan sprake zijn van een kindgebit of een volwassengebit. Voor de nummering van tanden en kiezen in dit gebit gebruiken we de internationale standaard. Van elke tand wordt nauwkeurig bijgehouden welke tandarts welke behanedling uitvoert op welke behandelmoment.

Aan elk van deze behandelingen is ook een kostprijs verbonden die ook nog onderhevig is aan een bepaald BTW tarief. De kosten van de behandeling worden vastgelegd in een factuur (factuurnummer, datum) die wordt opgestuurd naar de patiënt.

Dit is een fictief voorbeeld dat met name voor het medische gedeelte belangrijke details mist. Echter voor de casus gaan we er nu niet dieper op in dan dat we als leek kunnen begrijpen.

Week 4. Tabel Ontwerp Casus

Doe deze opdracht voor hetzij de Prima Planten of Pro Tandarts casus.

Teken de tabellen in Draw.io en realiseer het schema via adminer of een andere tool in Mysql. Check dat je in elke tabel de juiste foreign keys maakt naar de andere tabellen. Maak een presentatie (PPT) van je ER en je tabellen en geef deze presentatie voor de klas, live of via teams.

Foreign keys hoef je niet hard te maken. Wel in de tabellen met de ene ID die naar de andere wijst maar niet als aparte foreign key.

Dit is alleen voor puristen of als je € 60.000 per jaar verdient als Oracle consultant. [iSense]

Wat de functie doet is controleren of de FK ook verwijst naar een bestaand nummer. Referentiële Integriteit heet dat.

Wist je dat Eloq Arch het al jaren zonder doet en ook WordPress heeft er lak aan. Het maakt het wel makkelijker een backup terug te zetten, want geen gedoe.

Indexen

Als je een echte live app maakt ga je wel indexen maken, want dan loopt ‘ie een stuk sneller. Jij legt toch ook al je boeken op alfabet van titel? En je kleren netjes gesorteerd op soort? Dat scheelt een hoop zoektijd. Echter voor het ontwerp op zich boeien de indexen niet.

Triggers

Heet ook vaak Stored Procedures. Automatiseer taken. Zou zomaar handig kunnen zijn met het volgende project.

Afronden en Presenteren

Je maakt een eindpresentatie met duidelijke screenshots (exporteer PNG uit Draw.io). In je presentatie praat je IT-jargon, dus gebruik de juiste woorden en geen woorden als ‘alles’ of ‘dingen’.

In je presentatie

  • Doel van de opdracht
  • Casus samengevat
  • ER Diagram van je ontwerp
  • Tabellen schema van je ontwerp
  • Gebouwde ontwerp in Adminer.
  • Conclusie

Rubrics

3579+ 1 punt
Ontwerp ER / Tabellen SchemaJe gebruikt de symbolen onjuist.Het ontwerp is niet af of je kunt het niet correct toelichten.Je ER-diagram is een geschikte ontwerp voor de casus. Je kunt keuzes in je ontwerp toelichten in correct jargon Je hebt de pro casus genomen
Functionaliteit EindresultaatJouw database gaat nergens over.Je mist een flink stuk van de casus dat je wel had moeten hebben.Je kunt aannemelijk maken dat jouw database de casus oplossen.Je database is tot in detail geperfec-tioneerd. Je hebt de pro casus genomen
Online PresenterenJe bent wel op het kanaal maar de techniek moet je nog leren beheersen.Je hebt wel een presentatie maar die weet je niet te presenteren qua stem en muis. Je kunt je werkstuk voldoende belichten om te laten zien dat het aan de opdracht voldoet, maar er is nog een en ander te verbeteren (bediening / voorbereiding, stem) Een vlekkeloze presentatie, duidelijke lichaamstaal en een stemgebruik met bewuste intonatie, tempo en volume.
Presenteren voor de klasJe staat wel bij de TV maar je weet je niet hoe te presenteren qua stem en lichaamstaal en hulpmiddelen. Je hebt wel een presentatie maar die weet je niet te presenteren qua stem en lichaamstaal Je kunt je werkstuk voldoende belichten om te laten zien dat het aan de opdracht voldoet, maar er is nog een en ander te verbeteren (bediening / voorbereiding, stem, lichaamstaal) Een vlekkeloze presentatie, duidelijke lichaamstaal en een stemgebruik met bewuste intonatie, tempo en volume.

Eloquent Architect 161

Eloquent Architect 161