Örebro universitet
Institutionen för teknik
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se)
Tentamen i
Databasteknik
för D1, SDU1 m fl
lördag 3 mars 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 och lösningar:
|
Meddelas på kursens hemsida eller via e-post senast lördag 24 mars 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.
|
-
Skriv tydligt och klart. Lösningar som inte går att läsa kan
naturligtvis inte ge några poäng. Oklara formuleringar kommer att
misstolkas.
-
Skriv den personliga tentamenskoden på varje inlämnat blad.
Skriv inte namn eller personnummer på bladen.
-
Skriv bara på en sida av papperet.
Använd inte röd skrift.
-
Antaganden utöver de som står i uppgifterna måste anges. Gjorda
antaganden får inte förändra den givna uppgiften.
-
Skriv gärna förklaringar om hur du tänkt.
Även ett svar som är fel kan ge poäng,
om det finns med en förklaring som visar att huvudtankarna var rätt.
LYCKA TILL!
Scenario till uppgifterna
I vårt fikarum står det jämt odiskade kaffekoppar på diskbänken.
Vi måste verkligen styra upp det här!
Därför behöver vi en databas. Det vi vill lagra i databasen är följande:
-
Kaffekoppar.
Varje kaffekopp har ett unikt nummer, som ska skrivas på koppen i form av en streckkod.
Dessutom har den en färg, en storlek och en kort beskrivning.
-
Personer.
Det är de personer som fikar, och som dricker kaffe ur kaffekopparna.
Varje person har ett unikt nummer samt ett namn.
Eftersom vi vill kunna ringa till personerna ska vi också lagra deras telefonnummer.
En person kan ha noll, ett eller flera telefonnummer.
-
Fikapauser.
Vi ger varje fikapaus ett unikt nummer,
och den har ett datum, en starttid och en sluttid.
-
Dessutom var det en eller flera personer som deltog i fikapausen,
och de använde sig förstås av kaffekopparna.
Vi vill hålla reda på vem som drack ur vilken kaffekopp vid den fikapausen.
Vid varje fikapaus dricker varje person bara ur en kaffekopp.
För att modellera det kan man använda sig av något som vi kallar Fika,
som innebär att en viss person använde en viss kaffekopp vid en viss fikapaus.
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 (5 p)
I databassammanhang talar man ibland om integritetsvillkor (på engelska: integrity constraints).
a) Vad är det?
b) Vad är det bra för?
c) Ge tre olika exempel på integritetsvillkor som kan vara bra att ha i din databas från uppgift 2 ovan.
Uppgift 4 (9 p)
Formulera följande frågor i SQL.
Definiera gärna vyer om det underlättar.
(Använd dina tabeller från uppgift 1.)
a)
Det finns bara en Anna Andersson som jobbar här.
Vilket, eller vilka, telefonnummer har hon?
b)
Det finns bara en Bo Berg som jobbar här.
Vilka gröna kaffekoppar har han någon gång använt?
c)
Finns det några kaffekoppar som aldrig är använda?
Vi vill veta de kaffekopparnas nummer och färg.
d)
Vad heter den person som har deltagit vid flest fikapauser?
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)
Anta att alla personerna i databasen får varsin kaffekopp i julklapp.
Nu vill allihop lägga in sin nya kaffekopp i databasen.
a)
En databashanterare erbjuder typiskt flera olika sätt att arbeta mot databasen.
Man brukar tala om olika gränssnitt.
Nämn tre olika sådana gränssnitt som personerna kan använda sig av.
Vilka är det troligt att de använder?
b)
I databassammanhang är transaktioner (eller ACID-transaktioner) ett viktigt begrepp.
Finns det några problem som skulle kunna uppstå nu när alla personerna ska lägga in sina kaffekoppar,
som skulle kunna lösas med transaktioner?
Hur kan de problemen lösas?