De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

ANALYSE 3 INFANL01-3 WEEK 3 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Kardinaliteit vs optionaliteit ▸ Speciale Relatietypen (meer op meer,

Verwante presentaties


Presentatie over: "ANALYSE 3 INFANL01-3 WEEK 3 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Kardinaliteit vs optionaliteit ▸ Speciale Relatietypen (meer op meer,"— Transcript van de presentatie:

1 ANALYSE 3 INFANL01-3 WEEK 3 CMI Informatica

2 ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Kardinaliteit vs optionaliteit ▸ Speciale Relatietypen (meer op meer, transitie, xor) ▸ Subtypen van entiteiten ▸ Informatie uit een tabel: ▸ Projectie, Selectie, datatypen, operatoren, ordening ▸ Inleiding in SQL (DDL, DML, DCL, DTL) CRUD ▸ CREATE, INSERT en SELECT statements

3 VORIGE LES

4 Normaliseren Waarvoor is het toepassen van normaliseren nuttig? Welke normaalvormen zijn vorige les behandeld?

5 RELATIONELE DATABASES

6 Wat is een relationele database (RDBMS)? Een RDBMS is een systeem :  met gegevens in de vorm van tabellen  het verband tussen twee tabellen(entiteiten) wordt relatie genoemd  waarin SQL wordt gebruikt om tabellen te manipuleren en op te vragen SQL

7 Relaties modeleren Een relatie geeft weer hoe een verband is gelegd tussen twee entiteiten(tabellen) verbindt twee entiteiten of een entiteit met zich zelf is bi-directioneel heeft een naam heeft optionaliteit heeft kardinaliteit

8 Optionaliteit Een relatie kan verplicht of optioneel zijn Elke medewerker moet op een afdeling werken Elke student kan zich inschrijven voor een cursus Welke relatie is optioneel/verplicht en hoe kun je de optionaliteit modeleren in Barker notatie en UML? Elke medewerker moet op een afdeling werken Elke student kan zich inschrijven voor een cursus

9 Optionaliteit modeleren Een relatie kan verplicht of optioneel zijn Elke medewerker moet op een afdeling werken Elke student kan zich inschrijven voor een cursus Welke relatie is optioneel/verplicht en hoe kun je de optionaliteit modeleren in Barker notatie en UML? Barker NotatieUML optioneel verplicht

10 Kardinaliteit Kardinaliteit bij een relatie geeft aan of de relatie eenvoudig of meervoudig is. Het is niet altijd mogelijk de hoeveelheid van te voren te bepalen. Elke student kan zich alleen voor een cursus inschrijven Elke klant kan meerdere tickets bestellen Welke kardinaliteit hebben deze relaties? Hoe kun je de kardinaliteit modeleren in Barker notatie en UML?

11 Kardinaliteit modeleren

12 Speciale relaties: meer-op-meer Een meer-op-meer (M:N) relatie is lastig in een fysiek model te implementeren. Het wordt geadviseerd om het te vervangen door twee een-op-meer relaties.

13 Voorbeeld meer-op-meer relatie

14 Oplossen N:M

15 Los nu zelf op

16 Speciale relaties: transitie van een relatie (transferability) In sommige situaties kun je een relatie achteraf niet wijzigen. Er is dan sprake van “non- tranferable relationship” Voorbeeld: een persoon die zijn rijbewijs heeft gehaald. Kan een persoon zijn rijbewijs overdragen naar een andere persoon? Hoe kun dit modeleren? Hoe kun je dit implementeren in je database?

17 Voorbeeld transitie van een relatie (transferability)

18 Speciale relaties: XOR (mutually exclusive relationships ) Een entiteit kan relaties hebben met andere entiteiten. In sommige situaties kan maar een relatie mogelijk zijn. Voorbeeld: een medewerker verdient zijn geld op uur-basis of krijgt een salaris per maand

19 Voorbeeld XOR in Barker notatie Hoe kun je XOR relatie implementer en in het fysieke model?

20 Oefening meer-op-meer en XOR Oefening 1: hoe kun je deze meer-op-meer relatie oplossen in twee een- meer-relaties? Oefening 2: Een ticket van een concert kan besteld worden door een agent, een ticketbureau of via het internet. Een ticket heeft een beschrijving. Een event heeft een datum en een prijs. Een agent heeft een naam en een telefoonnummer. Een ticketbureau heeft een adres en een telefoonnummer. Voor internet bestellingen wordt de URL opgeslagen. Teken alle entiteiten en de relaties daartussen in een ERD!

21 Supertypen en subtypen Wat is het supertype? Wat is het subtype? Hoe kun je dit implementeren in een fysiek model?

22 Voorbeeld Er is een fiets. Fietsen bestaan uit een frame, een zadel, wielen, een stuur en overige onderdelen. Van een dames frame wordt bewaard, wat de maximale instaphoogte is. Bij een heren frame wordt bewaard of er een bidonhouder geïntegreerd is. VRAAG: Wat is een ‘normale entiteit’, wat is een supertype, wat is een subtype?

23 Structured Query Language (SQL)

24 Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet ‘HOE’ !!!)  werkt met verzamelingen (Engels:’set’)  input : tabel(len) -> output (tabel)  heeft een hoger abstractieniveau dan 3GL zoals Java,C,...

25 Wat is SQL (2)? er zijn 4 soorten classificaties voor SQL queries:  DDL (data definition language) bijv. CREATE TABLE....  DML (data manipulation language) bijv. SELECT / INSERT / UPDATE  DCL (data control language) bijv. GRANT USER  TCL (tranaction control language) bijv. COMMIT

