Gegevensbanken

Ga naar: navigatie, zoeken
Duval.jpg
Berendt.jpg
Verbert.jpg

Samenvattingen

Klik hier om de samenvattingen te bekijken

Informatie over het vak

Sinds (tenminste) 2017 wordt het vak gegeven door Prof. Bettina Berendt, Angelika Kimmig en Bart Bogaerts.

33% van het puntentotaal staat op een werkje dat uit vier delen bestaat, die elk op een ander moment gemaakt moeten worden. Het eerste deel gaat over het ER en EER, het tweede over het relationeel model, het derde over het schrijven van queries in SQL en het laatste over optimalisatie en een random vraag om zelf een interessante query te bedenken en te visualiseren. Delen 1, 2, en 4 worden geevalueerd op het mondeling examen tijdens de voorlaatste oefenzitting. Naast het werkje zelf worden er ook theorievragen gesteld over alles wat in het werkje aan bod gekomen is. Ze waren precies nogal vrijgevig met de punten.

De andere 67% staat op het schriftelijk examen, waar de stof ondervraagd op het mondeling examen niet in voorkomt (tenzij in de meerkeuzevragen). Hier ligt de nadruk op oefeningen die doen denken aan wat je in de oefenzitting tegenkomt. Er moet ook theorie gekend zijn, maar die is minder belangrijk.

2018-2019

Het werkje bestond in 2018-2019 uit drie delen, hetzelfde als de bovengenoemde eerste drie. Het ging nog steeds op 1/3de van het totaal aantal punten.

Op het einde van de lessenreeks werden ook twee gastcolleges gegeven (Machine Learning + Privacy). Deze waren geen leerstof voor het examen.

Het examen

2018-2019: Info Examen 2018-2019

Vakevaluatie

Elk puntje hieronder is iemands mening. Verander aub geen puntjes. Als je een andere mening hebt, gelieve ze onderaan toe te voegen.

Kwaliteit cursus (prijs, duidelijkheid, overeenkomst met les, ...)
  • 2017: Het handboek is onduidelijk. Veel te formeel. Gelukkig heb je aan de slides dikwijls genoeg.
  • 2018: Samenvatting door Jonas Soenen (zie hierboven) is een mooie representatie van al dat te kennen is. Echter wordt er duidelijk gemaakt in de hoorcolleges dat elk aangekaard hoofdstuk in de les gekend moet zijn als in zijnde de leerstof die zich met het overeenkomstige hoofdstuk uit het boek associeert.
Studiebelasting (aantal studiepunten in verhouding met bestede tijd)
  • 2017: Tijdens het jaar heb je een redelijk drukke agenda: twee colleges, een oefenzitting, en er is ook een werkje met deadlines gespreid over het hele semester. Tijdens de blok heb je gelukkig niet al te veel werk voor een vak van 6 sp.
Plaats binnen de opleiding (nodige voorkennis, overlap met andere vakken, relevantie van het vak,...)
  • 2017: Soms wat herhaling van gegevensstructuren of parallellisatie (besturingssystemen). De burgies volgen dit vak zonder voorkennis.
Manier van lesgeven bij hoorcolleges (snelheid, verstaanbaarheid, structuur, nut, ...)
  • 2017: De colleges zijn nogal droog.
Evaluatie oefenzittingen/labo's (nut, begeleiding, ...)
  • 2017: Als je de theorie niet helemaal kent, ben je niet mee in de oefenzittingen. De assistent overloopt ook geen theorie. Uiteindelijk bestaat het examen wel grotendeels uit vragen zoals in de oefenzittingen. Het werkje kun je best serieus nemen, want dat staat op 33% van het eindtotaal.
  • 2018: Idem 2017.
Examen (mate waarin het een weerspiegeling is van de cursus, examenvorm, ...)
  • 2017: Enkele waar/fout-vragen die op voorhand gegeven zijn, en wat vragen zoals in de oefenzittingen. Je moet ook altijd zelf enkele queries bedenken. Als je de hoofdzaken begrijpt, zou het moeten lukken. Dit examen staat op 67% van de punten. De andere staan op het werkje.

Taak

2018-2019

De taak bestaat uit 3 delen. In deel één maak je zelf een EER schema, in deel twee schrijf je de verschillen met de modeloplossing neer en zet je de modeloplossing om naar een relationeel schema. In deel drie maak je enkele SQL queries.

Mondeling examen

Het mondeling examen was eerder een verdediging van het werkje. Als je bepaalde concepten in de les niet hebt gebruikt kunnen hier ook vragen over gesteld worden (bv. ternaire relaties), als ze merken dat een persoon het minder kan, stellen ze die meer vragen. Als je het werkje hebt gemaakt, hoef je hier niet voor te studeren.

