44
voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus 19147, 3501 DC Utrecht Telefoon (030) 234 48 11 Fax (030) 231 59 86 E-mail [email protected] Internet http://www.exin.nl I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 inhoud 3 inleiding 4 voorbeeldexamen 21 antwoordindicatie 44 beoordeling

voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

  • Upload
    lamkiet

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Page 1: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

voorbeeldexamen Databases and SQL Foundation (DBSQLF)

EXIN

Kantoor Janssoenborch, Hoog Catharijne

Godebaldkwartier 365, 3511 DT Utrecht

Postbus 19147, 3501 DC Utrecht

Telefoon (030) 234 48 11

Fax (030) 231 59 86

E-mail [email protected]

Internet http://www.exin.nl

I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 inhoud 3 inleiding 4 voorbeeldexamen 21 antwoordindicatie 44 beoordeling

Page 2: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 2/44

Copyright © 2006 EXIN Alle rechten voorbehouden. Niets uit deze uitgave mag worden openbaar gemaakt of verveelvoudigd, opgeslagen in een dataverwerkend systeem of uitgezonden in enige vorm door middel van druk, fotokopie of welke andere vorm dan ook zonder toestemming van EXIN.

Page 3: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 3/44

Inleiding Dit is het voorbeeldexamen Databases and SQL Foundation (DBSQLF). Het examen bestaat uit 30 meerkeuzevragen. Elke vraag heeft één correct antwoord. Elk goed beantwoorde vraag levert u 1 punt op. Het maximaal aantal te behalen punten is 30. Bij 20 punten of meer bent u geslaagd. De beschikbare tijd is 60 minuten. Aan deze gegevens kunnen geen rechten worden ontleend. Veel succes!

Page 4: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 4/44

Voorbeeldexamen

1 van 30

Een verkooporganisatie heeft een relationele database, waarin onder andere de volgende relatie is ondergebracht: KLANT(klantnr, klantnaam, klantadres, klantsaldo) De organisatie wil ook gegevens van klanten in het buitenland kunnen vastleggen en moet daarvoor de relatie KLANT met een aantal attributen uitbreiden. Is het altijd mogelijk om de relatie KLANT uit te breiden zonder dat bestaande queries daarvoor moeten worden aangepast?

A. Ja, dit is altijd mogelijk.

B. Nee, dit is niet mogelijk.

C. Dit is alleen mogelijk indien in de gebruikte queries in SELECT het gebruik van * niet voorkomt.

2 van 30

Er worden verschillende eisen gesteld waaraan een database-managementsyteem (DBMS) en een database moeten voldoen. Hoort: 'Verschillende views van gebruikers op dezelfde gegevens moeten worden ondersteund' tot die eisen?

A. ja

B. nee

3 van 30

Kan men in een relationele database zoeken op elk gegeven, zonder daar eerst een index voor te creëren?

A. ja

B. nee

Page 5: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 5/44

4 van 30

Een winkelketen wil gegevens vastleggen van artikelen en leveranciers. Men wil zowel overzichten van leveranciers per artikel kunnen maken, als van artikelen per leverancier. In welk databasemodel moeten gegevens dubbel worden opgeslagen om beide soorten overzichten mogelijk te maken?

A. in het hiërarchische model

B. in het netwerkmodel

C. in het relationele model

5 van 30

Welke van onderstaande beweringen over een kandidaatsleutel is juist?

A. Elke kandidaatsleutel is tevens vreemde sleutel.

B. Elke kandidaatsleutel omvat alle attributen van de primaire sleutel.

C. Elke relatie heeft precies één kandidaatsleutel.

D. Elke waarde van een kandidaatsleutel in een relationele tabel is uniek.

6 van 30

Onderstaande relaties hebben betrekking op afschriften van een bankrekening: AFSCHRIFT (jaar, volgnummer, beginsaldo, eindsaldo) POST (<jaar, volgnummer>, postnummer, omschrijving, valutadatum, bedrag, activiteitnummer)

Elk afschrift bevat één of meer posten. Elke post hoort bij één bepaald afschrift. Om deze samenhang vast te leggen wordt in het relationele model gebruik gemaakt van primaire en vreemde sleutels. Lees in dit verband onderstaande bewering: ‘De referentiële integriteit schrijft voor dat het bij een post behorende afschrift aanwezig is.’ Is deze bewering juist?

A. Ja, maar alleen omdat de vreemde sleutel ook deel uitmaakt van de primaire sleutel.

B. Ja, omdat referentiële integriteit dit nu eenmaal voorschrijft.

C. Nee, want het is het gevolg van entiteitsintegriteit.

Page 6: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 6/44

7 van 30

Onderstaande relaties hebben betrekking op een vereniging en haar leden: VERENIGING (verenigingnaam, contributie, betaalperiode) LID (lidnaam, adres, postcode, plaats, ingangsdatum, betaalperiode) Voor de relatie VERENIGING voert men één tupel in (en niet meer dan één) met als sleutel 'St Caecilia'. Lees in dit verband deze bewering: 'De hoogte van de contributie is voor alle leden hetzelfde.' Is deze bewering juist?

A. Ja, doordat in de relatie VERENIGING één tupel voorkomt geldt die voor alle leden.

B. Nee, want er is geen vreemde sleutel naar de relatie VERENIGING opgenomen.

C. Nee, want wat wordt opgeslagen voor betaalperiode in de relatie VERENIGING hoeft niet hetzelfde te zijn als in relatie LID.

8 van 30

Onderstaande relatie heeft betrekking op leden van een vereniging: LID (lidnaam, adres, postcode, plaats, ingangsdatum, betaalperiode) Lees in dit verband deze bewering: 'Bij het registreren van een lid hoeft het adres niet ingevuld te worden.' Is deze bewering juist?

A. ja

B. nee

Page 7: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 7/44

9 van 30

Onderstaande relatie betreft leden van een vereniging: LID (lidnaam, adres, postcode, plaats, ingangsdatum, betaalperiode) Lees in dit verband deze bewering: 'Bij deze vereniging kan één persoon tegelijkertijd op twee verschillende adressen geregistreerd staan.' Is deze bewering juist?

A. Ja, door maar alleen door het opnemen van twee tupels voor eenzelfde lid met verschillende waarden voor het attribuut adres.

B. Nee, je kunt per persoon maar één tupel in de relatie LID opnemen.

C. Nee, want een bepaalde waarde voor het attribuut lidnaam komt dan dubbel voor.

10 van 30

Hoeveel attributen bevat een vreemde sleutel?

A. meer dan één attribuut

B. minimaal één attribuut

C. niet meer dan één attribuut

11 van 30

Bekijk de volgende relatie: STUDENT (studentnummer, studentnaam, studentadres, ...) In de relatie STUDENT komen bij studentnummer gegarandeerd slechts unieke waarden voor. Hoe wordt studentnummer in dit verband genoemd?

A. kandidaatsleutel

B. samengestelde sleutel

C. vreemde sleutel

Page 8: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 8/44

12 van 30

Een verhuurder hanteert een database waarin onder andere gegevens van panden en van verhuur zijn vastgelegd: PANPAND (nummer, naam, adres, plaats, huur) HUUR (huurdernaam, <nummer>, contractbegindatum, contracteinddatum, bankrekeningnummer) Kent een pand meer dan één contractperiodes?

A. Ja, als er in de relatie HUUR voor het pand voor zowel contractbegindatum als contracteinddatum een waarde is opgenomen.

