Ö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.
|
-
Skriv tydligt och klart. Lösningar som inte går att läsa kan
naturligtvis inte ge några poäng.
Oklara och tvetydiga formuleringar kommer att misstolkas.
-
Skriv den personliga tentamenskoden på varje inlämnat blad.
Skriv inte namn eller personnummer på bladen.
-
Skriv bara på en sida av papperet.
Använd inte röd skrift.
-
Antaganden utöver de som står i uppgifterna måste anges. Gjorda
antaganden får inte förändra den givna uppgiften.
-
Skriv gärna förklaringar om hur du tänkt.
Även ett svar som är fel kan ge poäng,
om det finns med en förklaring som visar att huvudtankarna var rätt.
-
Skriv inte svaren i häftet med provfrågorna och lämna inte in det.
Behåll det eller kasta det.
Läraren vet redan vad frågorna var.
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:
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:
-
Kemikalierna.
Varje kemikalie har ett namn,
till exempel
PCB
eller
pentaklorfenol,
Den har också en giftighetsklass från 1 (ofarlig) till 10 (man dör direkt),
och en miljöskadlighetsklass från 1 till 10.
-
Tunnorna.
Varje tunna har ett unikt nummer, som vi ska märka tunnorna med.
Den har också en volym i liter,
ett material som den är gjord av (till exempel stål eller plast),
och ett tillverkningsår.
-
Vilka kemikalier som finns i tunnorna.
Det kan finnas många tunnor som innehåller samma kemikalie.
Det händer att flera olika kemikalier blandas i samma tunna.
-
Platser i skogen där man kan ställa tunnorna.
Varje plats har koordinater i form av latitud och longitud,
och eftersom de tillsammans anger en plats på jordytan bilder de en unik nyckel.
Platsen har också en synlighet från 1
(omöjlig att upptäcka om man inte vet var man ska leta)
till 10 (fullt synlig från en trafikerad väg).
-
Var tunnorna står just nu.
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?