Proefexamens

2018-2019

Proefexamen 2018-2019

Examenvragen

vr 23 juni 2017 9h00

  • Formuleer enkele queries
    • Relatieschema
      • PRODUCT(ProdID, Naam, Prijs, Hoogte, Lengte, Breedte)
      • REEKS(ProdID, ReeksID)
      • DEEL_VAN(ProdID, PakketID, Aantal)
      • PAKKET(PakketID, gewicht)
      • WINKEL(WinkelID, Naam, Adres)
      • STOCK(PakketID, WinkelID, Aantal)
    • Formuleer de volgende vijf queries
      • Geef een overzicht van alle producten die tot alle reeksen behoren (relationele algebra)
      • Geef een overzicht van alle producten die uit meer dan 1 pakket bestaan (dus gekoppeld aan meerdere verschillende PakketID's of een pakket met multipliciteit van minstens 2) en meer dan 200 euro kosten (relationele calculus)
      • Geef een overzicht (ProductID en naam) van alle producten die verkocht worden in meerdere reeksen en waarvan de hoogte minstens 2 is. (SQL)
      • Geef per product (ID, naam) het totale gewicht voor alle bijbehorende pakketten (let op: sommige pakketten horen meerdere keren bij hetzelfde product. Dit is het aantal in DEEL_VAN en moet dus meerdere keren geteld worden) (SQL)
      • Definieer een view (ProdID, WinkelID, Aantal) waarbij aantal het minimum is over alle pakketten die bij dit product horen, van het aantal in stock in de winkel, gedeeld door de multipliciteit van dit pakket in dit product. (SQL)
  • Enkele stellingen die door studenten opgesteld waren. Ze gingen over heel de cursus. (Protip: studenten verzinnen graag foute stellingen)
  • Gegeven het relatieschema R(A,B,C,D) en de functionele afhankelijkheden {A, B} -> {C} en {C} -> {B}.
    • Bepaal een mogelijke sleutel en laat zien hoe je daarbij komt.
    • In welke normaalvorm is R?
    • Normaliseer tot BCNF. Zorg ervoor dat je nomalisatie verliesloos is.
    • Bewaart deze normalisatie alle functionele afhankelijkheden?
  • Gegeven een log van een transactierooster (het was volledig gegeven op het examen. Dit is de essentie, maar dat werd er niet bijverteld: T1 begint en commit, dan is er een checkpoint, dan is er concurrentie tussen T2, T3, en T4. T4 is de enige die na het checkpoint commit voordat het systeem crasht. Elke transactie leest en schrijft enkel waarden nadat oudere transacties die die waarden geschreven hebben, gecommit zijn.)
    • Kan dit rooster hersteld worden met uitgestelde aanpassing?
    • Kan dit rooster hersteld worden met onmiddellijke aanpassing?
    • Indien je minstens 1 keer "ja" antwoordde: bespreek voor een van de aanpassingsmethoden (uitgesteld of onmiddelijk) waarmee het hersteld kan worden welke UNDOs en REDOs er gedaan worden. Geef ook na elke schrijfopdracht wat daarna de waarde op schijf zal zijn. Als ze beide hersteld kunnen worden, kies je welke je wil bespreken.
    • Indien je op de eerste twee deelvragen "nee" antwoordde: met welke minimale aanpassing in het rooster zou het wel hersteld kunnen worden?
  • Gegeven de uitvoer van het volgende EXPLAIN-statement :

EXPLAIN SELECT p.Body

FROM posts p, users u

WHERE p.OwnerUserId = u.Id AND u.age < 20 AND p.Id IN (

||| SELECT p2.Id

||| FROM posts p2 JOIN comments c ON p2.Id = c.PostId

||| WHERE c.Score > 20

)

en informatie over de tabellen die in de gegevensbanken gedefinieerd zijn (namen van de attributen, het aantal tupels, welke attributen geïndexeerd zijn, enz.) en de volgende hint: het resultaat van de SELECT bevat 5 tupels.

  • Welke tabel werd door MySql het eerst gelezen?
  • Welke tabel zou het best eerst gelezen worden? Waarom? Hoe kan je in MySql forceren dat dit zeker gebeurt?
  • Optimaliseer de query zodat je uitvoer equivalent is, maar de tijd korter is.
  • Verantwoord waarom je optimalisatie sneller is.

ma 13 juni 2016 14h00

  • 5 queries osptellen 3 in SQL, 1 in relationele algebra, 1 in relationele calculus)
  • normalisatie (geef de mogelijke key, in welke NV staat dit + herleiden naar BCNV)
  • 7 waar/onwaar vragen:
  1) Bij Transacties is gelijktijdige verwerking wenselijk en vaak zelfs noodzakelijk
  2) Bij deadlock preventie via wait-die wacht de jongste transactie tot grendel vrij komt
  3) Het resultaat bij gelijktijdig uitvoeren van transacties zonder verloren aanpassing is altijd een correcte toestand
  4) Alle cascadeloze transactieroosters zijn strict
  5) Indien alles in 2PL --> gegarandeerd serialiseerbaar
  6) Als 2 roosters conflict-equivalent zijn met elkaar, dan ook view-equivalent
  7) C van ACID staat voor Concurrency Control = verzekeren van gelijktijdig correct uitvoeren vans amelopende transacties
  • vraag over onmiddellijke en uitgestelde aanpassingen, ge krijgt een log en moet stappenplan geven in juiste volgorde (met REDO en UNDO) + uitleggen wat steal, force en cascading-backtrack is
  • vraag waar ge een deel van een databank kreeg + een SQL query en een aantal dingen moest afleiden, o.a. hoeveel records een bepaalde query opvroeg, met welke tabel de query begon, wat bepaalde dingen in een uitvoeringsschema betekenden,...

