Datamodellering en –verwerking 8C020 college 3

Slides:



Advertisements
Verwante presentaties
Les 2 klassediagrammen II
Advertisements

SQL deel 2: datamodel ontwerp
Normaliseren Uitgangspunt
Stijn Hoppenbrouwers Software Engineering les 1 Algemene inleiding en Requirements Engineering.
Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Datamodellering en –verwerking 8C020 college 5. Terugblik college 4 • Zeikenhuis (RM) • Querytalen • SQL – Inleiding – Data definitie – Data manipulatie.
Meerdere tabellen: Relaties en Joins
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
1 Demo of Praktijk Over de problematiek bij het ontwerpen van informatiesystemen Mark Dumay Afstudeervoordracht 15 oktober 2004.
Entiteit-Relatie Model
Databank van een restaurant Download op Twee tabellen: Klanten: Alle klanten die minstens.
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
Van Nul naar Drie Normaliseren.
Normaliseren Datamodellering 2006.
Databases.
DATABASES Hoofdstuk
<Mdl01 hoorcollege 1>
Databases I Van EER naar relationeel
Opleiding AI cursus Databases
Base: bewerkingen 2 soorten - Oplopend- Aflopend.
LauwersCollege Buitenpost Informatica
Datamodellering en –verwerking 8C020 college 4
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
SQL & datamodelleren.
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
Opleiding AI cursus Databases
Vrij Technisch Instituut - Hasselt
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Databases I Relationeel Model Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve versie 2002.
Spatial subgroup mining
Presentatie Studiemiddag Indexen en Nadere Toegangen Ralph Stuyver, Projectmanager 4 maart 2010.
Workshop PHP Een productencatalogus Met database.
Datamodellen en databasemodellen
Databases.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Datamodellering en –verwerking 8C020 college 2
LauwersCollege Buitenpost Informatica
7 Databases. STRUCTURED QUERY LANGUAGE Bij het relationele model hoort een programmeertaal waarmee de database benaderd kan worden. In de praktijk wordt.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
1 Attributen Datamodellering Attribuut legt één feit vast over een entiteit  atomair overloaded attributes splitsen, b.v. NAW-gegevens correspondeert.
Databases I Het Entity-Relationship Model
Datamodellering en –verwerking 8C020 college 1ste week
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
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.
SharePoint Alles over metadata In de Private en Public cloud.
Databases.
– Software development fundamentals
SQL Cursus deel
LauwersCollege Buitenpost Informatica
Een computersysteem organiseert gegevens in een hiërarchie die begint bij een bit die de waarde 0 of een 1 vertegenwoordigt. Bits kunnen worden gegroepeerd.
Databases.
Promotie-onderzoek naar een 3D datamodellering
Datamodelleren FCO-IM methode.
SQL Les 6 14 April 2019.
SQL en Datanormalisatie
Technisch Ontwerp inhoud
– Software development fundamentals
Transcript van de presentatie:

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 Oefening E-R modeleren: Ziekenhuis

Onderwerpen college week 3 Relationeel Model Transformatie van ERM naar Relationeel Model Opdracht

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

Functie van databasemodel een volledig conceptueel model geeft een abstracte beschrijving van het te bouwen informatiesysteem datamodel beschrijft de relevante gegevens databasemodel beschrijft de relevante gegevens passend bij de te gebruiken databasesoftware het databasemodel specificeert dus hoe de informatie concreet wordt ondergebracht in een database

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 naam afgeleid van het belangrijkste concept: relatie relationeel (database)model een databasemodel voor relationele databases

Waarschuwing in het Nederlands kan verwarring ontstaan door dubbel gebruik van het woord relatie   in ER-model: relationship in Relationeel Model: relation

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 samennemen van relaties

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 onderbouwing en vele praktische voordelen

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

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) en uit een willekeurig aantal rijen   elke kolom correspondeert met een attribuut van de relatie elke rij correspondeert met een record (instantie, entiteit)

Voorbeeld WN1 WNID NAAM AFD SALARIS 100 Anna Bruinsma Verkoop 50.000   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 45.000 Afkorting van de structuur van die relatie: WN1(WNID, NAAM, AFD, SALARIS)

Atomaire waarden De waarden in de kolommen moeten atomair (ondeelbaar) zijn 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++ 13-11-94 190 Henk Israël Inkoop 39.500 Logistiek 8-3-94 150 Janny Kramer 45.000 Workflow 11-12-94

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

Domain bij elke kolom hoort een collectie van waarden die mogen 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

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

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 bereikt door 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 bereikt door te kiezen voor een verzameling van records

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  

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

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

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

Normalisatie 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 45.000   WN-CURSUS WNID CURSUS DATUM 100 PR 6-6-94 Word 1-12-94 140 Belastingen 25-8-94 110 C++ 13-11-94 190 Logistiek 8-3-94 150 Workflow 11-12-94

Transformatie van ERM naar Relationeel Model als we een relationeel databasemodel ontwerpen willen we het beschikbare datamodel gebruiken het transformeren van het datamodel naar een databasemodel is één van de belangrijkste stappen in de ontwikkeling (deel van) transformatiemethode: het representeren van entiteiten het representeren van relaties

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 veranderingen als het entiteit-type betrokken is in (ER)relatie-typen

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

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

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

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

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

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)

Voorbeeld binair veel-op-veel relatie-type

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

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

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

Unair één-op-veel relatie-type stel het datamodel bevat een unair éé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

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

Unair veel-op-veel relatie-type stel het datamodel bevat een unair 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

Voorbeeld ISA-relatie-type VAKANTIEHUIS(ADRES, PLAATS, AANTAL-KAMERS, HUUR) STRANDHUIS(ADRES, PLAATS, AFSTAND-TOT-ZEE) CHALET(ADRES, PLAATS, SKI?)

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 attributen die alle (sub)klassen gemeenschappelijk hebben de tabel van een subklasse heeft behalve de primaire sleutel slechts die attributen specifiek voor de subklasse