<Mdl01 hoorcollege 1>

Slides:



Advertisements
Verwante presentaties
Stilstaan bij parkeren Dat houdt ons in beweging
Advertisements

= 1 uur vóór zonsondergang uur
‘SMS’ Studeren met Succes deel 1
Werkwoorden d t dt.
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
WAAROM? Onderzoek naar het meest geschikte traject voor de verlenging tot in Sint-Niklaas van het bestaande fietspad naast de Stekense Vaart en de Molenbeek.
1 Resultaten marktonderzoek RPM Zeist, 16 januari 2002 Door: Olga van Veenendaal, medew. Rothkrans Projectmanagement.
Uitgaven aan zorg per financieringsbron / /Hoofdstuk 2 Zorg in perspectief /pagina 1.
Module 7 – Hoofdstuk 5 (1) SQL – een begin.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
7 april 2013 Zoetermeer 1. 1Korinthe Maar, zal iemand zeggen, hoe worden de doden opgewekt? En met wat voor lichaam komen zij? 2.
Meerdere tabellen: Relaties en Joins
 Deel 1: Introductie / presentatie  DVD  Presentatie enquête  Ervaringen gemeente  Pauze  Deel 2 Discussie in kleinere groepen  Discussies in lokalen.
Relationele databases en
Databases Informatica Ga verder met een muisklik. SQL FCO DBMS NE FA
STAPPENPLAN GRAMMATICUS.
Ronde (Sport & Spel) Quiz Night !
Module 7 – Hoofdstuk 5 (4) SQL – voorwaarden aan groepen en meerdere tabellen.
Een Concert van het Nederlands Philharmonisch Orkest LES 4 1.
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.
Opleiding AI cursus Databases
LauwersCollege Buitenpost Informatica
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
Kb.1 Ik leer op een goede manier optellen en aftrekken
9 januari 2013 Bodegraven 1. 1Korinthe 11 1 Wordt mijn navolgers, gelijk ook ik Christus navolg. 2.
Nooit meer onnodig groen? Luuk Misdom, IT&T
Inleiding Databanken: oefeningen 4 Sven Casteleyn 4 Lokaal: 6G HomePage: te bereiken via
Hoofdstuk 6: Controle structuren
Computervaardigheden en Programmatie Universiteit AntwerpenDatabank - Basis 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
Regelmaat in getallen (1).
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
1 WIJZIGINGEN UNIEK VERSLAG. 2 Agenda Verbeteringen Veranderingen formulieren Praktische herinneringen Nieuwe formulieren Sociale en culturele participatie.
13 maart 2014 Bodegraven 1. 1Korinthe Want gelijk het lichaam één is en vele leden heeft, en al de leden van het lichaam, hoe vele ook, een lichaam.
Optuigen van datastructuren
Werken aan Intergenerationele Samenwerking en Expertise.
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
ZijActief Koningslust 10 jaar Truusje Trap
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Hartelijk welkom bij de Nederlandse Bridge Academie Hoofdstuk 9 Het eerste bijbod 1Contract 1, hoofdstuk 9.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
De financiële functie: Integrale bedrijfsanalyse©
Samen-bouwen … over paneelbouw en de rest!
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
1 Week /03/ is gestart in mineur De voorspellingen van alle groten der aarden dat de beurzen zouden stijgen is omgekeerd uitgedraaid.
LauwersCollege Buitenpost Informatica
7 Databases. SAMENGESTELDE VOORWAARDEN 1 Wat is het adres van Odile Goossens? SELECT adres, woonplaats FROM leden WHERE naam = ‘Goossens’ AND voornaam.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
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 6 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Subqueries met correlaties ▸ Subqueries zonder correlaties ▸ Views ▸
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.
SQL Les 3 17 February 2019.
Transcript van de presentatie:

<Mdl01 hoorcollege 1> Docent: Martijn Hengelmolen Email: Hengelmolen@initworks.com Aanwezig: maandag, dinsdag

Inhoud Hoorcollege 1 Waarom modelleren 1 Voorbeeld tekstueel ontwerp Opdracht

Voorbeeld model Rechtopstaande holle cilinder

Voorbeeld model Rechtopstaande holle cilinder Onderkant is gesloten

Voorbeeld model Rechtopstaande holle cilinder Onderkant is gesloten Aan de zijkant zit een driekwart ovaal Ovaal is kleiner dan cilinder Kleur is wit

Voorbeeld model Een mok, waterkoker? Thermoskan? Vraag: is dit eenduidig?

Opdracht Verzin een voorwerp Beschrijf dit voorwerp Geef tekstuele beschrijving aan mede student.

SELECT basisbegrippen hoofdstuk 5 [van der Lans] datatypen (num, alfanum, datum/tijd) systeemvariabelen (USER, TODAY) expressies (o.a. CASE) scalaire vs. set functies: scalaire functies: input is 1 rij set functies: input is verzameling rijen casting

SELECT instructie: definitie <select-component> <from-component> [<where-component>] [<group-by-component>] [<having-component>] [<order-by-component>]

SELECT instructie: voorbeeld SELECT PNAAM, LEEFTIJD [kolom(men)] FROM PATIENT [tabel(len)] WHERE LEEFTIJD > 50; [voorwaarde voor rij]

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

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