8 juni 2016

Media:GB_examen_2016_06_08.pdf

vrij 14 augustus 2015, 9h00

Deel 1 - Queries en Normaalvormen

Oefening 1 Fotograaf studio met volgende eigenschappen:

Persoon(PersoonID, Naam, Voornaam, GeboorteDatum, Geslacht, Geboorteplaats)

Kind_Ouder(KindID, OuderID)

Opname(OpnameNr, Datum, Plaats, Type, Prijs)

Opname_Persoon(OpnameNr, PersoonID)

Bestelling(OpnameNr, PersoonID, Verzendadres, Datum)


  • a) Relationele Algebra: Geef een overzicht van alle opnames (OpnameNr, Datum) gemaakt in Leuven. Geef per opname ook het aantal personen op de foto die niet in Leuven zijn geboren.
  • c) SQL: Geef de naam van de persoon (of van de personen) waar de fotograaf de meeste opnames van heeft verkocht.
  • d) SQL: Geef overzicht van de personen (Naam, Voornaam en PersoonID) die een kind hebben waarmee ze nog nooit op de foto mee hebben gestaan. Rangschik op naam en voornaam van de ouder.
  • e) SQL View: Geef een overzicht van alle bestellingen (OpnameNr, Naam besteller, Verzendadres, Besteldatum, geplaatst in het afgelopen jaar, van foto's waar minimum 5 personen voorkomen. Rangschik op besteldatum en naam besteller.

Oefening 2 Sociaal Netwerk met:

R={Gebruiker_ID, Gebruiker_Naam, Vriend_GID, Vriend_Type, Bericht, Bericht_DatumTijd, Bericht_Type}

Functionele Afhankelijkheden:

  • Gebruiker_ID -> Gebruiker_Naam
  • {Gebruiker_ID, Vriend_GID} -> {Vriend_Type}
  • {Gebruiker_ID, Bericht_DatumTijd} -> {Vriend_Type, Bericht, Bericht_Type}
  • a) Mogelijke sleutel voor R? Leg uit.
  • b) In welke Normaalvorm is R? Leg uit.
  • c) Normaliseer F to NF3. Zorg dat decompositie verliesloos is en FA behouden blijft.

Fysisch

Oefening 3 Lineair Hashing index met 5 buckets, elk van capaciteit 2 records, bevat volgende sleutelwaarden:

_ 6 2 7 _

h_i(S) = S mod (5*2^i) met i=0,1,2,... , Drempel loading factor = 0,7

Voeg in: 7, 10, 12, 11, 8, 14, 9, 23

Na elke toevoeging teken/beschrijf: index, hash, cel die moet splitsen (n bijhouden), index splitsen, ...

Oefening 4 5 juist/fout vragen over de snelheid bij het invoegen of zoeken in een gb afhankelijk van hoe deze gesorteerd is.

Oefening 5 Twee gebruikers van de shipping database willen paketten in containers laten transporteren? Elke container heeft capactiteit van 10 paketten (shipments)

  • a) Beschrijf 2 transacties die, indien tegelijkertijd uitgevoerd, tot een verloren aanpassing kunnen leiden.
  • b) Geef een rooster dat een verloren aanpassing produceert.
  • c) Met de hulp van je oplossing b, leg kort uit wat een verloren aanpassing is.
  • d) Analayseer dit probleem met behulp van een precedence graph.
  • e) Geef een rooster met concurrentie, maar zonder verloren aanpassing.
  • f) Beschrijf kort twee methodes om vooraf te garanderen dat verloren aanpassingen niet gebeuren en beschrijf kort hun voor- en nadelen.

