Hemtentamen: Databashantering

Deadline 5:e januari 08:00

Denna hemtentamen ska lämnas in individuellt och allt arbete ska utföras individuellt. Det är inte tillåtet att ta hjälp av någon annan för att lösa någon av uppgifterna. Allt arbete som sker tillsammans med andra måste handla om de generella ämnesområdena i kursen, inte om några av detaljerna i denna hemtentamen. (Det är exempelvis tillåtet att fråga andra hur man väljer lämpliga unique constraints, men inte tillåtet att fråga hur man ska välja lämpliga unique constraints till tabellerna i just denna hemtentamen.) Det är tillåtet att fråga andra om förtydliganden av uppgifterna, så länge man inte diskuterar några av svaren.

Uppgift

Designa en databas för följande beskrivning av en högskola:

Skolan erbjuder flera utbildningar som i sin tur består av flera kurser. Varje kurs har ett namn, ett start- och slutdatum samt ett antal högskolepoäng. Varje utbildning har ett namn. Alla kurser är knutna till en enda utbildning. Varje kurs kan äga rum flera gånger men bara en gång per termin. En student är uppskriven på en (och bara en) utbildning och är då automatiskt uppskriven på alla kurser i den utbildningen; det går inte att läsa kurser från andra utbildningar.

Varje kurs består av flera lektioner som kan äga rum i olika lokaler och vid olika tider på dagen. Skolan använder dock ett förenklat schema som innebär att samtliga lektioner börjar vid jämna klockslag och är en timme långa. (I de fall där ett tillfälle måste vara längre än en timme så schemaläggs det helt enkelt som flera lektioner i följd.)

Varje kurs har en eller flera examinationer. Varje examination är antingen ett skriftligt prov eller ett inlämningsarbete. Efter en examination får varje student i kursen dels ett antal poäng och dels ett betyg (IG, G eller VG). Studenter som inte deltar på en examination eller inte slutför den får dock varken poäng eller betyg.

Utöver studenter finns det personal av tre typer: administratörer, lärare och handledare. (Varje anställd ingår bara i en av kategorierna.) Varje kurs har en lärare och en kursansvarig administratör men kan ha flera handledare. Samtliga anställda har grundläggande personuppgifter och en månadslön.

I de fall där det finns flera möjliga lösningar på ett problem så ska du välja den som ger bäst balans av önskvärda egenskaper och dessutom uppfyller kraven så bra som möjligt. Att göra dessa val är en del av betygsättningen, inte minst för VG.

Ordlista

Databasen ska designas på engelska. I de fall där du ta med ord från beskrivningen, använd följande översättningar:

Svenska Engelska
administratöradministrator
betyggrade
examinationexamination
handledareinstructor
inlämningsarbeteassignment
kurscourse
lektionsession
lärareteacher
personalstaff
skriftligt provtest
studentstudent
terminsemester
utbildningcurriculum

Ord som inte finns med i ordlistan får du själv välja översättning på.

Dokumentation

Din databasdesign ska dokumenteras i tre delar:

  1. Databasdiagram: ett databasdiagram som så tydligt som möjligt visar tabellerna och deras förhållanden.
  2. Tabellbeskrivning: en kortfattad skriftlig beskrivning av varje enskild tabell.
  3. Designförtydligande: en kortfattad skriftlig beskrivning som förtydligar sådant som eventuellt inte framgår av de andra delarna.

Dessa tre delar ska lämnas in som en PDF-fil och en PNG-fil, så som beskrivs senare.

Att dokumentera din design på ett tydligt och koncist sätt, inklusive diagrammet, ingår i uppgiften och är en del av betygsättningen, inte minst för VG.

Databasdiagram

Diagrammet ska tas fram på följande sätt:

  1. Skapa ett diagram i SQL Server Management Studio som innehåller samtliga tabeller och förhållanden i din design.
  2. Högerklicka på varje tabell, välj Table View och bekräfta att den är satt till Column Names.
  3. Flytta dina tabeller och förhållanden så att de så tydligt som möjligt visuellt beskriver din design.
  4. Högerklicka på den tomma ytan utanför tabellerna och välj Copy Diagram to Clipboard.
  5. Klista in bilden i valfritt bildredigeringsprogram och spara den som en PNG-fil.
  6. Infoga PNG-filen i ditt PDF-dokument.
  7. Spara PNG-filen så att du senare också kan lämna in den som en separat fil i PingPong.

Se till att du gör detta när hela din design är färdig. Om ditt diagram inte återspeglar din skriftliga beskrivning så kan det påverka betygsättningen.

Tabellbeskrivning

Den skriftliga beskrivningen av varje tabell ska innehålla följande:

Designförtydligande

Eventuella regler eller designbeslut som inte framgår av de föregående punkterna ska dokumenteras separat på högst en halv A4-sida. Exempel på punkter som passar här:

Konventioner

Följande konventioner måste följas:

För sånt som inte täcks in av dessa konventioner ska du följa de konventioner (exempelvis för PascalCase) som används i Microsofts dokumentation och exempel, inklusive AdventureWorks. Om några av Microsofts konventioner är otydliga eller går i konflikt med varandra så behöver du själv bestämma vilka du ska följa. Om något sådant beslut har en nämnvärd inverkan på din design så ska detta nämnas i din skriftliga dokumentation.

Betygsättning

Betyget sätts utifrån en helhetsbedömning av din inlämning. Några av de viktigaste faktorerna är följande:

Inlämning

Din databasdesign ska lämnas in som exakt två filer:

  1. Ett PDF-dokument (Documentation.pdf) som innehåller all dokumentation.
  2. En PNG-fil (Diagram.png) som innehåller ditt databasdiagram. (Detta diagram ska också finns i din PDF-fil; det ska läggas med på två olika sätt för att garantera att det kan tydas utan problem.)

Lämna in de två filerna som två separata inlämningar i PingPong.

Följ instruktionerna för inlämning noggrannt. Felaktiga inlämningar kan behöva kompletteras utan några ytterligare kommentarer från mig.