Startup code for first assignment in Databaskonstruktion
Find a file
2026-10-21 11:33:37 +02:00
database.sql Sista Ändringar 2026-10-21 11:33:37 +02:00
ER_diagram.png skapade ER diagram för Handläggare 2026-09-23 17:12:43 +02:00
LICENSE Initial commit 2026-08-31 15:21:23 +00:00
README.md Sista Ändringar 2026-10-21 11:33:37 +02:00

Databaskonstruktion Assignment 1

Grupp E - Handläggare

Den här databasdesignen fokuserar på de delar av systemet som är relevanta för en handläggare.

De huvudsakliga entiteterna är Agent, Handläggare, Incident, Observation, Person, Media och Operation.

ER-diagram

Konceptuell Databasdesign

Handläggare är en subtyp av Agent.

Handläggare och Observation har en N:M-relation.

Person och Observation har en N:M-relation.

En Incident kan ha flera Observationer och varje Observation hör till en Incident.

Media är en svag entitet som är beroende av Observation.

Operation är en svag entitet som är beroende av Incident.

Logisk Databasdesign

Entiteterna har överförts till relationer med primärnycklar och främmande nycklar.

Handläggare använder samma sammansatta nyckel som Agent och har en främmande nyckel till Agent.

N:M-relationen mellan Handläggare och Observation realiseras med tabellen HandlaggareObservation.

N:M-relationen mellan Person och Observation realiseras med tabellen PersonObservation.

Observation har en främmande nyckel till Incident.

Databasen använder bland annat CHAR, VARCHAR, INT, TINYINT, DECIMAL och DATE.

Constraints används för att kontrollera datan, bland annat NOT NULL, UNIQUE, DEFAULT och CHECK.

Fysisk Databasdesign

Databasen använder flera former av denormalisering.

MediaTyp och Kvalitet har kodifierats till MediaTypKod och KvalitetKod.

Operation har delats horisontellt i LyckadOperation och MisslyckadOperation.

Kommentar har delats vertikalt från Agent till AgentKommentar.

Incidentinformation finns även i operationstabellerna som en merge med Incident.

Index används på Observation.Datum och Incident.Plats.

Rättigheter används för att begränsa vad användaren handlaggare_app får göra i databasen.

IncidentStatistik används för materialisering av antal observationer per incident.

Procedurer och triggers

HamtaObservationerForIncident

Proceduren tar emot ett incidentnummer och hämtar observationerna som hör till den valda incidenten.

HamtaHandlaggarensObservationer

Proceduren tar emot en handläggares namn och nummer och hämtar observationerna som handläggaren är kopplad till genom HandlaggareObservation.

LoggaObservationUppdatering

Triggern körs automatiskt när en observation uppdateras och sparar information om uppdateringen i ObservationLog.

UppdateraIncidentStatistik

Triggern körs automatiskt när en ny observation skapas och uppdaterar det materialiserade antalet observationer för incidenten.