1. * Database worden vaak gebruikt in Client-Server architectuur.



Vergelijkbare documenten
Les 2 Eenvoudige queries

SQL & Relationele datamodellen in interactieve media

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

SQL & Datamodelleren

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

Databases - Inleiding

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

Structured Query Language (SQL)

NHibernate als ORM oplossing

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Databases SQL - meerdere tabellen

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

Koppeling met een database

[TOETS SQL INLEIDING]

Query SQL Boekje. Fredrik Hamer

Les S-01: De basisbeginselen van SQL

Ontwerp een datamodel

Sparse columns in SQL server 2008

Inleiding Databases en Data Base Management Systems Tabellen Wat is SQL?... 5

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Tentamen Informatica 6, 2IJ60,

12. Meer dan één tabel gebruiken en sub-queries

Databases en SQL Foundation (DBSQLF.NL)

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Correctievoorschrift VWO NederlandsNederl. Informatica. Tijdvak 1 Woensdag 17 mei uur. College-examen schriftelijk.

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

Les 11 : Basis SQL (deel2).

databases & SQL - antwoorden

oefeningen TOP2000 antwoorden

= > >= < <= BETWEEN IS NULL IS NOT NULL

SQL / Systeemanalyse

Zelftest SQL Workshop

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

Relationele databases

Vragen hoofdstuk 1: Resultaat

Zelftest SQL Workshop

Zorg ervoor dat je een database hebt aangevraagd op Open daarna het volgende adres in je browser:

Thinking of development

Datamodelleren en databases 2011

SQL & Relationele datamodellen in interactieve media

Zelftest Informatica-terminologie

Miniles gegevensbanken bevragen met SQL

FAQ Aura Client/Server

Les 10 : Aanmaken van een database (deel2).

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

Correctievoorschrift HAVO Informatica. Tijdvak 1 Woensdag 24 mei uur. College-examen schriftelijk.

SQL.

1.1 Een database ontwerpen voor een webliografie

Tentamen Databases voor iku

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Introductie (relationele) databases

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal

Installeer Apache2: Landstede februari 2009 versie 3 1 Bertil Hoentjen

ISO SQL: Structured Query Language

Automatische Installatie op IIS server

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

SQL: oefenen queries

En hoe gaan ze dit allemaal terugvinden?

Les S-01: De basisbeginselen van SQL

Hoofdstuk: 1 Principes van databases

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Proeftentamen ISO (2R290), query-gedeelte, Oktober 2006

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

Hoofdstuk 6. PHP Data Objects. Cursus PHP & MySQL Groep D

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

EXAMEN juni 2016 Gegevensbanken

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Data Manipulatie. Query Talen. / Informatica

Les S-02: Meer geavanceerde SQL-instructies

Normaliseren van tabellen Praktische oefeningen

11. Het selecteren van gegevens deel II

Normaliseren versie 1.1

Planbord installatie instructies

AccessFIX bestand herstel software biedt een effectieve oplossing voor beschadigde MS Access data en het herstellen van verwijderde tabellen.

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

Programmering SWIOM2a,

Object Oriented Programming

Elfde-Liniestraat Hasselt Schooljaar TINFO POKER GAME Oracle Scripts

Database ontwerp Normaliseren.

8. Koppeling met een database

Data Manipulation Language

Test Joomla op je PC 1

Data Warehouse Script Generator Doel

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

PHP en een MySQL database.

SQL SERVER Werking van Database Snapshots

EXIN Databases en SQL Foundation

Relationele database. Het relationele model

SQL datadefinitietaal

Correctievoorschrift HAVO Informatica. Tijdvak 1 Woensdag 9 mei uur. College-examen schriftelijk.

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Structured Query Language

Informatie & Databases

Online Back-up installatie handleiding. Sikkelstraat VB Oosterhout E: info@winexpertise.nl

Transcriptie:

Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server architectuur. Geef van onderstaande applicatie aan of het een client is of een server :is en motiveer je antwoord Is PHP myadmin een databse server of een database client? [ ] Database Server [ x ] Database Client Toelichting: PHPmyAdmin is een van de mogelijke clients van de databaseserver (mysql). Een databaseserver een stuk centrale software dat daadwerkelijk de data in de database manipuleert. De databaseclient is een stuk decentrale software dat gekoppeld is aan de server en dat de opdrachten geeft aan de server. Er kunnen meer clients tegelijk gekoppeld worden aan één server. PHPmyAdmin is webbased software dat opdrachten (sql-queries) doorgeeft aan de mysql database server. Tegelijkertijd kunnen andere client iets met de database doen: een publieke website of DBWrench of mysqlworkbench of MS ACCESS. 2. * Wat vind jij van de volgende stelling: een primairy key ( PK, primaire sleutel ) is altijd een nummer [ ] waar [ x] onwaar Toelichting: Een PK is een kolom in een datatabel dat voor iedere rij een unieke waarden bevat. Op die manier heeft iedere rij in de tabel minimaal een waarde waarin het verschilt van alle andere rijen. Op die manier kan iedere rij uniek geïdentificeerd worden. 1/1/

