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








Tentamen i

Databasteknik

torsdag 16 januari 2025

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


Hjälpmedel: Ordbok för översättning.
Poängkrav: Maximal poäng är 40. För godkänt betyg krävs 25 poäng, varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2. För den som följt kursen hösten 2024 ger varje i tid inlämnad inlämningsuppgift en extra poäng. Den som inte gått kursen hösten 2024 får dessa (fem) extrapoäng ändå.
Resultat: Meddelas senast 15 arbetsdagar efter tentamensdatum.
Återlämning av tentor: Elektroniskt via webbportalen Studenttjänster.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070 - 73 47 013.






LYCKA TILL!

Scenario till uppgifterna

Företaget Bofors i Karlskoga, som numera ingår i BAE Systems AB, tillverkar vapen och ammunition. På grund av den ökade efterfrågan i världen på just vapen och ammunition behöver man öka testskjutningen av ammunition, bland annat artillerigranater. Naturligtvis behöver man en databas för det.

Här ser vi en bild på en artilleripjäs som skjuter iväg granater. (Foto från Wikipedia. Fotograf: Wikipedia-användaren Ibaril.)

En haubits

Vi ska bygga en databas för att lagra data om testskjutningen. Mer bestämt ska databasen innehålla:

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 uppgifterna 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 (1 p)

Mycket i kursen handlar om relationsmodellen och relationsdatabaser. Vad är det som är "relationerna" i en relationsdatabas?

Uppgift 4 (13 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) (2p) Vilka datum har vi avfyrat granater av typen Strids-bomb 2000?

b) (2p) Det finns bara en person i databasen som heter Kajsa Kanon. Vad heter de skjutfält som hon varit på?

c) (2p) Vad heter de granattyper som är tyngre än Strids-bomb 2000?

d) (2p) Jag är ute och går på Villingsbergs skjutfält, och på marken hittar jag en granat som kommer från en provskjutning. Vilken typ av granat kan det vara?

e) (3p) Vad heter den granattyp som vi avfyrat flest gånger?

f) (2p) Finns det några granattyper som vi aldrig avfyrat? Vi vill veta namnen på dem.

Uppgift 5 (4 p)

Det finns inte så många personer eller granattyper, men annars växer alla tabeller i databasen och blir mycket stora. Sökningarna i deluppgift 4a och 4b ovan körs ofta, men kanske med andra konstanter än de i uppgiften. Vi vill få dem att gå betydligt snabbare. Från början finns det inga index i databasen, inte ens på nycklar.

a) Vilka index vi bör skapa för att sökningen i 4a ska gå snabbare?

b) Vilka index vi bör skapa för att sökningen i 4b ska gå snabbare?

Uppgift 6 (4 p)

a) Vad menas i databassammanhang med en normalform?

b) Ge ett exempel på en normalform som vi behandlat i kursen, och förklara vad den innebär.

c) Vilket eller vilka problem är det som just denna normalform försöker förhindra? Visa med exempel!

Uppgift 7 (3 p)

a) Vad menas, i databassammanhang, med en trigger?

b) Beskriv två olika användningsområden för triggers i databaser.

Uppgift 8 (4 p)

I databassammanhang talar man om de så kallade ACID-egenskaperna, där I:et står för "isolering".

a) Vad är det för saker man isolerar från varandra?

b) Vad innebär det att man isolerar dessa saker?

c) Databashanteraren Mimer använder det som brukar kallas för optimistiska metoder för att åstadkomma isolering. Det är lite ovanligt, och de flesta andra databashanterare använder vad man kan kalla pessimistiska metoder. Vad innebär dessa två sätt, och vilka är de viktigaste skillnaderna?