B. Ja, wanneer er voor een pand meer dan één tupel in de relatie HUUR voorkomt waarin waarden zijn opgenomen voor contractbegindatum en voor contracteinddatum.

C. Nee, want er is in de relatie HUUR niet altijd een waarde opgenomen voor het attribuut contracteinddatum.

13 van 30

Bekijk de volgende relatie:

filmnr. titel regisseurnr Jaar tijdsduur

1 Manhattan 1 1979 96

2 Crimes of the heart 2 1986 105

3 Looking for Mr Goodbar 3 1977 135

4 Pretty Woman 4 1990 117

5 The postman always rings twice 5 1981 113

6 The postman always rings twice 5 1946 113

Wat is een juiste benaming voor het vet weergegeven deel?

A. attribuut

B. attribuutnaam

C. attribuutwaarde

14 van 30

Met welk begrip in relationele database komt het begrip 'tupel' overeen?

A. kolom

B. rij

C. tabel

Page 9: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 9/44

15 van 30

Bekijk de volgende relatie: SPORTCLUB (clubnaam, woonplaats, contributie, sport) Sportclub

clubnaam woonplaats contributie sport

Vitesse Rotterdam 300 voetbal

Vitesse Schiedam 300 atletiek

Vita Rotterdam 280 voetbal

Vita Schiedam 280 voetbal

Is de inhoud van bovenstaande tabel toegestaan uitgaande van de gegeven relatie?

A. ja

B. nee

16 van 30

Bekijk de volgende relaties: REISGIDS (gidsnr, titel, ingangsdatum, einddatum) DRUKORDER (bestelnr, <gidsnr>, datumbestelling, aantalbesteld, datumgeleverd) Waarom is er uitgaande van de gegeven relaties sprake van referentiële integriteit?

A. Elk tupel van de relatie REISGIDS heeft een unieke waarde voor het attribuut gidsnr.

B. Het attribuut gidsnr in de relatie DRUKORDER is een vreemde sleutel. Hierdoor kan een tupel alleen worden toegevoegd als in de relatie REISGIDS een tupel voorkomt met dezelfde waarde van het attribuut gidsnr als dat van het toe te voegen tupel.

C. Omdat het attribuut gidsnr een vreemde sleutel is die in de relatie DRUKORDER geen onderdeel van de primaire sleutel uitmaakt.

17 van 30

‘In een database kunnen gegevens met Data Control Language (DCL) worden gewijzigd en toegevoegd.’ Is deze bewering juist?

A. ja

B. nee

Page 10: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 10/44

18 van 30

Bekijk de volgende relaties uit een database: KLANT (klantnr, naam, adres, woonpl, regio) FACTUUR (factnr, datum, klantnr, bedrag, betaald) Bekijk onderstaande opdracht: SELECT naam, factnr FROM klant, factuur WHERE bedrag > 600 AND factuur.klantnr = klant.klantnr Lees in dit verband onderstaande bewering: ‘De opdracht toont de namen van klanten en de nummers van aan hen gezonden facturen met een bedrag van ten minste 600 euro.’ Is deze bewering juist?

A. ja

B. nee

19 van 30

Bekijk onderstaande DCL-opdrachten: GRANT SELECT ON TABLE activiteit TO Carla, Lies GRANT INSERT, DELETE ON TABLE lid TO Carla Gegeven twee DML-opdrachten. 1: SELECT a-omschrijving FROM activiteit WHERE activiteitnummer = 27 2: UPDATE lid SET ingangsdatum = '2006-04-01' WHERE naam = 'J. van Heumel' Welke personen zijn gerechtigd beide DML-opdrachten door het DBMS te laten uitvoeren?

A. alleen Carla

B. alleen Lies

C. Carla en Lies

D. geen van beiden

Page 11: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 11/44

20 van 30

Aankoop

Klantnr Datum Bedrag

1 2005-01-20 100

2 2005-01-20 50

4 2005-02-04 30

3 2005-02-05 110

2 2005-03-30 70

4 2005-04-18 70

SELECT klantnr FROM aankoop GROUP BY klantnr HAVING SUM (Bedrag) > 100 Welk resultaat wordt verkregen als de gegeven SELECT-opdracht op de gegeven tabel wordt toegepast?

A. 1, 2, 3, 4

B. 1, 3

C. 2, 3

D. 3

Page 12: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 12/44

21 van 30

