Databasdesign och normalisering
Lektion 3 Lektion 5Ta 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.
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 |
Normalisera följande tabell så att den inte riskerar inkonsekvens vid inmatning av data:
| ID | Event | Record | Athlete | AthleteCountry | AthleteCountryCode | Year | ContestCity | ContestCountry | ContestCountryCode |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 100 metres | 9.63 | Usain Bolt | Jamaica | JM | 2012 | London | Great Britain | GB |
| 2 | Javelin throw | 90.57 | Andreas Thorkildsen | Norway | NO | 2008 | Beijing | China | CN |
| 3 | Long jump | 7.40 | Jackie Joyner-Kersee | United States | US | 1988 | Seoul | South Korea | KR |
| 4 | Hammer throw | 82.29 | Anita Włodarczyk | Poland | PL | 2016 | Rio de Janeiro | Brazil | BR |
AthleteCountryCode och ta sedan resten när detta är gjort.