Lektion 4 (30 nov)

Databasdesign och normalisering

Läsanvisningar

Övningar

Lösningsförslag

  1. Ta fram en databasdesign utifrån följande beskrivning av ett rekryteringsbolag:

    Företag kan lägga ut annonser som innehåller en arbetsbeskrivning, en månadslön, ett sista ansökningsdatum och ett startdatum. Arbetssökande kan söka till valfria tjänster och kan nå företagen genom antingen postadress, hemsida eller e-post. Varje företag har bara en postadress och en hemsida men de kan ha flera e-postadresser, var och en av dem kopplad till en specifik person på företaget.

    Arbetssökande har grundläggande personuppgifter samt ett telefonnummer och en e-postadress som de kan nås på. De har också kvalifikationer av två olika slag: 1) kompetenser (exempelvis "programmering", "bokföring", "tyska") som ska graderas mellan 1 och 5, samt 2) meriter (exempelvis "B-körkort", "auktoriserad tolk", "före detta statsminister") som inte har någon gradering.

    Motivera dina designbeslut i de fall där det finns flera möjliga lösningar. Din design behöver inte innefatta constraints (exempelvis check och unique), som vi går igenom mer på nästa lektion.

    • Utöka din design med referenser, alltså personer som kan intyga en arbetssökandes kvalifikationer. Tillåter din design att en arbetssökande är referens åt en annan arbetssökande?
  2. Normalisera följande tabell så att den inte riskerar inkonsekvens vid inmatning av data:

    ID Name Points Teacher TeacherCountry TeacherAge
    1 Programmeringsteknik C# 65 Jakob Kallin Sweden 30
    2 Databashantering 15 Jakob Kallin Sweden 30
    3 Skådespeleri 40 Brad Pitt United States 53
  3. Normalisera följande tabell så att den inte riskerar inkonsekvens vid inmatning av data:

    ID Event Record Athlete AthleteCountry AthleteCountryCode Year ContestCity ContestCountry ContestCountryCode
    1100 metres9.63Usain BoltJamaicaJM2012LondonGreat BritainGB
    2Javelin throw90.57Andreas ThorkildsenNorwayNO2008BeijingChinaCN
    3Long jump7.40Jackie Joyner-KerseeUnited StatesUS1988SeoulSouth KoreaKR
    4Hammer throw82.29Anita WłodarczykPolandPL2016Rio de JaneiroBrazilBR
    • Tips: gör normaliseringen steg för steg. Börja med kolumnerna fram till och med AthleteCountryCode och ta sedan resten när detta är gjort.