Dat kan een nummerieke waarde zijn, al dan niet automatisch gegenereerd, maar dat is niet noodzakelijk. Voorbeelden van niet-numerieke waarden die als PK kunnen dienen: kentekennummers van auto s, url s van websites 3. a) * Wat is een many-to-many relatie, en geef drie goede voorbeelden? Een relatie waarbij een rij uit de ene tabel gekoppeld kan worden aan meerdere rijen uit een andere tabel en andersom. - student-vak: een student kan meer vakken volgen en een vak kan door meer studenten worden gevolgd - lezer krant : een lezer kan meer kranten lezen en een krant kan door meer lezers worden gelezen - zoekterm artikel : een zoekterm kan naar meer artikelen leiden en een artikel kan met meer zoektermen gevonden worden b ) * Wat is een many-to-one relatie, en geef drie goede voorbeelden? Een relatie waarbij een rij uit de ene tabel gekoppeld kan worden aan meer rijen uit de andere tabel, maar de rijen uit de andere tabel aan slecht één rij uit de ene tabel kan worden gekoppeld - stad straat : een stad bevat meer straten, maar een straat bevind zich in één stad - klas student : een klas heeft meer studenten, maar een student zit in één klas - auteur boek : een auteur kan meer boeken schrijven, maar een boek wordt door één auteur geschreven 4. A : * Temperatuur wordt veelal aangegeven in graden Celcius ( bijv 20 C) of in Kelvin ( 390 K ). Wat is het datatype van temperatuur? Licht je antwoordt toe. Het datatype is numeriek. Met temperaturen kan worden gerekend. Gemiddelde temperatuur, temeratuursverschillen, etc. Kelvin of Celsius zijn de eenheden waarin gerekend wordt. Net als afstanden in meters en kilometers kan worden uitgedrukt, of gewicht in grammen of in kilogrammen In het datamodel zal gekozen moeten worden welke eenheden worden gebruikt. B: * Iedere computer op het internet heeft een IP-nummer. Wat is het datatype van een IP-nummer? Licht je antwoord toe. Een IP nummer kan als stuk tekst ( chararcterstring/varchar) gemodelleerd worden of als een combinatie van meerdere numeriek waarden. Over het algemeen is een string adekwaat omdat er geen numeriek operaties zullen worden uitgevoerd op een IP nummer. IPnummers als tekst kunnen gemakkelijk vergeleken worden en dat is veelal voldoende Een IP nummer als combinatie van numerieke waarden kan zinvol zijn, als een systeembeheerder reeksen van ipnummers te beheren heeft. Deze mate van detail is vaak niet nodig. Een IP nummer kan niet als één nummer worden opgeslagen, omdat de punten in een 2/2/

IPnummer geen decimaalpunten zijn, maar scheiders tussen verschillende delen van het IPnummer. 5. * Het is meestal onwenselijk om gegevens meer dan één keer in een database te bewaren. Waarom is dat onwenselijk? Welk woord wordt gebruikt om aan te geven dat er geen redundante ( d.i.: overbodige, dubbele ) gegevens in de database staan? Dit is onwenselijk omdat - er de mogelijkheid is dat er inconsistenties onstaan - het updaten van gegevens ingewikkelder wordt - er meer geheugenruimte nodig is Een datamodel waarin gegevens nooit meer dan één keer worden opgeslagen heet genormaliseerd 6. *** Transaction Processing kan worden gebruikt als er meerdere updates, inserts en/of deletes achter elkaar worden gedaan. Bijvoorbeeld bij een bankoverschrijving: Bij Jan gaat er een bedrag vanaf, bij Piet komt dat bedrag er vervolgens bij. a) Wat is de functie van transaction processing in zo n geval. b) Noem nog een voorbeeld situatie waar transaction processing nuttig is. a) Transaction Processing zorgt er voor dat een serie updates in zijn geheel wel of niet wordt uitgevoerd en dat de serie geïsoleerd wordt uitgevoerd ( dwz: queries vanuit een andere client of andere transactie mengen zich niet met de transactie ). Bij een foutmelding kunnen alle voorgaande updates worden terug gedraaid en alle updates zijn pas definitief als alle updates met succes zijn uitgevoerd. Op deze manier wordt voorkomen ( de kans minimaal gemaakt) dat er door een fout wel geld bij Jan wordt afgeschreven en niet bij Piet erbij wordt geschreven. b) Het plaatsen van een bestelling op een webwinkel. De bestelgegevens en producten dienen in zijn geheel wel of niet in de database te worden opgenomen, maar nooit voor de helft. 3/3/

