Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se)



Tentamen i

Databasteknik
för D2 m fl

onsdag 21 augusti 2019

Gäller som tentamen för:
DT105G Databasteknik, provkod 0100


Hjälpmedel: Ordbok för översättning.
Poängkrav: Maximal poäng är 45. För godkänt betyg krävs 22 poäng, varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2.
Resultat: Meddelas på kursens hemsida eller via e-post senast onsdag 11 september 2019.
Återlämning av tentor: Elektroniskt via Studenttjänster.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070 - 73 47 013.



LYCKA TILL!

Scenario till uppgifterna

Institutionen för naturvetenskap och teknik behöver hålla reda på sina lokaler och möbler. Det som finns är:

Uppgift 1 (5 p)

Rita ett ER- eller EER-diagram för den beskrivna databasen. Använd informationen i scenariot ovan, men tänk också på att det ska gå att svara på frågorna i uppgift 3 nedan.

ER- och EER-diagram kan ritas på flera olika sätt. Om du använder en annan notation än kursboken, måste du förklara den notation som du använder.

Uppgift 2 (6 p)

Implementera den beskrivna databasen i relationsmodellen, dvs översätt ER-diagrammet till tabeller.

Du behöver inte skriva create table-kommandon i SQL, men du ska ange vilka relationer som finns och vilka attribut varje relation innehåller. Ange också alla kandidatnycklar, vilken av dessa som är primärnyckel, samt vilka referensattribut som finns och vad de refererar till.

Implementationen ska vara bra.

Uppgift 3 (11 p)

Formulera följande frågor i SQL. Definiera gärna vyer eller CTE:er om det underlättar, men skapa inte nya tabeller.

a) (1p) Vilka rum finns i Teknikhuset och Långhuset?

b) (2p) Vilka rum med namn som börjar på T finns i Teknikhuset?

c) (2p) Vilka lärare har rum i Teknikhuset? Vi vill veta de lärarnas namn.

d) (2p) Vilka lärare har inget eget rum? Vi vill veta de lärarnas namn.

e) (2p) Det vore konstigt om det fanns stolar som står vid ett bord som inte finns i samma rum som stolen. Vilka stolar är det?

f) (2p) Hur många stolar finns det i Långhuset? (Räkna antalet stolar som finns i rum i Långhuset, inte antalet stolar som står vid bord som finns i rum i Långhuset.)

Uppgift 4 (3 p)

Det vore som sagt konstigt om det fanns stolar som står vid ett bord som inte finns i samma rum som stolen. Det borde kanske inte alls gå att lägga in i databasen?

Hur skulle man kunna göra så att det inte går att lägga in stolar som står vid ett bord som inte finns i samma rum som stolen?

Uppgift 5 (4 p)

Institutionens verksamhet växer, och nu har vi väldigt många hus, rum, bord och stolar. Vi märker att SQL-frågorna i uppgift 3 börjar bli långsamma. Det finns inga index i databasen, inte ens på nycklar.

Vilka index bör man skapa för att

a) fråga a
b) fråga b
c) fråga c

ska gå snabbare?

Uppgift 6 (4 p)

I databassammanhang pratar man om ACID-transaktioner.

a) Vad menas med en transaktion?

b) Förklara vad förkortningen ACID innebär. (Berätta gärna vad bokstäverna står för, men det viktigaste är att förklara vad de innebär!)

Uppgift 7 (4 p)

a) (2p) Visa med ett par enkla exempel vad man har SQL-kommandona grant och revoke till. Glöm inte att förklara vad som händer!

b) (2p) Visa hur man kan kombinera grant och revoke med vyer för att ge en mer finkornig kontroll av vad användarna får göra med databasen.

Uppgift 8 (3 p)

I databaser kan det förekomma redundans av olika slag. Förklara vad som menas med redundans. Beskriv också två olika typer av redundans som kan förekomma, och i vilka sammanhang de förekommer. Vilka fördelar och nackdelar finns med de olika typerna av redundans?

Uppgift 9 (5 p)

Här är ett försök att lösa uppgift 2 ovan, med en databas som bara består av en enda tabell. (Lärarna är inte med, utan de skulle behöva lagras i en egen tabell.)

Institutionsdata
Husnummer Husnamn Rum Bord Stol Stol vid bord
17 Teknikhuset T2220 87 16 Ja
17 Teknikhuset T2220 87 17 Ja
17 Teknikhuset T2220 87 18 Nej
17 Teknikhuset T2222 88 19 Ja
17 Teknikhuset T2222 88 20 Ja
17 Teknikhuset T2222 89 21 Ja
4 Långhuset L2030 17 22 Ja

a) Vilka kandidatnycklar finns i tabellen?

b) Vilka fullständiga funktionella beroenden finns i tabellen?

c) Vilka av de fyra normalformerna 1NF, 2NF, 3NF och BCNF uppfyller tabellen?

d) Motivera svaret i c-uppgiften ovan!