Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se)
Tentamen i
Databasteknik
måndag 26 augusti 2019
Gäller som tentamen för:
DT504G Databasteknik för civilingenjörer, provkod 0100
Hjälpmedel:
|
Ordbok för översättning.
|
Poängkrav:
|
Maximal poäng är 38.
För godkänt betyg krävs 20 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 måndag 16 september 2019.
|
Återlämning av tentor:
|
Elektroniskt via Studentforum.
|
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
Alla känner till Örebro universitet,
men ett annat universitet som inte är lika känt är Laxå universitet:
Fotograf: Johan Jönsson. Licens:
Creative Commons Attribution-ShareAlike 4.0 International.
Laxå universitet planerar att växa kraftigt,
och nu behöver de en databas för att hålla reda på sina lokaler och lärare.
Det som finns är:
- Hus, med ett unikt nummer, till exempel 17,
och ett unikt namn, till exempel Teknikhuset.
- Rum, som alla har ett unikt namn, till exempel T2220.
Varje rum finns i ett visst hus.
- Korridorer, som alla har ett unikt nummer och en längd.
Korridorerna finns i husen.
En del korridorer är så långa att de räcker genom flera hus,
så en korridor kan alltså finnas i flera olika hus.
Det kan finnas flera korridorer i samma hus.
- Dörrar. Varje dörr har ett unikt nummer,
och den leder från en korridor och in till ett rum.
Varje korridor kan förstås ha dörrar till många rum,
och ett rum (till exempel en stor föreläsningssal) kan ha flera dörrar,
som leder till olika korridorer.
- Lärare.
Varje lärare har ett unikt nummer och ett (inte nödvändigtvis unikt) namn.
Varje lärare befinner sig i ett av rummen.
Det finns också lärare som gått hem, och då finns den läraren inte i något rum.
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 4 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 (3 p)
Välj själv en av tabellerna som du gjort i uppgift 2 ovan.
Ange vilken som är den högsta normalform (av 1NF, 2NF, 3NF och BCNF)
som tabellen uppfyller.
Visa sen att tabellen uppfyller den normalformen.
Uppgift 4 (10 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)
Vad heter de lärare som finns i Teknikhuset?
d) (2p)
Vad heter de lärare som har gått hem?
Det är alltså de lärare som inte finns i ett rum.
e) (3p)
Genom vilka hus går den längsta korridoren?
Vi vill veta vad de husen heter.
Uppgift 5 (4 p)
Universitetet växer, och alla tabeller blir mycket stora.
Vi märker att SQL-frågorna i uppgift 3 börjar bli långsamma.
Vi ser också att det inte finns några 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 (3 p)
Ange tre olika databashanterare.
Skriv för var och en åtminstone någon egenskap som skiljer den från de andra.
Uppgift 7 (2 p)
Laxå universitet är mindre känt än Örebro universitet,
men det blev universitet redan 1998, ett år före Örebro.
Tyvärr är deras webbplats,
laxu.se,
också från 1998, och den har byggts med hjälp av CGI-program.
De data som visas på webbplatsen hämtas ur en databas.
I början fungerade webbplatsen snabbt och bra,
men nu när antalet studenter på Laxå universitet har ökat,
har webbplatsen börjat få ganska dåliga prestanda.
En konsult kommer och tittar, och skyller på CGI-programmen.
Kan konsulten ha rätt? Varför skulle just CGI-program vara långsamma?
Uppgift 8 (5 p)
Förklara kort vad som menas med:
a) Isolering (I:et i ACID)
b) Hållbarhet (D:et i ACID)
c) Relation (i en relationsdatabas)
d) Yttre join
e) Referensintegritet