1TX Technieken voor datamodellering

Uit Diana's examenwiki

Tegenwoordig vervangen door twee vakken: 1TX Technieken van datamodellering en 1TX Databanken - dataquerying.

Algemeen

Examens + examenstructuur verschillen bij de andere docenten.

G. Barrezeele

Het examen heeft 2 delen. Eerste deel is het SQL gedeelte van het examen (queries), een ERD opstellen is het tweede gedeelte. Het ERD moet mondeling besproken worden.

J. Strypsteen

Strypsteen gebruikt het handboek van Van der Lans, het boekje "Slides bij de Cursus" van Databanken en het boekje "Technieken voor Datamodellering". Van der Lans mag gebruikt worden op het SQL-gedeelte van het examen, maar biedt niet echt een meerwaarde. In het boekje Slides bij de Cursus staat ook theorie die pas gekend moet zijn voor het vak Databanken en het is niet duidelijk aangegeven wat waar bij hoort. De enige manier om zeker te weten wat er gekend moet zijn, is om steeds de lessen te volgen en aan te duiden welke slides gezien zijn.

Gedurende het semester is er een SQL project (met definitiestudie, ERD en SQL queries) op 4ptn en een test, die meetelt voor 2 ptn. De andere 14ptn vormen het examen: een eerste deel met 3 of 4 SQL-queries (waarbij Van de Lans dus gebruikt mag worden) en een tweede deel met een 4-tal theorievragen en een ERD opstellen. Enkel het ERD moet mondeling verdedigd worden.

Januari 2014

G.Barrezeele

Schrijf de SQL-instructie die het gevraagde resultaat oplevert. Tenzij expliciet vermeld, wordt er maar één instructie per vraag verwacht. Gebruik expliciete joins waar mogelijk en schrijf zo performant mogelijke instructies. Zorg bovendien voor de gevraagde kolomhoofdingen. Zorg ook dat er geen dubbels optreden (tenzij gevraagd).

a. Boer Teun besluit om in “2014” op zijn “grootste perceel” “wortelen” te zetten. Geef een lijst van de totale milieubelasting van elk bestrijdingsschema, gesorteerd van minst naar meest milieubelastend. Output-kolomhoofden: actie, ziektebeeld, totale milieubelasting. Hint De milieubelasting van een bestrijdingsmiddel voor een perceel wordt berekend aan de hand van het aantal hectaren * milieubelasting * frequentie_per_oogstjaar.


b. Geef een teelten samenvatting voor alle percelen groter dan 5 hectare. Geef per perceel, het eerste jaar dat het in gebruik was, hoeveel verschillende teelten er sindsdien hebben opgestaan en eventueel hoeveel bestrijdingsmidellen er zijn gebruikt. Sorteer op aflopend op beginjaar en vervolgens oplopend op perceelnaam. Output-kolomhoofden: perceelsnaam, beginjaar, aantal gewassen, aantal bestrijdingsmiddellen


c. Geef een overzicht van te maken kosten. Dit bestaat uit een lijstje van alle bestrijdingsmiddelen waarvan de stock minder dan < 1liter bedraagt, waarbij er per leverancier de totale prijs getoond wordt. De basishoeveelheid bij een leverancier is altijd 1liter. Output-kolomhoofden: Leverancier, Totale kost, Aantal te bestellen producten


Schrijf de nodige DML instructie(s) om het gevraagde resultaat te verkrijgen in bovenstaande databank.


d. De leverancier "Boer Kuys" gaat op pensioen en het bedrijf stopt ermee. Verwijder zoveel mogelijk gegevens over deze leverancier. Let op de volgorde !


e. Onze boer heeft het geluk een 6e perceel te vergaren. Het ligt achter de kerk in zijn dorp, en heeft de bruikbare grootte van 6 hectare. Hij vliegt er direct in met er het extra gewas bieten op te zetten.


Schrijf de nodige DDL-instructie(s) om het volgende aan de database toe te voegen. Zorg ervoor dat je database consistentie blijft afdwingen.


