| database (2). sql.sql | ||
| database.sql | ||
| ER_diagram2.png | ||
| LICENSE | ||
| README.md | ||
Databaskonstruktion-Assignment-1-Startup
Startup code for first assignment in Databaskonstruktion
Uppdaterad text, commitar för första steget
Min första commit
Overview
This document contains the format and relations of the database. The datamodel is written in formation EER.
ER model
Image of the chosen diagram in svg or png. When the model is constrained or we add features, update this consistently.
Relations
Agent(Namn, Nr, Lön, Fornamn, Efternamn, KommentarNr)
AgentKommentar (KommentarNr Kommentar)
DesinfoKampanj(Namn, NrKamp.nr , Specialitet, Kamp.SR, Kamp.Stdatum, Kamp.Sldatum, KommandoInc.namn, Inc.nr)
FardigOperation(KodNamnTyp, Stdatum,Inc.namn, Inc.nr, Sldatum, SR, Kommentar, Reg.namn)
PagaendeOperation (KodNamnTyp, Stdatum,Inc.namn, Inc.nr, Sldatum, SR, Kommentar, Reg.namn)
Region (RegNr, RegNamn, Terräng)
Incident(Inc.namn, Inc.nr, PlatsNr, RegNr)
PlatsNr (PlatsNr, Plats)
Rapport(Datum, Titel Inc.namn, Inc.nr, Agent.namn, Agent.nr)
Uppföljning(Rap.datum, Rap.titel, Kommentar, Utslag, Upp.Sldatum)
Har(Inc.namn, Inc.nr, Kamp.nr)
Requirements
A few lines containing general description of requirements
Agent
-
Varje agent identifieras unikt med hjälp av dess namn (namnet är endast en bokstav exempelvis K), tillsammans med en siffra exempelvis J 2.
-
Agentens levnadsfilosofi lagras som en kommentar för att kunna gå tillbaka och utvärdera hur pass bra agenten lever upp till sin levnadsfilosofi vid ett senare tillfälle
-
Agentens lön och ursprungliga namn (inklusive separata förnamn och efternamn och ett härlett attribut som sätter samman förnamn och efternamn) skall dessutom lagras för alla agenter
-
Vissa personer får av olika orsaker inte bli agenter. Det gäller personer som heter Leif Loket Olsson, Greger Puckowitz och Greve Dracula. Agenter skall inte tilldelas löner över 25000 om de inte är gruppledare då är lönetaket 35000 ingen agent oavsett typ får käna mindre än 12000. Om ingen lön tilldelas så skall lönen automatiskt sättas till 13000
-
Det nummer som tilldelas en viss agent får inte vara noll om inte personen är en gruppledare, i det fallet är numret tillåtet. Ingen agent får ha nummer som är mindre än noll. Talet 13 är av naturliga skäl inte tillåtet som agentnamn. Agentnummer över 99 är inte heller tillåtna
-
Det finns ett önskemål om att alla agenter utom gruppledare skall endast få läsa rapporter som de har skrivit själva eller skall skriva en uppföljning på (Gruppdelare påverkar inte min design)
Rapport
-
När en rapport skrivs så skall det vara möjligt att se sidantalet som rapporten har samt antalet ord rapporten täcker. (Lägga till attribut?)
-
En ny rapport som inte är en uppföljning bör inte ha mindre än 25 ord om en rapport skall lagras som har mindre än 25 skall en varning visas.
-
En rapport har vanligen 48 rader text per sida. Det skall dessutom för skaparen av rapporten vara möjlig att importera och exportera rapporten till externa textfiler.
-
Det skall vara möjligt att ta bort (hemligstämpla) hela rapporter inklusive alla rapportens rader och uppföljningar. Borttagningen skall loggas så det är möjligt att återskapa rapporten i sin helhet när hemligstämpeln släppts
-
På alla typer av rapporter så måste värden för alla attributen lagras. Om typen för en rapport inte anges skall den automatiskt sättas till slutrapport. Om ett utslag inte anges för en uppföljningsrapport skall det automatiskt tilldelas värdet som motsvarar ett misslyckande
-
Det finns ett önskemål om att alla agenter utom gruppledare skall endast få läsa rapporter som de har skrivit själva eller skall skriva en uppföljning på (Gruppdelare påverkar inte min design)
DesinfoKampanj
-
När en desinformationsspridare fått i uppdrag att sprida desinformation för någon specifik incident skall detta direkt synas i användargränssnittet om hans applikation exekveras, annars skall listan uppdateras nästa gång applikationen startas (?)
-
Det kan hända att en lagring av någon typ av information eller en bokning av någon resurs misslyckas, i detta fall skall lättförstådd felinformation visas, agenten skall sedan ha en möjlighet att rätta till den felaktiga informationen innan tuppeln lagras igen (?)
-
Slutligen skall det gå att beräkna antalet genomförda desinformations-kampanjer samt procentandelen lyckade kampanjer som agenten genomfört. (Tillsammans med ## Kampanj)
-
Till en viss incident kan flera olika desinformationskampanjer kopplas och en viss kampanj kan gälla flera olika incidenter (Görs i tabellen ## Har)
-
För varje unik kampanj lagras dessutom dess success rate som talar om om kampanjen lyckades eller misslyckades
-
Kampanjens startdatum och slutdatum talar om när kampanjen påbörjades samt avslutades, en kampanj kan vara pågående (null på slutdatum) men den måste ha en början
-
Dessutom lagras en kommentar (högst 80 tecken) om kampanjen och dess uppgift (Lägga till attribut?)
-
Det skall med hjälp av ett specialkommando för de agenter som arbetat med kampanjen vara möjligt att ta bort eller uppdatera en desinformationskampanj. Modifikationen i sig behöver inte loggas, men en unik person får inte ta bort eller modifiera mer än fyra kampanjer (?)
-
Det är av högsta vikt för desinformationsspridarna att åtkomsten till desinformationskampanjerna går mycket fort. Optimerings och uppsnabbningsstrategier bör därför användas vid lagring av desinformationskampanjerna
-
För kampanjer och operationer så måste alltid slutdatumet för operationen eller kampanjen vara senare än startdatumet. En operation eller en kampanj får inte vara kortare än en dag. Om skillnaden mellan en operations eller kampanjs startdatum och slutdatum är större än fem veckor så antas slutdatumet vara felinmatat, längden till operationen skall då automatiskt sättas till fem veckor
-
De attibut som anges som “success rate” skall lagras i form av ett heltal som är ett om operationen eller kampanjen lyckades och noll om operationen eller kampanjen misslyckades. Inga andra värden är tillåtna
Operation
-
Operationens namn, datum och plats skall visas tydligt i gränssnittet.
-
Kodnamntypen anger både operationens kodnamn samt dess typ, exempelvis uppstädningsoperation: Gregers Bodega eller Insamlingsoperation: lämmeltåg
-
Operationen har även en frivillig kommentar som bör fyllas i där agenterna specificerar viktiga detaljer om operationen som är utöver den information som lagras i operationens förbestämda fält
-
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
-
För kampanjer och operationer så måste alltid slutdatumet för operationen eller kampanjen vara senare än startdatumet. En operation eller en kampanj får inte vara kortare än en dag. Om skillnaden mellan en operations eller kampanjs startdatum och slutdatum är större än fem veckor så antas slutdatumet vara felinmatat, längden till operationen skall då automatiskt sättas till fem veckor
-
De attibut som anges som “success rate” skall lagras i form av ett heltal som är ett om operationen eller kampanjen lyckades och noll om operationen eller kampanjen misslyckades. Inga andra värden är tillåtna
Incident
-
Handläggaren skall även tilldela incidenten en desinformationsspridare (Ej handläggare, men löses i desinfo. tabellen med främmande nyckel)
-
En incidient kan identifieras antingen av dess unika namn eller dess unika nummer (Ändra nycklar till en eller acceptera NULL-värde i primärnyckel?)
-
En incident måste inträffa i någon region
-
En incident kan dessutom ha en eller flera operationer eller desinformationskampanjer kopplade till sig (Har-relationen mellan incident och kampanj)
Uppföljning
-
Uppföljningsrapporter kan tilldelas för de uppdrag som slutat som misslyckanden eller de uppföljningsrapporter som misslyckats och är två år gamla eller äldre
-
En pågående uppföljningsrapport indikeras av ett nullvärde i slutdatumkollumnen för uppföljningsrapporten
-
Även en uppföljningsrapport har två datum, en uppföljning har ingen övre gräns för hur lång den kan vara, den måste dock vara minst en dag lång
-
För uppföljningsrapporterna skall en längre kommentar kunna lagras (exempelvis max 80 tecken)
Region
-
En region identifieras unikt av dess namn
-
För en region lagras dessutom en uppskattning av regionens huvudterräng, exempelvis stadsterräng, berg eller skog
-
Dessutom skall det gå att härleda regionens antal tidigare incidenter och operationer för att kunna se om regionen är överrepresenterad (Görs i tabellerna ## Operation och ## Incident genom främmande nycklar)
-
Eftersom det dock är nödvändigt att incidenter och operationer är kopplade till regioner skall en specifik region som heter “hemligstämplat“ skapas om den inte redan existerar och sedan kopplas till de påverkade operationerna och incidenterna
-
Alla regioner måste ha någon typ av terräng lagrad. Om inget värde tilldelas så skall det automatiskt sättas till “blandad”
