Startup code for first assignment in Databaskonstruktion
Find a file
2026-10-23 04:12:04 +02:00
.DS_Store Uppdatering Diagram, Tog bort Avslutning 2026-10-19 21:33:49 +02:00
ADMINAGENT.png Uppdatering Diagram, Tog bort Avslutning 2026-10-19 21:33:49 +02:00
database.sql lite små fix 2026-10-23 04:12:04 +02:00
LICENSE Initial commit 2026-08-31 15:21:23 +00:00
README.md 13.3 Trigger + ändringar 2026-10-22 17:57:06 +02:00

Databaskonstruktion-Assignment-1-Startup

Overview

Tilldelad grupp A. Vilket innebär att entiteten Admin är primärt i fokus. Databasen fokuserar till stor del på data om incidenter som ailiens varit inblandad i. Där person/personer kan ha observerat incidenten.

Nedanför listas de krav som identifierats för respektive entitet.

ER model

Image of the chosen diagram in svg or jng. When the model is constrained or we add features, update this consistently.

ER MODEL

Relations

AdminAgent (Namn, Nr Lön, Unamn, Kommentar, UIDToken, Rum)

Operation (Kodnmnt, Stdatum, Sldatum, SR, Kommentar)

Region (Namn, Terräng)

Incident(Namn, Nr, Plats, Grad)

Rapport (Datum, Titel)

Observation (ID, Säkerhet, Datum, Grad)

Person (ID, Namn, Kodnamn)

Requirements

AdminAgent

  • En agent identifieras unikt av sitt namn tillsammans med sitt nummer, exempelvis J2.
  • Agentens lön skall lagras.
  • Agentens ursprungliga namn skall lagras.
  • Agentens levnadsfilosofi skall lagras som kommentar.
  • Om ingen lön anges skall lönen automatiskt sättas till 13000.
  • Ingen agent får tjäna mindre än 12000.
  • Vissa personer får av olika orsaker inte bli agenter. Det gäller personer som heter Leif Loket Olsson, Greger Puckowitz och Greve Dracula.
  • Agentnummer får inte vara större än 99.
  • Nummer 13 är inte tillåtet för en agent att ha.

Operation

  • Varje operation identifieras av dess kodnamntyp samt operationens startdatum tillsammans med incidenten som genererade operationen.
  • Operationen har även en frivillig kommentar.
  • Det är tillåtet för två olika operationer för samma incident på olika datum att ha samma kodnamn och typ.
  • För varje avslutad operation lagras dessutom operationens slutdatum samt operationens success rate.
  • Slutdatumet måste alltid vara senare än startdatumet, samt att en operation inte får vara kortare än en dag.

Region

  • En region identifieras unikt av dess namn.
  • Regionens huvudterräng skall lagras genom en terrängkod.
  • Alla regioner måste ha en terrängkod lagrad, om inte, är default-värdet “blandad”.

Incident

  • Platsen där incidenten inträffade skall lagras.
  • En incident måste inträffa i någon region.
  • En incident kan även ha en eller flera operationer kopplade till sig.

Rapport

  • En vanlig rapport lämnas in av någon agent efter varje incident som inträffat.
  • På alla typer av rapporter så måste värden för alla attributen lagras.

Observation

  • För att mäta säkerheten i en observation anges ett värde i procent.
  • När en observation tas bort skall motsvarande kopplingar till personer tas bort.

Person

  • En person kan ha rapporterat flera observationer och en observation kan ha rapporterats av flera personer.
  • Personens namn eller alias lagras som en textsträng.
  • Speciellt viktiga informatörer tilldelas ett kodnamn så de kan identifieras mycket fort.

Triggers

  • Databasen innerhåller två triggers, en för att kontrollera nya adminsnamn när det läggs till i AdminAgent tabellen. Det är olitlåtet för Leif Loket Olsson, Greger Puckowitz & Greve Dracula att vara agenter. Därav används denna trigger så det inte går att lägga till som agenter i databasen.
  • Andra triggern kollar så att inte slutdatumet (SL) är lika eller mindre än stardatumet (ST).
  • Båda triggers körs automatiskt när något händer i en tabell.

Procedure

  • Databasen inerhåller två procedures, en för att kunna visa medelvärdet av graden för alla observationer. Den andra anänds för att hämta kopplingarna mellan person och observation. Båda dessa procedure är färdiga kommandon, som man aktivt använder genom att använda CALL.