1 / 19

SQL deel 2: datamodel ontwerp

Datamodel + DB schema Criteria. SQL deel 2: datamodel ontwerp. Zelf een database maken , zie maar …. DVD/ CD collectie Artiesten, groepen, platen, nummers, etc Sporttoernooi Teams, wedstrijden, uitslagen, etc Schoolorganisatie

zared
Download Presentation

SQL deel 2: datamodel ontwerp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Datamodel + DB schema Criteria SQL deel 2: datamodel ontwerp

  2. Zelfeen database maken, zie maar … • DVD/ CD collectie • Artiesten, groepen, platen, nummers, etc • Sporttoernooi • Teams, wedstrijden, uitslagen, etc • Schoolorganisatie • Studenten, klassen , vakken, werkgroepen, docenten, beoordelingen, etc • Familiebanden • Ouders, kinderen, huwelijken, etc.

  3. Op te leveren in week 9: één document met daarin • Domeinafbakening • EntiteitenRelatie Diagram + toelichting • TabelDefinities • Eventueelvoorbeeld Data • Queries ( VIEWS )

  4. Ontwerpen • Afbakening van het domein • Beschrijven van de relevante informatie • Beschrijven van gebruiksmogelijkheden (use cases) • Conceptueel model: ERD op papier ! • Benoemen van entiteiten, attributen en relaties • Entity relation diagram • Functionele toetsing • Fysiek model: ERD in mySQL WorkBench • Datatypen • Primary Keys & Foreign Keys • Views

  5. Hoe maak je een ERD? • Zoek entiteiten • Meer dan één attribuut • Betekenisvolle business termen • Vraag je af welke relaties (soorten) er zijn tussen de entiteiten : 1 – op – 1, 1 – op – n , n – op – n • Vraag je af of de relatie verplicht is of optioneel

  6. Entiteiten Betekenisvolle business termen Voorbeelden: VGM12

  7. Achterhalen van de kardinaliteit • Vragen: • één student, hoeveel afstudeerderbegeleiders kan deze maximaal hebben? • kan een student ook géén afstudeerbegeleider hebben? • Maximum: één afstudeerbegeleider, hoeveel studenten kan deze maximaal begeleiden? • kan een afstudeerbegeleider ook géén studenten begeleiden? VGM12

  8. Achterhalen van de kardinaliteit Een student heeft geen ( bolletje) of één afstudeerbegeleider. Een afstudeerbegeleider begeleidt één (minimum) of meer (harkje) studenten. parent tabel child tabel VGM12

  9. Opdracht. • Maak een eerste versie van een ERD voor Jari amusement op papier • Controleer • Zijn alle belangrijkste entiteiten gevonden? • Zijn de attributen in kaart gebracht? • Zijn de relaties in kaart gebracht?

  10. Van ERD naar Database schema • 1 – op – 1 : in één van beide tabellen verwijssleutel • 1 – op – n : alleen aan de n- kant een verwijssleutel ( harkje) • n – op – n : extra (koppel) tabel • Optioneel  verwijssleutel mag NULL zijn • Verplicht  verwijssleutel mag NIET NULL zijn (NN) • Gelukkig regelt MySQL Workbench .. Dit voor het grootste deel zelf.

  11. MySQlworkbench • Tabellen, recht toe recht aan • Relaties, • Identifying • 1 – op – 1 , 1 – op – n , n – op – n • NON identifying • Klik eerst de child tabel, dan de parent tabel • Geef vervolgens op de juiste plek aan mandatory yes/no

  12. Criteria voor een goed datamodel

  13. Naamgeving • 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

  14. Tabelnaam: enkelvoud Tabel naam: Enkelvoud forum • berichtID • auteur • tekst • datum berichten • berichtID • auteur • tekst • datum bericht • berichtID • auteur • tekst • datum

  15. Naamgeving attribuut/kolom bericht • berichtID • berichtauteur • berichtTekst • datum bericht • berichtID • auteurID • tekst • datum

  16. 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 temperatuur de ene keer Kelvin en de andere keer Celcius.

  17. Vermijdt redundantie • Iedere rij in een tabel bevat attributen van één entiteit en niets dan attributen van die ene entiteit, of is een verwijssleutel • Iedere rij heeft een unieke sleutel ( of gecombineerde sleutel ) • Data-elementen die afgeleid kunnen worden mogen niet in de tabel voor komen

  18. “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

  19. huiswerk • Download mySQLWorkBench • Maak een genormaliseerde versie van een ERD voor jouw 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

More Related