| database.sql | ||
| LICENSE | ||
| README.md | ||
Databaskonstruktion-Assignment-1-Startup
SQL. Har Handläggaragent från HT25, det innefattar tabellerna i relationsdatamodellen:
Relationsdatamodell: Handl.Agent (Namn, Nr, lön, ur.namn) Observation (ID, säkerhet, datum, grad, Handl.AgentNamn, Handl.AgentNr) Alien (Obsevation.ID, hudfärg, kläder, storlek, typ) Skepp (Obsevation.ID, form, färg, lamptyp, rörelse) Incident (Namn, Nr, plats, Obsevation.ID) Rapport (Datum, Titel) Avslag (Rapport.datum, Rapport.titel, kommentar, typ) Uppföljning (Rapport.datum, Rapport.titel, kommentar, utslag, slutdatum)
Handledar-Agent: Varje agent identifieras unikt med hjälp av dess namn (endast en bokstav), tillsammans med en siffra. Agentens lön och ursprungliga namn (inklusive separata förnamn och efternamn skall dessutom lagras för alla agenter). Ett härlett attribut som sätter samman förnamn och efternamn. Möjligt att beräkna antalet incidenter som handläggaren rapporterat. 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 ska inte tilldelas löner över 25000 om de inte är gruppledare, då är lönetaket 35000, ingen agent oavsett typ får tjäna mindre än 12000. Om ingen lön tilldelas så skall lönen automatiskt sättas till 13000. 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. Observation: En observation kan antingen gälla rymdskepp eller rymdvarelser. Om flera olika typer av rymdvarelser siktats eller om både rymdskepp och rymdvarelser siktats skall separata observationer skapas för denna incident. För varje observation måste observationens datum, grad samt säkerhet anges. Säkerheten talar om hur säker observationen är, uttryckt som en procentsats. Graden anger vilken grad av närkontakt som personen som gjort observationen hade med rymdvarelserna. Tillåtna värden är ett till fyra där fyra innebär extrem närkontakt. För en observation av en rymdvarelse anges rymdvarelsens hudfärg, kläder, typ och storlek. Typen anger vilken typ av varelse som rymdvarelsen tillhör. Storleken anger den uppskattade storleken på rymdvarelsen uttryckt i meter. Kläder anger ett par ord om klädedräktens utseende endast generellt omdömme om kläderna skall anges. För en observation av ett rymdskepp anges formen på rymdskeppet, typen av lampor rymdskeppet hade, rymdskeppets färg samt en uppskattning av rymdskeppets rörelse. Varje observation måste ha lagrats av någon handläggare, observationen måste även tillhöra någon incident som inträffat. Det skall det vara möjligt att ta bort observationer om det är nödvändigt med total intern mörkläggning av observationerna. När en observation tas bort skall motsvarande kopplingar till personer och handläggare tas bort. För observationerna så skall en procentsats anges för observationens säkerhet, säkerheten får inte vara mindre än en procent och inte högre än hundrafjorton procent. Incident: En incident kan identifieras antingen av dess unika nummer. För incidenten lagras dessutom platsen som den inträffade på. Det skall det gå att beräkna ett medelvärde på incidentens alla observationers grad. En incident måste inträffa i någon region. Rapport: Det finns två olika typer av rapporter, vanliga rapporter samt uppföljningsrapporter. Krav: Lägg till constraints - minst två check, en unique och tre ställen som inte får vara NULL (Gör en kommentar som är en rad lång för respektive check constraint.) Minst tre olika datatyper skall användas Optimera databasen (etablera snabba förfrågningar). Merge och kodifiering användas minst en gång per styck men sammantaget tre gånger totalt, exv en merge och två koder. Vertical split Horizontal split Gör minst två olika index. Det är tillåtet att ha båda index på samma tabell.nGör en kommentar som är en rad lång för respektive index enligt kodexemplet. Gör minst tre olika grant / revoke kommandon. Implementera minst fyra olika procedurer / triggers. Minst två av de olika typerna (typerna är bla funktioner constraints etc) ovan skall implementeras i de fyra olika triggers / procedurer man implementerat. Det är tillåtet att bygga exempelvis en procedur / trigger som implementerar mer än en funktion exv en trigger som både loggar och utvärderar en constraint. Främmande nycklar skall användas men om det är tillåtet så skall även några rader inte vara kopplade. Exempelvis om vi har två tabeller med en främmande nyckel utan not null mellan dem exempelvis personer som äger bankkonton, så skall man lägga in några personer, och några bankkonton, någon person saknar bankkonto och något bankkonto skall inte vara kopplad till en person.