Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se)
Tentamen i
Databasteknik
tisdag 7 januari 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 2.
|
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.
LYCKA TILL!
Scenario till uppgifterna
Parkeringsbolaget
Norge-Sverige-Danmarks Allmänna Parkering
vill hålla koll på sina parkeringar
och vilka bilar som finns parkerade.
Här är en bild på en parkering:
De behöver förstås en databas för det,
och det databasen ska innehålla är följande:
-
Parkeringsplatser,
till exempel den stora parkeringen på framsidan av Örebro universitet,
eller den lite mindre på andra sidan Teknikhuset.
Varje parkeringsplats har ett unikt namn.
Den har också koordinater, som består av latitud och longitud
och som också är unika.
-
Parkeringsrutor,
där man kan ställa en bil.
Varje parkeringsruta hör till en viss parkeringsplats.
-
Bilar,
identifierade med registreringsnummer.
-
Alla parkeringar som gjorts.
En parkering går ut på att en viss bil parkerats på en viss parkering
(men inte en specifik parkeringsruta)
mellan en starttid och en sluttid.
Sluttiden kan vara i framtiden, eftersom man betalar i förskott.
-
Parkeringsböter
som utfärdats.
Varje parkeringsbot har utfärdats en viss tid,
för en viss bil,
på en viss parkeringsruta (inte bara en parkeringsplats).
Parkeringsbolaget har verksamhet i hela Norden,
och planerar att expandera in i Polen,
så man kan räkna med att det finns många av alla dessa saker,
även parkeringsplatser.
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 den här kursen har handlat om relationsdatabaser,
bland annat uppgift 2 på den här tentan.
Vad är det som är "relationerna" i en relationsdatabas?
Uppgift 4 (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)
Vad heter de parkeringsplatser som har ett namn som börjar på Örebro
(till exempel Örebro universitet)?
b) (1p)
Vad heter de parkeringsplatser som har ett namn som innehåller Örebro
(till exempel Norra infarten till Örebro)?
c) (2p)
Vad är namnen på alla de parkeringsplatser
där bilen med registreringsnummer GRG 89R
har parkerats?
d) (2p)
Hur många bilar finns det just nu på parkeringsplatsen som heter Studentgatan 2-32?
Man kan använda NOW() för att få fram aktuell tid,
så man kan jämföra den med starttiden och sluttiden för en parkering.
e) (2p)
Vad heter den parkeringsplats som ligger längst norrut?
(Det är alltså den parkeringsplats som har den högsta latituden.)
f) (3p)
Vad är namnet på den parkeringsplats där flest parkeringsböter delats ut?
Uppgift 5 (3 p)
Alla tabeller i databasen växer och blir mycket stora.
Sökningarna i deluppgifterna 4a, 4b och 4c
körs ofta, men kanske med andra konstanter än de i uppgiften.
Vi vill få dem att gå snabbare.
Ange för var och en av dessa sökningar
vilka index vi bör skapa för att just den sökningen ska gå betydligt snabbare.
Från början finns det inga index i databasen, inte ens på nycklar.
Uppgift 6 (4 p)
Den så kallade tre-schema-arkitekturen innebär att en och samma databas
beskrivs med tre olika scheman.
Vad innebär det, vad är det för scheman, och vad innebär det för fördelar och nackdelar?
Uppgift 7 (4 p)
a) Vad menas i databassammanhang med en normalform?
b) Varför har man skapat dessa normalformer?
c) Ge ett exempel på en normalform som vi behandlat i kursen,
och förklara vad den innebär.
Uppgift 8 (3 p)
a) Vad innebär I:et i ACID-egenskaperna?
b) Beskriv kort något vanligt sätt att åstadkomma detta.
Uppgift 9 (3 p)
Vilken databashanterare bör vi välja för databasen i scenariot?
Nämn tre olika databashanterare, och ange för var och en av dem varför, eller varför inte,
den passar för den här tillämpningen.