Örebro universitet
Institutionen för naturvetenskap och teknik
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se)
Tentamen i
Databasteknik
onsdag 29 maj 2024
Gäller som tentamen för:
DT504G Databasteknik för civilingenjörer, provkod A001
Hjälpmedel:
|
Ordbok för översättning.
|
Poängkrav:
|
Maximal poäng är 40.
För godkänt betyg krävs 24 poäng,
varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2.
För den som följt kursen våren 2024
ger varje i tid inlämnad inlämningsuppgift en extra poäng.
Den som inte gått kursen hösten 2024 får dessa (fem) extrapoäng ändå.
|
Resultat:
|
Meddelas senast 15 arbetsdagar efter tentamensdatum.
|
Återlämning av tentor:
|
Elektroniskt via webbportalen Studenttjänster.
|
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
IMDB står för Internet Movie Database,
och är en webbplats med information om filmer.
Nu vill vi skapa en konkurrent,
kallad BDMI
(Big Deposit of Movie Information).
Den ska finnas på webben och lagra informationen om filmerna i en databas.
Det som ska lagras i databasen är följande:
-
Filmer.
Varje film har ett unikt nummer, till exempel 4711,
ett utgivningsår, till exempel 1990,
och ett land som filmen kommer från, till exempel USA.
Filmen har också en eller flera titlar, dvs filmens namn.
Exempelvis kallades filmen Reservoir Dogs
för De hänsynslösa i Sverige.
och Perros de reserva i Mexico.
Titeln, eller titlarna, behöver inte vara unika.
Exempelvis finns det minst tio olika filmer som heter Napoleon.
-
Skådespelare.
Varje skådespelare har ett unikt nummer,
ett namn namn som inte behöver vara unikt,
ett födelseår och ett land som skådespelaren kommer från.
-
Vilka filmer varje skådespelare varit med i.
Vi ska också ange vad rollfiguren som skådespelaren spelade i filmen hette.
Till exempel var Linda Hamilton
med i filmen Terminator 2: Judgment Day
där hon spelade Sarah Connor.
-
Användare.
Man ska kunna registrera en användare på webbplatsen,
som man sen loggar in som,
för att till exempel skriva recensioner.
Varje användare har ett unikt nummer, ett unikt användarnamn och ett lösenord.
-
Recensioner som användarna skriver.
Varje recension gäller en viss film och är skriven av en viss användare,
den har ett antal stjärnor i betyg (mellan en och fem),
och den har en recensionstext.
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 uppgifterna 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 (11 p)
Formulera följande frågor i SQL.
Definiera gärna vyer eller CTE:er om det underlättar, men skapa inte nya tabeller.
a) (1p)
Från vilket land kommer skådespelaren Arnold Schwarzenegger?
b) (2p)
Hur många filmer har han spelat i?
c) (2p)
Vad heter rollfiguren som
Max von Sydow
spelar i filmen Det sjunde inseglet?
d) (3p)
Vilket genomsnittsbetyg har filmen Terminator 2: Judgment Day?
(Tips: Man kan använda vanliga matematiska operationer, som division, i SQL.)
e) (3p)
Från vilket land kommer flest filmer?
Uppgift 4 (3 p)
Alla tabeller i filmdatabasen blir mycket stora,
utom tabellen med länder ifall vi har en sådan.
Vi märker att fråga c,
om Max von Sydows rollfigur,
körs ofta, men kanske med andra konstanter.
Till exempel vill vi kanske veta vad Arnold Schwarzeneggers
rollfigur i filmen The Terminator hette.
Dessa frågor tar för lång tid att köra.
Vi ser att det inte finns några index i databasen, inte ens på nycklar.
Vilka index bör man skapa för att denna sökning ska bli snabbare?
Uppgift 5 (3 p)
ACID-transaktioner kan vara viktiga när man arbetar med databaser.
Välj en av de fyra egenskaperna
och visa hur det skulle kunna uppstå problem i filmdatabasen
om egenskapen saknades.
Ge specifika exempel utgående från scenariot och din lösning.
Uppgift 6 (2 p)
En fruktodlare har en databas med alla sina träd och alla sina äpplen.
Det är normala äppelträd och normala äpplen.
Varje äpple växer på ett träd.
Fruktodlaren har förstås många äppelträd och många äpplen.
Sambandet att äpplena växer på träden, är det ett många-till-många-samband?
Förklara!
Uppgift 7 (2 p)
Fruktodlaren i uppgiften ovan
är upptagen med att odla äpplen,
och har förstås inte tid att fördjupa sig i databaser.
Hon försöker ändå skapa en databas för sina träd och äpplen,
och åstadkommer denna tabell:
Äpplen |
Trädnummer | Äppelnummer |
1 | 1, 2, 3, 4, 9 |
2 | 5, 7, 8, 10, 11 |
3 | 6, 12, 13 |
4 | 14, 15, 16, 17, 18, 19 |
5 | 20, 22, 24 |
6 | 21, 23 |
Vilka normalformer,
av 1NF, 2NF, 3NF och BCNF,
uppfyller tabellen?
Motivera svaret!
Uppgift 8 (8 p)
a) Vad är det för skillnad på DBA och DBMS?
b) Vad är det för skillnad på ett index och en primärnyckel?
c) Vad är det för skillnad på ALTER och UPDATE?
d) Vad är det för skillnad,
särskilt med tanke på webbplatser som använder databaser,
på serverkällkod och klientkällkod?