Ter herinnering: info over containers


Dep_date Arrival_date | |


/ | ^ || Shipment_Id |

  \         /  (0,N)      |         / \                    ||           ----------- Volume Weight             |

_____||----|| | / \ || \ | / |


||trip||--------------|-------/ships\-------------||Container|| \ | / |

      ----                |       \     /              /  |   |  \               |shipment|-----------------------------
                          |        \   /  Container_Id   size | Weight                 |                      |
                          |          |    ------------ /      |   \                    |                      |
                          |          |           Length   Height  Width                |                      |
                          |          ---------------------------------------------------                      |
                          |                                                                                   |

vrij 20 juni 2014, 9h00

Deel 1 - Queries en views

  • Standaard 5 tal queries
  • Fa's gegeven, mogelijke sleutel geven, uitelggen in welke normaalvorm het staat en normaliseren tot bcnf


Deel 2 - Fysisch

  • paar juist fout vragen, ging over vanalles. Wat Atomicity exact betekent een paar dingen over deadlocks en dergelijken. Meer weet ik niet meer
  • 3 selectie operaties gegeven. Geef 5 selectie implementaties en leg uit op welke van die 3 gegeven operaties die best geschikt zijn.
  • 2 conjunctieve selectie operaties gegeven. Geef 2 implementaties en leg uit aan de hand van die 2 gegeven selecties
  • Extendible hashing, tabel maken en daarna daar een paar operaties op uitvoeren, paar dingen verwijderen en toevoegen.

Kan zijn dat ik iets vergeten ben, denk het niet.

vrij 14 juni 2013, 9h00

Deel 1 - Modelering (mondeling)

  • ER schema maken over musea en tentoonstellingen en culturele centra en tickets, etc.
  • Wat zou je anders doen als het EER moest?

Deel 2 - Queries en views Een relationeel model gegeven over een bibliotheek

  • 1 Query in relationele algebra
  • 1 query in tupelcalculus
  • 2 queries in SQL
  • 1 view in SQL

Deel3 - Fysisch

  • Een lineaire hashtable met al enkele waarden. Er zijn 4 buckets met elk max. 3 waarden. De maximale load factor is 0.7.
    • Welke initiële hash-functie werd er hier gebruikt?
    • 3 waarden aan de tabel toevoegen
  • Gegeven een file met blokken en een index op een sleutel, geordend op die sleutel in het bestand
    • Geef een algoritme om een gegeven sleutel zo efficient mogelijk op te halen en anders null te geven als hij er niet is
    • Als de index naar het laatste record in een blok zou wijzen, hoe pas je het algoritme aan?
  • Gegeven een (vreemde?) vorm van 3 transactieroosters
    • Teken de graaf
    • Zijn ze conflictserialiseerbaar? Waarom?
    • Zoniet, geef een voorbeeld van een conflict serialiseerbare variant
  • Gegeven een relatie en 4 functionele afhankelijkheden
    • Bepaal een sleutel voor deze relatie
    • In welke normaalvorm staat deze relatie?
    • Normaliseer zo ver mogelijk

vrij 17 juni 2011, 14h00

Deel 1 - Modelering (mondeling)

  • Geef een voorbeeld van een ternaire relatie
    • Mondelinge bijvraag: Als je deze ternaire relatie wordt vervangen door drie binaire relaties, welke informatie gaat er dan verloren?
  • EER schema over examens, examenvragen, studenten, proffen, vakken, lokalen, examentoezichters enz.
  • Vorm om tot relationeel schema

Deel 2 - Queries en views

  • Query in relationele algebra
  • 2 queries in SQL (1 gemakkelijk, 1 vrij lastig)
  • 1 query tupel calculus
  • 1 view in SQL

Deel3 - Fysisch

  • Een paar vraagjes over timestamp ordering (algoritme was gegeven)
    • Leg kort uit wat TS(T), read_TS(X) en write_TS(X) in dit algoritme willen zeggen en wanneer ze worden geupdate
    • Geef twee nadelen van standaard TS ordering
    • Algoritme van strikte TS ordering was gegeven. Welk probleem wordt hiermee opgelost?
    • Gegeven twee transacties, geef een mogelijk rooster met timestamp ordering
  • Een lineaire hashtable met al enkele waarden. Er zijn 4 buckets met elk max. 3 waarden. De maximale load factor is 0.7.
    • Welke initiële hash-functie werd er hier gebruikt?
    • 3 waarden aan de tabel toevoegen
  • Gegeven een query op de COMPANY database uit het boek
    • Stel de initial query tree op
    • Pas heuristische optimalisatie toe
  • Gegeven een relatie en 4 functionele afhankelijkheden
    • Bepaal een sleutel voor deze relatie
    • In welke normaalvorm staat deze relatie?
    • Normaliseer zo ver mogelijk

