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








Tentamen i

Databasteknik

måndag 25 augusti 2025

Gäller som tentamen för:
DT504G Databasteknik för civilingenjörer, provkod A001


Hjälpmedel: Ordbok för översättning.
Poängkrav: Maximal poäng är 40. För godkänt betyg krävs 24 poäng, varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 3.
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 AB Gröna och Säkra Miljölösningar hanterar kemiskt avfall. De häller giftiga kemikalier i tunnor, som de ställer på olika platser i skogen:

Några tunnor

Nu ska de bygga en databas för att hålla reda på tunnorna, så de i alla fall kan påstå att de vet var tunnorna finns och vad de innehåller.

Det som ska lagras i databasen ä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 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 (2 p)

Det står ju i scenariot att man ska lagra var tunnorna står just nu. När läraren rättar tentan ser han att en student har gjort ett många-till-många-samband som heter "står" mellan tunnor och platser.

a) Läraren tycker att det sambandet är konstigt. Varför tycker han det?

b) Hur kan studenten ha tänkt när han eller hon gjorde det sambandet?

Uppgift 3 (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 4 (12 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) Vi har hittat en tunna som är märkt med numret 9000. Vad är den gjord av?

b) (2p) Vilka kemikalier innehåller den?

c) (2p) Vi upptäcker att en del av tunnorna är gjorda av kartong. De kommer nog inte att hålla så länge. Vad är koordinaterna för de platser där de står?

d) (2p) Hur många tunnor som innehåller polonium finns det?

e) (3p) Vilken av de giftigaste kemikalierna (med giftighetsklass 10) finns i flest olika tunnor?

f) (2p) Tunnor som står på platser med synlighet 1 kommer nog ingen att hitta, så AB Gröna och Säkra Miljölösningar bestämmer sig för att låtsas som att de inte finns. Skriv de delete-kommandon som behövs för att radera all information om dessa tunnor ur databasen.

Uppgift 5 (3 p)

Alla tabeller i databasen växer och blir mycket stora. Sökningarna a, b och c i uppgiften ovan körs ofta, men kanske med andra konstanter än de i uppgiften, och vi märker att de går för långsamt. Vi ser att det inte finns några index i databasen, inte ens på nycklar.

Hur kan man få just dessa sökningar att gå snabbare?

Uppgift 6 (9 p)

I samband med databaser brukar man tala om transaktioner, och de så kallade ACID-egenskaperna.

a) Vad menar man i databassammanhang med en transaktion?

b) Beskriv för var och en av ACID-egenskaperna vad den innebär, med ett konkret exempel just från databasen med tunnor om vad som skulle kunna bli fel om den egenskapen saknas!

Uppgift 7 (3 p)

Vad innebär den så kallade tre-schema-arkitekturen? Vad är det för tre scheman? Vilka fördelar får man av den arkitekturen?