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








Tentamen i

Databasteknik

onsdag 13 mars 2024

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 24 poäng, varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2.
Resultat: Meddelas senast 15 arbetsdagar efter tentamensdatum.
Å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

Med nya EU-regler om spårbar och miljövänlig äggproduktion måste vi hålla reda på exakt vilken höna som lagt vilket ägg. Därför ska vi märka alla hönorna och alla äggen med streckkoder, och lagra data om dem i en databas.

Prompt till DALL-E: Gör en bild av några hönor, med streckkoder på ryggen, och några ägg på marken som också har streckkoder.

Mer bestämt ska databasen innehålla:

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 uppgifterna 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 (12 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 olika sorters pest finns det? Dvs, vad heter de sjukdomar vars namn innehåller "pest"?

b) (1p) Vad heter de sjukdomar vars namn inte innehåller "pest"?

c) (1p) Här är ägg nummer 1234567. Vad heter hönan som värpt det ägget?

d) (1p) Vad väger alla hönorna tillsammans?

e) (3p) Det kan vara svårt att hitta på namn till alla hönorna, och det blir lätt så att man har hundratals hönor som heter Agda. Hur många hönor finns det som har vart och ett av de olika namnen? Vi vill ha dem sorterade i ordning med namnet som har flest hönor först.

f) (3p) Vad heter den sjukdom som vi har vaccinerat flest hönor mot?

g) (2p) En sjukdom som alla hönorna är vaccinerade mot är det ingen risk att vi får ett utbrott av. Vilka sjukdomar har vi inte vaccinerat alla hönorna mot?

Uppgift 4 (5 p)

Alla tabeller i databasen växer och blir mycket stora. De fyra första sökningarna i deluppgiften ovan, alltså deluppgift 3a, 3b, 3c och 3d, körs ofta, men kanske med andra konstanter än de i uppgiften. Vi vill få dem att gå snabbare. Vilka index bör vi skapa för att de sökningarna ska gå snabbare? Från början finns det inga index i databasen, inte ens på nycklar. Är det kanske så att för en del av sökningarna hjälper det inte att skapa index? Vilka sökningar är det, och kan vi göra något annat för att få de frågorna att gå snabbare?

Uppgift 5 (6 p)

I samband med transaktionshantering i databaser talar man om de så kallade ACID-egenskaperna.

a) Beskriv, för var och en av ACID-egenskaperna, något problem som kan uppstå i just den här databasen med hönor och ägg om den egenskapen inte upprätthålls.

b) ACID-egenskaperna skulle kunna upprätthållas av databashanteraren, av applikationsprogrammet eller av användaren. Vilket av dessa alternativ är bäst, och varför?

Uppgift 6 (3 p)

Ett flygbolag vill hålla reda på resenärernas väskor. Varje väska har ett unikt nummer och en vikt, samt mått som består av bredd, höjd och djup. Varje väska här också till en viss resenär, och resenärerna har namn och ett unikt nummer. En del av väskorna är resväskor, och eftersom resväskor ofta har hjul ska man lagra antalet hjul på varje resväska. En del av väskorna är handväskor, och eftersom handväskor kan vara mycket dyra ska man hålla reda på priset för varje handväska. Rita ett EER-diagram för flygbolagets väskor och resenärer!

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

Inom databasområdet finns många förkortningar. Ange för var och en av de här förkortningarna vad den betyder, och förklara kort vad det är.

DBA
DBMS
DDL
DML
JSON
XML