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




Tentamen i

Databasteknik
för D1, SDU1 m fl

tisdag 11 januari 2011

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 40.
För betyget 3 respektive G krävs 24 poäng.
För den som följt kursen hösten 2010 ger varje i tid inlämnad inlämningsuppgift en extra poäng.
Den som inte gått kursen hösten 2010 får dessa (fem) extrapoäng ändå.
Resultat och lösningar: Meddelas på kursens hemsida eller via e-post senast tisdag 1 februari 2011.
Å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

Många människor är missnöjda med sina julklappar. De har fått fula tröjor, fel dataspel eller kanske något som kräver ansträngning, som sportutrustning eller pussel. För att hjälpa dem ska vi starta webbplatsen julklappsbyte.se, och då behöver vi förstås en databas.

Så här ser kan ett ER-diagram för databasen se ut:

Ett ER-diagram för julklapparna

Här är några förklaringar om de saker man vill lagra i databasen:

Uppgift 1 (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 2 (10 p)

Formulera följande frågor i SQL:

a) Hur många personer finns just nu registrerade på webbplatsen?

b) Vad är e-postadresserna till de personer som vill bli av med blåa ylletröjor?

c) Jag heter Thomas Padron-McCarthy. Vad är namnen på de julklappar som jag vill ha?

d) Vilka julklappar vill ingen ha? Vi vill veta numret och namnet på dessa julklappar.

e) Vad heter den julklappstyp är mest efterfrågad?

Definiera gärna vyer om det underlättar frågorna.

Uppgift 3 (5 p)

a) (3p) Databasen innehåller många tusen rader i varje tabell. De tre SQL-frågorna a, b och c i uppgiften ovan körs väldigt ofta (men med andra konstanter, till exempel andra personnamn än Thomas Padron-McCarthy) och behöver snabbas upp. Vi märker att det inte finns några index alls i databasen, inte ens på nycklar. Vilka index bör man skapa för att just de frågorna ska gå snabbt att köra? Motivera svaret!

b) (1p) Vad är ett index?

c) (1p) Hur kan index göra att frågorna går snabbare att köra? Frågorna ska väl inte ändras?

Uppgift 4 (3 p)

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

Uppgift 5 (5 p)

Ibland talar man om ACID-transaktioner, där bokstäverna i förkortningen ACID står för Ge för var och en av dessa egenskaper ett exempel på något dåligt som kan hända i vår julklappsdatabas om den saknas.

Uppgift 6 (2 p)

Visa med ett par enkla exempel från julklappsdatabasen vad man har SQL-kommandona grant och revoke till. Glöm inte att förklara vad som händer!

Uppgift 7 (6 p)

Ge, för var och en av följande saker, ett kort exempel som tydligt visar vad man kan ha den till:

a) XML

b) Triggers

c) Yttre join

Använd gärna julklappsdatabasen i exemplen, men i den här frågan är det inget krav.

Uppgift 8 (3 p)

Vi vill skapa en databas med data om svampar. Varje svamp har ett nummer, en höjd och en vikt. All svampar är av en av tre sorter: storsvampar, mellansvampar och småsvampar. Småsvampar indelas i sin tur i minisvampar och pyttesvampar. Alla småsvampar har en färg, och pyttesvampar har dessutom en maskstatus.

a) Rita ett EER-diagram över svampdatabasen.

b) Översätt till tabeller. Redovisa svaret på ett tydligt och lättfattligt sätt.