woe 15 juni 2011, 14h00

Deel 1 - Modelering

  • Geef definitie van zwakke entiteit
  • Maak EER schema
  • Vorm om tot relationeel schema

Deel 2 - Queries en views

  • SQL, relationele algebra, relationele tuple calculus queries en een view in SQL op een gegeven relationeel schema.

Deel3 - Fysisch

  • Een multiniveau primaire index, bereken hoeveel levels en alles dat je daarvoor nodig hebt, hoeveel blokken ingelezen moeten worden. Doe ongeveer hetzelfde voor een clusterindex (geïndexeert op 'Job_code'. Wat gebeurt er als er een nieuwe 'Job_code' bijkomt. Geef 2 strategieën om dat toe te voegen en geef voor-en nadelen.
  • Iets over een join uitvoeren mbv geneste lussen waarbij er 11 buffers waren en 2 verschillende bestanden die gejoint moesten worden. De vraag was dan welk de strategie is waarbij het minste blokken gelezen moeten worden om de join uit te voeren plus 2 andere strategieën waarbij meer blokken gelezen worden. Verder moest je zien hoeveel blokken ingelezen zouden moeten worden moest het een hashindex hebben en dat vergelijken met het aantal ingelezen blokken bij de geneste lussen.
  • Er is een transactierooster gegeven, kijk of dit serializeerbar is, waarom/waarom niet? Hoe dit oplossen, bespreek strategie.
  • gegeven: R = {A, B, C, D, E,F } en enkele FDs, welke normaalvorm? Leg uit. Normaliseer zo ver mogelijk, en welke vorm is het nu, en verklaar.

vr 3 september 2010, 14h00

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 secundaire indirecte index, een massa berekeningen uitvoeren, fanout, aantal first level index blokken, hoeveel multilevels, hoeveel blokken voor de indirectie, enz...
  • 3 transacties in 4 roosters. Wat termen hieromtrent uitleggen: cascadeloos rooster, strikt rooster, serieel rooster, conflict serialiseerbaar rooster. Maak de precendence graph en kijk of ze herstelbaar zijn of niet. Leg uit waarom.
  • Extendible Hashing index, werking uitleggen (schets gegeven), en een deel waarden toevoegen en verwijderen, en de boom tekenen.
  • gegeven: R = {A, B, C, D, E,F } en enkele FDs, welke normaalvorm? Leg uit. Normaliseer zo ver mogelijk, en welke vorm is het nu, en verklaar.


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.

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:

  1. Een ER/EER schema
  2. queries(relationele algebra,relationele calculus & SQL)
  3. 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 - 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

  1. 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:
      1. 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)
      2. Geef een lijst met ISBNnr en titel van alle boeken waarvan alle exemplaren ontleend zijn (in tupel relationele calculus)
      3. Geef een lijst van alle titels van boeken in de bibliotheek met als enige auteur 'Simon Stevin' (in SQL)
      4. Geef, gegroepeerd per lezer, een lijst van alle boekexemplaren (boekvolgnr, en titel) die vandaag moeten worden teruggebracht (in SQL)
      5. 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
  2. Modelleervraag
    1. Verklaar in EER modellering het verschil tussen een gemeenschappelijke subklasse en een categorie, en geef van elk een voorbeeld ter illustratie
    2. Hier stond een hele beschrijving van een agentschap dat appartementen en villa's verhuurde.
      1. Maak hier een E(E)R-schema van
      2. Zet dit E(E)R-schema om naar een relationeel schema
  3. Korte vragen
    1. Bespreek indexen op bestanden. Welke indexen ken je, waarvoor worden ze gebruikt en hoe zijn ze georganiseerd?
    2. 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
    3. Hoe worden de verschillende soorten relaties uit het ER-model voorgesteld in het netwerkmodel?
    4. 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

  1. 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
  2. 4 queries(uhu!): ni simpel!!!
  3. 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
    • 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

2005-06-??

  1. SQL query's
  2. Een heel verhaal over verhuurders en verkopers van appartementen aan de kust, personen, huurperiodes, etc. Teken hier een EER schema van
  3. SQL query's om te GRANTen en REVOKEn kunnen opstellen
  4. nog wat zaken die ik vergeten ben