26 SQL DDL: Definitie van de database structuur  definieer : tabellen, kolommen + domein, sleutels  met SQL (DDL), bijv : CREATE TABLE patient( PAT# smallint not null, PNAAM char(32), LEEFTIJD smallint, GESLACHT char(1), ARTS char(32), primary key (PAT#));

27 Aan de slag - mini case broodjeszaak De broodjeszaak op de hoek heeft verschillende broodjes. Elk broodje heeft een recept. In het recept kun je lezen welke ingrediënten er op een broodje zitten en welk broodje er voor nodig hebt. De broodjeszaak wil bijhouden hoeveel, van welk broodje de medewerkers verkopen. De medewerkers houden bij welke ingrediënten ze gebruiken.

28 Voorbeeld gegevens (1) IDNaam B Bruine pistolet CCiabatta WWitte pistolet WAWaldkornbol BWBoterham wit BB Boterham bruin IDNaamBeleg HHam KKaas SSpek EEi RRosbief FFricandeau HHamburger VVegaburger BBrie SSaté CCervelaat ZZalmsalade OOmelet P_nrVoornaamAchternaam 111JanKlaasen 112HansJansen 113PietPaaltjes 115IrmaDoorn 117KennaBaas DatumMedewerkerBroodjeBeleg NRIngredient 1Sla 2Zout 3Peper 4Mayo 5Cedarkaas 6Hamburgersaus 7Vegaburgersaus 8Huissaus 9Augurk 10Kruiden

29 Voorbeeld gegevens (2) Naam broodjeBroodjeIngredient 1Ingredient 2Ingredient 3Ingredient 4Ingredient 5Ingredient 6 GezondCHamKaasEiSlaTomaat Tosti witBWHamKaas Tosti bruinBBHamKaas B Sla HamW Sla RosbiefWARosbiefZoutPeper HamburgerC SlaKaasTomaat Hamburgers aus VegaburgerWAVegaburgerSlaTomaatAugurk Vegaburgers aus BrieB Sla SatéWSate Gebakken uitjes Sla CervelaatB Sla ZalmsaladeW Sla OmeletWAEiMelkKruidenKaas Spek en EiCEiSpekBoter Huis specialWACervelaatSlaTomaatAugurkCedarkaasHuissaus

30 Broodjeszaak – eerst zelf in 2-tallen 1. Welke gegevensstructuur zou handig zijn? 2. Hoe ga je met SQL de gekozen structuur maken?

31 Domein (Datatypen) Voorbeelden:  CHAR (n), VARCHAR (n)  INTEGER, SMALLINT, TINYINT  DATE, TIME, TIMESTAMP  (user defined types)

32 NULL  null : onbepaald, niet gespecificeerd  heeft niets te maken met 0  null waarden kun je niet vergelijken

33 Projectie (SELECT) en selectie (WHERE)

34 Vullen van de database  importeren (in MySQL bijv. als tab delimited tekstfile)  tekst-file met INSERT statements  met de hand (command-line) INSERT INTO student VALUES(‘S1’,’Janssen’,’O1’); INSERT INTO student VALUES(‘S2’,’Lopes’,’O1’); INSERT INTO student VALUES(‘S3’,’Smit’,’O3’); INSERT INTO student VALUES(‘S4’,’Meijer’,’O2’);

35 Manipuleren van gegevens  de inhoud (verzameling rijen) van een tabel wordt gemanipuleerd/getoond  met SQL (DML), bijv.:  INSERT INTO patient VALUES (23, ’Jansen’, 32, ’M’, ’Oei’);  SELECT * FROM patient WHERE leeftijd>30;  UPDATE patient SET leeftijd= 33 WHERE id = 2  DELETE FROM patient WHERE id = 2

36 Vul de database van de broodjeszaak Zie excel op Maak zelf verkoopgegevens en vul deze tabel ook.

37 Relationele algebra

38 Relationele Algebra: vereniging (UNION) SELECT * FROM verz UNION SELECT * FROM wegb  voorwaarde: aantal en domein v/d attributen komt overeen

39 Relationele Algebra: verschil (EXCEPT) SELECT * FROM verz EXCEPT SELECT * FROM wegb  volgorde is van belang ! (verz - wegb) <> (wegb-verz)

40 Relationele Algebra: doorsnede (INTERSECT) SELECT * FROM verz INTERSECT SELECT * FROM wegb

41 Relationele Algebra: projectie (SELECT) SELECT kenteken FROM verz

42 Relationele Algebra: selectie (SELECT... WHERE..) SELECT * FROM verz WHERE naam = ‘jan’ selectie van rijen die aan voorwaarde voldoen

43 Relationele Algebra: product of JOIN SELECT * FROM man, vrouw alle mogelijke combinaties!

44 Manipuleren van gegevens Nogmaals :  met SQL DML manipuleer je complete tabellen als verzamelingen!!! (dus NIET de individuele rijen)  voor ELKE bewerking geldt:  input : 1 of meer tabellen  output : 1 tabel  Dit is de formele basis van SQL

45 Oefening 1. Hoeveel recepten zijn er? 2. Zijn er recepten met meer dan 3 ingrediënten? 3. Hoeveel recepten bevatten sla? 4. Hoeveel broodjes zijn door medewerker Irma verkocht?

46


Download ppt "ANALYSE 3 INFANL01-3 WEEK 3 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Kardinaliteit vs optionaliteit ▸ Speciale Relatietypen (meer op meer,"

Verwante presentaties


Ads door Google