ontwerp een datamodel criteria voor een goed model ontwerppatronen
DESCRIPTION
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen. SQL deel 2: datamodel ontwerp. Datamodel Criteria Proces. Modulariteit. Op te leveren in week 9: één document met daarin. Domein afbakening Entiteiten Relatie Diagram Tabel Definities Eventueel voorbeeld Data - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/1.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
ontwerp een datamodel
Criteria voor een goed model
Ontwerppatronen
![Page 2: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/2.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
SQL deel 2: datamodel ontwerp
Datamodel
Criteria
Proces
![Page 3: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/3.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Modulariteit
User interface
Bussines logic
Data repository
![Page 4: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/4.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Op te leveren in week 9: één document met daarin
Domein afbakening Entiteiten Relatie Diagram Tabel Definities Eventueel voorbeeld Data Views / Voorbeeld Queries
Reflectie: wat heb je geleerd, wat heb je nog niet geleerd.
![Page 5: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/5.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Criteria
Vaardigheden: SQL, genormaliseerd ERD Jargon, terminologie, vaktermen Bronnen en gereedschappen Overdraagbaar, begrijpelijk: documentatie Zinvolle, relevante toepassing Samenwerking, advies vragen en geven Interesse en ontwikkeling
![Page 6: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/6.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
voorwaarden Op tijd inleveren:
Week 9 Correct nederlands:
Weinig taalfouten Gestructureerd document
Titel, inhoudsopgave, paginanummers, etc. Compleet :
Met bijlagen of links naar broncode Voorzien van metadata:
Naam, nummer, klas, datum, vak, beoordelaar Reflectie:
Beschrijf waarom jij vind dat je aan de criteria voldoet.
![Page 7: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/7.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Ontwerpmethode1. Afbakening van het domein
1. 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. Implementatie ERD in DBDesigner/OpenOffice/?1. Datatypen 2. Views
------------------------------------------------------------------------------------3. * Contraints 4. * Waarborgen integriteit ( stored procedures, triggers, etc)5. * Optimaliseren perfomance ( indexen e.a. maatregelen )
* Niet verplicht voor een V
![Page 8: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/8.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Plan van aanpak
Wk 6: afbakening van het domein
Huiswerk: versie 1 van het conceptueel datamodel Wk 7: criteria voor goed datamodel
Huiswerk: versie 2 van het conceptueel datamodel Wk 8: afronden
implementatie en documentatie datamodel Wk 9: rooster vrij
di: inleveren definitief datamodel per email Wk 10: feedback
feedback en herkansing toets
![Page 9: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/9.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Afbakening
Welke informatie zal de database bevatten? Tot op welke details?
entiteiten en/of functionaliteiten ?
- Welke ‘entiteiten’ behoren tot het domein? En welke niet?
- Welke functies zal de database moeten kunnen vervullen? Wat moet een gebruiker kunnen doen? ( use case diagram )
![Page 10: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/10.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Sterke en zwakke entiteiten
Niet alle entiteiten zijn even belangrijk in het datamodel.
Sterke entiteiten 2 to 5 kern-entiteiten Worden in ieder geval in het model opgenomen, ook
als andere entiteiten er niet zouden zijn. Raken de essentie van je concept
Zwakke entiteiten Beschrijven veelal relaties tussen sterke entiteiten Zijn afhankelijk van sterke entiteiten.
Opzoeklijstjes
![Page 11: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/11.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Opdracht
Identificeer de belangrijkste ‘sterke’ entiteiten Identificeer relaties tussen deze entiteiten Maak een eerste ‘conceptueel’ datamodel
NB:
- Beperk je tot 2 tot 5 entiteiten
![Page 12: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/12.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Vorige week.
eerste versie van een ERD voor jouw collectie database, waarbij de nadruk ligt op Zijn alle belangrijkste entiteiten gevonden Zijn de attributen in kaart gebracht Zijn de relaties in kaart gebracht
Vergelijk met je use case. Is het datamodel een basis voor alle gebruiksmogelijkheden?
![Page 13: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/13.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Criteria voor een goed datamodel
![Page 14: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/14.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Stap 2: datamodel ( ERD )
Criteria voor een goed model
1. Naamgevingsconventies
2. “3de normaalvorm”
Voor teggies volgende week3. Integriteit waarborgen.
Middels triggers, stored procedures, e.d.
4. Optimalisatie.Indexeren, views
![Page 15: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/15.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Naamgeving (algemeen)
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 16: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/16.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Tabelnaam: enkelvoud
Tabel naam: Naam van de entiteit op één rij Enkelvoud
forum berichtID auteur tekst datum
bericht ID auteur tekst datum
berichten berichtID auteur tekst datum
![Page 17: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/17.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Tabelnaam: enkelvoud
Tabel naam: Naam van de entiteit op één rij Enkelvoud
catalogus productID naam prijs datum
product ID naam prijs datum
producten productID naam prijs datum
![Page 18: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/18.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Naamgeving attribuut/kolom De ‘scope’ van betekenis is de entiteit
( de sql code wordt dan leesbaar )
bij FK’s: de naam van de relatie als prefix. (vaak is dat ook de naam van de tabel waarnaar wordt verwezen)
bericht berichtID berichtauteur berichtTekst datum
bericht ID auteurID tekst datum
![Page 19: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/19.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Opdracht: datamodel versie 1
Controleer je datamodel op bovengenoemde naamgevingsconventies.
![Page 20: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/20.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Stap 2: datamodel ( ERD )
Criteria voor een goed model
1. Naamgevingsconventies
2. “3de normaalvorm”
Voor teggies3. Integriteit waarborgen.
Middels triggers, stored procedures, e.d.
4. Optimalisatie.Indexeren, views
![Page 21: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/21.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
“3de normaalvorm”
Regel 1: éénduidige betekenissen
Als je ingewikkelde ‘als-dit,dan-dat’ constructies of procedures nodig hebt om de betekenis van je elementen uit te leggen zit je fout.
Regel 2: géén redundantie
Data mag maar één keer voorkomen, zodat het praktisch ommogelijk is dat de database inconsistente informatie bevat (waarborgt de integriteit)
![Page 22: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/22.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
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 studenten is ‘contact’ een emailadres en bij
docenten is ‘contact’ een telefoonnummer.
![Page 23: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/23.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Vermijdt redundantie ( 1 )
Iedere rij in een tabel bevat attributen van één entiteit en niets dan attributen van die ene entiteit.
Iedere rij heeft een unieke sleutel ( of gecombineerde sleutel )
voetballer ID naam club trainer
voetballer ID naam clubID
club ID trainer
![Page 24: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/24.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Hoe ver moet je gaan?
voetballer ID naamID clubID adresID
club ID naam trainer
adres ID straat postcode plaats
naam ID voornaam achternaam
![Page 25: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/25.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Hoe ver moet je gaan
persoon ID voornaam achternaam adresID
club ID naam trainerID adresID
adres ID straat postcode plaats
Is_voetballer_bij_club persoonID clubID
![Page 26: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/26.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Hoe ver moet je gaan
persoon ID voornaam achternaam adresID
club ID naam adresID
adres ID straat postcode plaats
Is_lid_van_club persoonID clubID rol [speler,trainer]
![Page 27: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/27.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Vermijdt redundantie (2)
Data-elementen die afgeleid kunnen worden mogen niet in de tabel voor komen
product ID prijs btw Prijs_inc_btw
product ID prijs btw
![Page 28: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/28.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Voorbeelden van misontwerp http://www.sum-it.nl/cursus/dbdesign/hollands/index.php3
![Page 29: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/29.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
“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 30: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/30.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
opdracht
Controleer je datamodel op ‘3de normaalvorm’ Verbeter indien nodig, en maak nieuwe ERD
Vergelijk met je use case. Is het datamodel een basis voor alle gewenste gebruiksmogelijkheden?
![Page 31: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/31.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
huiswerk Download DBDesigner4 of OpenOffice
Maak een genormaliseerde versie van een ERD voor jouw collectie 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
Vergelijk met je use case. Is het datamodel een basis voor alle gebruiksmogelijkheden?
![Page 32: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/32.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Werken met DBdesigner
Relaties leggen Gebruik alleen de 1ste ( one-to-many) en de
3de (many-to-many) relatietype
DBDesigner en mySQL Connectie met mySQL
Database, naam, wachtwoord -> connect Database Synchronization
Model doorvoeren in mySQL
![Page 33: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/33.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
DataModellen
Ontwerppatronen
Lees reader deel 2
![Page 34: ontwerp een datamodel Criteria voor een goed model Ontwerppatronen](https://reader035.vdocuments.site/reader035/viewer/2022062500/5681585a550346895dc5b612/html5/thumbnails/34.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Opdracht ( vijf minuten )
Controleer je datamodel op de volgende punten:Naamgeving:1. Is de naamgeving goed? (enkelvoud)Normalisatie:2. Zijn alle data-elementen ‘atomair’?3. Bevat het model redundante data-elementen?Relaties:4. Is bij iedere relatie de multipliciteit bepaald?5. Is de multipliciteit vertaald naar correcte relaties?
many-to-one = FK in ‘many’-tabel naar PK in ‘one’-tabel Many-to-many = tussen tabel ( zwakke entiteit )
Ontwerppatronen:4. Welke ontwerppatronen uit de reader gebruik je.?