| database.sql | ||
| ER_diagram.png | ||
| LICENSE | ||
| README.md | ||
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.
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.
