Databanken 2

2017 juni examen

12 juni 8u30

1. Wat is acid? Wat is het verband met NoSql?

2. Schrijf triggers voor integriteit op een schema

3. Schrijf een recursieve cte op dat schema

4. Wat zijn xml en json in verband met postgresql?

1 juni 8u30

1) mondeling: wat is referentiële integriteit leg uit, geef grondige voorbeelden.

2) maak een functie die als input een tabelnaam heeft en als output de kollomhoofden en datatype

bv: tabel(k1 text,k2 integer)

   output:
   k1 text
   k2 integer

3) Wat is een dirty read ? Geef een voorbeeld hiervan met transaction. Maak ook een view met het gegeven voorbeeld waarbij alle geiten hun nummer en mogelijke aandoening getoond worden.

4) wat zijn de nadelen van ORDMS + geef telkens een voorbeeld.

1 juni namiddag

1) mondeling: uitleggen wat cartesisch product is + voorbeeldquery maken met inner join, en dan vroeg hij op het examen de volgorde van uitvoer van die query + hoeveel rijden er overbleven na de join met using + na de where

2) pc en mondeling: trigger schrijven voor een tabel "geit" en wanneer ge een geit toevoegt, moet ge voor de insert aan een zelfgemaakte tabel audit toevoegen wat de situatie was voor de insert + ook info naar die audit tabel zetten na de insert

3) schriftelijke query: van de geit tabel de stamboom geven van een geit met CTE

4) schriftelijk: 4 manieren om te beveiligen: staat in de pp's: was grant, view, stored procedures & roles

2018 compacte samenvatting

Van een onbekende auteur: Db2_compacte_samenvatting 2018.pdf

2018 juni examen

15 juni 13u00

Mondeling (5pt):

Wat zijn de 3 belangrijkste verschillen tussen ORDBMS & OODBMS en leg deze uit. (Met erna een cheeky suprise vraag: gebruiken ze beide SQL? -> OODBMS gebruikt Object query Language)

Op de R schijf zijn een schema en een script te vinden van de databank. Je kan dan je queries opbouwen met pgadmin4.

 

Theorie (5pt): 4 vragen:

1. Wat is de engelse vertaling van AVG, wat op 25 mei 2018 gestart is?

2. En vallen gegevens van een Europeaan op een Canadese server onder deze wet? (Simpele ja/nee)

3. Wat is een groot voordeel & nadeel van indexen? Leg beide uit met 2-3 zinnen.

4. Hoe krijg ik in PostgreSQL de execution time van een query? Leg ook uit wat dit qua informatie geeft.

 

