De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

ANALYSE 3 INFANL01-3 WEEK 4 01-02-2014 CMI Informatica.

Verwante presentaties


Presentatie over: "ANALYSE 3 INFANL01-3 WEEK 4 01-02-2014 CMI Informatica."— Transcript van de presentatie:

1 ANALYSE 3 INFANL01-3 WEEK 4 01-02-2014 CMI Informatica

2 ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Anatomy van de SELECT statement ▸ Natural JOINS ▸ Hiërarchie en recursieve relaties ▸ Tijdaspecten ▸ Generics ▸ Integriteit regels en constraints

3 VORIGE LES

4 Wat is een relationele database (RDBMS)? Een RDBMS is een systeem :  met gegevens in de vorm van tabellen  waarin SQL wordt gebruikt om tabellen te manipuleren SQL

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

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

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

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

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

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

11 SELECT STATEMENT

12 SELECT (1) ::=   [ ]

13 SELECT (2) SELECTPNAAM,LEEFTIJD [kolommen] FROM PATIENT [tabel] WHERE LEEFTIJD > 50; [voorwaarde voor rij]

14 SELECT instructie: volgorde van uitvoeren (intern) SELECT [kolommen] [3] FROM [tabellen][1] WHERE [voorwaarde voor rij][2] ORDER BY [kolom][4] 1. FROM2. WHERE a b 3. SELECT4. ORDER BY

15 SELECT instructie: volgorde (voorbeeld) SELECTANO, ANAAM FROM A WHERE KLEUR=‘Blauw’ ORDER BY ANAAM 1. FROM A 2. WHERE KLEUR=‘Blauw’ 3. SELECT ANO, ANAAM 4. ORDER BY ANAAM

16 SELECT instructie: FROM component (definitie) ::= FROM [{, }...] ::= [[AS] ] ::= [.] tabelnaam

17 SELECT instructie: FROM component (voorbeeld) SELECT teamnr, naam FROM teams AS t,spelers AS s WHERE t.spelersnr = s.spelersnr Dit is een voorbeeld van een natural join

18 SELECT instructie: WHERE (operatoren etc) vergelijking: = = <> AND, OR, NOT BETWEEN, IN, LIKE, NULL IN met subquery vergelijkingsoperator met subquery ANY, ALL EXISTS

19 SELECT instructie: WHERE (voorbeelden)  WHERE GEB_DATUM > ‘1970-12-31’ AND NOT NAAM = ‘Haas’;  WHERE GEB_DATUM BETWEEN ‘1960-1-1’ AND ‘1970-1-1’;  WHERE NAAM IN (‘Smit’,’Jansen’,’Zwart’);

20 SELECT instructie: WHERE (IN met subquery) SELECT naam AS aanvoerder FROM spelers WHERE spelersnr IN (SELECT spelersnr FROM teams);

21 SELECT instructie: WHERE (EXISTS) SELECT naam AS aanvoerder FROM spelers WHERE EXISTS (SELECT * FROM teams WHERE spelersnr=spelers.spelersnr);

22 SELECT instructie: WHERE (ALL) SELECT naam+’ is het oudst’ AS oudste, geb_datum FROM spelers WHERE geb_datum <= ALL (SELECT geb_datum FROM spelers);

23 Natural JOIN  verschillende typen JOIN later behandeld  natural join: SELECT student.snaam,opleiding.onaam FROM student, opleiding WHERE student.opl=opleiding.opl;

24 Natural join in stapjes: 1. FROM - input SELECT.... FROM teams AS t,spelers AS s

25 Natural join in stapjes: 2. FROM - resultaat SELECT... FROM teams AS t, spelers AS s

26 Natural join in stapjes: 3. WHERE - input WHERE t.spelersnr = s.spelersnr;

27 Natural join in stapjes: 4. WHERE - resultaat SELECT... FROM teams AS t, spelers AS s WHERE t.spelersnr = s.spelersnr;

28 Natural join in stapjes: 5. SELECT - resultaat SELECT t.teamnr as teamnr, naam as aanvoerder FROM teams AS t, spelers AS s WHERE t.spelersnr = s.spelersnr;

29 ERD

30 Modeleren van hiërarchie Wat zijn voorbeelden van hiërarchieën voor relaties? organisaties en afdelingen categorieën en subcategorie andere voorbeelden uit je project ? Hoe kun je deze data modelleren? Hoeveel entiteiten heb je nodig?

31 Modeleren van hiërarchie

32 Modeleren van recursieve relaties Een recursieve of zelf-refererende relatie. In een relationeel database model kan een entiteit relatie hebben met zichzelf.

33 Modeleren van hiërarchie met recursieve relatie

34 Tijdaspecten - Audit trails (Logs) - Geschiedenis van de data

35 Generieke data modellen zijn classificaties(generalisatie) van een aantal sub entiteiten die een set van dezelfde attributen hebben In generieke data modellen worden ook afwijkende attributen per entiteit type opgenomen in dezelfde entiteit Generieke modellen reduceren het aantal entiteiten in je data model Opdracht: maak een ERD waarbij de verschillende entiteit types in een entiteit opgenomen worden.

36 Generieke data modellen (uitwerking) Wat zijn de voor- en nadelen van de generalisatie?

37 Integriteit regels en constraints Constraints zijn belangrijk om de database te ontwerpen, de mogelijkheid te bieden om de semantiek van de data te bepalen en te waarborgen. Er zijn vier verschillende integriteit regels voor data: Domein integriteit Entiteit integriteit Referentiele integriteit Gebruiker-specifieke integriteit

38 Domein integriteit ▸ Een domein bepaald de waarde van attributes: ▸ Datatypes en lengte ▸ Null waardes ▸ Toegestane waardes ▸ Standaard waardes CREATE TABLE dbo.Payroll ( ID int PRIMARY KEY, PositionID INT, SalaryType nvarchar(10), Salary decimal(9,2) CHECK (Salary < 150000.00) ); Welke waardes kun je bij salary opslaan?

39 Entiteit integriteit Iedere entiteit moet een attribuut of combinatie van attributen hebben waarmee elk tupel (rij) als uniek en aanwezig te identificeren is. Dat attribuut is de primary key of primaire sleutel.

40 Referentiele Integriteit spelernsnr in TEAMS verwijst altijd naar een bestaand spelersnr in SPELERS primary keyforeign key

41 Referentiele Integriteit spelernsnr in TEAMS verwijst altijd naar een bestaand spelersnr in SPELERS, dus moeten gesynchroniseerd blijven primary keyforeign key

42 CREATE TABLE teams ( teamnr SMALLINT NOT NULL, spelersnrSMALLINT NOT NULL, divisieCHAR(6) NOT NULL, PRIMARY KEY (teamnr), FOREIGN KEY (spelersnr) REFERENCES spelers (spelersnr) ); Referentiele Integriteit : referenties aangeven bij CREATE

43 Referentiele Integriteit refererende acties default (SOLID):  ON UPDATE RESTRICT  ON DELETE RESTRICT (dwz wijzigen/verwijderen van een spelersnr in de SPELERS tabel wordt tegengehouden als spelersnr in TEAMS voorkomt)

44 Referentiele Integriteit refererende acties alternatief 1: ON UPDATE CASCADE ON DELETE CASCADE (dwz update/delete van een spelersnr in de SPELERS tabel triggert automatisch een update/delete in TEAMS) alternatief 2:  ON UPDATE SET NULL  ON DELETE SET NULL

45


Download ppt "ANALYSE 3 INFANL01-3 WEEK 4 01-02-2014 CMI Informatica."

Verwante presentaties


Ads door Google