Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -

Slides:



Advertisements
Verwante presentaties
Informatieanalyse klassediagram I.
Advertisements

SQL deel 2: datamodel ontwerp
Normaliseren Inleiding.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Entiteit-Relatie Model
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normaliseren Datamodellering 2006.
<Mdl01 hoorcollege 1>
Opleiding AI cursus Databases
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Download en installeer de gereedschappen
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
SQL & datamodelleren.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Vorige week: Referentiele integriteit
Databases I Relationeel Model Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve versie 2002.
Presentatie Studiemiddag Indexen en Nadere Toegangen Ralph Stuyver, Projectmanager 4 maart 2010.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Internet Standaarden WG5 “ Examinations are formidable even to the best prepared, for the greatest fool may ask more than the wisest man can answer. ”
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Les 6 Toetsbespreking Introductie eindopdracht. toets  Download goede antwoorden en vergelijk met je eigen score.  Cijfer < 5.5 = herkansing week 4.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
Rotterdam, 00 januari 2007 Project 3 Vrijdag 21 november 2014 Verzamelen, analyseren en presenteren van gegevens.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
Week 6 BIMAIV03 les B1. DML en DDL ata D anipulation M anguage L ata D efinition D anguage L.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Week 1 BIMAIV03 Les B2 BIMAIV03 Les B2. Uit het voorgaande... CREATE TABLE... Opdracht om een nieuwe tabel binnen de database te creëren. Aandachtspunten.
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
Groep 6 Begrijpend lezen
– Software development fundamentals
1. Wat gaan we vandaag doen ?
LauwersCollege Buitenpost Informatica
INSTRUCTIE SPELER VOLG SYSTEEM SDCP
Spreken en gesprekken 2.2 en 2.3 Schrijven 1.5 en 1.6 Grammatica 3.3
SQL Les February 2019.
SQL Les 3 17 February 2019.
SQL Les 7 24 February 2019.
SQL Les 6 14 April 2019.
– Software development fundamentals
Transcript van de presentatie:

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese SQL deel 2: datamodel ontwerp Datamodel Criteria Proces

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht keuze  Platencollectie  Artiesten, groepen, platen, nummers, etc  Sporttoernooi  Teams, wedstrijden, uitslagen, etc  Schoolorganisatie  Studenten, klassen, vakken, werkgroepen, docenten, beoordelingen, etc  Familiebanden  Ouders, kinderen, huwelijken, etc.

doel  Inzicht verkrijgen: Het maken van een ERD vereist niet zozeer technische kennis en vaardigheden, maar vereist analytisch inzicht in het informatiedomein Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese

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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Op te leveren in week 10: één document met daarin  Domein afbakening  Entiteiten Relatie Diagram  Tabel Definities  Eventueel voorbeeld Data  Queries ( VIEWS )

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese gereedschap Maar het handigst is  Pen en veel papier  MySQL + mySQL Workbench

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Ontwerpmethode 1.Afbakening van het domein 1.Beschrijven van de relevante informatie 2.Beschrijven van gebruiksmogelijkheden (use cases) 2.Conceptueel model: ERD op papier ! 1.Benoemen van entiteiten, attributen en relaties 2.Entity relation diagram 3.Functionele toetsing 3.Fysiek model: ERD in dbWrench 1.Datatypen 2.Primary Keys & Foreign Keys 3.Views 4.** Constraints 5.** Waarborgen integriteit ( stored procedures, triggers, etc) 6.** Optimaliseren perfomance ( indexen e.a. maatregelen ) ** Niet verplicht voor een V

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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: implementatie van het Huiswerk: fysiek datamodel ( mySQLWorkBench)  Wk 9: roostervrij Huiswerk: uitwerken ERD  Wk 10: oplevering definitief implementatie en documentatie datamodel

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 ) -documenteer het resultaat!

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Ontwerp methode  Bottom-up  Van details verzamelen  Naar grote structuren vaststellen  Top-down  Van grote structuren ontwerpen  Naar details invullen

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese methode 1 : bottom-up ontwerp 1.Beschrijf in een stukje tekst de informatie die je gaat gebruiken in je project. 2.Maak enkelvoudige korte zinnen. 3.Onderstreep zelfstandige naamwoorden. 4.Verwijder naamwoorden die niet naar permanente gegevens verwijzen 5.Selecteer de kernwoorden ( verwijder synoniemen, onbelangrijke woorden )  entiteiten 6. werkwoorden verbinden entiteiten  relaties

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Methode 2 top-down ontwerp Niet alle entiteiten zijn even belangrijk in het datamodel.  Sterke entiteiten ( TOP )  2 to 5 kern-entiteiten  Worden in ieder geval in het model opgenomen, ook als andere entiteiten er niet zouden zijn.  Zwakke entiteiten  Beschrijven veelal relaties tussen sterke entiteiten  Zijn afhankelijk van sterke entiteiten.  Opzoeklijstjes

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht: top-down ontwerp  Identificeer de belangrijkste ‘sterke’ entiteiten  Identificeer relaties tussen deze entiteiten  Maak een eerste ‘conceptueel’ datamodel NB: -Beperk je tot 2 tot 5 entiteiten -Gebruik pen en papier

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht.  Maak een eerste versie van een ERD voor jouw collectie database op papier  Controleer  Zijn alle belangrijkste entiteiten gevonden?  Zijn de attributen in kaart gebracht?  Zijn de relaties in kaart gebracht?  Is het datamodel een basis voor alle gebruiksmogelijkheden?

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Criteria voor een goed datamodel

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Stap 2: datamodel ( ERD ) Criteria voor een goed model 1.Naamgevingsconventies 2.“3de normaalvorm” Voor teggies 3.Integriteit waarborgen. Middels triggers, stored procedures, e.d. 4.Optimalisatie. Indexeren, views

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht: datamodel versie 1  Controleer je datamodel op bovengenoemde naamgevingsconventies.

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Stap 2: datamodel ( ERD ) Criteria voor een goed model 1.Naamgevingsconventies 2.“3de normaalvorm” Voor teggies 3.Integriteit waarborgen. Middels triggers, stored procedures, e.d. 4.Optimalisatie. Indexeren, views

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese “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)

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 adres en bij docenten is ‘contact’ een telefoonnummer.

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Hoe ver moet je gaan? voetballer  ID  naamID  clubID  adresID club  ID  naam  trainer adres  ID  straat  postcode  plaats naam  ID  voornaam  achternaam

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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]

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Voorbeelden van misontwerp 

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese “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

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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?

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese huiswerk  Download mySQLWorkBench  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?

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Werken met mySQLWorkBench Demo

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese DataModellen Ontwerppatronen Lees reader deel 2

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.?