Ö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 20 augusti 2014

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





Hjälpmedel: Inga hjälpmedel.
Poängkrav: Maximal poäng är 36.
För betyget 3 respektive G krävs 18 poäng.
Resultat: Meddelas på kursens hemsida eller via e-post senast onsdag 10 september 2014.
Å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

Starcraft är ett populärt spel, särskilt i Sydkorea. Där har man Starcraft-matcher som visas för publik och sänds i TV:

En datasal

Nu ska vi organisera en Starcraft-turnering med hjälp av en databas.

Det vi ska lagra i databasen är, mer detaljerat, följande saker:

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

a) Det står i uppgiften ovan att du ska ange vilka relationer som finns. Vad är en relation?

b) Det står också att du ska ange alla kandidatnycklar. Vad är det för skillnad på en kandidatnyckel och en främmande nyckel?

c) Vad är det för skillnad på ett referensattribut och en främmande nyckel?

Uppgift 4 (12 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) Vilket nummer har spelaren som heter Kim?

b) Vad heter laget som Kim är med i?

c) Vilka energidrycker tycker Kim om?

d) Vilka datum har Kim spelat matcher?

e) Vilket lag har flest spelare?

f) Hur många spelare har varje lag? Vi vill ha en lista med lagens namn och antalet spelare i laget. Även lag som inte har några spelare alls ska vara med i listan, med antalet noll.

Uppgift 5 (6 p)

Vi vill organisera en landsomfattande turnering, med miljoner spelare och matcher.

a) Kommer en vanlig databashanterare att kunna hantera dessa datamängder med rimliga prestanda? Motivera svaret!

b) Föreslå en databashanterare som vi kan använda. Motivera svaret!

c) Vi antar att frågorna a, b och c i uppgift 4 körs ofta, och vi behöver snabba upp just dessa frågor. Vilka index behöver vi skapa? Databashanteraren som vi använder skapar inga index automatiskt, inte ens på primärnycklar.

d) Vad är det för skillnad på ett index och en tabell?

Uppgift 6 (3 p)

Spelare kan vara antingen professionella eller amatörer. Professionella spelare har, förutom de vanliga spelaregenskaperna som angetts i scenariot, även en lön och ett företag som de är anställda av.

a) Rita ett EER-diagram med spelare, professionella spelare, amatörspelare och företag, samt sambanden mellan dem.

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