Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se)



Tentamen i

Databasteknik
för D1 m fl

tisdag 12 januari 2016

Gäller som tentamen för:
DT105G Databasteknik, provkod 0100
DT1026 Datateknik A, Databasteknik, provkod 0100
DT1030 Datateknik A, Tillämpad datavetenskap, provkod 0310


Hjälpmedel: Ordbok för översättning.
Poängkrav: Maximal poäng är 40. För betyget 3 respektive G krävs 25 poäng, samt minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2. För den som följt kursen hösten 2015 ger varje i tid inlämnad inlämningsuppgift en extra poäng. Den som inte gått kursen hösten 2015 får dessa (fem) extrapoäng ändå.
Resultat: Meddelas på kursens hemsida eller via e-post senast tisdag 2 februari 2016.
Återlämning av tentor: Efter att resultatet meddelats kan tentorna hämtas på universitetets centrala tentamensutlämning.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070 - 73 47 013.



LYCKA TILL!

Scenario till uppgifterna

Skogen är full med blåbär som ingen håller reda på, och så kan vi inte ha det. Därför ska vi skapa en databas med skogens alla blåbär.

Det vi ska lagra i databasen är följande:

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 (7 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)

Ge tre exempel på integritetsvillkor av olika typer som kan vara bra att ha i din databas från uppgifterna ovan.

Uppgift 4 (10 p)

Formulera följande frågor i SQL. Använd dina tabeller från uppgift 2. Definiera gärna vyer om det underlättar.

a) Vad är kilopriset för blåbär av kvalitetsklassen som heter Extra bäst?

b) Här har vi blåbär nummer 123456789. Det sitter på en blåbärsbuske. Hur hög är busken?

c) Här, på latitud 59.250 och longitud 15.250, finns en blåbärsbuske. Vad heter den eller de blåbärsräknare som är ansvariga för den?

d) Hur många blåbär sitter inte på någon buske?

e) Vad är det sammanlagda priset för alla blåbär i skogen?

Uppgift 5 (5 p)

Det finns miljarder blåbär och miljoner blåbärsplantor. Det finns också flera tusen blåbärsräknare, som alla ska jobba mot databasen under sitt arbete.

a) Föreslå en databashanterare som kan vara lämplig att använda.

b) Föreslå en databashanterare som förmodligen inte är lämplig att använda. Motivera varför den inte är lämplig!

c) Vi antar att frågorna a och b i uppgift 4 körs ofta, men vi söker inte alltid efter just samma konstanter (Extra bäst och så vidare). Vilka index behöver vi skapa för att snabba upp just dessa frågor? Databashanteraren som vi använder skapar inga index automatiskt, inte ens på primärnycklar.

Uppgift 6 (5 p)

Här är ett försök att skapa en av tabellerna i uppgift 2 ovan. Tyvärr blev det inte så bra, och tabellen är inte så väl normaliserad som man helst skulle vilja.

Blåbär
Nr Diamater Vikt Kvalitetsklass Kvalitetsnamn Kilopris
1 1.0 0.8 1 Extra prima 14.90
2 0.8 0.8 1 Extra prima 14.90
3 1.0 0.8 2 Skräpbär 1.00

Kolumnen Nr är det unika blåbärsnumret från scenariot, och är primärnyckel i tabellen. Som vi ser hör blåbär 1 och blåbär 2 till kvalitetsklass 1, och blåbär 3 hör till kvalitetsklass 2.

a) Vilka fullständiga funktionella beroenden finns i tabellen?
b) Vilken är den högsta normalform, av 1NF, 2NF, 3NF och BCNF, som tabellen uppfyller?
c) Varför uppfyller tabellen inte den närmast högre normalformen?
d) Beskriv något problem som finns i den här tabellen, och som man skulle slippa med en högre normalform.

Uppgift 7 (5 p)

Vad är det för skillnad på:

a) en primärnyckel och en kandidatnyckel
b) en kandidatnyckel och ett index
c) hållbarhet (D:et i ACID) och isolering (I:et i ACID)
d) en främmande nyckel och en kandidatnyckel
e) en databashanterare och en databasadministratör