f. Maak een extra tabel zodat Boer Teun kan bijhouden welke ziektebeelden hij vaststelt en wat de ernst van de besmetting is. Zo’n vaststelling bevat het perceel, het oogstjaar, de teelt, het ziektebeeld, een datum en de ernst van de besmetting, met een mogelijke waarde tussen 0 en 10.


P. De Mazeire

Situatie: Een traiteurdienst in regio Leuven wilt een databank bijhouden van al zijn klanten en bestellingen. Een klant wordt pas een klant bij zijn eerste bestelling en blijft dit tot 10 jaar inactiviteit. Er zijn trouwe klanten en nieuwe klanten, groothandels en particulieren. Voor groothandels wordt er automatisch een factuur gemaakt, bij particulieren moet dit speciaal aangevraagd worden.

Een klant kan zowel menu's als gerechten bestellen. Een menu bestaat uit verschillende gerechten, van elk gerecht in een menu moet ook de functie in het menu (voorgerecht, dessert, ...) worden bijgehouden. Elk menu heeft een eigen prijs, dit is niet de som van elk van zijn gerechten. Ook kunnen er kortingen worden aangerekend.

Een klant kiest zelf of hij zijn gerechten/menu's warm of koud wilt (koud indien hij dit zelf thuis opwarmt) en of hij het zelf afhaalt of laat leveren.

Examenvraag: Maak van deze situatie een conceptueel ontwerp en een logisch ontwerp en verantwoord beiden mondeling.


F. Vogels

Situatie: een keten bibliotheken heeft een databank voor al zijn boeken, al zijn exemplaren, in welk filiaal welk exemplaar zich bevind, en al zijn klanten. Maak hiervoor allerlei query's zoals bijvoorbeeld: Tel al de openstaande boetes voor klanten in het filiaal "Leuven Centrum"; Filiaal nr 1 sluit, alle boeken worden naar filiaal nr 2 gestuurd. Schrijf een query zodat deze omzetting gebeurd. Er wordt besloten drie bibliobussen in te voeren. Elke bus rijdt naar een filiaal op een bepaalde datum en heeft een aankomst- en vertrekuur. Schrijf deze tabelontwerpen in SQL (create table...)


Juni 2012

Nancy Dierckx - Voormiddag

  • MONDELING:
    • 1. ERD schriftelijk maken + mondeling gaan uitleggen
  • SCHRIFTELIJK:
    • 1. Normalisatieprocedure van Codd uitleggen.
    • 2. Aggregatie uitleggen, waarom gebruikt. Waarom is het een vorm van abstractie.
    • 3. Je krijgt ERD, maak queries
    • 4. Schrijf functie voor nieuwe tabel en voor attribuut te verwijderen
    • 5. Waarvoor wordt de WHERE instructie gebruikt en wat is het verschil met de HAVING component. Leg uit met een voorbeeld.

Juni 2011

Kurt Beheydt - Namiddag

  • Openboek deel: Schrijf SELECT, UPDATE en INSERT queries voor een gegeven database. De opdrachten waren eenvoudiger dan de herhalingsoefeningen van de Dropbox - geen regex of casten.
  • Geslotenboek deel: Maak een ERD voor een Romeins legioen gebaseerd op een tekst. Bij de mondelinge verdediging komen nog een paar bijvragen over waarom je al dan niet bepaalde tabellen en relaties gebruikt hebt. Theorievragen: welke keys zijn er en geef voorbeelden; wat is een associatief datatype en geef een voorbeeld; geef drie situaties waarin redundantie positief is en een voorbeeld.

