Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se)
Tentamen i
Databasteknik
för D2 m fl
onsdag 21 augusti 2019
Gäller som tentamen för:
DT105G Databasteknik, provkod 0100
Hjälpmedel:
|
Ordbok för översättning.
|
Poängkrav:
|
Maximal poäng är 45.
För godkänt betyg krävs 22 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 onsdag 11 september 2019.
|
Återlämning av tentor:
|
Elektroniskt via 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
Institutionen för naturvetenskap och teknik
behöver hålla reda på sina lokaler och möbler.
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.
- Bord, som alla har ett unikt nummer.
Varje bord står i ett visst rum.
- Stolar, som alla har ett unikt nummer.
Varje stol står i ett visst rum,
och en del stolar står dessutom vid ett visst bord.
- Lärare.
Varje lärare har ett unikt nummer och ett (inte nödvändigtvis unikt) namn.
En del av lärarna har ett eget 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 3 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 (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)
Vilka rum finns i Teknikhuset och Långhuset?
b) (2p)
Vilka rum med namn som börjar på T finns i Teknikhuset?
c) (2p)
Vilka lärare har rum i Teknikhuset?
Vi vill veta de lärarnas namn.
d) (2p)
Vilka lärare har inget eget rum?
Vi vill veta de lärarnas namn.
e) (2p)
Det vore konstigt om det fanns stolar som står vid ett bord
som inte finns i samma rum som stolen.
Vilka stolar är det?
f) (2p)
Hur många stolar finns det i Långhuset?
(Räkna antalet stolar som finns i rum i Långhuset,
inte antalet stolar som står vid bord som finns i rum i Långhuset.)
Uppgift 4 (3 p)
Det vore som sagt konstigt om det fanns stolar som står vid ett bord
som inte finns i samma rum som stolen.
Det borde kanske inte alls gå att lägga in i databasen?
Hur skulle man kunna göra så att det inte går att lägga in
stolar som står vid ett bord som inte finns i samma rum som stolen?
Uppgift 5 (4 p)
Institutionens verksamhet växer, och nu har vi väldigt många hus, rum, bord och stolar.
Vi märker att SQL-frågorna i uppgift 3 börjar bli långsamma.
Det finns inga 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 (4 p)
I databassammanhang pratar man om ACID-transaktioner.
a) Vad menas med en transaktion?
b) Förklara vad förkortningen ACID innebär.
(Berätta gärna vad bokstäverna står för, men det viktigaste är att förklara vad de innebär!)
Uppgift 7 (4 p)
a) (2p)
Visa med ett par enkla exempel
vad man har SQL-kommandona grant och revoke till.
Glöm inte att förklara vad som händer!
b) (2p)
Visa hur man kan kombinera grant och revoke
med vyer för att ge en mer finkornig kontroll av vad användarna får göra med databasen.
Uppgift 8 (3 p)
I databaser kan det förekomma redundans av olika slag.
Förklara vad som menas med redundans.
Beskriv också två olika typer av redundans som kan förekomma,
och i vilka sammanhang de förekommer.
Vilka fördelar och nackdelar finns med de olika typerna av redundans?
Uppgift 9 (5 p)
Här är ett försök att lösa uppgift 2 ovan,
med en databas som bara består av en enda tabell.
(Lärarna är inte med, utan de skulle behöva lagras i en egen tabell.)
Institutionsdata |
Husnummer | Husnamn | Rum | Bord | Stol | Stol vid bord |
17 | Teknikhuset | T2220 | 87 | 16 | Ja |
17 | Teknikhuset | T2220 | 87 | 17 | Ja |
17 | Teknikhuset | T2220 | 87 | 18 | Nej |
17 | Teknikhuset | T2222 | 88 | 19 | Ja |
17 | Teknikhuset | T2222 | 88 | 20 | Ja |
17 | Teknikhuset | T2222 | 89 | 21 | Ja |
4 | Långhuset | L2030 | 17 | 22 | Ja |
a)
Vilka kandidatnycklar finns i tabellen?
b)
Vilka fullständiga funktionella beroenden finns i tabellen?
c)
Vilka av de fyra normalformerna
1NF, 2NF, 3NF och BCNF
uppfyller tabellen?
d)
Motivera svaret i c-uppgiften ovan!