mdl01 hoorcollege 1
Download
Skip this Video
Download Presentation
<Mdl01 hoorcollege 1>

Loading in 2 Seconds...

play fullscreen
1 / 53

<Mdl01 hoorcollege 1> - PowerPoint PPT Presentation


  • 148 Views
  • Uploaded on

<Mdl01 hoorcollege 1>. Docent: Martijn Hengelmolen Email: [email protected] Aanwezig: maandag, dinsdag. Inhoud Hoorcollege 1. Waarom modelleren 1 Voorbeeld tekstueel ontwerp Opdracht. Voorbeeld model. Rechtopstaande holle cilinder. Voorbeeld model. Rechtopstaande holle cilinder

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '<Mdl01 hoorcollege 1>' - waite


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
mdl01 hoorcollege 1

Docent: Martijn Hengelmolen

Email: [email protected]

Aanwezig: maandag, dinsdag

inhoud hoorcollege 1
Inhoud Hoorcollege 1
  • Waarom modelleren 1
  • Voorbeeld tekstueel ontwerp
  • Opdracht
voorbeeld model
Voorbeeld model
  • Rechtopstaande holle cilinder
voorbeeld model1
Voorbeeld model
  • Rechtopstaande holle cilinder
  • Onderkant is gesloten
voorbeeld model2
Voorbeeld model
  • Rechtopstaande holle cilinder
  • Onderkant is gesloten
  • Aan de zijkant zit een driekwart ovaal
  • Ovaal is kleiner dan cilinder
  • Kleur is wit
voorbeeld model3
Voorbeeld model
  • Een mok, waterkoker? Thermoskan?
  • Vraag: is dit eenduidig?
opdracht
Opdracht
  • Verzin een voorwerp
  • Beschrijf dit voorwerp
  • Geef tekstuele beschrijving aan mede student.
select basisbegrippen hoofdstuk 5 van der lans
SELECT basisbegrippenhoofdstuk 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 voorbeeld
SELECT instructie:voorbeeld

SELECT PNAAM, LEEFTIJD [kolom(men)]

FROM PATIENT [tabel(len)]

WHERE LEEFTIJD > 50; [voorwaarde voor rij]

select instructie volgorde van uitvoeren intern
a

b

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

select instructie volgorde voorbeeld
1. FROMA

2. WHERE KLEUR=‘Blauw’

3. SELECT ANO, ANAAM

4. ORDER BY ANAAM

SELECT instructie:volgorde (voorbeeld)

SELECT ANO, ANAAM

FROM A

WHERE KLEUR=‘Blauw’

ORDER BY ANAAM

select instructie from component definitie
SELECT instructie:FROM component (definitie)

::=FROM [{,}...]

::= [[AS] ]

::=[.] tabelnaam

select instructie from component voorbeeld
SELECT instructie:FROM component (voorbeeld)

SELECT teamnr, naamFROM teams AS t, spelers AS sWHERE t.spelersnr = s.spelersnr

Dit is een voorbeeld van een natural join

natural join in stapjes 1 from input
Natural join in stapjes:1. FROM - input

SELECT ....

FROM teams AS t, spelers AS s

natural join in stapjes 2 from resultaat
Natural join in stapjes:2. FROM - resultaat

SELECT ... FROM teams AS t, spelers AS s

natural join in stapjes 3 where input
Natural join in stapjes:3. WHERE - input

WHERE t.spelersnr = s.spelersnr;

natural join in stapjes 4 where resultaat
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
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
SELECT instructie:WHERE (pseudo-code)

WHERE-resultaat := [ ];

for each ROW in FROM-resultaat doif conditie=waar thenWHERE-resultaat :+ ROW;

endfor;

select instructie where operatoren etc
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
SELECT instructie:WHERE (voorbeelden)
  • WHEREGEB_DATUM > ‘1970-12-31’ ANDNOT 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 instructie:WHERE (IN met subquery)
  • SELECT naam AS aanvoerderFROM spelersWHERE spelersnr IN (SELECT spelersnr FROM teams);
select instructie where exists
SELECT instructie:WHERE (EXISTS)
  • SELECT naam AS aanvoerderFROM spelersWHERE EXISTS(SELECT * FROM teams WHERE spelersnr=spelers.spelersnr);
select instructie where all
SELECT instructie:WHERE (ALL)
  • SELECT naam+’ is het oudst’ AS oudste, geb_datumFROM spelersWHERE geb_datum <= ALL(SELECT geb_datum FROM spelers);
select instructie group by having
SELECT instructie:GROUP BY, HAVING
  • volgend hoorcollege:
    • SET functies (COUNT, SUM, MIN, MAX, AVG, STDEV)
    • GROUP BY, HAVING
referentiele integriteit
Referentiele Integriteit
  • spelernsnr in beide tabellen moeten gesynchroniseerd blijven

foreign key

primary key

referentiele integriteit refs aangeven bij create
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
Referentiele Integriteitrefererende 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 acties1
Referentiele Integriteitrefererende acties
  • alternatief 1:
    • ON UPDATE CASCADE
    • ON DELETE CASCADE(dwz update/delete van een spelersnr in de SPELERS tabel triggert automatischeen update/delete in TEAMS)
  • alternatief 2:
    • ON UPDATE SET NULL
    • ON DELETE SET NULL
referentiele integriteit vragen
Referentiele Integriteitvragen
  • 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?
    • ON UPDATE [restrict, cascade, set null]
    • ON DELETE [restrict, cascade, set null]
database ontwerp
Database Ontwerp
  • Wat is het?
  • Hoe doe je het?
  • Voorbeeld
  • Normaliseren (1NF, 2NF, 3NF, BCNF)
  • Opdracht
database ontwerp wat is het
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
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
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
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
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
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
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
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 heeftvoorbeeld: in de tabel leners heeft elke rij 1 naam en 1 telnr
normalisatie 2nf
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 3nf
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 bcnf boyce codd normal form
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 conclusie
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
Opdracht (5 minuten)
  • Breng in BCNF:
opdracht1
Opdracht
  • Afhankelijkheden:
opdracht oplossing bcnf
Opdrachtoplossing (BCNF)
  • aannames:
    • docentnaam is uniek, vaknaam is uniek
    • 1 vak wordt door 1 docent gegeven
zelfstudie 2
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)