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



Tentamen i

Databasteknik för civilingenjörer

onsdag 3 januari 2018

Gäller som tentamen för:
DT504G Databasteknik för civilingenjörer, provkod 0100


Hjälpmedel: Ordbok för översättning.
Poängkrav: Maximal poäng är 34. För godkänt betyg krävs 19 poäng, varav minst fyra poäng på uppgift 1 och minst fyra poäng på uppgift 2.
Resultat: Meddelas på kursens hemsida eller via e-post senast onsdag 24 januari 2018.
Återlämning av tentor: Elektroniskt via Studentforum.
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070 - 73 47 013.



LYCKA TILL!

Scenario till uppgifterna

FBI:s sigill

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 ska den amerikanska federala polisen, FBI, försöka utreda alltihop. FBI behöver förstås en databas. Det som ska lagras i databasen är personer, vilka personer som arbetar för andra personer, vilka möten som skett, och vilka personer som deltog på de olika mötena.

Det man behöver hålla reda på är, mer detaljerat, följande:

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. Definiera gärna vyer om det underlättar, men skapa inte nya tabeller.

a) (1p) Vilket nummer har personen som heter Hillary Clinton?

b) (1p) Vilka nummer har Hillary Clinton och Donald Trump? (Det ska bara vara en fråga, inte två olika.)

c) (1p) Vilka personer har namn som börjar på Vladimir? Vi vill veta de personernas nummer och namn.

d) (2p) Vad heter de personer som arbetar direkt för Donald Trump?

e) (2p) Vad heter de personer som aldrig varit på några möten?

f) (3p) Vad heter de personer som arbetar för minst två andra personer?

Uppgift 4 (4 p)

Sökningen i uppgift 3d ovan, om vilka som arbetar direkt för Donald Trump, körs väldigt ofta, men kanske med andra konstanter, till exempel att man söker efter dem som arbetar för Vladimir Putin i stället för i Donald Trump. 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. Det finns många tusen personer, och de har haft många tusen möten.

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 (5 p)

Här är en tabell med personer. Varje person har ett unikt ID-nummer, ett namn, en nationalitet, och ett antal olika telefonnummer som man kan nå dem på.

Personer
ID Namn Nationalitet Telefon
1 Anna Andersson Sverige 019-94639,0158-20270,070-7347013
2 Bertil Boström Sverige 0158-20340
3 Cecilia C Carlsson Sverige 08-222000,019-94639
4 Cecilia C Carlsson Sverige 047-131000,0158-20340
5 Donald Duck USA null

a) Vilka fullständiga funktionella beroenden finns i tabellen?
b) Vilken är den högsta normalform, av 1NF, 2NF, 3NF och BCNF, eller ingen av dessa, som tabellen uppfyller?
c) Varför uppfyller tabellen inte den närmast högre normalformen?
d) Beskriv något problem som finns i den här tabellen, och som man skulle slippa med en högre normalform.

Uppgift 6 (5 p)

Förklara kort vad följande termer från databasområdet betyder! Skriv helst inte mer än några få meningar om varje term.

a) Trigger
b) Transaktion
c) Tre-schema-arkitekturen
d) Lagrad procedur
e) Cursor