Databaser desig och programmerig Desig processe ER-modellerig Programutvecklig Förstudie, behovsaalys Programdesig, databasdesig Implemetatio Programdesig, databasdesig Databasdesig Koceptuell desig Koceptuell datamodell (ER) Logisk desig Implemetatiosmodell (Relatiosschema) Fysisk desig Fysisk datamodell (datatyper, idex...) Implemetatio Krspecifikatio Applikatiosdesig (Fuktioell desig) Trasaktiosdesig Krspecifikatio För att formulera e krspecifikatio: Idetifiera ädare Studera existerade system Vad vill ädara ha? Hur äds iformatioe? Vilke iformatio behövs i systemet? Vilka typer sökigar är valiga? Begrepps-modellerig Mål: skapa e högivå-specifikatio iformatiosiehållet i database Koceptuell modell är oberoede DBMS (dvs. ige häsy till implemetatiosdetaljer) ER-modelle Eligt ER-modelle består e domä etiteter (saker) som har sambad med varadra Varje etitet har ett atal attribut och varje attribut har ett visst värde.
Exempel: uiversitetsstudier Krspec Atag att vi behöver ett databassystem för att hålla rätt studeter som går våra kurser, vem som ger vilka kurser och var de persoera är aställda (vilke istitutio). Vi behöver också veta vilke istitutio som asvarar för kursera (ite ödvädigt vis samma som lärare är aställd ), för att fördela pegara för kursera rätt. Exempel: krspec forts. Ma ska kua söka ut vilka studeter som går e viss kurs och vilket betyg de fått kurse. Äve vem som udervisar vilke kurs är viktigt och var de är aställda. Vi vill kua hitta telefoummer och iformatio om var aställda har sia tjästerum. Exempel: krspec forts: Vi vill också kua skicka epost till studeter och hjälpa dem hålla rätt sia löseord. Vi vill också lagra iformatio om vilka betyg studeter får de kurser de går. Mycket iformatio Hur strukturera detta? ER-modelle Studera de värld som skall modelleras och idetifiera de: Etitetstyper Sambadstyper Attribut som behövs för problemlösige. Etitetstyp E typ företeelse som behöver represeteras. E idivid de type är e etitetsistas Etitetsistas Aa Axelsso Globe Databaser - desig och prog. Nokia AB E=MC 2 Etitetstyp Perso Byggad/hus Kurs Företag Idé Sambadstyp Represeterar ett förhållade mella två eller flera etitetstyper. Om etitetsistasera ka höra ihop fis det e sambadsistas mella dem. Sambadstype är mägde sådaa sambadsistaser. Ex: studeter som går kurser: Går-kurs är e sambadstyp
Exempel: uiversitetsstudier Hur hitta etitetstyper och sambadstyper? ER-modell, otatio ER-modeller beskrivs oftast i diagramform. Tips: Sut föruft Etitetstyper är ofta substativ Meigar där etitetstypera kombieras beskriver ofta sambadstyper. Går Exempel: uiversitetsstudier, mer detaljer För att represetera studeter behöver vi lagra (för och efter skiljs så att ma ekelt ka sortera efter), persoummer för att få ett uikt id, epost, koto och löseord. Kurser har kurskoder,, ges e viss period och ägs (asvaras för) e viss istitutio. De ger poäg och hålls ågo som är aställd högskola. Olika år ka de ges olika läs-perioder och olika persoer. Attribut De egeskaper hos etitetstyper som vi är itresserade represeteras som e etitetstyps attribut. Varje attribut har e domä (värdemägd) som ager de tillåta värdea för attribute. Attribut: exempel Värde Lärare Aa Axelsso ka t.ex. beskrivas som följade etitet: Attribut Nam Aställigsr 234 Adress Attributvärde Aa Axelsso Studetväge 8, tr Telefo 0-222 Kurser 729G68, 732G6 I e ER-modell brukar ma idetifiera fyra slags värde: ekla (ex. aställigsummer) sammasatta (ex. Adress) multipla (ex. kurser) ull
Nyckelattribut Idetifierig yckelattribut igår i ERmodellerig och databasdesig. Ett attribut med uika värde för varje istas e etitetstyp kallas yckelattribut Om iget attribut esamt är uikt för varje istas? Flera tillsammas (gör sammasatt). markeras i ER-diagrammet med uderstrykig attributet Nyckelattribut i exemplet? Sambadstyper: kardialitet Specificerar atalet sambadsistaser e viss typ som e etitetsistas ka igå i. För biära sambadstyper (siffra skrivs vid respektive etitetstyp i diagrammet): e-till-e (:) e-till-måga (:N) måga-till-e (N:) måga-till-måga (M:N) Kardialitet för flervägssambad uttrycks i ord Sambadstyper: deltagade specificerar om e etitetsistas måste ha ett sambad via sambadsistase. Om alla etiteter e viss typ måste delta i ett sambad de type kallas det totalt/fullstädigt deltagade. Om alla etitetsistaser ite måste delta i ågo sambadsistas är det partiellt deltagade. Totalt deltagade ritas i diagrammet som dubbelstreck mella etitetstyp och sambadstyp. pr koto e- tel.r. e- f- tjästerum f- studet aställd Uiversitetsexemplet e-post ast.r löse m reg. hålls jobbar betyg kurskod läsperiod kurs asv. istitutio år poäg adress Exempel: uiversitetsstudier etitetstyp uta id Atag att rektor utlyser pegar för pedagogiska projekt, som istitutioera ka arragera. Ma vill kua söka efter alla olika projekte, kolla deras tidsplaer och budgetar. Projekte idetifieras med. För varje istitutio fis e kotroll att e är uika, me istitutioera pratar ite med varadra. Svag etitetstyp Är e etitetstyp vars istaser ite ka idetifieras uta att blada i e istas e aa etitetstyp. De idetifierade etitetstype kallas ägade etitetstyp och sambadet som äds vid idetifikatio kallas ägade sambad och e svag etitetstyp måste ha totalt deltagade i det ägade sambadet. Idetifierade attribut i de svaga etitete kallas partiell yckel.
ER-diagram, exemplet e- f- läsperiod betyg år kurskod e-post poäg kurs pr reg. löse koto studet m asv. hålls e- f- istitutio adress jobbar aställd driver tel.r. tjästerum ast.r projekt budget EER: mer acerad er EER äds för modellerig mer komplicerade domäer: t.ex. tekiska DB, CAD, CAM etc. Ärvig: ISA sambad Subklasser/Superklasser Specialiserig/Geeraliserig tidspla Verifiera ER-modelle mot täkta frågor Vilka studeter är registrerade e viss kurs? Vem håller e viss kurs? Vilke istitutio ger e viss kurs? Vilka lärare har kurser för e viss studet? Vilka lärare har kurser för e viss istitutio? Vilka kurser ges e viss istitutio? Desigbeslut att täka vid desig begreppsmodell: Udvik redudas. ex: attribut som fis flera etitetstyper sambadstyper som går att härleda Ekelt är vackert. Udvik oödiga etitetstyper. etitetstyper med :-sambad ka vara variater samma etitetstyp. etitetstyper som bara förbider adra etitetstyper. å adra sida: iga lösa etitetstyper Avvägigar: Fler desigbeslut attribut eller sambad med aa etitetstyp? flera ekla attribut eller ett sammasatt? flervägssambad eller e etitetstyp i mitte? Summerig: desigprocesse hittills Skapa krspecifikatio Skilj ut datadesig frå fuktiosdesig Skapa ER-modell: etitetstyper (t.ex via substativ) sambadstyper, kardialitet och deltagade attribut till etitetstyper ycklar
Summerig forts: desigprocesse hittills Graska modelle redudas ekelhet kotrollera mot trasaktioer Ett exempel till Företaget består ett atal deligar. Varje delig har ett, ett ummer, e chef och ett atal aställda. Startdatum för varje deligschef registreras. E delig ka ha flera lokaler. Varje delig fiasierar ett atal projekt. Varje projekt har ett, ett ummer och e lokal. För varje aställd lagras följade iformatio:, persoummer, adress, lö och kö. Ett exempel till, forts E aställd jobbar för edast e delig me ka jobba med flera projekt som ka tillhöra olika deligar. Iformatio om atalet timmar (per vecka) som e aställd jobbar med ett projekt sparas. Iformatio gällade de aställdes chef sparas också. För varje aställd lagras iformatio om familje försäkrigsskäl. För varje familjemedlem lagras för, födelsedatum, kö samt relatio till de aställde. Frågor till exempel 2 Herr Ohlsso är sjuk idag, sök ut alla projekt där ha jobbar så att ma ka sätta upp aslag i lokale om att ha är sjuk. De aställda som har bar uder 2 år ska få ett erbjudade om barförsäkrig (lista aställda med bar uder 2) Projekt X behöver att ma lägger mer tid. De chefer som har folk som jobbar projekt X ska sammakallas för förhadligar. Frågor Forts Hur är löestatistike företaget? Har vi deligar där medellöe ligger högre eller lägre ä adra? Har kvior och mä i geomsitt lika lö? Eli Larsso har mycket att göra: hur måga timmar i vecka jobbar ho egetlige sia projekt?