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

Tentamen i

Databasteknik

onsdag 16 mars 2022

Gäller som tentamen för:
DT105G Databasteknik, provkod A001


Hjälpmedel: Ordbok för översättning.
Poängkrav: Maximal poäng är 40. För godkänt betyg krävs 20 poäng, varav minst fyra poäng på uppgift 2 och minst fem poäng på uppgift 3.
Resultat: Meddelas senast onsdag 6 april 2022.
Återlämning av tentor: Elektroniskt via webbportalen Studenttjänster.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070 - 73 47 013.



LYCKA TILL!

Scenario till uppgifterna

För att underlätta för lokalvården på universitetet ska vi skapa en databas över alla papperskorgar och när de tömts.

Det vi ska lagra är:

Uppgift 1 (3 p)

Enligt scenariot omfattar varje tömningsrunda ett antal papperskorgar som man tömde på den rundan. Förklara varför sambandet mellan tömningsrundor och papperskorgar är ett många-till-många-samband och inte någon annan typ av samband.

Uppgift 2 (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 3 (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 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) (2p) Hur stora är de papperskorgar som finns i T120? Vi vill veta volymen på var och en av papperskorgarna.

b) (2p) Vilka dagar har vi tömt minst en av papperskorgarna i T120?

c) (2p) Var står den största papperskorgen?

d) (2p) I vilken lokal finns det flest papperskorgar?

e) (2p) I vilka lokaler finns det inga papperskorgar alls?

Uppgift 5 (4 p)

En databas innehåller tre tabeller: tabellen A, med kolumnerna A1, A2 och A3, tabellen B, med kolumnerna B1, B2 och B3, och tabellen C, med kolumnerna C1, C2 och C3. Alla tabellerna innehåller flera miljoner rader.

Den här select-frågan ställs ofta mot databasen:

select A1, B1, C1
from A, B, C
where A2 = B2
and B3 = C3
and A3 = K1
and C2 = K2

K1 och K2 är konstanter, som varierar mellan olika körningar av frågan.

a) Frågan tar för lång tid att köra. Vi ser att det inte finns några index i databasen, inte ens på nycklar. Om vi vill att frågan ska gå snabbt att köra, vilka index skulle du rekommendera att man skapar? Motivera vart och ett av indexen.

b) Föreslå något index på någon av de tre tabellerna som inte skulle få frågan att bli snabbare, och motivera varför det inte hjälper.

Uppgift 6 (4 p)

Här är tabellen A från uppgiften ovan, med de data som den just nu innehåller:

A
A1 A2 A3
1 2 3
2 2 3
4 3 4
3 5 4

Vi vet att kolumnen A1 är den enda kandidatnyckeln i tabellen.

a) Någon frågar dig vilka fullständiga funktionella beroenden som finns i tabellen. Förklara varför det inte går att svara på den frågan!

b) Ange något fullständigt funktionellt beroende som inte finns i tabellen.

c) Någon frågar dig varför raderna kommer i fel ordning. A1 var ju nyckel, så varför kommer raden där A1 är 4 före raden där A1 är 3? Förklara!

Uppgift 7 (3 p)

Nämn tre olika databashanterare, och ange för var och en av dem någon egenskap som skiljer den från de två andra.

Uppgift 8 (5 p)

Förklara skillnaden mellan

a) ett index och en primärnyckel
b) en primärnyckel och en främmande nyckel
c) ett ER-diagram och ett EER-diagram
d) atomicitet (A:et i ACID) och isolering (I:et i ACID)
e) en relation och en tabell