SELECT instructie: FROM component (definitie) <from-component> ::= FROM <tabelref> [{,<tabelref>}...] <tabelref> ::= <tabelspec> [[AS] <alias>] <tabelspec> ::= [<user>.] tabelnaam

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

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

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

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

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

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

SELECT instructie: WHERE (pseudo-code) WHERE-resultaat := [ ]; for each ROW in FROM-resultaat do if conditie=waar then WHERE-resultaat :+ ROW; endfor;

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

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’);

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

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

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

SELECT instructie: GROUP BY, HAVING volgend hoorcollege: SET functies (COUNT, SUM, MIN, MAX, AVG, STDEV) GROUP BY, HAVING

Referentiele Integriteit spelernsnr in beide tabellen moeten gesynchroniseerd blijven foreign key primary key

Referentiele Integriteit : refs aangeven bij CREATE CREATE TABLE teams( teamnr SMALLINT NOT NULL, spelersnr SMALLINT NOT NULL, divisie CHAR(6) NOT NULL, PRIMARY KEY (teamnr), FOREIGN KEY (spelersnr) REFERENCES spelers (spelersnr));

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)

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

Referentiele Integriteit vragen wat is de beste oplossing voor SPELERS en TEAMS? ON UPDATE [restrict, cascade, set null] ON DELETE [restrict, cascade, set null] wat is de beste oplossing voor SPELERS en BOETES?

Database Ontwerp Wat is het? Hoe doe je het? Voorbeeld Normaliseren (1NF, 2NF, 3NF, BCNF) Opdracht

Database ontwerp : Wat is het ? het bepalen van de tabellen en hun kolommen die nodig zijn om bepaalde gegevens op te slaan (structuur) logisch ontwerp (niet fysiek) C. J. Date : ‘database design is still very much of an art, not a science’ gegevens integriteit

Database ontwerp : Hoe doe je het? ontwerpmethoden (zie [Kroenke]): E/R (entity-relationship) semantisch object model controle: normaliseren

Database ontwerp voorbeeld: administratie van uitgeleende boeken (1) voor wie : de eigenaar van de boeken functie : het geven van een actueel overzicht van alle uitgeleende boeken; bovendien per boek: aan wie (het boek is uitgeleend) sinds wanneer (het boek is uitgeleend)

Database ontwerp voorbeeld: administratie van uitgeleende boeken (2) bedenk eerst hoe je het zonder ge-automatiseerd systeem zou doen! ?

Database ontwerp voorbeeld: administratie van uitgeleende boeken (3) bedenk eerst hoe je het zonder ge-automatiseerd systeem zou doen! schrift met 1 regel per uitgeleend boek (auteur, titel, lener_naam, lener_telnr, sinds) vgl. database met 1 tabel: ‘uitgeleende boeken’

Database ontwerp voorbeeld: administratie van uitgeleende boeken (4) problemen: wijzigen van telnr op meerdere plaatsen bij terugbrengen boek ook telnr weg hoe komt dit ? afhankelijkheid : lener_naam -> lener_telnr lener_naam is een determinant van lener_telnr

Database ontwerp voorbeeld: administratie van uitgeleende boeken (5) oplossing: 2 tabellen schrift met uitgeleende boeken adresboekje (of GSM telefoon): naam + telnr

Normalisatie: 1NF (first normal form) Definitie 1NF: Een tabel is in 1NF als voor elke waarde van die tabel elke rij precies 1 waarde voor elke attribuut heeft voorbeeld: in de tabel leners heeft elke rij 1 naam en 1 telnr

Normalisatie: 2NF Definitie 2NF: (aanname: er is slechts 1 kandidaat sleutel die de primaire sleutel is) Een tabel is in 2NF als deze in 1NF is, en elk niet-sleutel attribuut (op de een of andere manier) afhankelijk is van de primaire sleutel

Normalisatie: 2NF PK

Normalisatie: 2NF PK PK

Normalisatie: 3NF Definitie 3NF: (aanname: er is slechts 1 kandidaat sleutel die de primaire sleutel is) Een tabel is in 3NF als deze in 2NF is, en elk niet-sleutel attribuut niet-transitief afhankelijk is van de primaire sleutel

Normalisatie: 3NF PK 2NF 3NF

Normalisatie: BCNF (Boyce/Codd Normal Form) (informele) definitie: een tabel is in BCNF als de enige determinanten kandidaat-sleutels zijn (dwz alle afhankelijkheidspijlen beginnen bij kandidaat-sleutels)

Normalisatie: BCNF (Boyce/Codd Normal Form)

Normalisatie: BCNF (Boyce/Codd Normal Form)

Normalisatie: conclusie Wat zijn we eigenlijk aan het doen? Normalisatie is een kwestie van gezond verstand! De zojuist besproken methoden zijn ‘geformaliseerd’ gezond verstand! Met wat ervaring weet je intuïtief wanneer tabellen BCNF zijn

Opdracht (5 minuten) Breng in BCNF:

Opdracht Afhankelijkheden:

Opdracht oplossing (BCNF) aannames: docentnaam is uniek, vaknaam is uniek 1 vak wordt door 1 docent gegeven

Zelfstudie 2 hoofdstuk 1 t/m 9 en 17 uit [van der Lans] inclusief opgaven (niet allemaal) doe de opgaven uitgedeeld op het college (zie ook create_art_lev_etc.sql om de tabellen aan te maken)