Praktijk (2 vragen, elk 5pt, op KLOTE trage pc's):

1. Een vraag met WITH RECURSIVE, deze vraag is soortgelijk aan het voorbeeld met Louis en zonen van de slides, meenemen dus.

2. Een vraag over een function maken die met een loop een aantal inserts doet op een databank. Best te doen met een LOOP in plpgsql.

2018 voorbeeldvragen

Datamodellering

Vragen ivm consistentie, (referentiële) integriteit, redundantie.

Nadelen redundantie:

Geef (of bespreek, verbeter) het bijhorende conceptueel, logisch en/of fysisch model

Groep 2

Bespreek volledig de uitvoering van een SELECT statement (volgorde en acties).

  1. FROM clause
  2. ON clause
  3. OUTER clause
  4. WHERE clause
  5. GROUP BY clause
  6. HAVING clause
  7. SELECT clause
  8. DISTINCT clause
  9. ORDER BY clause
  10. TOP clause

Wat is een cartesisch product? Wat moet je meestal doen om dit te vermijden?

de verzameling van alle koppels of geordende paren waarvan het eerste element uit de eerste verzameling en het tweede uit de tweede verzameling komt.

 

Groep 3

Wat is een niet-gecorreleerde subquery?

Als de inner query afhankelijk is van de outer query, is er sprake van een gecorreleerde subquery.

Geef een alternatieve oplossing voor deze query zonder subquery.

Groep 4

Wat is het verschil tussen een gecorreleerde subquery en een niet gecorreleerde subquery?

Als de inner query afhankelijk is van de outer query, is er sprake van een gecorreleerde subquery.

Los op een met gecorreleerde subqueries: "Geef de spelers die voor elke team gespeeld heeft"

Groep 5

Wat is het verschil tussen condities in de WHERE en de FROM?

Als conditie in FROM wordt alles zonder combinatie gecombineerd met NULL. Een conditie in de WHERE gaat rijen filteren (eruit gooien).

Geef een zinnig voorbeeld van een theta join en leg uit.

Vergelijking met een andere vergelijkingsoperator.

SELECT s.spelersnr, s.naam, count(sp.spelersnr)

FROM spelers s INNER JOIN spelers sp

ON(s.spelersnr sp.spelersnr)

WHERE length(s.naam) == length(sp.naam)

GROUP BY s.spelersnr, s.naam

 

Welke set-operatoren ken je en wat doen ze (kort)?

 

Waar dient LC_COLLATE voor en waarom kan dit belangrijk zijn?

Sorteervolgorde om in de nieuwe database te gebruiken. Dit beïnvloedt de sorteervolgorde toegepast op tekenreeksen, b.v. in query's met ORDER BY, evenals de volgorde die wordt gebruikt in indexen in tekstkolommen.

Groep 6

Hoe kan je een constraint van de tabel verwijderen?

ALTER TABLE custom_table

DROP CONSTRAINT fk_states_list;

Geef een alternatief voor de LIKE operator en geef enkele voorbeelden van wat dit alternatief meer kan.

SIMILAR TO → ondersteunt POSIX pattern matching* | denotes alternation (either of two alternatives).

bron

 

Leg uit: "connection pooling client side" met tekst en tekening.

Welke types connecties kan je maken naar database vanuit een programmeertaal?

Waarom kan het gebruik van een genereerde serial id gevaarlijk zijn?

Groep 7

Een query met de volgende elementen:(S F W G H en 1 of meer subqueries).

Groep 8

Wat is een segmenttype?

Wat typeert een netwerk databank?* bouwstenen: recordtypes, settypes, 1:n-verband owner-record member-record

 

recordtype: beschrijft gegevens in gegevensbank

settype: geven relaties tussen recordtypes aan

Groep 9

Geef een voorbeeld van een CTE met recursie.

Geef Louis V en zijn 5 voorgangers.

WITH RECURSIVE lijst (naam, zoon, nr) AS (

SELECT naam, zoon, 0

FROM kings

WHERE naam == ‘Louis V’

UNION ALL

SELECT naam, zoon, nr + 1

FROM lijst L INNER JOIN kings K

ON (L.naam == K.zoon)

WHERE nr < 5

OF

with recursive boom(naam, cirkeltrond, level) as (

select objectnaam, satellietvan, 0

from hemelobjecten

where objectnaam like '%i%a%a'

union all

select h.objectnaam, h.satellietvan, level + 1

from hemelobjecten h inner join boom b

on h.objectnaam == b.cirkeltrond

where level < 3

)


select naam || '-' || cirkeltrond as stam

from boom

Geef een alternatief met gecorreleerde subqueries om een beperkt deel van de resultaten te tonen (cf het limiteren van resultaten).

Wat is het verschil tussen een string literal en een identifier?

String litterals are enclosed in single quotes. Double quotes are use to force a string containing otherwise special characters to be interpreted as identifiers.


Ex. assuming table foo with column bar : SELECT bar as "Bar", 'zz' as OTHER from foo;


In this select, the first column will have name Bar. Without the ", the name would have been bar since SQL does not normally distinguishes case. The second column will the the constant zz and the column name will be other.


The " are also useful to have accented chars like éè for non english languages.

bron

Geef een alternatieve oplossing voor deze query (GROUP BY GROUPING SETS..)

Groep 10

Waarom maken we niet op elke kolom per definitie een INDEX?

Stelling: "Het gebruik van JOINS is steeds beter dan het gebruik van subqueries". Kies een standpunt en verdedig helder.

Waarvoor kan je VIEWS gebruiken?

 

Wat is SQL injectie (injection) en hoe kan je dit vermijden?

SQL statements in bv. form input fields zetten. Vermijden door gebruik te maken van prepared statements.

Groep 11

Wat zijn transacties?

Verzameling van sql-instructies die door 1 gebruiker ingevoerd wordt en waarvan de mutaties blijvend moeten zijn of ongedaan moeten gemaakt worden.

Geef een voorbeeld van embedded sql.

Bv SQL binnen PHP

 

Schrijf een methode die .. (generiek).

Waarvoor kunnen we TRIGGERS gebruiken?

Triggers are stored programs, which are automatically executed or fired when some events occur. Triggers are, in fact, written to be executed in response to any of the following events * A database manipulation (DML) statement (DELETE, INSERT, or UPDATE)


Triggers can be written for the following purposes* Generating some derived column values automatically

bron

Groep 12

Geef de typische kenmerken van een ODMS.

 

Wat zijn RULES? Geef een voorbeeld.

The PostgreSQL rule system allows one to define an alternative action to be performed on insertions, updates, or deletions in database tables. Roughly speaking, a rule causes additional commands to be executed when a given command on a given table is executed. bron

CREATE RULE "NeKeerIetsAnders" AS

ON SELECT TO wedstrijden

WHERE

spelersnr == 7

DO INSTEAD

SELECT 'eerst drie toerkes rond tafel lopen en dan nog eens proberen';

===Stelling: "We hebben geen databanken nodig, we kunnen alles met XML." Kies een standpunt en verdedig helder.

XML is not a database. It was never meant to be a database. It is never going to be a database. Relational databases are proven technology with more than 20 years of implementation experience. They are solid, stable, useful products. They are not going away. XML is a very useful technology for moving data between different databases or between databases and other programs. However, it is not itself a database. Don't use it like one.“ bron

Geef een voorbeeld van een NoSQL product en filosofie.

MongoDB → binaire JSON. Vooral document store.

Leg uit : ACID

BASE is tegenovergestelde van ACID

Stelling: "PostgreSQL is de relationele database in alle omstandigheden, we kunnen ze voor alles gebruiken" Kies een standpunt en verdedig helder.

PostgreSQL heeft een ruim aanbod aan datatypes, heeft naar mijn weten veel hogere size limits dan bv. MySQL/MariaDB.

PostgreSQL decidedly strives to conform to the ANSI-SQL:2008 standard, is fully ACID (Atomicity, Consistency, Isolation and Durability) compliant, and is well-known for its rock-solid referential and transactional integrity. Primary keys, restricting and cascading foreign keys, unique constraints, not null constraints, check constraints and other data integrity features ensure only validated data is stored. bron

 

13 Groep 13

Wat is het verschil tussen een venster en een groepering?

When a group by clause is used all the columns in the select list should either be in group by or should be in an aggregate function. While in over() clause, we don't have any such restriction. Aggregates or other functions like row number, lead, can be calculated using over function along with other columns in the select list.


bron

Geef een voorbeeld van een cumulatieve frequentietabel met een theta join enerzijds en een venster anderzijds. Welke is het meest performant, hoe kan je dit controleren?

2019 juni examen

Mondeling: ACID. Full form. Leg uit. Verband met NoSQL?

Theorie: 1. Geef conceptueel uitvoering van Select statement. 2. Tijdens Uitnormalizatie moet vreemnde sleutel gebruik maken van primary sleutel. Ja/Nee. Leg uit. 3. Meerkeuze vraag over Select snelste is. ( keuze tussen select statements met - id, hash, datum)

Praktijk: Gegeven db met tabellen bank, in_uitgave, eigenaar, type....

1 a. Schrijf een script die een nieuw kol (bedrag en teken) aanmaakt aan table en data toevoegt met betreffende data (maak gebruikt van andere kol in tabel). b. Wat is probleem met zo'n manier van data toevoegen? c. Create view van twee tabellen zonder joins te gebruiken.

2. Update table(in_uitgave) wanner een uitgave wordt gedaan door 'Griet' (van eigenaar) naar inkomen. a. Geef bericht "This is normal.... bla bla....., bug fixed" wanner update gedaan is. b. Geeft bericht bij insert "are you sure".

algemeen

Aanwezigheden worden voor Databanken 2 niet opgenomen. Elke week kunnen 2 groepjes van maximum 5 personen een groepsopdracht maken. Als de lector het eindresultaat goedkeurt, verdien je een open-boek-examen. Je mag dan al het papieren cursusmateriaal meenemen, zoals bv. het SQL-LeerboekInleiding tot Gegevensbanken en een afdruk van de uitgevoerde opdracht. Zoals gewoonlijk bevindt al het lesmateriaal zich op Projektwerk.

2022 juni & augustus examen

Dit zijn al de mogelijke vragen die er tijdens het juni en augustus examen werden gevraagd:

Theorie

Een theorie vraag waarbij je een aantal stellingen kreeg en moest zeggen welke juist of fout waren

Praktijk

  1. Copy maken van een databank (mogelijkse varianten: met enkel het schema, enkel de data of met beide) 
  2. Replicatie opstellen  
  3. SQL dropbox oefeningen
    3.1 copy paste van sqldropbox db1 en db2  
    3.2 JSON oefening  & XML oefening  
  4. Script: verbeter databank structuur (gebruik van alter, drop table en index om zo de databank structuur te verbeteren, of zorgen dat het gegeven stuk sql code een kleinere cost heeft)  
  5. Verbeter de create en insert sql file (zet comma's, haakjes, aanhalingstekens, etc... gewoon zorgen dat je de file kunt uitvoeren zonder de inhoud echt aan te passen)  
  6. Schrijf een functie/procedure (mogelijks gebruik van venster functies)

Veel succes!!