Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se)
Tentamen i
Databasteknik
för D1 m fl
tisdag 13 mars 2018
Gäller som tentamen för:
DT105G Databasteknik, provkod 0100
Hjälpmedel:
|
Ordbok för översättning.
|
Poängkrav:
|
Maximal poäng är 34.
För godkänt betyg krävs 18 poäng,
varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2.
|
Resultat:
|
Meddelas på kursens hemsida eller via e-post senast tisdag 3 april 2018.
|
Återlämning av tentor:
|
Elektroniskt via Studentforum.
|
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 och tvetydiga 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
Som vi vet var det Donald Trump som vann presidentvalet i USA
förra året. Han besegrade Hillary Clinton.
Media, och anhängare till Hillary Clinton, talar mycket om att
det förekommit hemligt samarbete mellan Ryssland och
personer som deltog i Donald Trumps valkampanj.
Anhängare till Donald Trump talar hellre om samarbetet mellan
Ryssland och personer som deltog i Hillary Clintons valkampanj.
Nu håller den amerikanska federala polisen FBI på och försöker utreda alltihop.
FBI behöver förstås en databas. Det som ska lagras i databasen
är dels vilka förhör som FBI hållit med olika inblandade personer,
och dels vilka e-postmeddelanden som de personerna skickat till varandra.
Det man behöver hålla reda på är, mer detaljerat, följande:
-
Inblandade personer.
Varje person har ett namn (som inte behöver vara unikt) och en unik kod.
-
FBI-agenter.
Det är FBI-agenterna som arbetar med utredningen och håller förhören.
Varje FBI-agent har ett namn (som inte behöver vara unikt) och ett unikt agentnummer.
-
Förhör.
Varje förhör hålls ett visst datum och tid.
Varje förhör sker med en viss inblandad person,
och utförs av en eller flera FBI-agenter.
För enkelhets skull ger vi varje förhör ett unikt nummer.
-
E-postmeddelanden
som de inblandade personerna skickat till varandra.
Varje e-postmeddelande har sänts ett visst datum och tid,
från en viss avsändare och till en eller flera mottagare.
Både avsändaren och mottagarna är inblandade personer.
För att kunna hålla isär de olika meddelandena har FBI gett varje meddelande ett unikt nummer.
Det innehåller också en text, som är själva inehållet i meddelandet.
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 (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 (10 p)
Formulera följande frågor i SQL.
Definiera gärna vyer om det underlättar, men skapa inte nya tabeller.
a) (1p)
Vilken kod har personen som heter Donald J. Trump?
b) (1p)
Vilka koder har de personer som heter Clinton i efternamn?
c) (2p)
Till vilka personer skickade Hillary Clinton e-post den 12 september 2012?
d) (2p)
Vad heter de personer som blev förhörda av FBI-agenten Clarice Starling igår,
12 mars 2018?
e) (2p)
Hur många förhör har minst en av FBI-agenterna Fox Mulder och Dana Scully varit med på?
f) (2p)
Vad heter den FBI-agent som varit med på flest förhör?
Uppgift 4 (4 p)
Sökningen i uppgift 3d ovan,
om vilka personer som blev förhörda av FBI-agenten Clarice Starling igår,
körs väldigt ofta,
men kanske med andra konstanter, till exempel att man söker efter förhör som Dale Cooper
hållit idag (13 mars).
Den tar för lång tid att köra, och vi vill skapa index för att snabba upp den.
Från början finns det inga index alls i databasen,
inte ens på primärnycklar.
FBI har hållit miljoner förhör, med miljoner personer, och har många tusen agenter.
a)
Ange vilka index man bör skapa
för att den frågan ska gå snabbare att köra.
b)
Ange ett index som inte skulle göra den frågan snabbare,
och förklara varför det inte förbättrar tiden.
Uppgift 5 (3 p)
Ange tre olika databashanterare.
Ange för var och en av dem något som skiljer den från de andra.
Uppgift 6 (3 p)
Om man vill göra mer avancerade saker med sina data än vad som går att göra med vanliga SQL-frågor,
kan man skriva en lagrad procedur, som lagras i databasen och körs av databashanteraren.
Som alternativ kan man skriva ett program i ett vanligt programspråk som Python eller Java,
som kopplar upp sig mot databasen,
och sen görs hanteringen i det programmet.
Vilka fördelar och nackdelar finns med de här två olika sätten?
Uppgift 7 (3 p)
Man kan starta en transaktion med SQL-kommandot start transaction.
a)
Vad är en transaktion?
b)
På vilka olika sätt kan en transaktion avslutas?
Vad är skillnaden mellan dem?
c)
Transaktioner bör ha vissa egenskaper, som brukar förkortas med bokstäverna ACID.
Välj en av bokstäverna, förklara vad den betyder,
och visa med ett exempel vad den innebär.