Örebro universitet
Institutionen för teknik
Thomas Padron-McCarthy (Thomas.Padron-McCarthy@oru.se)




Tentamen i

Databasteknik
för D1, SDU1 m fl

tisdag 12 januari 2010

Gäller som tentamen för:
DT1012 Datateknik A, Databasteknik, provkod 0100
DT1007 Datateknik A, Tillämpad datavetenskap, provkod 0310




Hjälpmedel: Inga hjälpmedel.
Poängkrav: Maximal poäng är 35.
För betyget 3 respektive G krävs 20 poäng.
För den som följt kursen hösten 2009 ger varje i tid inlämnad inlämningsuppgift en extra poäng.
Den som inte gått kursen hösten 2009 får dessa (fem) extrapoäng ändå.
Resultat och lösningar: Meddelas på kursens hemsida eller via e-post senast tisdag 2 februari 2010.
Återlämning av tentor: Efter att resultatet meddelats kan tentorna hämtas på institutionen. Man kan också få sin rättade tenta hemskickad.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070 - 73 47 013.



LYCKA TILL!

Scenario till uppgifterna

Tekniska verken i Örebro kommun ansvarar bland annat för sophämtningen, och man behöver förstås en databas för att hålla reda på verksamheten.

Så här ser kan ett ER-diagram för databasen se ut:

Ett ER-diagram för sophämtningen

Man behöver lagra följande saker i databasen:

Uppgift 1 (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 2 (10 p)

Formulera följande frågor i SQL:

a) Vilken position (som anges med koordinaterna Lat och Long) har hämtstället på Grangrensvägen 2?

b) På vilka hämtställen gjordes det hämtningar 2010-01-12 klockan 09:03? Vi vill veta adresserna för dessa hämtställen.

c) Ange namn och adress för de abonnenter som har hämtställe på Talltoppstrappan 9.

d) Jag heter Thomas Padron-McCarthy. När har mina sopor hämtats? Jag vill veta datum och tid.

e) Vilka abonnenter har aldrig fått sina sopor hämtade? Vi vill veta de abonnenternas namn och adress.

f) Vilken abonnent har flest soptunnor? Vi vill veta namn och adress för den abonnenten.

Uppgift 3 (3 p)

Databasen innehåller minst flera tusen rader i varje tabell. De tre SQL-frågorna a, b och c i uppgiften ovan körs väldigt ofta (men med andra konstanter) och behöver snabbas upp. Vi märker att det inte finns några index alls i databasen, inte ens på nycklar. Vilka index bör man skapa för att just de frågorna ska gå snabbt att köra? Motivera svaret!

Uppgift 4 (3 p)

Vilken databashanterare bör Tekniska verken välja för sin databas? Nämn minst tre olika databashanterare, och tala om varför, eller varför inte, de passar för den här tillämpningen.

Uppgift 5 (3 p)

Visa med ett par enkla exempel från databasen i scenariot vad man har SQL-kommandona grant och revoke till. Glöm inte att förklara vad som händer!

Uppgift 6 (6 p)

En databas innehåller båtar. Alla båtar har ett unikt nummer, en vikt och ett namn. En del av båtarna är fiskebåtar, och varje fiskebåt har en fångst, som mäts i ton. En del av båtarna är ubåtar, och varje ubåt har ett maxdjup. En del av ubåtarna är militär-ubåtar. En del av militär-ubåtarna är attack-ubåtar och en del är missil-ubåtar. Varje attack-ubåt har en tuffhet, och varje missil-ubåt har ett missilantal.

Dessutom finns det personer i databasen. Varje person har ett namn och ett unikt nummer. En del av personerna är sjömän, och andra är kaptener. Varje båt har en kapten. Ubåtarna har dessutom en besättning på en eller flera sjömän.

a) Rita ett EER-diagram över den beskrivna databasen.

b) Översätt EER-diagrammet till tabeller.

I b-uppgiften behöver du 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.

Uppgift 7 (4 p)

Ibland talar man om ACID-transaktioner, där bokstäverna i förkortningen ACID står för Förklara för var och en av de fyra egenskaperna vad den egentligen betyder, och ge ett exempel på vad som kan hända om den saknas.