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


















Tentamen i

Databasteknik
för D1, SDU1 m fl

onsdag 22 augusti 2012

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 32.
För betyget 3 respektive G krävs 16 poäng.
Resultat: Meddelas på kursens hemsida eller via e-post senast onsdag 12 september 2012.
Å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

I en del andra länder i Europa är det populärt med marscher, där tusentals människor samlas och går en ibland ganska lång sträcka. Det är en form av motion, ett stryrkeprov och en folkfest. En del av deltagarna brukar vara militärer, men de flesta är civila.

Ett exempel är den berömda fyradagarsmarschen i Nijmegen i Holland:

Nijmegen-marschen 2012

Vi ska organisera en sådan marsch, och det vi vill lagra i databasen är följande:

Här är ett exempel på hur en marschkarta med kontroller kan se ut:

Karta med kontrollerna

Det finns åtta kontroller, numrerade från 1 till 8. Kontroll nummer 1 är starten, som är gemensam för alla marschsträckor. Kontroll nummer 5 är målet, som också är gemensamt för alla marschsträckor. Det finns tre olika marschsträckor. Den kortaste har kontrollerna 1-2-3-4-5. Den mellanlånga har kontrollerna 1-2-3-6-7-4-5. Den längsta har kontrollerna 1-2-3-6-8-7-4-5.

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 (5 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 (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) Det finns bara en deltagare som heter Anders And. Vad har han för startnummer?

b) Det finns bara en deltagare som heter Bengt Berg. Hur lång är sträckan som han anmält sig till?

c) Det finns bara en deltagare som heter Cecilia Citron. Vilka kontroller har han passerat, och vid vilka tidpunkter? Vi vill ha en lista sorterad efter tiderna.

d) Hur många deltagare har anmält sig till sträckan 40 kilometer?

e) Finns det några deltagare som passerat en kontroll som han eller hon inte borde ha passerat? Dvs, en kontroll som inte hör till den marschsträckan som han eller hon är anmäld till? Vi vill veta dessa deltagares namn och nummer.

Uppgift 4 (4 p)

En del marscher har ganska många deltagare. Nijmegenmarschen har till exempel omkring femtio tusen.

Nijmegen-arrangörerna har följt dina lösningar i uppgifterna ovan, så nu har de den databasen i drift. Men de är oroliga för att databasen ska räcka till för belastningen. Beskriv vad de bör tänka på, och hur de bör göra!

Uppgift 5 (3 p)

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

Uppgift 6 (5 p)

Nijmegen-arrangörerna, från uppgit 4 ovan, har ytterligare några frågor till dig. Besvara dem!

a) Vi tycker det här med SQL verkar krångligt, med alla "select" och "from" och vad det nu var. Hur ska våra frivilliga funktionärer klara av det?

b) Tänk om två deltagare får samma startnummer? Det skulle ju bli kaos! Hur ska vi hantera det?

c) Förra året gick strömmen mitt under marschen. Då stängs ju datorerna av, och alla data försvinner! Hur ska vi hantera det?