N. Dierckx - Voormiddag

  • Openboek deel: Je krijgt een blad met voorbeeldtabellen, zonder gegevens in. Je moet 1 query schrijven voor het maken van 1 van deze tabellen, dan moet je nog 2 gewone queries schrijven die naar gegevens vragen. Deze queries zijn simpeler dan de queries van de sql-dropbox en gebruiken alleen de basis aggregatiefuncties.
  • Geslotenboek deel: Je krijgt een situatietekst en hier moet je een EERD van maken, deze EERD moet je mondeling gaan verdedigen. Dan krijg je nog 2 theorievragen over SQL (Waarvoor gebruikt men DISTINCT, geef hier een voorbeeldquery van en in welke situatie komt dit voor? EN Wat betekent NULL, waarvoor dient NULL, hoe kan je zien waar een NULL staat, schrijf een query waar je NULL in gebruikt). Als laatste krijg je nog 2 theorievragen over ERD (Leg de normalisatie van Codd uit EN waarvoor dient een normalisatie).

Het examen is niet al te moeilijk en je krijgt genoeg tijd voor elke vraag. Maak eerst je queries op een kladblad en schrijf ze dan over. De leerkracht geeft sneller punten als je in al haar lessen aanwezig was en niet storend was.

N. Dierckx - Namiddag

  • Openboek deel: Je krijgt een blad met voorbeeldtabellen, zonder gegevens in. Je moet 1 query schrijven voor het maken van 1 van deze tabellen, dan moet je nog 2 gewone queries schrijven die naar gegevens vragen. Deze queries zijn simpeler dan de queries van de sql-dropbox en gebruiken alleen de basis aggregatiefuncties.
  • Geslotenboek deel: Leg uit welke 3 manier er mogelijk zijn om een foreign key te implementeren, leg het verschil uit, en welke de standaard is (antwoord is op pagina 375, heeft nancy tegen mij gezegd), wat is een associatieve entiteit? leg uit aan de hand van een voorbeeld.wat is het verschil met een aggregatie? leg uit aan de hand van een voorbeeld.

M. Ausseloos

Even geduld!

Juni 2009

Reeks 5B (??/06/09 ??, Barrezeele)

Deel 1: Je krijgt een overzicht van een database (Alle tabelnamen + kolomnamen) en je moet hiervoor 3 queries schrijven

  1. Schrijf de create table voor tabel x
  2. Query die een group by en aggregatische functie bevat
  3. Querie met order by en extract month

Deel 2: Na het oplossen van de eerste vraag mag je al je mondeling doen, je mag erna nog steeds verder werken aan 2 en 3.

  1. Je krijgt een doorlopende tekst waarin een probleemstelling gegeven wordt, hiervoor moet je een ERD tekenen. Je krijgt ook een lijst met functionaliteiten die je model moet kunnen doen.
  2. Leg uit en geef duidelijk voorbeeld voor: 'Group By' en 'Order By'
  3. Wat is een Associatief Entiteitstype (uitleg + voorbeeld) en wat is het verschil met aggregatie (uitleg + vb van aggregatie).

Reeks 1B (15/06/09 13u, Strypsteen)

Deel 1 SQL-queries: 3 queries met gebruik van pseudoniemen, order by, group by, case, aggregatiefunctie, age functie en extract.

Deel 2:

  1. Leg uit: objectklasse
  2. Leg uit: optionele generalisatie en geef een voorbeeld
  3. Wat is een "varchar" en wat is er het nadeel van?
  4. Geef drie manieren waarop in een gerefereerde tabel het gerefereerde attribuut kan gewijzigd worden. Geef ook welke van deze drie de standaard is.
  5. ERD opstellen aan de hand van een tekst

Reeks 2A (16/06/09 8u30, Strypsteen)

Deel 1 SQL-queries: 3 queries met gebruik van pseudoniemen, order by, group by, case, aggregatiefunctie, age functie en extract.

Deel 2:

  1. Leg uit: het verschil tussen COUNT(*), COUNT(kolomnaam) en COUNT(DISTINCT kolomnaam)
  2. Leg uit: CLI SQL en embedded SQL
  3. Leg uit: totale generalisatie en geef een voorbeeld
  4. Leg uit: zwakke entiteit en geef een voorbeeld
  5. ERD opstellen aan de hand van een tekst