Det här är hemtentan som går torsdag 7 januari 2021 i kursen
DT504G Databasteknik för civilingenjörer
vid Örebro universitet, provkod A001.
Ansvarig lärare är
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
telefon 070-73 47 013.
Tid: 09:15 - 14:15
Instruktioner
-
Den här hemtentan ersätter den planerade salstentan.
-
Uppgifterna ska lösas enskilt, dvs inga grupper av två eller flera studenter.
-
Du får använda dator, böcker och vilka andra hjälpmedel som helst,
men du får inte samarbeta eller fråga någon (utom mig).
Exempelvis är det tillåtet att söka och läsa på webbplatser som Stack Overflow, men inte att ställa egna frågor.
Du kan alltså provköra kommandon och program, om du vill.
-
Diskutera inte uppgifterna eller dela med dig av svar förrän tidigast dagen efter tentan.
-
Lös de angivna uppgifterna och samla svaren på lämpligt sätt,
till exempel i en PDF.
Skicka sen in lösningarna till mig i
Blackboard.
Välj Kursmaterial i menyn till vänster på kursens Blackboard-sida,
gå in i mappen Hemtentamen,
och välj den rätta tentan.
Där kan man sedan välja att skicka in sin lösning.
Då blir bedömningen anonym.
Glöm inte att klicka på knappen Skicka längst ner till höger.
-
Om det skulle bli problem med Blackboard,
kan man i nödfall skicka in svaren
antingen som ett kursmeddelande i Blackboard
eller via vanlig e-post
(thomas.padron-mccarthy@oru.se),
senast vid tentatidens slut.
Då blir bedömningen inte anonym.
-
I Blackboard ser du att du skickat in din lösning.
Om du i stället skickade in med e-post,
och inte senast en timme efter tentatidens slut fått
ett svar från mig med en bekräftelse
på att du skickat in svaren,
bör du kontakta mig, enklast genom att ringa eller SMS:a mig
(ifall det är e-posten som inte fungerar).
Tänk på att en del mailtjänster
(särskilt Microsoft-tjänster som Hotmail.com, Outlook.com och Live.com)
ibland kastar bort brev med bilagor, utan att meddela det.
-
Skriv gärna svaren i ett ordbehandlingsprogram.
Rita gärna eventuella diagram i ett ritprogram.
Det är inte förbjudet att skriva och rita för hand,
men då måste text och bilder scannas in eller fotograferas.
Det finns scanner-appar till Android och iPhone,
till exempel Adobe Scan,
som ger bättre resultat än att bara ta vanliga kort med kameran.
-
Tentatiden är utökad med en extra timme
för att täcka in problem med e-post, inscanning eller fotografering av diagram, och liknande.
-
Om du behöver fråga något, så kontakta gärna mig.
Ring eller skicka SMS,
för jag kanske inte kommer att sitta vid datorn hela tiden.
-
Oklara och tvetydiga formuleringar kommer att misstolkas.
Lösningar som inte går att läsa eller förstå kan naturligtvis inte ge några poäng.
-
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.
-
Maximal poäng är 40.
För godkänt betyg krävs minst 24 poäng,
varav minst fyra poäng på uppgift 1 och minst fem poäng på uppgift 2.
-
Resultat meddelas senast 15 arbetsdagar efter tentamensdatum.
Eftersom svaren skickas in elektroniskt scannas tentorna inte för retur.
Scenario till uppgifterna
En återvinningsstation är, skriver Wikipedia, en "stationär facilitet för återlämning av främst
förpackningsmaterial". Många tror att det är kommunerna som sköter dem, eftersom de sköter
sophämtningen från hushållen, men egentligen är det FTI, som betyder Förpacknings- och
Tidningsinsamlingen.
FTI behöver förstås en databas för sin verksamhet, och den ska innehålla data om:
- Återvinningsstationer.
Varje station har ett unikt nummer, till exempel 12381, och en
adress, till exempel Åstadalsvägen 15 i Örebro.
- Sopbilar.
Varje sopbil har ett unikt registreringsnummer, till exempel FRP06P.
- Hämtningsrundor.
Sopbilarna åker runt och tömmer containrarna som står på återvinningsstationerna.
Varje hämtningsrunda görs av en viss sopbil på ett visst datum, på en eller flera återvinningsstationer.
- Anmälningar om nedskräpning.
Tyvärr finns det hänsynslösa människor som kastar förpackningar bredvid containrarna,
och ibland ställer de till och med möbler och andra helt felaktiga saker på återvinningsstationerna.
Varje anmälan görs ett visst datum, gäller en viss återvinningsstation, och innehåller en kort beskrivning av vad som hänt.
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 (8 p)
Implementera den beskrivna databasen i relationsmodellen, dvs
översätt ER-diagrammet till tabeller.
Implementationen ska vara bra.
a)
Visa en tydlig översikt över dina tabeller.
Ange vilka relationer som finns och vilka attribut varje relation innehåller,
med väl valda exempeldata.
Ange också alla kandidatnycklar, vilken av dessa som är primärnyckel,
samt vilka referensattribut som finns och vad de refererar till.
b)
I delfrågan ovan står det att man ska ange vilka relationer som finns.
Vad är en relation?
c)
Skriv de SQL-kommandon som behövs för att skapa tabellerna,
med lämpliga integritetsvillkor.
Uppgift 3 (10 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)
Hur många återvinningsstationer finns i Örebro?
b) (1p)
Vad är numren på de återvinningsstationer som finns i Örebro och Kumla?
c) (3p)
Vilka återvinningsstationer besökte sopbilen FRP06P på sin senaste hämtningsrunda?
Vi vill veta adressen till alla stationerna, inklusive orten.
d) (3p)
Om vilken återvinningsstation har det kommit flest anmälningar om nedskräpning?
Vi vill veta adressen till den, inklusive orten.
e) (2p)
Nej vet ni vad!
Någon har ställt en hel soffgrupp på återvinningsstationen på Tybblegatan i Örebro!
Skriv de kommandon som behövs för att lägga in en anmälan om det i databasen.
Uppgift 4 (2 p)
Förpacknings- och Tidningsinsamlingens verksamhet växer.
Förpackningar och tidningar från hela världen, och även från andra planeter i solsystemet, ska återvinnas!
Alla tabellerna innehåller många miljoner rader,
och nu är det så mycket data att sökningarna i
uppgiften ovan börjar gå långsamt.
Från början finns inga index alls i databasen, inte ens på nycklar.
a) Just sökningen i deluppgift b i frågan ovan körs ofta,
men kanske med andra konstanter,
till exempel att man söker efter Madrid och Barcelona i stället för Örebro och Kumla.
Vilka index bör man skapa för att den sökningen ska gå snabbare att köra?
b)
Ge ett exempel på ett index som inte skulle få den sökningen att gå snabbare!
Uppgift 5 (6 p)
Transaktionshanteringen i databaser är till för att upprätthålla de fyra "ACID-egenskaperna",
atomicitet (A), konsistensbevarande (C), isolering (I) och hållbarhet (D).
Visa med tydliga exempel från databasen som du skapat i uppgift 2
vad som skulle kunna hända som gör att var och en av dessa egenskaper bryts,
om man inte använder transaktioner.
Uppgift 6 (3 p)
Förklara vad tre-schema-arkitekturen innebär, och varför databashanterare använder den!
Uppgift 7 (3 p)
Förklara vad som är de viktigaste skillnaderna mellan B-träd
och vanliga binära träd,
och varför man ofta valt att använda B-träd i databashanterare!
Uppgift 8 (3 p)
I databassammanhang menar man med en cursor inte en liten ruta eller pil på skärmen,
utan något annat. Förklara vad en cursor är, och vad man använder den till!
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
6 januari 2021