Startup code for first assignment in Databaskonstruktion
| database.sql | ||
| Kravlista för databas.docx | ||
| LICENSE | ||
| README.md | ||
| sql.sql | ||
| steg 2 uppdaterad.png | ||
Databaskonstruktion-Assignment-1-Startup
Startup code for first assignment in Databaskonstruktion
Tabeller
Agnet (Namn, Nr,Lön, Unamn, rate, kamnaj, specialte)
Agnetkommentar (Namn, Nr, kommentar)
Specialte(speicalitekod, Specialteamn)
Incident(Inr, Namn, Grad, Plats, regionnamn)
Terräng(Terrängkod, terrängnman)
Obeservation(Id, Säkerhet, Datum, Grad)
Kampanj(Nr,SR, datum, grad)
Avslutad kampanj(Nr,SR, startdatum,slutdatum, kommentar)
Requirments
Agent
- Varje agent identifieras unikt med hjälp av dess namn tillsammans med namn och nummer.
- Agents lön ska lagras.
- Agentens ursprungliga namn ska lagras.
- Agentens rate och antal kampanjer ska kunna lagras.
- En agent kan ha en specialtet.
- Agents specialte ska kopplas till tabellen Specialite med en foreign key.
- Agenteras lön får inte vara lägre än 12000.
- Genomsnittlig lön för agenter ska kunna hämtas med proceduren GETAvgLon.
- En agents lön ska kunna höjas genom 1000:- genom proceduren UpdateLon.
Agentkommentar
- En agent ska kunna ha flera kommentarer.
- Varje kommentar ska tillhöra en agent.
- Kommentar ska kopplas till agenter med namn och nummer genom en foreign key.
- Kombnationen av namn, nummer och kommentar ska vara unik.
Specialte
- Varje specialtet ska ha en unik specialtetskod.
- Specialitetens namn ska lagras.
- Flera agenter ska kunna ha samma specialtet.
Incident
- Varje incident ska indentifieras med ett unikt incidentnummer.
- Incidentsnamn ska vara unika.
- Incidents grad ska kunna lagras.
- Incidents plats ska kunna lagras.
- Incident regionnamn ska kunna lagras.
- Incidents terräng ska kopplas till tabellen terrang med en foreign key.
- Antalet incidenter och operationer ska kunna lagras.
- Det sak finnas ett index för incidentens plats.
Terrang
- Varje terräng ska indentifieras med en unik terrängkod.
- Terrängens namn ska lagras.
- Terräng ska kunna kopplas till incidenter.
Observation
- Varje observation ska indentifieras med ett unikt ID.
- Observationens säkerhet ska vara mellan 1 och 114.
- Observationsgrad ska vara mellan 1 och 4.
- Ibservations datum ska lagras.
- Det ska finnas ett index för observations datum.
Kampanj
- Varje kampanj ska indentifieras med ett unikt nummer.
- Kampanjens sucess rate (SR) ska vara 0 eller 1.
- Kampanjens startdatum kunna lagras.
- En kommentar ska kunna lagras.
- Genomsnuttlig success rate ska kunna hämtas med GetAvgSr.
AvslutadKampanj
- Varje avslutad kampanj ska identifieras med ett unikt nummer.
- Kampanjens sucess rate ska vara 0 eller 1.
- Kampanjens startdatum ska lagras.
- Kampanjens slutdatum ska kunna lagras.
- En kommentar ska kunna lagras.
Designbeslut
Agent och Desinfo
- Tabellerna Agent och Desinfo slogs samman till tabellen Agent.
- Attributen: rate, kampanj och specialte flyttades till Agent.
Merge - Incident och Region
- Tabellerna Incident och Region slogs samman till tabellen Incident.
- Attributen: regionnamn, terrang, antalincidenter, antaloperationer lades till i incident.
Kodifiering - Specialte
- Specialiteternas namn ersattes med numerisk kod som lagras i tabellen specialte.
- Agnet kopplades till specialte genom en foreign key.
Kodifiering - Terrang
- Terrängtyper ersattes med numerisk kod som lagras i tabellen terrang.
- Incident kopplas till Terrang genom en foreign key.
Vertical split - Agent och Agentkommentar
- Kommentarerna flyttades från Agent till den separata tabellen Agentkommentar.
- Tabellen Agentkommentar innehåller namn, nr och kommentar.
Horisontell split - Kampanj och Avslutadkampanj
- Kampanjer delades upp i två tabeller, kampanj och AvslutadKampanj.
- Aktiva kampanjer lagras i kampanj och avslutade kampanjer i AvslutadKampanj.