Startup code for first assignment in Databaskonstruktion
Find a file
2026-10-20 20:26:56 +02:00
database.sql Seed of sql file 2026-08-31 17:44:15 +02:00
Dbkonstruktion SQL.sql Uppdaterat readme 2026-10-20 20:26:56 +02:00
ER_diagram.png.png Skapat alla tabeller och använt minst tre olika datatyper i databasen. 2026-09-08 15:29:04 +02:00
LICENSE Initial commit 2026-08-31 15:21:23 +00:00
README.md Uppdaterat readme 2026-10-20 20:26:56 +02:00

Databaskonstruktion-Assignment-1-Startup

klicka för ER-diagramet

Startup code for first assignment in Databaskonstruktion

Tilldelad: Gruppledare (Grupp D)

Konceptuell Databasdesign:

Översatta verksamhetens behov för att se hur all information hänger ihop. De viktiga delarna som agent, region och uppdrag ringas in. Systemet ska också skilja gruppledare och fältagenter för att de har olika löner och uppdrag.

Logisk Databasdesign:

Information sorteras ordentligt för att saker inte ska kunna ske flera gånger om och om igen. Man ska kunna ha koll på vem som exakt håller på med vilket uppdrag och så det inte blandas och logiken förstörs.

Fysisk Databasdesign:

Det justeras hur mycket plats olika texter och siffror får ta för att göra systemet snabbt och effektivt.

Procedurer och Triggers:

Procedurer:

Lagrade procedurer används för att samla affärslogiken och öka säkerheten. Det garanterar att viktiga regler alltid följs, oavsett hur databasen anropas. Dessutom kan användare tillåtas köra specifika funktioner utan att ge dem direkt tillgång till känslig data i tabellerna.

Triggers:

Triggers är som ett sista skyddsnät direkt i databasen som körs automatiskt i bakgrunden. De kontrollerar att all data är korrekt innan den sparas och skapar automatiska loggar. Då garanteras både säkerhet och spårbarhet och triggers är oberoende av vad som händer i själva webbapplikationen.

Gruppledare

  • En gruppledare kan ansvara för flera olika operationer
  • Gruppledare får leda max två operationer samtidigt
  • Om operationerna hör till en och samma incident kan de hantera upp till fem stycken

Agent

  • Varje agent behöver en unik identitet som består av ett namn och en siffra mellan 1 och 99
  • Siffran 0 får bara användas av gruppledare
  • Vi sparar agentens förnamn och efternamn
  • Lönen ska ligga mellan 12 000 och 25 000 kr
  • Om ingen lön anges sätter systemet den automatiskt till 13 000 kr
  • Gruppledare har 35 000 kr som max lön

Fältagent

  • Fältagenter kan delta i flera operationer och ha en lista över sina personliga favorithjälpmedel
  • Agentens kompetenser registreras och markerar en av dessa som deras specialitet
  • De jobbar bara med en operation åt gången
  • Om uppdragen ligger i exakt samma region kan de ta upp till tre operationer samtidigt

Operation

  • En operation känns igen på sitt kodnamn, när den startade och vilken incident den tillhör
  • Slutdatumet måste alltid komma efter startdatumet
  • När uppdraget är klart sparas det om det lyckades eller inte, och det finns även plats för en frivillig kommentar under arbetets gång
  • Varje operation styrs av exakt en gruppledare, men kan involvera flera fältagenter och kräva olika typer av hjälpmedel

Hjälpmedel

  • Utrustning identifieras genom sitt namn och ett ordningsnummer mellan 1 och 15
  • Det sparas också en kort beskrivning om vad hjälpmedlet är för något
  • Ett hjälpmedel kan bara användas i en operation åt gången
  • Om utrustningen raderas ur systemet försvinner automatiskt även kopplingarna till de agenter och operationer som använt den

Incident

  • Varje incident måste ha ett unikt namn eller nummer så vi kan hålla isär dem
  • Incidenten noteras exakt var den inträffade
  • Incidenten tillhör alltid en specifik region

Region

  • Regionen identifieras via ett unikt namn
  • Det måste anges vilken typ av terräng som dominerar området
  • Skriver man inte in något sätter systemet automatiskt terrängen till "blandad"

Relationer

Terrang(terrang_id, Beskrivning)

Region(region_id, Namn, terrang_id)

Incident(Incidentnummer, Namn, Plats, region_id)

Agent(Namn, Siffra, Fornamn, Efternamn)

Agent_Lon(Namn, Siffra, Lon)

Gruppledare(Namn, Siffra, Specialitet)

Faltagent(Namn, Siffra, Specialitet)

Faltagent_Kompetens(Namn, Siffra, Kompetens)

Operation(Kodnamn, Startdatum, IncidentNummer, Slutdatum, SuccessRate, region_id, GruppledareNamn, GruppledareSiffra)

Operation_Kommentar(Kodnamn, Startdatum, IncidentNummer, Kommentar)

Hjalpmedel(Namn, Ordningsnummer, Beskrivning)

Operation_Hjalpmedel(OperationKodnamn, OperationStartdatum, OperationIncidentnummer, HjalpmedelNamn, HjalpmedelOrdningsnummer)

Favorit_Hjalpmedel(AgentNamn, AgentSiffra, HjalpmedelNamn, HjalpmedelOrdningsnummer)

Operation_Faltagent(Kodnamn, Startdatum, IncidentNummer, AgentNamn,AgentSiffra)