Naam Studentnummer Klas Herkansing [ ] ja, nee [ ] SQL queries maken Een database voor een leesclub slaat gegevens op over boeken, lezers en de recensies die lezers over de boeken schrijven. Een boek heeft een auteur en een uitgeverij. Een boek hoort in een bepaald genre. De lezers van de leesclub schrijven recensies over boeken Bestudeer het datamodel en maak voor onderstaande vragen SQL queries. De database met data kan gedownload worden van het IAM intranet, en kan worden geimporteerd in je eigen mysql database. Hiermee kan je de queries uitproberen. Vragen met * moeten goed beantwoordt worden, voor extra punten ook de vragen met ** 4/4/

Selecteer de gegevens van de lezers uit Amsterdam en sorteer op leeftijd * SELECT * FROM lezer WHERE woonplaats ='amsterdam' ORDER BY geboortedatum Selecteer de ID s en titels van alle boeken met voetbal in de titel * SELECT ID, titel FROM boek WHERE titel LIKE '%voetbal%' Selecteer het gemiddelde aantal bladzijden in de boeken * SELECT AVG(aantalbladzijden) FROM boek Selecteer de namen van alle steden waar lezers wonen en het aantal lezers dat in deze stad woont * SELECT woonplaats, count(id) AS aantallezers FROM lezer GROUP BY woonplaats Selecteer de gegevens van alle boeken en koppel daaraan de naam van de auteur van het boek. * SELECT boek.*, auteur.naam AS auteurnaam FROM boek LEFT JOIN auteur ON auteur.id = boek.auteurid 5/5/

Selecteer de titels van de boeken die een onvoldoende hebben gekregen van een lezer ( cijfer < 6 ) * * SELECT DISTINCT boek.titel FROM boek JOIN recensie ON recensie.boekid = boek.id WHERE recensie.cijfer < 6 Selecteer de gegevens van alle lezers die een boek van Harrie Bos hebben gerecenseerd.. * * SELECT DISTINCT lezer.* FROM lezer JOIN recensie ON lezer.id = recensie.lezerid JOIN boek ON recensie.boekid = boek.id JOIN auteur ON auteur.id = boek.auteurid WHERE auteur.naam = Harrie Bos Selecteer de gegevens van alle auteurs en bereken daarbij het gemiddelde cijfer dat deze auteur krijgt van de lezers. * * SELECT auteur.*, AVG(cijfer) FROM auteur LEFT JOIN boek ON boek.auteurid = auteur.id LEFT JOIN recensie ON recensie.boekid = boek.id GROUP BY auteur.id Selecteer de namen van alle lezers en alle genres en telt het aantal recensies die de betreffende lezer voor ieder genre heeft geschreven. * * * 6/6/

SELECT lezer.id AS lezerid, lezer.naam AS lezernaam, genre.id AS genreid, genre.naam AS genrenaam, COUNT(recensie.ID) AS aantalrecensies FROM ( lezer, genre ) LEFT JOIN ( recensie JOIN boek ON recensie.boekid = boek.id ) ON recensie.lezerid = lezer.id AND boek.genreid = genre.id GROUP BY lezerid, genreid ORDER BY lezernaam, lezerid, genrenaam, genreid Of met een subquerie SELECT lezer.id AS lezerid, lezer.naam AS lezernaam, genre.id AS genreid, genre.naam AS genrenaam, ( SELECT COUNT( recensie.id) FROM recensie JOIN boek ON boek ID = recensie.boekid WHERE recensie.lezerid = lezer.id AND boek.genreid = genre.id ) AS aantalrecensies FROM lezer, genre ORDER BY lezernaam, lezerid, genrenaam, genreid Verwijder de auteur Gerard Reve uit de database. NB: voer deze querie als allerlaatste uit of maak een backup van de databsase * * DELETE FROM auteur WHERE naam = Gerard Reve Dit geeft een foutmelding ( FK contraint ). Er zijn nu drie mogelijkheden: - De auteur kan niet worden verwijderd, dat moeten we ook niet willen want er staan boeken van deze auteur in de database. - Zet eerst bij alle boeken van Gerard Reve de auteurid op NULL - Verwijder eerst alle boeken van Gerard Reve uit de database. 7/7/

Architectuur 1. De bouw van het bioscoopreserveringssysteem wordt uit besteed aan twee programmeurs: één databaseprogrammeur en een front-endprogrammeur. Zij moeten samenwerken om het geheel goed te laten functioneren. Na een paar tests blijkt dat het systeem soms reserveringen doet voor voorstellingen die al zijn uitverkocht. a) * Welke programmeur is verantwoordelijk voor deze fout in het programma en waarom? * b) ** hoe kan de fout het beste hersteld worden.? 2. Het bioscoopreserveringssysteem wordt in het hele land gebruikt en door het intensieve gebruik ontstaan er perfomance problemen. Er wordt heel vaak een selectie gemaakt van films die vandaag draaien en daarbij wordt bekeken of er nog stoelen in de bioscoop zaal vrij zijn. ** Hoe kan dit performance probleem worden opgelost? NB: er zijn meerdere strategieën mogelijk. 8/8/