Gegevensbanken
Informatie over het examen
3 nieuwe profs: Erik Duval, Katrien Verbert, Bettina Berendt sinds academiejaar 2009-2010
Informatie over het examen - vorige prof
mondeling examen met schriftelijke voorbereiding: Het examen bestaat uit 3 hoofdvragen. De eerste en (later) de tweede vraag worden na een bepaalde periode opgehaald. Je krijgt een blad met SQL syntax, maar deze is te beperkt om al je query's mee te kunnen maken. Dingen die ontbreken zijn bvb de syntax voor selecties (keywords als IN, EXISTS, COUNT, MAX, ...) en permissies (GRANT). Syntax van buiten kennen dus!
Het examen bestaat dus uit 3 delen:
- Een ER/EER schema
- queries(relationele algebra,relationele calculus & SQL)
- een aantal kleine theorievragen --> een aantal vragen + antwoord zijn gebundeld op de site van cw2006: pdf
Op toledo staat een extra oefening over ER schema's en 50 extra query oefeningen. Gebruik ze want die vragen tellen voor 2/3 van het examen
Het theoriegedeelte bestaat bijna altijd voor een stuk uit eerder gestelde vragen. Zie dus dat je alle vragen hier zeker kan beantwoorden
Enkele persoonlijke bevindingen - vorige prof
- De prof heeft ook graag dat je definities correct verwoordt, tot in de kleinste details.
- De prof heeft ook graag lange antwoorden op korte vragen.
- Als je mondeling gaat afleggen en de prof heeft om één of andere reden de verbeterde oefening die je moest afgeven nog niet, zal hij dat jou persoonlijk verwijten. Ga dus niet als eerste. (Dit is al meermaals gebeurd)
- Voor de studenten van het schakelprogramma: Uit mijn persoonlijke ondervinding was ik gewoon om M op N relaties al in het ER schema te opsplitsen met een tussentabel, dat is dus niet de bedoeling, dit gebeurt pas in het relationeel schema.
Examenvragen
do 26 augustus 2010, 9h00
Deel 1 Mondeling
- Maak EER schema
- vorm om tot relationeel schema
- Beperkingen die niet weergegeven kunnen worden op deze schema's?
Deel 2 - Queries en Views
- SQL, relationele algebra, relationele calculus queries en een view in SQL op een gegeven relationeel schema.
Deel 3 - Fysisch
- Een algoritme omvormen (zoeken in een primary index naar een key omvormen naar het algoritme voor zoeken in een secondary index naar een niet-key attribuut in een niet geordende lijst ofzo)
- 3 transacties in 3 roosters. Maak de ?? graph en kijk of ze herstelbaar zijn of niet. Leg uit waarom.
- Nog iets met fouten in een transactieschema ofzo, niet meer zeker.
- gegeven: R = {A, B, C, D, E} en 3 FDs, zoek een sleutel voor R en normaliseer naar 3NF.
vrij 11 juni 2010, 14h00 (3 nieuwe profs!)
Vraag 1 Mondeling
- Maak EER schema
- vorm om tot relationeel schema
- Beperkingen die niet weergegeven kunnen worden op deze schema's?
Vraag 2 - Queries
- SQL, relationele algebra en relationele calculus queries op een gegeven relationeel schema.
Vraag 3
- Gegeven: A B C D E F G H I J + relaties
- In welke (normalisatie) vorm staat dit?
- Gevraagd: normaliseer + welke vorm is dit?
Vraag 4
- Verander algoritme van B+ tree zodat het werkt op B tree.
Vraag 5 - extendible hashing
- Wat is het? Waarvoor wordt het gebruikt?
- paar dingen toevoegen en verwijderen
Vraag 6
- Gegeven algoritme voor binaire locks. Hoe wijzigt het algoritme indien we een upgrade van read naar write lock toestaan.
Examenvragen - vorige prof
vrij 19 juni 2009, 13h00
Vraag 1
- Gegeven een relationeel schema. 1 query in relationele algebra, 3 queries en 1 view in SQL.
Vraag 2
- Wat is het verschil tussen een gedeelde subklasse en een categorie? en geef een vb van beide
- Gegeven een specificatie, maak daarvan een E(E)R-schema en zet dit schema om in een relationele databank.
Vraag 3
- Bespreek de verschillende soorten primaire bestandsorganisaties en access methodes en bespreek hoe efficiënt ze zijn bij volgende bewerkingen: zoeken op sleutel ; zoeken op niet-sleutel ; toevoegen ; doorlopen in sleutelvolgorde ; doorlopen in clustervolgorde.
- Bespreek transactie rollback en cascade rollback en voor welke recoverymethoden is dit niet nodig
- Definieer het begrip recursieve sluiting en leg uit in welke mate SQL dit begrip ondersteunt.
ma 15 juni 2009, 13h00
Vraag 1
- Gegeven een relationeel schema. 1 query in relationele algebra, 1 in tupelcalculus, en 2 queries en 1 view in SQL.
Vraag 2
- Wat is het verschil tussen een gedeelde subklasse en een categorie? en geef een vb van beide
- Gegeven een specificatie, maak daarvan een E(E)R-schema en zet dit schema om in een relationele databank.
Vraag 3
- Bespreek B+-bomen. Geef aan waarvoor ze worden gebruikt en hun voordelen.
- Bespreek de verschillende soorten primaire bestandsorganisaties en access methodes en bespreek hoe efficiënt ze zijn bij volgende bewerkingen: zoeken op sleutel ; zoeken op niet-sleutel ; toevoegen ; doorlopen in sleutelvolgorde ; doorlopen in clustervolgorde (= schemaatje geven zoals we dat in les gezien hebben).
- Bespreek transactie rollback en cascade rollback en voor welke recoverymethoden is dit niet nodig
- Bespreek de privileges, dus met GRANT, hint: gebruik ook een view waar dat je een view denkt te gebruiken voor het toepassen van de GRANT
vr 12 juni 2009, 8h00
Vraag 1
- Gegeven een relationeel schema. 1 query in relationele algebra, 1 in tupelcalculus, en 2 queries en 1 view in SQL.
Vraag 2
- Wat is het verschil tussen een gedeelde subklasse en een categorie?
- Gegeven een specificatie, maak daarvan een E(E)R-schema en zet dit schema om in een relationele databank.
Vraag 3
- Bespreek B+-bomen. Geef aan waarvoor ze worden gebruikt en hun voordelen.
- Bespreek de verschillende soorten primaire bestandsorganisaties en access methodes en bespreek hoe efficiënt ze zijn bij volgende bewerkingen: zoeken op sleutel ; zoeken op niet-sleutel ; toevoegen ; doorlopen in sleutelvolgorde ; doorlopen in clustervolgorde (= schemaatje geven zoals we dat in les gezien hebben).
- Bespreek op welke manieren je in een hoog-niveautaal of via een website kan communiceren met een gegevensbank (4 mogelijkheden: PHP, libraries, embedded SQL en een nieuwe taal creëren)
- Definieer het begrip recursieve sluiting en leg uit in welke mate SQL dit begrip ondersteunt.
vr 20 juni 2008, 8h00
Vraag 1
- Gegeven een relationeel schema. 1 query in relationele algebra, 3 in SQL en 1 view in SQL.
Vraag 2
- Wat is het verschil tussen een gedeelde subklasse en een categorie?
- Gegeven een specificatie, maak daarvan een EER-schema en zet dit schema om in een relationele databank.
Vraag 3
- Wat is view integratie? Welke strategiëen/methoden kan je daarvoor gebruiken?
- Bespreek B+-bomen. Geef aan waarvoor ze worden gebruikt en hun voordelen.
- Wat is query optimalisatie? Geef de criteria voor heuristische optimalisatie. Je moest ook een query optimaliseren die gegeven was in SQL.
- Gegeven het University-database in ODL (staat in het boek in één van de hoofdstukken over object-gegevensbanken) en twee queries in OQL. Leg uit in woorden wat de queries selecteren.
2008-06-12, 13:00
Vraag 1
- 5 queries over een gegeven relationeel schema. De eerste in relationele algebra, de tweede in SQL, de derde in relationele tupelcalculus, de vierde opnieuw in SQL en tenslotte een view in SQL.
Vraag 2
- Op welke manieren kan je een superklasse/subklasse relatie voorstellen in een relationele gegevensbank?
- Modelleer het EER-model voor een reservatiesysteem van tickets in een theaterzaal. Daarna moet je het EER-model omzetten naar een relationeel model.
Vraag 3
- Gegeven een relatie met vijf attributen, een verzameling met drie functionele afhankelijkheden en drie verzamelingen van attributen. Welke van deze verzamelingen zijn kandidaatsleutels? Geef mogelijke sleutels van deze relatie. Normaliseer de relatie in derde normaalvorm of Boyce-Codd normaalvorm.
- Bespreek indexen op bestanden. Welke indexen ken je, waarvoor worden ze gebruikt en hoe zijn ze georganiseerd?
- Hoe worden de verschillende soorten relaties uit het ER-model voorgesteld in het netwerkmodel?
- OQL-query opstellen aan de hand van het objectrelationele model 'University' uit de cursus (en het handboek) en de implementatie van de klassen.
2008-06-12, 8:00
Vraag 1
- 5 queries over een gegeven relationeel schema. De eerste in relationele algebra, de tweede in SQL, de derde in relationele tupelcalculus, de vierde opnieuw in SQL en tenslotte een view in SQL.
- Geef alle werknemers die hoofd van een dienst zijn en ten minste 35 jaar waren op het behalen van hun doctoraat.
- Geef alle werknemers die al hun doctoraat behaald hebben maar nog nooit jurylid zijn geweest.
Vraag 2
- Op welke manieren kan je een superklasse/subklasse relatie voorstellen in een relationele gegevensbank?
- Modelleer het E(E)R-model voor een bedrijf met superklasse werknemers(technicus,manager,administratief bediende), klanten, diensten, uitgevoerde diensten per klant, ... Daarna moet je het E(E)R-model omzetten naar een relationeel model.
Vraag 3
- Bespreek de verschillende vormen van dynamische hashing
- Wat is transactie rollback? Waarom controleer je cascading rollback? Welke recovery-systemen hebben geen last van transactie rollback?
- Wat is een query tree? Geef de heuristieken om te optimaliseren. pas dit toe op een gegeven SQL query.
2008-06-09, 8:00
Vraag 1
- 5 SQL queries over gegeven relationeel schema, waarvan 1 relationele algebra, 1 tuple relationele calculus en 1 view. Niet al te moeilijk.
Vraag 2
- Op welke manieren kan je een superklasse/subklasse relatie voorstellen in een relationele gegevensbank?
- EER diagramma maken. Vrij omslachtig om alles een beetje ordelijk op papier te krijgen.
Vraag 3
- Bespreek indexen op bestanden. Welke indexen ken je, waarvoor worden ze gebruikt en hoe zijn ze georganiseerd?
- Hoe worden de verschillende soorten relaties uit het ER-model voorgesteld in het netwerkmodel?
- Uitleggen wat view integratie is, wat zijn de problemen, mogelijke oplossingen?
- Uitleggen wat 2 fasen vergrendeling/serialiseerbaar rooster is. En een oefening waar ge 2 fasen vergrendeling moet toepassen.
2008-06-09, 13:00
Vraag 1 en 2
- Zelfde als 8:00
Vraag 3
- B+-bomen: Wat zijn ze? Waarvoor worden ze gebruikt? Wat zijn de belangrijkste eigenschappen? Voordelen?
- Gegeven een relatie R. Vind een sleutel. Normaliseer tot 3NF/BCNF.
- Gedistribueerde gegevensbank: op welke manieren kan je een equijoin uitvoeren?
- Permissies in SQL. Een paar SQL-opdrachten maken.
-prof stelt het erg op prijs dat je met views (ingewikkelde queries, permissies) werkt i.p.v. moeilijk te doen-
2007-06-28, 8:00
Zie onderstaand examen. Allerlaatste stukje van vraag drie was een stuk over permissions ipv XML, je kreeg een aantal restricties opgelegd waar je het SQL commando voor moest geven.
2007-06-25, 8:00
vraag 1
6 Queries, 4 SQL, 1 tupel calculus en 1 relationele algebra. Wat ik mij nog herinner:
- Je hebt een schema met daarin een relatie Persoon (naam,voornaam, geboorteplaats,...), Foto (plaats, datum, fotonr), een relatie tussen foto en persoon, en een relatie persoon persoon (ouder/kind).
- Geef alle foto's genomen op plaats ... waarbij minstens 3 generaties van een familie voorkomen met gelijk geslacht (dus bvb grootmoeder, moeder dochter of grootvader, vader, zoon.
- Geef een lijst van de perso(o)n(en) die het meest voorkomen op de foto's
- Geef een lijst van mensen die enkel gefotografeerd werden in hun geboortestad
- maak een view ... met heel gepeperde query :)
hint Persoonlijk heb ik 20 minuten verloren aan het overschrijven van klad naar net, wat zoveel tijd was dat ik de laatste query niet heb kunnen maken. Die queries zijn vaak heel erg lang, en dus veel schrijfwerk-> houd daar rekening mee gezien je maar anderhalf uur hebt.
Vraag 2 Maak een (E)ER schema voor een omschreven situatie. Persoonlijk vond ik dat een zeer gemakkelijke vraag. Let wel op: mensen die ook ontwikkeling van bedrijfstoepassingen hebben gedaan: in gegevensbanken mag je geen 1...N zetten om de cardinaliteit van een relatie aan te duiden (oeps ;) ) Deze vraag moet je in 1u15 maken, wat me (dankzij het niet maken van een klad en van de eerste keer mooi tekenen) wel gelukt is :)
Vraag 3
- Leg enkele manieren van dynamische hashing uit
- Wat is View integratie, welke problemen kan je tegenkomen, hoe pak je dit aan?
- Zet in 3NF of BCNF, kies een sleutel voor een bepaalde opgave.
- stel dat de gegevensbank uit vraag 1 in XML gezet is, maak een query die naam en geboorteplaats ofzo geeft voor iedereen die minstens 1 maal op zijn geboorteplaats gefotografeerd is. Je moet dus de XPath of XQuery syntax vanbuiten leren!
2006-08-21, 8:00
vraag 1:
5 SQL querys, 1 in relationele algebra, 1 in tupel calculus en 3 in sql
vraag 2:
a) EER vraag over hoe overervingsrelaties om te zetten naar een relationeel schema
b) ER schema opstellen voor verzekeringsmaatschappij met voertuig, personenauto, motor, verzekerde, makelaar, schatter, polis, schade-aangifte en nog wat andere leuke dingen.
c) het ER schema omvormen naar een relationeel schema
vraag 3:
- Bespreek indexen op bestanden. Welke indexen ken je, waarvoor worden ze gebruikt en hoe zijn ze georganiseerd?
- Uitleggen wat view integratie is, wat zijn de problemen, mogelijke oplossingen?
- uitleggen wat 2 fasen vergrendeling/serialiseerbaar rooster is. En een oefening waar ge 2 fasen vergrendeling moet toepassen.
- Hoe worden de verschillende soorten relaties uit het ER-model voorgesteld in het netwerkmodel? (bijvraag: hoe wordt een ternaire relatie voorgesteld?)
2006-06-19, 8u
- Definiëren van queries en views:
Beschouw het volgende relationele schema:- BOEK (ISBNnr, titel, uitgeversnaam, jaar van uitgifte)
- BOEKEXEMPLAAR (boekvolgnr, ISBNnr)
- AUTEUR (ISBNnr, auteursnaam, auteursvoornaam)
- LEZER (lerernr, lezernaam, lezervoornaam, adres)
- UITLENING (boekvolgnr, lezernr, ontleningsdatum, uiterste terugbrengdatum)
- RESERVERING (lezernr, ISBNnr, datum)
- Geef een uitdrukking voor de volgende vragen:
- Geef een lijst met ISBNnr en titel van alle boeken die door meer dan één lezer gereserveerd zijn; geef daarbij ok het aantal reserveringen van elk book (in relationele algebra)
- Geef een lijst met ISBNnr en titel van alle boeken waarvan alle exemplaren ontleend zijn (in tupel relationele calculus)
- Geef een lijst van alle titels van boeken in de bibliotheek met als enige auteur 'Simon Stevin' (in SQL)
- Geef, gegroepeerd per lezer, een lijst van alle boekexemplaren (boekvolgnr, en titel) die vandaag moeten worden teruggebracht (in SQL)
- Definieer een view met volgende gegevens:
- van alle boeken die gereserveerd zijn en waarvan het aantal exemplaren in het bezit van de de bibliotheek ten minste 2 bedraagt.
- ISBNnr, titel, aantal exemplaren in het bezit van de bibliotheek, aantal reserveringen van het boek gesorteerd volgens titel.
- U mag er van uit gaan dat de huidige datum in SQL wordt gegeven door CURDATE(), en dat data kunnen worden vergeleken met
- Modelleervraag
- Verklaar in EER modellering het verschil tussen een gemeenschappelijke subklasse en een categorie, en geef van elk een voorbeeld ter illustratie
- Hier stond een hele beschrijving van een agentschap dat appartementen en villa's verhuurde.
- Maak hier een E(E)R-schema van
- Zet dit E(E)R-schema om naar een relationeel schema
- Korte vragen
- Bespreek indexen op bestanden. Welke indexen ken je, waarvoor worden ze gebruikt en hoe zijn ze georganiseerd?
- Wat versta je onder view integratie (bij het ontwerpproces van een gegevensbank-schema)?
- Wat is het?
- Wat zijn mogelijke problemen?
- Geef mogelijke methoden/strategieën voor view-integratie
- Hoe worden de verschillende soorten relaties uit het ER-model voorgesteld in het netwerkmodel?
- Bespreek, in een gedistribueerde omgeving, de verschillende manieren om een equijoin uit te voeren op 2 bestanden gelocaliseerd op verschillende plaatsen.
2006-06-12, 8:00
vraag1:
5 SQL querys, die eigenlijk belachelijk gemakkelijk waren
vraag2:
a) EER vraag over hoe overervings relaties om te zetten naar een relationeel schema
b) ER schema:met reizigers, reizen, ruimteobjecten.
- Een ruimteobject: heeft een unieke naam en kan een satteliet zijn van hoogstens 1 ander ruimteobject(bv alle planeten in ons zonnestelsel zijn sattelieten van de zon en de onze maan is een satteliet van de aarde), in het geval dat het object een sateliet is moet de gemiddelde afstand tot het object waar het een satteliet van is worden bijgehouden.
- Een reiziger: heeft een uniek reizigers#( en nog een paar andere onbelangrijke attributen) en kan deelnemen aan een reis. Hij kan ook (hoogstens)één favoriete metgezel hebben. Een reiziger kan een opinie hebben over een ruimteobject(bv een schaal tussen -10 en 10)
- Een reis: heeft een uniek reis# en vind plaats naar minstens 1 ruimteobject en kan 1 ruimteobject verschillende keren aandoen in 1 reis, daardoor moet er een volgnummer worden bijgehouden die aangeeft in welke volgorde de reis de ruimteobjecten afgaat. Er moet ook bijgehouden worden hoeveel dagen de reis halt houdt op een ruimteobject.
c) het ER schema omvormen naar een relationeel schema
vraag3:
- kleine normalisatie oefening: Nakijken welke de mogelijk sleutels zijn en dan normaliseren tot 3eNF of BCNF
- uitleggen wat view integratie is, wat zijn de problemen, mogelijke oplossingen?
- uitleggen wat 2 fasen vergrendeling/serialiseerbaar rooster is. En een oefening waar ge 2 fasen vergrendeling moet toepassen.
- Wat is een query boom, heuristieken? + oefeningen op het optmaliseren van een queryboom.
2005-06-13 Kulak
- 6kleine vraagjes:
- selectiviteit van een conditie(wtf??):
mijn antwoord: in welke mate een query de gegevens van de volledige DB beperkt, en da leek nog just :) - XML, structured data, schemas: het verband (dunno)
- cascading rollback
- relationeel,objectgericht,objectrelationeel model vergelijken: voordelen,nadelen
- alle normaalvormen geven, definiëren en zeggen welke afhankelijkheden rol spelen,tekenen!
- nen query optimALiseren, queryboom blablabla eenvoudig
- selectiviteit van een conditie(wtf??):
- 4 queries(uhu!): ni simpel!!!
- EER schema:
- je hebt een kunstvoorwerp, met unieke id, een titel, een land van herkomst, twee jaartallen waarin het waarschijnlijk gemaakt is, als dit tijdstip gekend is, zijn deze 2 gelijk. Er bestaan verschillende soorten kunstvoorwerpen:
- schilderijen, met soort (portret, stilleven, ...), soort verf, stijl
- beeldhouwwerken, met materiaal en wat het juist is
- gebruiksvoorwerpen, met materiaal en soort (karaf, tafel, ...)
- iets anders, met wat het is
- schilderijen, met soort (portret, stilleven, ...), soort verf, stijl
- je hebt ook een tijdsduur (wanneer het in het museum staat)
- permanent, met sinds wanneer, en naam van de eventuele schenker
- tijdelijk, met begindatum, einddatum en van waar het komt (ander museum of zo)
- dan ook nog de kunstenaar, met unieke naam, geboortedatum, sterfdatum. Een kunstenaar kan ook leerling zijn van een andere kunstenaar, een kunstenaar kan meerdere leerlingen hebben
- permanent, met sinds wanneer, en naam van de eventuele schenker
- je hebt een kunstvoorwerp, met unieke id, een titel, een land van herkomst, twee jaartallen waarin het waarschijnlijk gemaakt is, als dit tijdstip gekend is, zijn deze 2 gelijk. Er bestaan verschillende soorten kunstvoorwerpen:
2005-06-??
- SQL query's
- Een heel verhaal over verhuurders en verkopers van appartementen aan de kust, personen, huurperiodes, etc. Teken hier een EER schema van
- SQL query's om te GRANTen en REVOKEn kunnen opstellen
- nog wat zaken die ik vergeten ben