Bekijk de volgende relaties: VESTIGING (vesnaam, branche, plaats) WERKNEMER (w#, wnaam, afdeling, fnaam, salaris, <vesnaam>) De volgende CREATE TABLE opdracht geeft een deel van de statements weer om de tabel WERKNEMER te creëren op basis van de gegeven relaties. CREATE TABLE werknemer (w# SMALLINT NOT NULL, wnaam CHAR (8), afdeling CHAR (12), fnaam CHAR (12), salaris DECIMAL (10), vesnaam CHAR (10), .....) Wat moet op de plaats van de puntjes komen te staan op basis van bovenstaande gegevens?

A. PRIMARY KEY (vesnaam) FOREIGN KEY (w#) REFERENCES vestiging

B. PRIMARY KEY (w#), FOREIGN KEY (vesnaam) REFERENCES vestiging

C. PRIMARY KEY (w#), FOREIGN KEY (w#) REFERENCES vestiging

D. PRIMARY KEY (w#, FOREIGN KEY vesnaam) REFERENCES vestiging

Page 13: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 13/44

22 van 30

Teams

Teamnummer Datum Punten

T1 2006-01-01 3

T1 2006-01-01 8

T1 2006-02-06 1

T2 2006-01-01 5

T3 2006-02-06 7

Resultaat: T1 T2 Welke SELECT opdracht heeft het gegeven resultaat?

A. SELECT DISTINCT Teamnummer FROM Teams

B. SELECT DISTINCT Teamnummer FROM Teams WHERE datum = '2006-01-01'

C. SELECT Teamnummer FROM Teams WHERE datum = '2006-01-01'

D. SELECT Teamnummer FROM Teams WHERE datum = '2006-02-06'

Page 14: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 14/44

23 van 30

Drukorder

bestelnr gidsnr datumbestelling aantalbesteld

501 1038 2005-02-01 400

502 1038 2005-04-01 300

503 2038 2005-02-01 600

504 1038 2005-05-01 200

505 2038 2005-06-28 300

506 2038 2005-09-01 100

SELECT gidsnr, COUNT (aantalbesteld) FROM drukorder WHERE datumbestelling < '2005-07-01' AND aantalbesteld > 200 GROUP BY gidsnr Deze SQL-opdracht geeft het volgende resultaat: Drukorder

gidsnr count (aantalbesteld)

1038 x

2038 y

Wat moet voor x en y worden ingevuld om het resultaat van de gegeven SQL-opdracht op de gegeven tabel DRUKORDER weer te geven?

A. x=2 en y=2

B. x=3 en y=2

C. x=700 en y=900

D. x=900 en y=900

Page 15: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 15/44

24 van 30

Gegeven zijn de volgende relaties: REISGIDS (gidsnr, titel, ingangsdatum, einddatum) REISPRODUCT (productnr, soortproduct, <gidsnr>, omschrijving, bestemming, aantal dagen, soortverblijf, soortvervoer, soortvermaak) Men wil met de opdracht CREATE TABLE de tabel REISPRODUCT creëren. De volgende onvolledige DDL-opdracht wordt hiervoor gebruikt: CREATE TABLE reisproduct ( soortproduct CHAR(30) NOT NULL, gidsnr INTEGER, omschrijving CHAR(30), bestemming CHAR(30), aantaldagen INTEGER, soortverblijf CHAR(20) NOT NULL, soortvervoer CHAR(20) NOT NULL, soortvermaak CHAR(20), ... ) Hoe moet de DDL-opdracht worden aangevuld om de tabel REISPRODUCT correct te creëren?

A. productnr INTEGER NOT NULL, FOREIGN KEY(productnr, gidsnr) REFERENCES reisgids

B. productnr INTEGER NOT NULL, PRIMARY KEY(productnr), FOREIGN KEY(gidsnr) REFERENCES reisgids

C. PRIMARY KEY(productnr INTEGER), FOREIGN KEY(gidsnr) REFERENCES reisgids

Page 16: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 16/44

25 van 30

Bekijk het volgende relationele schema: REISGIDS (gidsnr, titel, ingangsdatum, einddatum) KLANT (klantnr, soortklant, naam, adres, postcode, woonplaats, telefoonnr, faxnr, emailadres, contactpersoon) GIDSAANVRAAG (<klantnr>, <gidsnr>, datumaanvraag, aantalgevraagd, datumverzending, aantalverzonden) De systeembeheerder wil de tabel GIDSAANVRAAG schonen. Hij wil met behulp van een SQL-opdracht alle rijen, waarvan het aantal aangevraagd gelijk is aan het aantal verzonden, uit de tabel verwijderen. Welke SQL-opdracht levert het gewenste resultaat?

A. DELETE FROM gidsaanvraag WHERE aantalgevraagd = aantalverzonden

B. DELETE FROM gidsaanvraag WHERE klantnr IN (SELECT klantnr FROM gidsaanvraag WHERE aantalgevraagd = aantalverzonden)

C. DELETE FROM gidsaanvraag WHERE gidsnr IN (SELECT gidsnr FROM gidsaanvraag WHERE aantalgevraagd = aantalverzonden)

Page 17: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 17/44

26 van 30

Bekijk onderstaande tabel TARIEF: Tarief

typehandeling bedrag

controle 32

eenvlaksvulling 37

tweevlaksvulling 50

wortelkanaal 85

Bij de overgang naar de euro moest in de tabel TARIEF elk bedrag worden gedeeld door 2.2. Welke SQL-query leidt tot het gewenste resultaat?

A. INSERT INTO bedrag VALUES ((32/2.2), (37/2.2), (50/2.2), (85/2.2))

B. INSERT INTO tarief VALUES ((32/2.2), (37/2.2), (50/2.2), (85/2.2))

C. UPDATE bedrag SET bedrag = bedrag/2.2

D. UPDATE tarief SET bedrag = bedrag/2.2

27 van 30

Bekijk de volgende GRANT-opdracht: GRANT ALTER ON werknemer TO Piet Wat mag Piet volgens de GRANT-opdracht doen?

A. nieuwe kolommen aan de tabel WERKNEMER toevoegen

B. rijen aan de tabel WERKNEMER toevoegen

C. waarden in rijen in de tabel WERKNEMER wijzigen

Page 18: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 18/44

28 van 30

SELECT klas FROM klas WHERE leerlingaantal < 14 AND klas IN (SELECT klas FROM vak GROUP BY klas HAVING (SUM) lesaantal = 5) Wat is het resultaat als de gegeven SELECT-opdracht op de gegeven tabellen wordt toegepast?

A. 1B 2B 2C

B. 1B 2B 2C 3A

C. 1B 2C

D. 1B 2C 3A

Page 19: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 19/44

29 van 30

Kookboek

kookboek recept calorieën

Lekker Wokken Hete kip 400

Lekker Wokken Roerbak 300

Pasta en zo Macaroni Napoli 600

Pasta en zo Pesto 200

Pasta en zo Lasagne 400

Ovenschotels Lasagne 500

Lees de volgende informatiebehoefte: Geef alle gegevens van recepten waarvoor geldt dat het recept in vergelijking met de andere recepten in hetzelfde kookboek het maximaal aantal calorieën bevat. Gegeven is de volgende SELECT opdracht: SELECT * FROM kookboek WHERE calorieën = (SELECT MAX (calorieën) FROM kookboek GROUP BY kookboek) Kan door middel van de SELECT-opdracht de gevraagde informatie worden verkregen?

A. ja

B. nee

Page 20: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 20/44

30 van 30

Bekijk de volgende tabel en informatiebehoefte: Circuit

loper datum plaats punten

1 2005-01-01 1 100

2 2005-02-01 2 150

1 2005-02-01 1 200

3 2005-02-01 3 50

2 2005-04-01 1 300

Geef van de lopers die op plaats 1 hebben gestaan het aantal keren dat ze op plaats 1 hebben gestaan. Om de informatie te verkrijgen wordt gebruik gemaakt van de volgende SELECT-opdracht: SELECT loper, count(*) FROM circuit GROUP BY loper HAVING plaats = 1 Is de gegeven SELECT-opdracht juist?

A. ja

B. nee

Page 21: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 21/44

Antwoordindicatie

1 van 30

Een verkooporganisatie heeft een relationele database, waarin onder andere de volgende relatie is ondergebracht: KLANT(klantnr, klantnaam, klantadres, klantsaldo) De organisatie wil ook gegevens van klanten in het buitenland kunnen vastleggen en moet daarvoor de relatie KLANT met een aantal attributen uitbreiden. Is het altijd mogelijk om de relatie KLANT uit te breiden zonder dat bestaande queries daarvoor moeten worden aangepast? A. Ja, dit is altijd mogelijk.

B. Nee, dit is niet mogelijk.

C. Dit is alleen mogelijk indien in de gebruikte queries in SELECT het gebruik van * niet voorkomt.

A. Onjuist. Bij het gebruik maken van * in de select wordt de uitkomst na het toevoegen van kolommen anders. B. Onjuist. Het is onder voorwaarden wel mogelijk, zie bij alternatief C. C. Juist. In het geval van het niet gebruiken van * in de select kunnen queries nooit gebruik maken van nog niet bestaande attributen. Het toevoegen van nieuwe attributen is daarom geen probleem. Bij het verwijderen van bestaande attributen, die misschien in queries voorkomen, zou dat wel een probleem kunnen zijn.

2 van 30

Er worden verschillende eisen gesteld waaraan een database-managementsyteem (DBMS) en een database moeten voldoen. Hoort: 'Verschillende views van gebruikers op dezelfde gegevens moeten worden ondersteund' tot die eisen? A. ja

B. nee A. Juist. Deze eis moet volgens de literatuur inderdaad worden gesteld (boek A: blz 12). B. Onjuist. Deze eis moet volgens de literatuur wel worden gesteld (boek A: blz. 12).

Page 22: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 22/44

3 van 30

Kan men in een relationele database zoeken op elk gegeven, zonder daar eerst een index voor te creëren? A. ja

B. nee A. Juist. Een index versnelt het zoeken, maar is voor het zoeken zelf niet noodzakelijk. B. Onjuist. Een index versnelt het zoeken, maar is voor het zoeken zelf niet noodzakelijk.

4 van 30

Een winkelketen wil gegevens vastleggen van artikelen en leveranciers. Men wil zowel overzichten van leveranciers per artikel kunnen maken, als van artikelen per leverancier. In welk databasemodel moeten gegevens dubbel worden opgeslagen om beide soorten overzichten mogelijk te maken? A. in het hiërarchische model

B. in het netwerkmodel

C. in het relationele model A. Juist. Bij het hiërarchische model vindt de benadering altijd plaats vanuit de 'root'. Wil men artikelen per leverancier, dan staat de leverancier in de root van de fysieke database en de bijbehorende artikelen staan in de hiërarchie daaronder. Wil men leveranciers per artikel, dan staat het artikel in de root van de fysieke database en de bijbehorende leveranciers staan in de hiërarchie daaronder. Dat houdt in dat er twee fysieke databases nodig zijn met, per definitie, overtollige gegevens. B. Onjuist. In het netwerkmodel benadert men artikelen per leverancier door een leverancierrecord te zoeken en vervolgens de ketting van bijbehorende artikelen af te lopen. Leveranciers per artikel krijgt men door een artikelrecord te zoeken en vervolgens de ketting van bijbehorende leveranciers af te lopen. Al deze records en bijbehorende kettingen bevinden zich in één fysieke database, zonder overtollige gegevens. C. Onjuist. In het relationele model benadert men artikelen per leverancier door in de tabel 'leveranciersartikelen' alle rijen te nemen die dezelfde leverancierscode hebben. Leveranciers per artikel krijgt men door in dezelfde tabel alle rijen te nemen die dezelfde artikelcode hebben. Heeft men behoefte aan leveranciers- of artikelgegevens, dan zoekt men die met de betreffende code (sleutel) op in de tabel 'leveranciers', respectievelijk 'artikelen'. In het relationele model heeft men geen redundantie van gegevens (anders dan sleutels).

Page 23: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 23/44

5 van 30

Welke van onderstaande beweringen over een kandidaatsleutel is juist? A. Elke kandidaatsleutel is tevens vreemde sleutel.

B. Elke kandidaatsleutel omvat alle attributen van de primaire sleutel.

C. Elke relatie heeft precies één kandidaatsleutel.

D. Elke waarde van een kandidaatsleutel in een relationele tabel is uniek. A. Onjuist. Een vreemde sleutel in een relatie geeft het verband weer met een andere relatie, waar deze vreemde sleutel de primaire sleutel is. Dezelfde waarde kan daardoor in meer dan één tupel voorkomen. Een voorwaarde voor een kandidaatsleutel is dat elke waarde uniek is. Daar wordt dan niet aan voldaan. B. Onjuist. Het is waar dat de primaire sleutel tevens een kandidaatsleutel was. De bewering dat elke kandidaatsleutel alle attributen van de primaire sleutel bevat, is niet waar. Dan zou er in elke relatie maar één kandidaatsleutel mogelijk zijn. C. Onjuist. Een relatie kan meer dan één kandidaatsleutel hebben; één wordt verkozen als primaire sleutel. D. Juist. Een kandidaatsleutel is een mogelijke primaire sleutel van een tabel. Een voorwaarde voor een primaire sleutel is dat elke waarde uniek is.

Page 24: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 24/44

6 van 30

Onderstaande relaties hebben betrekking op afschriften van een bankrekening: AFSCHRIFT (jaar, volgnummer, beginsaldo, eindsaldo) POST (<jaar, volgnummer>, postnummer, omschrijving, valutadatum, bedrag, activiteitnummer) Elk afschrift bevat één of meer posten. Elke post hoort bij één bepaald afschrift. Om deze samenhang vast te leggen wordt in het relationele model gebruik gemaakt van primaire en vreemde sleutels. Lees in dit verband onderstaande bewering: ‘De referentiële integriteit schrijft voor dat het bij een post behorende afschrift aanwezig is.’ Is deze bewering juist? A. Ja, maar alleen omdat de vreemde sleutel ook deel uitmaakt van de primaire sleutel.

B. Ja, omdat referentiële integriteit dit nu eenmaal voorschrijft.

C. Nee, want het is het gevolg van entiteitsintegriteit. A. Onjuist. Het deel uitmaken van de primaire sleutel zorgt er alleen voor dat er een waarde is. Deze waarde komt door het deel uitmaken van de primaire sleutel zelf niet noodzakelijk ook voor als primaire sleutel van de relatie AFSCHRIFT. Dit komt alleen door de referentiële integriteit. B. Juist. Door in POST een vreemde sleutel op te nemen die verwijst naar de primaire sleutel van AFSCHRIFT wordt er voor gezorgd dat geen posten kunnen worden toegevoegd voordat het bijbehorende afschrift is ingevoerd, en dat een afschrift niet kan worden verwijderd zolang er nog posten van aanwezig zijn. C. Onjuist. Entiteitsintegriteit zorgt alleen voor het opnemen van een unieke waarde van de primaire sleutel. Deze waarde hoeft (voor entiteitsintegriteit) niet een waarde te zijn die aansluit op één van de waarden van de primaire sleutel van de relatie AFSCHRIFT.

Page 25: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 25/44

7 van 30

Onderstaande relaties hebben betrekking op een vereniging en haar leden: VERENIGING (verenigingnaam, contributie, betaalperiode) LID (lidnaam, adres, postcode, plaats, ingangsdatum, betaalperiode) Voor de relatie VERENIGING voert men één tupel in (en niet meer dan één) met als sleutel 'St Caecilia'. Lees in dit verband deze bewering: 'De hoogte van de contributie is voor alle leden hetzelfde.' Is deze bewering juist? A. Ja, doordat in de relatie VERENIGING één tupel voorkomt geldt die voor alle leden.

B. Nee, want er is geen vreemde sleutel naar de relatie VERENIGING opgenomen.

C. Nee, want wat wordt opgeslagen voor betaalperiode in de relatie VERENIGING hoeft niet hetzelfde te zijn als in relatie LID.

A. Juist. In de relatie LID komt geen contributie voor, dus er kan maar één waarde worden vastgelegd, in de relatie VERENIGING. B. Onjuist. Door het opnemen van precies één tupel geldt de waarde voor contributie algemeen. Een vreemde sleutel is nodig wanneer er meer tupels in de relatie VERENIGING worden vastgelegd. C. Onjuist. Betaalperiode zegt niets over de hoogte van de contributie.

8 van 30

Onderstaande relatie heeft betrekking op leden van een vereniging: LID (lidnaam, adres, postcode, plaats, ingangsdatum, betaalperiode) Lees in dit verband deze bewering: 'Bij het registreren van een lid hoeft het adres niet ingevuld te worden.' Is deze bewering juist? A. ja

B. nee A. Onjuist. Adres is een deel van de primaire sleutel; deze moet altijd volledig worden ingevuld. B. Juist. Adres is een deel van de primaire sleutel; deze moet altijd volledig worden ingevuld.

Page 26: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 26/44

9 van 30

Onderstaande relatie betreft leden van een vereniging: LID (lidnaam, adres, postcode, plaats, ingangsdatum, betaalperiode) Lees in dit verband deze bewering: 'Bij deze vereniging kan één persoon tegelijkertijd op twee verschillende adressen geregistreerd staan.' Is deze bewering juist? A. Ja, door maar alleen door het opnemen van twee tupels voor eenzelfde lid met

verschillende waarden voor het attribuut adres. B. Nee, je kunt per persoon maar één tupel in de relatie LID opnemen.

C. Nee, want een bepaalde waarde voor het attribuut lidnaam komt dan dubbel voor. A. Juist, want het is de combinatie van lidnaam en adres die uniek moet zijn. De betreffende persoon wordt in deze situatie dan wel als twee verschillende leden gezien. B. Onjuist. Beperkingen gelden alleen voor het opnemen van tupels. Als iemand meer dan één adres heeft, dan kunnen diens naam in combinatie met de verschillende adressen gewoon vastgelegd worden. C. Onjuist. Lidnaam is slechts een deel van een primaire sleutel. Waarden van delen van de primaire sleutel mogen dubbel voorkomen. Alleen combinaties van alle waarden voor de attributen van een primaire sleutel mogen dit niet.

10 van 30

Hoeveel attributen bevat een vreemde sleutel? A. meer dan één attribuut

B. minimaal één attribuut

C. niet meer dan één attribuut A. Onjuist. Een vreemde sleutel kán uit meer dan één attribuut bestaan, maar het hoeft niet. B. Juist. Een vreemde sleutel kán uit meer dan één attribuut bestaan, maar het hoeft niet. C. Onjuist. Een vreemde sleutel kán uit meer dan één attribuut bestaan, maar het hoeft niet.

Page 27: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 27/44

11 van 30

Bekijk de volgende relatie: STUDENT (studentnummer, studentnaam, studentadres, ...) In de relatie STUDENT komen bij studentnummer gegarandeerd slechts unieke waarden voor. Hoe wordt studentnummer in dit verband genoemd? A. kandidaatsleutel

B. samengestelde sleutel

C. vreemde sleutel A. Juist. Ieder attribuut (of combinatie van ...) dat primaire sleutel zou kunnen zijn is een kandidaatsleutel. Dat geldt dus ook voor 'studentnummer'. B. Onjuist. Een samengestelde sleutel is een combinatie van attributen. Dat geldt niet voor 'studentnummer', dat hier kandidaatsleutel (of mogelijk zelfs primaire sleutel) is. C. Onjuist. Een vreemde sleutel is een attribuut dat in een andere (of dezelfde) tabel als primaire sleutel voorkomt. Dat geldt niet voor 'studentnummer', dat hier kandidaatsleutel is. Het is niet zeker of 'studentnummer' ook primaire sleutel is.

12 van 30

Een verhuurder hanteert een database waarin onder andere gegevens van panden en van verhuur zijn vastgelegd: PANPAND (nummer, naam, adres, plaats, huur) HUUR (huurdernaam, <nummer>, contractbegindatum, contracteinddatum, bankrekeningnummer) Kent een pand meer dan één contractperiodes? A. Ja, als er in de relatie HUUR voor het pand voor zowel contractbegindatum als

contracteinddatum een waarde is opgenomen. B. Ja, wanneer er voor een pand meer dan één tupel in de relatie HUUR voorkomt waarin

waarden zijn opgenomen voor contractbegindatum en voor contracteinddatum. C. Nee, want er is in de relatie HUUR niet altijd een waarde opgenomen voor het attribuut

contracteinddatum. A. Onjuist. Dit laat nog vrij dat voor een pand slechts één tupel in de relatie HUUR is vastgelegd. B. Juist. Zodra voor een pand meer dan één tupel in de relatie HUUR voorkomt zijn er meer contractperiodes. Een pand 'kent' deze periodes als er waarden zijn voor contractbegindatum en contracteinddatum. C. Onjuist. Er kan uiteraard een contractsperiode lopen die nog niet is afgesloten, maar er kan daarnaast meer dan één tupel zijn opgenomen met ingevulde waarden voor contractbegindatum en contracteinddatum.

Page 28: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 28/44

13 van 30

Bekijk de volgende relatie:

filmnr. titel regisseurnr Jaar tijdsduur

1 Manhattan 1 1979 96

2 Crimes of the heart 2 1986 105

3 Looking for Mr Goodbar 3 1977 135

4 Pretty Woman 4 1990 117

5 The postman always rings twice 5 1981 113

6 The postman always rings twice 5 1946 113

Wat is een juiste benaming voor het vet weergegeven deel?

A. attribuut

B. attribuutnaam

C. attribuutwaarde A. Juist. Het weergegeven deel is de combinatie van attribuutnaam en attribuutwaarden, samen een attribuut. B. Onjuist. Het weergegeven deel is de combinatie van attribuutnaam en attribuutwaarden, samen een attribuut. C. Onjuist. Het weergegeven deel is de combinatie van attribuutnaam en attribuutwaarden, samen een attribuut.

14 van 30

Met welk begrip in relationele database komt het begrip 'tupel' overeen? A. kolom

B. rij

C. tabel A. Onjuist. Het begrip 'kolom' komt overeen met het begrip 'attribuut'. B. Juist. Het begrip 'rij' komt overeen met het begrip 'tupel'. C. Onjuist. Het begrip 'tabel' komt overeen met het begrip 'relatie'.

Page 29: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 29/44

15 van 30

Bekijk de volgende relatie: SPORTCLUB (clubnaam, woonplaats, contributie, sport) Sportclub

clubnaam woonplaats contributie sport

Vitesse Rotterdam 300 voetbal

Vitesse Schiedam 300 atletiek

Vita Rotterdam 280 voetbal

Vita Schiedam 280 voetbal

Is de inhoud van bovenstaande tabel toegestaan uitgaande van de gegeven relatie? A. ja

B. nee A. Juist. De inhoud van de tabel is een toegestane inhoud. De entiteitsintegriteit is niet overtreden. B. Onjuist. De inhoud van de tabel is een toegestane inhoud. De entiteitsintegriteit is niet overtreden.

16 van 30

Bekijk de volgende relaties: REISGIDS (gidsnr, titel, ingangsdatum, einddatum) DRUKORDER (bestelnr, <gidsnr>, datumbestelling, aantalbesteld, datumgeleverd) Waarom is er uitgaande van de gegeven relaties sprake van referentiële integriteit? A. Elk tupel van de relatie REISGIDS heeft een unieke waarde voor het attribuut gidsnr.

B. Het attribuut gidsnr in de relatie DRUKORDER is een vreemde sleutel. Hierdoor kan een tupel alleen worden toegevoegd als in de relatie REISGIDS een tupel voorkomt met dezelfde waarde van het attribuut gidsnr als dat van het toe te voegen tupel.

C. Omdat het attribuut gidsnr een vreemde sleutel is die in de relatie DRUKORDER geen onderdeel van de primaire sleutel uitmaakt.

A. Onjuist. Deze uitspraak geeft entiteitsintegriteit aan en niet referentiële integriteit. B. Juist. In relatie drukorder is de vreemde sleutel gidsnr. Het attribuut gidsnr in relatie drukorder mag alleen waarden bevatten die overeen komen met waarden voor gidsnr in relatie reisgids. C. Onjuist. Referentiële integriteit bestaat ongeacht of en vreemde sleutel deel uitmaakt van de primaire sleutel in de relatie waarin hij voorkomt.

Page 30: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 30/44

17 van 30

‘In een database kunnen gegevens met Data Control Language (DCL) worden gewijzigd en toegevoegd.’ Is deze bewering juist? A. ja

B. nee A. Onjuist. Met DCL verlenen we gebruikers toegang tot gegevens (autorisatie), DML is er voor het benaderen van de gegevens zelf. B. Juist. Met DCL verlenen we gebruikers toegang tot gegevens (autorisatie), DML is er voor het benaderen van de gegevens zelf.

18 van 30

Bekijk de volgende relaties uit een database: KLANT (klantnr, naam, adres, woonpl, regio) FACTUUR (factnr, datum, klantnr, bedrag, betaald) Bekijk onderstaande opdracht: SELECT naam, factnr FROM klant, factuur WHERE bedrag > 600 AND factuur.klantnr = klant.klantnr Lees in dit verband onderstaande bewering: ‘De opdracht toont de namen van klanten en de nummers van aan hen gezonden facturen met een bedrag van ten minste 600 euro.’ Is deze bewering juist? A. ja

B. nee A. Onjuist: 'ten minste' houdt in: 600 of groter, '> 600' is alleen maar groter dan 600. B. Juist: 'ten minste' houdt in: 600 of groter, '> 600' is alleen maar groter dan 600.

Page 31: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 31/44

19 van 30

Bekijk onderstaande DCL-opdrachten: GRANT SELECT ON TABLE activiteit TO Carla, Lies GRANT INSERT, DELETE ON TABLE lid TO Carla Gegeven twee DML-opdrachten. 1: SELECT a-omschrijving FROM activiteit WHERE activiteitnummer = 27 2: UPDATE lid SET ingangsdatum = '2006-04-01' WHERE naam = 'J. van Heumel' Welke personen zijn gerechtigd beide DML-opdrachten door het DBMS te laten uitvoeren? A. alleen Carla

B. alleen Lies

C. Carla en Lies

D. geen van beiden A. Onjuist. Opdracht 1 mag worden uitgevoerd door Carla en Lies. Opdracht 2 mag worden uitgevoerd door geen van beide (UPDATE ontbreekt in GRANT). Geen van beiden mogen dus beide opdrachten uitvoeren. B. Onjuist. Opdracht 1 mag worden uitgevoerd door Carla en Lies. Opdracht 2 mag worden uitgevoerd door geen van beide (UPDATE ontbreekt in GRANT). Geen van beiden mogen dus beide opdrachten uitvoeren. C. Onjuist. Opdracht 1 mag worden uitgevoerd door Carla en Lies. Opdracht 2 mag worden uitgevoerd door geen van beide (UPDATE ontbreekt in GRANT). Geen van beiden mogen dus beide opdrachten uitvoeren. D. Juist. Opdracht 1 mag worden uitgevoerd door Carla en Lies. Opdracht 2 mag worden uitgevoerd door geen van beide (UPDATE ontbreekt in GRANT). Geen van beiden mogen dus beide opdrachten uitvoeren.

Page 32: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 32/44

20 van 30

Aankoop

Klantnr Datum Bedrag

1 2005-01-20 100

2 2005-01-20 50

4 2005-02-04 30

3 2005-02-05 110

2 2005-03-30 70

4 2005-04-18 70

SELECT klantnr FROM aankoop GROUP BY klantnr HAVING SUM (Bedrag) > 100 Welk resultaat wordt verkregen als de gegeven SELECT-opdracht op de gegeven tabel wordt toegepast? A. 1, 2, 3, 4

B. 1, 3

C. 2, 3

D. 3 A. Onjuist. Door middel van de gegeven SELECT-opdracht wil je de klantnr's selecteren die ieder voor zich voor hun totale aankopen meer dan 100 hebben besteed. Klantnr. 1 heeft in totaal 100 besteed, klantnr. 2 heeft in totaal 120 besteed, klantnr. 3 heeft 110 besteed en klantnr. 4 heeft 100 besteed. De klantnr.'s die voldoen aan de voorwaarden zijn alleen klantnr. 2 en 3. B. Onjuist. Door middel van de gegeven SELECT-opdracht wil je de klantnr's selecteren die ieder voor zich voor hun totale aankopen meer dan 100 hebben besteed. Klantnr. 1 heeft in totaal 100 besteed, klantnr. 2 heeft in totaal 120 besteed, klantnr. 3 heeft 110 besteed en klantnr. 4 heeft 100 besteed. De klantnr.'s die voldoen aan de voorwaarden zijn alleen klantnr. 2 en 3. C. Juist. Door middel van de gegeven SELECT-opdracht wil je de klantnr's selecteren die ieder voor zich voor hun totale aankopen meer dan 100 hebben besteed. Klantnr. 1 heeft in totaal 100 besteed, klantnr. 2 heeft in totaal 120 besteed, klantnr. 3 heeft 110 besteed en klantnr. 4 heeft 100 besteed. De klantnr.'s die voldoen aan de voorwaarden zijn alleen klantnr. 2 en 3. D. Onjuist. Door middel van de gegeven SELECT-opdracht wil je de klantnr's selecteren die ieder voor zich voor hun totale aankopen meer dan 100 hebben besteed. Klantnr. 1 heeft in totaal 100 besteed, klantnr. 2 heeft in totaal 120 besteed, klantnr. 3 heeft 110 besteed en klantnr. 4 heeft 100 besteed. De klantnr.'s die voldoen aan de voorwaarden zijn alleen klantnr. 2 en 3.

Page 33: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 33/44

21 van 30

Bekijk de volgende relaties: VESTIGING (vesnaam, branche, plaats) WERKNEMER (w#, wnaam, afdeling, fnaam, salaris, <vesnaam>) De volgende CREATE TABLE opdracht geeft een deel van de statements weer om de tabel WERKNEMER te creëren op basis van de gegeven relaties. CREATE TABLE werknemer (w# SMALLINT NOT NULL, wnaam CHAR (8), afdeling CHAR (12), fnaam CHAR (12), salaris DECIMAL (10), vesnaam CHAR (10), .....) Wat moet op de plaats van de puntjes komen te staan op basis van bovenstaande gegevens? A. PRIMARY KEY (vesnaam)

FOREIGN KEY (w#) REFERENCES vestiging

B. PRIMARY KEY (w#), FOREIGN KEY (vesnaam) REFERENCES vestiging

C. PRIMARY KEY (w#), FOREIGN KEY (w#) REFERENCES vestiging

D. PRIMARY KEY (w#, FOREIGN KEY vesnaam) REFERENCES vestiging

A. Onjuist. De primaire sleutel van de tabel werknemer is w#. De vreemde sleutel is vesnaam. B. Juist. De primaire sleutel van de tabel werknemer is w#. De vreemde sleutel is vesnaam. C. Onjuist. De primaire sleutel van de tabel werknemer is w#. De vreemde sleutel is vesnaam. D. Onjuist. De primaire sleutel van de tabel werknemer is w#. De vreemde sleutel is vesnaam. Syntaxis is verkeerd.

Page 34: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 34/44

22 van 30

Teams

Teamnummer Datum Punten

T1 2006-01-01 3

T1 2006-01-01 8

T1 2006-02-06 1

T2 2006-01-01 5

T3 2006-02-06 7

Resultaat: T1 T2 Welke SELECT opdracht heeft het gegeven resultaat? A. SELECT DISTINCT Teamnummer

FROM Teams

B. SELECT DISTINCT Teamnummer FROM Teams WHERE datum = '2006-01-01'

C. SELECT Teamnummer FROM Teams WHERE datum = '2006-01-01'

D. SELECT Teamnummer FROM Teams WHERE datum = '2006-02-06'

A. Onjuist. Deze SELECT-opdracht heeft als resultaat alle verschillende teamnummers. Dit wil zeggen T1, T2 en T3. B. Juist. Deze SELECT-opdracht heeft als resultaat alle verschillende teamnummers waar bij datum 2006-01-01 is ingevoerd. C. Onjuist. Deze SELECT-opdracht heeft als resultaat alle teamnummers (ook de dubbele) waar bij datum 2006-01-01 is ingevoerd. Dit wil zeggen T1, T1, T2. D. Onjuist. Deze opdracht heeft T1 en T3 als resultaat.

Page 35: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 35/44

23 van 30

Drukorder

bestelnr gidsnr datumbestelling aantalbesteld

501 1038 2005-02-01 400

502 1038 2005-04-01 300

503 2038 2005-02-01 600

504 1038 2005-05-01 200

505 2038 2005-06-28 300

506 2038 2005-09-01 100

SELECT gidsnr, COUNT (aantalbesteld) FROM drukorder WHERE datumbestelling < '2005-07-01' AND aantalbesteld > 200 GROUP BY gidsnr Deze SQL-opdracht geeft het volgende resultaat: Drukorder

gidsnr count (aantalbesteld)

1038 x

2038 y

Wat moet voor x en y worden ingevuld om het resultaat van de gegeven SQL-opdracht op de gegeven tabel DRUKORDER weer te geven? A. x=2 en y=2

B. x=3 en y=2

C. x=700 en y=900

D. x=900 en y=900 A. Juist. B. Onjuist. In het resultaat zijn ook aantalbesteld = 200 meegenomen. C. Onjuist. Deze uitkomst zou het geval zijn indien er SUM in plaats van COUNT was gebruikt. D. Onjuist. Deze uitkomst zou het geval zijn indien er SUM in plaats van COUNT was gebruikt én de voorwaarde 'aantal besteld > 200' beschreven was als 'aantal besteld > = 200'.

Page 36: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 36/44

24 van 30

Gegeven zijn de volgende relaties: REISGIDS (gidsnr, titel, ingangsdatum, einddatum) REISPRODUCT (productnr, soortproduct, <gidsnr>, omschrijving, bestemming, aantal dagen, soortverblijf, soortvervoer, soortvermaak) Men wil met de opdracht CREATE TABLE de tabel REISPRODUCT creëren. De volgende onvolledige DDL-opdracht wordt hiervoor gebruikt: CREATE TABLE reisproduct ( soortproduct CHAR(30) NOT NULL, gidsnr INTEGER, omschrijving CHAR(30), bestemming CHAR(30), aantaldagen INTEGER, soortverblijf CHAR(20) NOT NULL, soortvervoer CHAR(20) NOT NULL, soortvermaak CHAR(20), ... ) Hoe moet de DDL-opdracht worden aangevuld om de tabel REISPRODUCT correct te creëren? A. productnr INTEGER NOT NULL,

FOREIGN KEY(productnr, gidsnr) REFERENCES reisgids B. productnr INTEGER NOT NULL,

PRIMARY KEY(productnr), FOREIGN KEY(gidsnr) REFERENCES reisgids

C. PRIMARY KEY(productnr INTEGER), FOREIGN KEY(gidsnr) REFERENCES reisgids

A. Onjuist. Productnr is primaire sleutel en niet de vreemde sleutel. Vreemde sleutel is gidsnr. B. Juist. Juiste syntaxis voor aangeven gegevenstype productnr: INTEGER en NOT NULL. Productnr is primaire sleutel en vreemde sleutel is gidsnr. C. Onjuist. Verkeerde syntaxis voor het weergeven van primaire sleutel en het weergeven gegevenstype voor productnr.

Page 37: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 37/44

25 van 30

Bekijk het volgende relationele schema: REISGIDS (gidsnr, titel, ingangsdatum, einddatum) KLANT (klantnr, soortklant, naam, adres, postcode, woonplaats, telefoonnr, faxnr, emailadres, contactpersoon) GIDSAANVRAAG (<klantnr>, <gidsnr>, datumaanvraag, aantalgevraagd, datumverzending, aantalverzonden) De systeembeheerder wil de tabel GIDSAANVRAAG schonen. Hij wil met behulp van een SQL-opdracht alle rijen, waarvan het aantal aangevraagd gelijk is aan het aantal verzonden, uit de tabel verwijderen. Welke SQL-opdracht levert het gewenste resultaat? A. DELETE FROM gidsaanvraag

WHERE aantalgevraagd = aantalverzonden B. DELETE FROM gidsaanvraag

WHERE klantnr IN (SELECT klantnr FROM gidsaanvraag WHERE aantalgevraagd = aantalverzonden)

C. DELETE FROM gidsaanvraag WHERE gidsnr IN (SELECT gidsnr FROM gidsaanvraag WHERE aantalgevraagd = aantalverzonden)

A. Juist. B. Onjuist. Door deze opdracht worden eerst de klanten geselecteerd waarvoor geldt dat aantalgevraagd gelijk is aan aantalverzonden. Vervolgens worden alle tupels van de geselecteerde klanten uit gidsaanvraag verwijderd. Hierin kunnen ook tupels zitten waar aantalgevraagd niet gelijk is aan aantalverzonden. C. Onjuist. Door deze opdracht worden eerst de gidsnr's geselecteerd waarvoor geldt dat aantalgevraagd gelijk is aan aantalverzonden. Vervolgens worden alle tupels van de geselecteerde gidsnr's uit gidsaanvraag verwijderd. Hierin kunnen ook tupels zitten waar aantalgevraagd niet gelijk is aan aantalverzonden.

Page 38: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 38/44

26 van 30

Bekijk onderstaande tabel TARIEF: Tarief

typehandeling bedrag

controle 32

eenvlaksvulling 37

tweevlaksvulling 50

wortelkanaal 85

Bij de overgang naar de euro moest in de tabel TARIEF elk bedrag worden gedeeld door 2.2. Welke SQL-query leidt tot het gewenste resultaat? A. INSERT INTO bedrag

VALUES ((32/2.2), (37/2.2), (50/2.2), (85/2.2)) B. INSERT INTO tarief

VALUES ((32/2.2), (37/2.2), (50/2.2), (85/2.2)) C. UPDATE bedrag

SET bedrag = bedrag/2.2

D. UPDATE tarief SET bedrag = bedrag/2.2

A. Onjuist. De tabel tarief moet doormiddel van een opdracht UPDATE tarief worden aangepast. Een INSERT opdracht voegt alleen rijen toe en brengt geen wijzigingen in de bestaande rijen aan. B. Onjuist. De tabel tarief moet doormiddel van een opdracht UPDATE tarief worden aangepast. Een INSERT opdracht voegt alleen rijen toe en brengt geen wijzigingen in de bestaande rijen aan. C. Onjuist. De tabel tarief moet doormiddel van een opdracht UPDATE op de tabel tarief worden aangepast. Bedrag is niet de naam van deze tabel. D. Juist. De tabel tarief moet doormiddel van de opdracht UPDATE tarief worden aangepast. Doormiddel van SET bedrag = bedrag/2.2 worden alle bedragen door 2.2 gedeeld.

Page 39: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 39/44

27 van 30

Bekijk de volgende GRANT-opdracht: GRANT ALTER ON werknemer TO Piet Wat mag Piet volgens de GRANT-opdracht doen? A. nieuwe kolommen aan de tabel WERKNEMER toevoegen

B. rijen aan de tabel WERKNEMER toevoegen

C. waarden in rijen in de tabel WERKNEMER wijzigen A. Juist. De GRANT-opdracht geeft toestemming aan Piet om kolommen toe te voegen. Om rijen te mogen toevoegen wordt GRANT INSERT...... gebruikt. Om waarden in rijen te mogen wijzigen wordt GRANT UPDATE ....... gebruikt. B. Onjuist. De GRANT-opdracht geeft toestemming aan Piet om kolommen toe te voegen. Om rijen te mogen toevoegen wordt GRANT INSERT...... gebruikt. Om waarden in rijen te mogen wijzigen wordt GRANT UPDATE ....... gebruikt. C. Onjuist. De GRANT-opdracht geeft toestemming aan Piet om kolommen toe te voegen. Om rijen te mogen toevoegen wordt GRANT INSERT...... gebruikt. Om waarden in rijen te mogen wijzigen wordt GRANT UPDATE ....... gebruikt.

Page 40: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 40/44

28 van 30

SELECT klas FROM klas WHERE leerlingaantal < 14 AND klas IN (SELECT klas FROM vak GROUP BY klas HAVING (SUM) lesaantal = 5) Wat is het resultaat als de gegeven SELECT-opdracht op de gegeven tabellen wordt toegepast? A. 1B

2B 2C

B. 1B 2B 2C 3A

C. 1B 2C

D. 1B 2C 3A

Page 41: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 41/44

A. Onjuist. In de WHERE wordt de voorwaarde gesteld dat de klassen minder leerlingen dan 14 moeten hebben. Alleen klas 1B, 2B en 2C voldoen aan deze voorwaarde. In de subquery worden alle klassen geselecteerd die na groepering een opgeteld aantal lesuren hebben van 5. Alleen klas 1B, 2C, 3A voldoen hieraan. De klassen die uiteindelijk worden geselecteerd moeten aan beide voorwaarden voldoen. Alleen klas 1B en 2C voldoen aan de voorwaarden. B. Onjuist. In de WHERE wordt de voorwaarde gesteld dat de klassen minder leerlingen dan 14 moeten hebben. Alleen klas 1B, 2B en 2C voldoen aan deze voorwaarde. In de subquery worden alle klassen geselecteerd die na groepering een opgeteld aantal lesuren hebben van 5. Alleen klas 1B, 2C, 3A voldoen hieraan. De klassen die uiteindelijk worden geselecteerd moeten aan beide voorwaarden voldoen. Alleen klas 1B en 2C voldoen aan de voorwaarden. C. Juist. In de WHERE wordt de voorwaarde gesteld dat de klassen minder leerlingen dan 14 moeten hebben. Alleen klas 1B, 2B en 2C voldoen aan deze voorwaarde. In de subquery worden alle klassen geselecteerd die na groepering een opgeteld aantal lesuren hebben van 5. Alleen klas 1B, 2C, 3A voldoen hieraan. De klassen die uiteindelijk worden geselecteerd moeten aan beide voorwaarden voldoen. Alleen klas 1B en 2C voldoen aan de voorwaarden. D. Onjuist. In de WHERE wordt de voorwaarde gesteld dat de klassen minder leerlingen dan 14 moeten hebben. Alleen klas 1B, 2B en 2C voldoen aan deze voorwaarde. In de subquery worden alle klassen geselecteerd die na groepering een opgeteld aantal lesuren hebben van 5. Alleen klas 1B, 2C, 3A voldoen hieraan. De klassen die uiteindelijk worden geselecteerd moeten aan beide voorwaarden voldoen. Alleen klas 1B en 2C voldoen aan de voorwaarden.

Page 42: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 42/44

29 van 30

Kookboek

kookboek recept calorieën

Lekker Wokken Hete kip 400

Lekker Wokken Roerbak 300

Pasta en zo Macaroni Napoli 600

Pasta en zo Pesto 200

Pasta en zo Lasagne 400

Ovenschotels Lasagne 500

Lees de volgende informatiebehoefte: Geef alle gegevens van recepten waarvoor geldt dat het recept in vergelijking met de andere recepten in hetzelfde kookboek het maximaal aantal calorieën bevat. Gegeven is de volgende SELECT opdracht: SELECT * FROM kookboek WHERE calorieën = (SELECT MAX (calorieën) FROM kookboek GROUP BY kookboek) Kan door middel van de SELECT-opdracht de gevraagde informatie worden verkregen? A. ja

B. nee A. Onjuist. De subquery levert drie waarden op, namelijk 400, 600 en 500. Als vergelijkingsoperator kunnen we dan geen = gebruiken. Bovendien vergelijk je zo het aantal calorieën zo met het maximum uit andere kookboeken wat in strijd is met de probleemstelling. B. Juist. Er moet gebruik gemaakt worden van een gecorreleerde subquery. Een juiste SELECT-opdracht is: SELECT * FROM kookboek A WHERE calorieën = (SELECT MAX (calorieën) FROM kookboek WHERE kookboek = A.kookboek) De voorwaarde 'kookboek = A.kookboek' zorgt er voor dat het maximum alleen van het eigen kookboek wordt bepaald.

Page 43: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 43/44

30 van 30

Bekijk de volgende tabel en informatiebehoefte: Circuit

loper datum plaats punten

1 2005-01-01 1 100

2 2005-02-01 2 150

1 2005-02-01 1 200

3 2005-02-01 3 50

2 2005-04-01 1 300

Geef van de lopers die op plaats 1 hebben gestaan het aantal keren dat ze op plaats 1 hebben gestaan. Om de informatie te verkrijgen wordt gebruik gemaakt van de volgende SELECT-opdracht: SELECT loper, count(*) FROM circuit GROUP BY loper HAVING plaats = 1 Is de gegeven SELECT-opdracht juist? A. ja

B. nee A. Onjuist. Een voorwaarde gesteld in een WHERE clausule wordt op een rij uitgevoerd. Een voorwaarde gesteld in de HAVING clausule wordt uitgevoerd per groep. Een juiste SELECT-opdracht is: SELECT loper, count(*) FROM circuit WHERE plaats = 1 GROUP BY loper Door de WHERE clausule krijg je alle rijen met lopers op plaats 1. Deze lopers worden per loper gegroepeerd, waarna het aantal rijen per groep geteld kan worden. B. Juist. Een voorwaarde gesteld in een WHERE clausule wordt op een rij uitgevoerd. Een voorwaarde gesteld in de HAVING clausule wordt uitgevoerd per groep. Een juiste SELECT-opdracht is: SELECT loper, count(*) FROM circuit WHERE plaats = 1 GROUP BY loper Door de WHERE clausule krijg je alle rijen met lopers op plaats 1. Deze lopers worden per loper gegroepeerd, waarna het aantal rijen per groep geteld kan worden.

Page 44: voorbeeldexamen - ictsamenvatting.nl · voorbeeldexamen Databases and SQL Foundation (DBSQLF) EXIN Kantoor Janssoenborch, Hoog Catharijne Godebaldkwartier 365, 3511 DT Utrecht Postbus

© EXIN, DBSQLF 44/44

Beoordeling Het maximaal te behalen punten voor dit examen is 30. Bij het behalen van 20 punten of meer bent u geslaagd. In alle andere gevallen bent u gezakt. In onderstaande tabel wordt bij het aantal punten het bijbehorende cijfer gegeven. gezakt behaalde aantal punten

cijfer

geslaagd behaalde aantal punten

cijfer

0 - 8 1 20 – 22 6 9 - 11 2 23 – 24 7 12 - 14 3 25 – 27 8 15 - 16 4 28 – 29 9 17 - 19 5 30 10