1 / 40

Datamodellering en –verwerking 8C020 college 3

Datamodellering en –verwerking 8C020 college 3. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5. Terugblik college week 2. Aspecten van modelleren Meerwaardige atribuut-type Herhalende groep Tijdsafhankelijke gegevens Classificeren ISA relatie Constraints (Beperkingen) UML

kermit
Download Presentation

Datamodellering en –verwerking 8C020 college 3

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. Datamodellering en –verwerking8C020 college 3

  2. Extra uren (7 en 8) op maandag, 22 oktober, in Auditorium 5

  3. Terugblik college week 2 • Aspecten van modelleren • Meerwaardige atribuut-type • Herhalende groep • Tijdsafhankelijke gegevens • Classificeren • ISA relatie • Constraints (Beperkingen) • UML • Oefening E-R modeleren: Ziekenhuis

  4. Onderwerpen college week 3 • Relationeel Model • Transformatie van ERM naar Relationeel Model • Opdracht

  5. Software Life Cycle/Fasering analyseren Omgevings anlyse, ontwikkelingsplan (kosten en tijd) eisen Eisen, planning en begroting, haalbarheidsanalyse Conceptueel model specificeren Iplementatiemodel, handleidigen, testmodel ontwerpen coderen Code, onderhoudshandeling testen tesrapporten invoeren Installatie, acceptierapport onderhouden Correctief, preventief, modificatief

  6. Functie van databasemodel • een volledig conceptueel model geeft een abstractebeschrijving van het te bouwen informatiesysteem • datamodel • beschrijft de relevante gegevens • databasemodel • beschrijft de relevante gegevenspassend bij de te gebruiken databasesoftware • het databasemodel specificeert dus hoe de informatieconcreet wordt ondergebracht in een database

  7. Relationeel model • een databasemodel hangt af van het te gebruiken DBMS • in dit college richten wij ons op relationele databases • het begrip Relationeel Model (de relationele aanpak) duidt eigenschappen en randvoorwaarden aan voor het maken van databasemodellen voor relationele databases • naamafgeleid van het belangrijkste concept: relatie • relationeel (database)model • een databasemodel voor relationele databases

  8. Waarschuwing • in het Nederlands kan verwarring ontstaandoor dubbel gebruik van het woord relatie • in ER-model: relationship • in Relationeel Model: relation

  9. Transformatie • een databasemodel is een uitbreiding van een datamodel •  wij willen dus een relationeel databasemodel maken op basis van een ER-model • behoefte aan een transformatie van een ER-model naar een (relationeel) databasemodel • stapsgewijze transformatie: • representatie van entiteiten • representatie van relaties • normalisatie • samennemenvan relaties

  10. Relationele aanpak • Relationeel Model • geïntroduceerd in 1970 door Edgar F. Codd • Turing Award 1981 • ook bijdrage in het gebied van cellulaire automaten, “self-reproducing automata” • de relationele aanpak wordt nu beschouwd als de standaard • gegevens worden geordend in de vorm van relaties • relaties worden gerepresenteerd in de vorm van tabellen • de aanpak is gebaseerd op een wiskundige theorie:dit geeft een solide theoretische onderbouwingen vele praktische voordelen

  11. Drie componenten • datastructuren • gegevens zijn georganiseerd in de vorm van tabellen (relaties) • datamanipulatie • krachtige operaties om de opgeslagen gegevenste manipuleren • data-integriteit • faciliteiten voor het specificeren van (het behouden van) de integriteit

  12. Relatie • een relatie is te beschouwen als een twee-dimensionale tabel met gegevens • elke relatie heeft een • naam, • bestaat uit • een verzameling van kolommen(elk voorzien van een naam) enuit • een willekeurig aantal rijen • elke kolom correspondeert met een attribuut van de relatie • elke rij correspondeert met een record (instantie, entiteit)

  13. WN1 WNID NAAM AFD SALARIS 100 Anna Bruinsma Verkoop 50.000 140 Carla Dik Administratie 41.000 110 Eef Groen Informatiesystemen 49.000 190 Henk Israël Inkoop 39.500 150 Janny Kramer Verkoop 45.000 Voorbeeld Afkorting van de structuur van die relatie: WN1(WNID, NAAM, AFD, SALARIS)

  14. WN2a WNID NAAM AFD SALARIS CURSUS DATUM 100 Anna Bruinsma Verkoop 50.000 PR Word 6-6-94 1-12-94 140 Carla Dik Administratie 41.000 Belastingen 25-8-94 110 Eef Groen Informatiesystemen 49.000 C++ Word 13-11-94 1-12-94 190 Henk Israël Inkoop 39.500 Logistiek 8-3-94 150 Janny Kramer Verkoop 45.000 PR Workflow 6-6-94 11-12-94 Atomaire waarden De waarden in de kolommen moeten atomair (ondeelbaar) zijn

  15. WN2 WNID NAAM AFD SALARIS CURSUS DATUM 100 Anna Bruinsma Verkoop 50.000 PR 6-6-94 100 Anna Bruinsma Verkoop 50.000 Word 1-12-94 140 Carla Dik Administratie 41.000 Belastingen 25-8-94 110 Eef Groen Informatiesystemen 49.000 C++ 13-11-94 110 Eef Groen Informatiesystemen 49.000 Word 1-12-94 190 Henk Israël Inkoop 39.500 Logistiek 8-3-94 150 Janny Kramer Verkoop 45.000 PR 6-6-94 150 Janny Kramer Verkoop 45.000 Workflow 11-12-94 Atomaire waarden

  16. Domain • bij elke kolom hoort een collectie van waardendiemogen voorkomen in de kolom(als waarden voor dat attribuut) • zo'n collectie van waarden heet een domein • Voorbeeld: • bij WNID hoort een domein van identificatienummers • bij DATUM hoort een domein van examendata

  17. Unieke rijen • elke rij is uniek: • dit drukt uit dat records (instanties) uniek zijn • deze eigenschap wordt gegarandeerd door het aanwijzen van een primaire sleutel(uit de verzameling kandidaat-sleutels) • WN1: WNID of NAAM • WN2: WNID,CURSUS of NAAM,CURSUS • de waarden van de primaire sleutel mogen niet null zijn

  18. Volgorde irrelevant • de volgorde van kolommen is irrelevant:het maakt niet uit in welke volgorde de attributen worden vermeld • in de relationele aanpak wordt dit bereiktdoor te kiezen voor een verzameling van kolommen • de volgorde van rijen is irrelevant:het maakt niet uit in welke volgorde de records worden vermeld • in de relationele aanpak wordt dit bereiktdoor te kiezen voor eenverzameling van records

  19. Goed gestructureerd • bij het ontwerpen van relaties streef je naar • een minimum aan redundantie en • de situatie dat gebruikers rijen kunnen • toevoegen, • veranderen, of • wegnemen • zonder dat er fouten ontstaan

  20. WN2 WNID NAAM AFD SALARIS CURSUS DATUM 100 Anna Bruinsma Verkoop 50.000 PR 6-6-94 100 Anna Bruinsma Verkoop 50.000 Word 1-12-94 140 Carla Dik Administratie 41.000 Belastingen 25-8-94 110 Eef Groen Informatiesystemen 49.000 C++ 13-11-94 110 Eef Groen Informatiesystemen 49.000 Word 1-12-94 190 Henk Israël Inkoop 39.500 Logistiek 8-3-94 150 Janny Kramer Verkoop 45.000 PR 6-6-94 150 Janny Kramer Verkoop 45.000 Workflow 11-12-94 Een niet goed gestructureerde relatie

  21. Anomalieën • anomalie van toevoegen • nieuwe werknemer toevoegen • een waarde voor beide cursus en wind moet er ingevoerd worden • werknemer zonder cursus? • anomalie van verwijderen • verwijderen gegevens werknemer • als werknemer 140 wordt verwijderd zijn we de informatie kwijt dat er op 25-8-94 iemand een cursus heeft afgerond • anomalie van wijzigen • veranderen van salaris • moet in elk van de rijen voor de weknemer gebeuren • niet efficient

  22. Normalisatie • Probleem • WN2 bevat gegevens over tweeentiteiten • Oplossing • Verdeel zo’n relatie in twee relaties: WN1 en WN-CURSUS

  23. WN1 WN-CURSUS WNID WNID CURSUS NAAM DATUM AFD SALARIS 100 100 PR Anna Bruinsma 6-6-94 Verkoop 50.000 140 100 Word Carla Dik 1-12-94 Administratie 41.000 140 110 Belastingen Eef Groen 25-8-94 Informatiesystemen 49.000 110 190 C++ Henk Israël 13-11-94 Inkoop 39.500 150 110 Word Janny Kramer 1-12-94 Verkoop 45.000 190 Logistiek 8-3-94 150 PR 6-6-94 150 Workflow 11-12-94 Normalisatie

  24. Transformatie van ERM naar Relationeel Model • als we een relationeel databasemodel ontwerpenwillen we het beschikbare datamodel gebruiken • het transformeren van het datamodel naar een databasemodelis één van de belangrijkste stappen in de ontwikkeling • (deel van) transformatiemethode: • het representeren van entiteiten • het representeren van relaties

  25. Representatie entiteiten • Drie stappen: • elk entiteit-type wordt vertaald in een relatie • de primaire sleutel van het entiteit-type wordt de primaire sleutel van de relatie • elk niet-sleutel attribuut-type van het entiteit-type wordt een (niet-sleutel) attribuut van de relatie • er volgen mogelijk nog veranderingenals het entiteit-type betrokken is in (ER)relatie-typen

  26. KLANT KLANTNUMMER NAAM ADRES WOONPLAATS KORTING 1273 Super Spullen Markt 1 Eindhoven 10% 6333 Audiogigant Markt 3 Eindhoven 2% Voorbeeld ER: RM: KLANT(KLANTNUMMER, NAAM, ADRES, WOONPLAATS, KORTING)

  27. Representatie relaties • onderscheid tussen soorten relatie-typen: • binaire één-op-veel relatie-typen • binaire veel-op-veel relatie-typen • unaire één-op-veel relatie-typen • unaire veel-op-veel relatie-typen • ISA-relatie-typen

  28. Voorbeeld binaire 1-op-veel relatie KLANT(KLANTNUMMER, NAAM, WOONPLAATS, KORTING, ADRES) ORDER(ORDERNUMMER, ORDERDATUM, LEVERDATUM) PLAATST(KLANTNUMMER, ORDERNUMMER)

  29. Voorbeeld KLANT(KLANTNUMMER, NAAM, ADRES, WOONPLAATS, KORTING) ORDER(ORDERNUMMER, ORDERDATUM, LEVERDATUM, KLANTNUMMER)

  30. KLANT ORDER KLANTNUMMER ORDERNUMMER NAAM ORDERDATUM ADRES LEVERDATUM WOONPLAATS KLANTNUMMER KORTING 1273 57194 Super Spullen 15-3-94 Markt 1 28-3-94 Eindhoven 6333 10% 63725 17-3-94 1-4-94 1273 6333 Audiogigant Markt 3 Eindhoven 2% 80149 14-3-94 24-3-94 6333 Voorbeeld

  31. Binair één-op-veel relatie-type • stel het datamodel bevat een binair één-op-veel relatie-type tussen A en B • dit relatie-type wordt gerepresenteerd door het toevoegen van het primaire sleutel attribuut (of attributen) van A als attribuut van B •  zo'n niet-sleutel attribuut (ergens anders wel sleutel)heet een vreemde sleutel (foreign key)

  32. Voorbeeldbinair veel-op-veel relatie-type

  33. PRODUKT ORDER ORDERREGEL ORDERNUMMER PRODUKTNUMMER ORDERNUMMER ORDERDATUM PRODUKTNUMMER BESCHRIJVING LEVERDATUM KLANTNUMMER HOEVEELHEID 57194 M128 2 57194 M128 15-3-94 Boekenkast 28-3-94 6333 57194 A261 1 63725 A261 17-3-94 Wandmeubel 1-4-94 1273 R149 80149 14-3-94 Kastje 24-3-94 6333 Voorbeeld binair veel-op-veel relatie-type

  34. Binair veel-op-veel relatie-type • stel het datamodel bevat eenbinair veel-op-veel relatie-type tussen A en B • er wordt een nieuwe relatie C (tabel) gevormd • de primaire sleutel van C iseen combinatie van die van A en B • eventuele attribuut-typen (van het relatie-type)worden niet-sleutel attributen van C

  35. Voorbeeld unair één-op-veel relatie-type WERKNEMER(WNID, NAAM, GEBOORTEDATUM, MANAGER-ID)

  36. Unair één-op-veel relatie-type • stel het datamodel bevat eenunair één-op-veel relatie-type met betrekking tot A • A wordt al gerepresenteerd via een relatie (tabel) • om het ER-relatie-type uit te drukken voegen we een attribuut(of attributen) toe aan de relatie (tabel) dat refereert naar de primaire sleutel

  37. Voorbeeld unair veel-op-veel relatie-type PRODUKT(PRODUKTNUMMER, NAAM, PRIJS) BEVAT(PRODUKTNUMMER, ONDERDEELNUMMER, AANTAL)

  38. Unair veel-op-veel relatie-type • stel het datamodel bevat eenunair veel-op-veel relatie-type met betrekking tot A • A wordt al gerepresenteerd via een relatie (tabel) • er wordt een nieuwe relatie B gevormd voor het ER-relatie-type • de primaire sleutel van B is een combinatie van tweemaal de primaire sleutel van A • eventuele attribuut-typen van het ER-relatie-type worden niet-sleutel attributen van B

  39. VoorbeeldISA-relatie-type VAKANTIEHUIS(ADRES, PLAATS, AANTAL-KAMERS, HUUR) STRANDHUIS(ADRES, PLAATS, AFSTAND-TOT-ZEE) CHALET(ADRES, PLAATS, SKI?)

  40. ISA-relatie-type • stel het datamodel bevat een ISA-relatie-type • er is al een relatie voor elke betrokken (sub)klasse • de tabel voor de superklasse heeft slechts die attributendie alle (sub)klassen gemeenschappelijk hebben • de tabel van een subklasse heeft behalve de primaire sleutelslechts die attributen specifiek voor de subklasse

More Related