732G16 Databaser: design och programmering
Projekt, del A - Design av databas
Motivering & Syfte
Det första steget när en databas ska konstrueras är att utforma en konceptuell datamodell (dvs en ER-modell) för det informationsbehov tillämpningen har.
När man har en ER-modell konverterar man den till en relationsmodell för att kunna realisera databasen. Granskning av relationsmodellen (normalisering) genomförs sedan för att verifiera att ingen redundans kommer att finnas i databasen.
Förberedelser
Läs på om ER-diagram, relationsmodellen samt normalisering (inklusive BCNF och 3NF) i kursboken (detta gås också igenom på föreläsningar och lektioner). Läs nedanstående beskrivning av databasens innehåll. Titta också på den datafil som du sedan ska använda i del B.
Vi vill undersöka om antalet högskolepoäng en student "plockar" är relaterat till hur duktiga de varit tidigare (mätt som deras medelbetyg från gymnasiet, som de antagits till universitetet på - dvs meritpoängen). Vi vill också undersöka om det varierar mellan studenter på olika program och mellan kurser som är obligatoriska respektive valbara. För att kunna göra denna analys behöver vi kunna representera studenter på något unikt sätt, deras meritpoäng (medelbetyg) samt hur många kurspoäng de "plockat". Om en student klarat en kurs med betyg G eller VG anser vi att studenten "plockat" så många poäng som kursen ger. Om en student fått U på en kurs som de gått räknas inte den kursens poäng.
För att kunna titta på skillnader mellan olika program måste vi veta vilket program studenten går. För att kunna avgöra om kursen var obligatorisk eller valbar behöver vi veta för vilka program kursen är obligatorisk och för vilka den är valbar. En kurs som är obligatorisk på ett program kan vara valbar för studenter på ett annat program.
Till din hjälp har du en datafil (se projekt del B), som innehåller rådata lagrad på ett mycket ineffektivt sätt. Det är en csv-fil (googla om du inte hört begreppet förr) och varje rad i filen innehåller följande kolumner:
- Namnet på programmet studenten går
- Programkod (en unik kod för varje program)
- Studentens personnummer
- Studentens namn
- Studentens medelbetyg (meritpoäng)
- Namnet på en kurs studenten gått
- Kurskod (unik)
- Kursens högskolepoäng
- Om kursen var obligatorisk för studenten (1=ja, 0=nej)
- Betyget studenten fick på kursen (U/G/VG)
Genomförande
Utforma ett ER-diagram som visar hur den ovanstående informationen ska modelleras för att analysen ska kunna genomföras och ändå lagras på ett strukturerat och utrymmeseffektivt sätt (ingen dubbellagring). Tänk på att ER-diagramet skall visa sambandstypernas kardinalitet och deltagande samt entitetstypernas nycklar.
Konvertera sedan ER-diagramet till ett relationsschema. Relationsschemat ska använda samma namn som ER-diagrammet i den utsträckning det går och visa nycklar och främmande nycklar. Om det finns integritetsvillkor i ER-diagrammet som inte naturligt ingår i relationsschemat ska dessa skrivas ut i text.
Sedan försäkrar ni er om att det inte finns någon dubbellagring genom att undersöka om alla relationer i schemat uppfyller BCNF eller 3NF. Visa de funktionella beroendena med hjälp av pilar och motivera tydligt de normalformer som uppfylls. Om någon relation uppfyller 3NF men inte BCNF kan ni välja mellan att behålla er design eller normalisera till BCNF. Om ni väljer att stanna vid den design som inte uppfyller BCNF måste ni motivera varför.
Redovisning
Lämna in ER-diagrammet, Relationsschemat samt en redovisning av normaliseringen i en eller flera filer som har namn som innehåller ert gruppnummer i Webreg. Om ni lämnar in i tre olika filer, ge filerna namn som speglar vilken del av uppgiften de visar. Använd pdf eller jpg-format. Lämna in enligt instruktionerna på Översikts-sidan.
Tips: Ni kan använda något online-verktyg, t.ex draw.io, för att rita ER-modellen och relationsmodellen. Ni kan också rita för hand (tydligt, inte med blyerts på rutat papper) och fota av, antingen med mobil (kolla att det går att läsa) eller scanner som finns i printrarna.
Deadline
Se schemat. Observera att detta är kursens första deadline.
Övrigt
Tänk på att denna uppgift måste vara godkänd innan ni kan skapa databasen i projekt del B. Detta för att inte riskera att ni måste göra om databasen om modellerna inte godkänns.
Sidansvarig: Eva Ragnemalm
Senast uppdaterad: 2024-03-27