Databaser design och programmering. Design processen ER- modellering

Relevanta dokument
Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser design och programmering. Fö 2: Design processen, ER-modellering

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

Databaser - Design och programmering. Databasdesign. Kravspecifikation. Begrepps-modellering. Design processen. ER-modellering

ER-Diagram. Databasutveckling Diagram

Lite om databasdesign och modellering

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Databaser och Datamodellering Foreläsning IV

Databasteori. Övningar

Databasdesign. E-R-modellen

Databaser - Design och programmering

732G16: Databaser - Design och programmering

Universitetet: ER-diagram

Del 2: ER-modellering och överföring till Databasstruktur v0.9

Grunderna för relationsmodellen!

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

Webbprogrammering, grundkurs 725G54

Tentamen för DD1370 Databasteknik och informationssystem

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Databasteori Övningar

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Objektorientering. Grunderna i OO

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

(Data)Modellering. nikos dimitrakas rum 2423

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Tentamen för DD1370 Databasteknik och informationssystem

D0004N Databaser I. Greenline. Petter Hedlin / epeehi-4 Rikard Stenmark / rikste-8 Markus Almberg / maralm-5

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databaser Design och programmering

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Tentamen för DD1370 Databasteknik och informationssystem

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

GIS, databasteknik och kartografi. Databasmodellering

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Databaser. Vad du ska lära dig: Ordlista

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Logisk databasdesign

Tentamen för DD1370 Databasteknik och informationssystem

11/11/13. Databasteknik och informationssystem DD1370. Dagens föreläsning. Dagens föreläsning: ERmodeller Jmf: Relationer i Base

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Tentamen för DD1370 Databasteknik och informationssystem

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

E-R-modellen, E-R-diagram E-R-diagram. representerar entitetsmängder

Tentamen för DD1370 Databasteknik och informationssystem

Informationssystem och Databasteknik

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Föreläsning 6: Normalisering & funktionella beroenden

Konceptuell modellering. Formalisering, automatisering och effektivisering

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Frågor och svar till tentamen i Kravhantering

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

TDDD12 och TDDD46 Databasteknik. Lena Strömbäck

Modul DB1-1 Databasmodellering

Objektorientering Användning

Objektorienterad Systemutveckling 1 (7,5 hp)

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Databasteknik för D1, SDU1 m fl

Karlstads Universitet, Datavetenskap 1

Databasteori Övningar

16/11/14. Databasteknik och informationssystem DD1370. Information. Dagens föreläsning: ERmodeller Dagens föreläsning. Påminnelse: Kursens mål

Objektorienterad analys och design

Tentamen. i Databasteknik. lördagen den 13 mars Tillåtna hjälpmedel: Allt upptänkligt material

TDDC74 Programmering, abstraktion och modellering. Tentamen

Tentamen i: Affärssystem och tjänsteorienterad arkitektur

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Objektorienterad analys och design

TDDI60 Tekniska databaser

Konceptuella datamodeller

TENTAMEN DATABASKUNSKAP ITEK12

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

KRAVSPECIFIKATION. INAMN01 Indexformulär Sök person

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Tentamen för 1E1601. Måndag 10 mars 2003, kl Alla hjälpmedel tillåtna

Transkript:

Databaser design och programmering Design processen ER- modellering

2 Programutveckling Förstudie, behovsanalys Programdesign, databasdesign Implementation

3 Programdesign, databasdesign Databasdesign Kravspecifikation Applikationsdesign Konceptuell design Konceptuell datamodell Transaktionsdesign Logisk design Implementationsmodell Fysisk design Fysisk datamodell Implementation

4 Kravspecifikation För att formulera en kravspecifikation: Identifiera användare Vad behöver användarna utföra för uppgifter? Vilken information behövs? Hur används informationen? Vilka typer av sökningar är vanliga?

5 Begrepps- modellering Mål: skapa en högnivå-specifikation av informationsinnehållet i databasen Konceptuell modell är oberoende av DBMS (dvs. ingen hänsyn till implementations-detaljer)

6 ER- modellen Enligt ER-modellen består en domän av entiteter (saker) som har samband med varandra Varje entitet har ett antal attribut och varje attribut har ett visst värde.

7 Exempel: universitetsstudier Kravspec Antag att universitetet behöver ett databassystem för att hålla rätt på studenter som går kurser, vem som ger vilka kurser och var de personerna är anställda (vilken institution). Datakrav: För att representera studenter behöver vi lagra namn (förnamn och efternamn skiljs så att man enkelt kan sortera på efternamn), personnummer för att få ett unikt id, kontonamn och lösenord.

8 Exempel: kravspec forts. Kurser har kurskoder, namn, ges en viss period och ägs (ansvaras för) av en viss institution. De ger ett visst antal poäng och hålls av någon som är anställd på högskolan. Olika år kan en viss kurs ges olika läs-perioder och av olika personer. Institutionen som ansvarar för kurserna är inte nödvändigtvis samma institution som läraren är anställd på.

9 Exempel: kravspec forts: Funktionskrav: Man ska kunna söka ut vilka studenter som går en viss kurs och vilket betyg de fått på kursen. Även vem som undervisar på vilken kurs är viktigt och var de är anställda. Vi vill kunna hitta telefonnummer (en del har flera nummer) och information om var anställda har sina tjänsterum.

10 Exempel: kravspec forts: Vi vill också kunna skicka epost till studenter och hjälpa dem hålla rätt på sina lösenord. Vi vill också lagra information om vilka betyg studenter får på de kurser de går. Mycket information! Hur strukturera detta?

11 ER- modellen Studera den värld som skall modelleras och identifiera de: Entitetstyper Sambandstyper Attribut som behövs för problemlösningen.

12 Entitetstyp En typ av företeelse som behöver representeras. En individ av den typen är en entitetsinstans Entitetsinstans Anna Axelsson Globen Databaser - design och prog. Nokia AB E=MC 2 Entitetstyp Person Byggnad/hus Kurs Företag Idé

13 Sambandstyp Representerar ett förhållande mellan två eller flera entitetstyper. Om entitetsinstanserna kan höra ihop finns det en sambandsinstans mellan dem. Sambandstypen är mängden av sådana sambandsinstanser. Ex: studenter som går kurser: Går-kurs är en sambandstyp

14 Exempel: universitetsstudier Hur hitta entitetstyper och sambandstyper? Tips: Sunt förnuft! Entitetstyper är ofta substantiv! Meningar där entitetstyperna kombineras beskriver ofta sambandstyper.

15 Notation för ER- modeller ER-modeller ritas i diagramform Entitetstyp Sambandstyp Attribut

16 Attribut De egenskaper hos entitetstyper som vi är intresserade av representeras som en entitetstyps attribut. Varje attribut har en domän (värdemängd) som anger de tillåtna värdena för attributen.

17 Attribut: exempel Läraren Anna Axelsson kan t.ex. beskrivas som följande entitet: Attribut Attributvärde Namn Anna Axelsson Anställningsnr 234 Adress Studentvägen 8, 1tr Telefon 011-121212 Kurser 729G68, 732G16

18 Värden I en ER-modell brukar man identifiera tre slags värden: enkla (ex. anställningsnummer) sammansatta (ex. Adress) multipla (ex. kurser) null

19 Nyckelattribut Identifiering av nyckelattribut ingår i ERmodellering och databasdesign. Ett attribut med unika värden för varje instans av en entitetstyp kallas nyckelattribut Om inget attribut ensamt är unikt för varje instans? Flera tillsammans (gör sammansatt). markeras i ER-diagrammet med understrykning av attributnamnet Nyckelattribut i exemplet?

20 Sambandstyper: kardinalitet Specificerar antalet sambandsinstanser av en viss typ som en entitetsinstans kan ingå i. För binära sambandstyper (siffran skrivs vid respektive entitetstyp i diagrammet): en-till-en (1:1) en-till-många (1:N) många-till-en (N:1) många-till-många (M:N) Kardinalitet för flervägssamband uttrycks i ord

21 Sambandstyper: deltagande specificerar om en entitetsinstans måste ha ett samband via sambandsinstansen. Om alla entiteter av en viss typ måste delta i ett samband av den typen kallas det totalt/ fullständigt deltagande. Om alla entitetsinstanser inte måste delta i någon sambandsinstans är det partiellt deltagande. Totalt deltagande ritas i diagrammet som dubbelstreck mellan entitetstyp och sambandstyp.

22 Universitetsexemplet pnr konto e-namn namn f-namn student e-post m lösen reg. på betyg namn kurskod n n läsperiod kurs n år poäng ansv. av e-namn f-namn hålls av 1 1 institution namn 1 jobbar på namn adress tel.nr. anställd n tjänsterum anst.nr

23 Exempel: universitetsstudier: entitetstyp utan id Antag att rektor utlyser pengar för pedagogiska projekt, som institutionerna kan arrangera. Man vill kunna söka efter alla olika projekten, kolla deras tidsplaner och budgetar. Projekten identifieras med namn. För varje institution finns en kontroll att namnen är unika, men institutionerna pratar inte med varandra.

24 Svag entitetstyp Är en entitetstyp vars instanser inte kan identifieras utan att blanda in en instans av en annan entitetstyp. Den identifierande entitetstypen kallas ägande entitetstyp och sambandet som används vid identifikation kallas ägande samband och en svag entitetstyp måste ha totalt deltagande i det ägande sambandet. Identifierande attribut i den svaga entiteten kallas partiell nyckel.

ER- diagram, exemplet 25 tjänsterum tel.nr. e-namn f-namn namn anst.nr anställd reg. på hålls av jobbar på ansv. av tidsplan projekt budget namn driver namn adress institution betyg lösen e-post konto e-namn f-namn namn pnr student m 1 n läsperiod kurskod namn kurs år poäng n n n 1 1 1 n

26 Verifiera ER- modellen mot tänkta frågor Vilka studenter är registrerade på en viss kurs och vilka betyg har de fått? Vem håller en viss kurs, var är den anställd? Vilken institution ger en viss kurs? Vilka kurser ges av en viss institution? Vilka lärare har kurser för en viss student? Vilka lärare har kurser för en viss institution?

27 Designbeslut att tänka på vid design av begreppsmodell: Undvik redundans. ex: attribut som finns på flera entitetstyper sambandstyper som går att härleda Enkelt är vackert. Undvik onödiga entitetstyper. entitetstyper med 1:1-samband kan vara varianter av samma entitetstyp. entitetstyper som bara förbinder andra entitetstyper. å andra sidan: inga lösa entitetstyper

28 Fler designbeslut Avvägningar: attribut eller samband med annan entitetstyp? flera enkla attribut eller ett sammansatt? flervägssamband eller en entitetstyp i mitten?

29 Summering: designprocessen hittills Skapa kravspecifikation Skilj ut datadesign från funktionsdesign Skapa ER-modell: entitetstyper (t.ex via substantiv) sambandstyper, kardinalitet och deltagande attribut till entitetstyper nycklar

30 Summering forts: designprocessen hittills Granska modellen redundans enkelhet kontrollera mot transaktioner

Frågor? eva.ragnemalm@liu.se www.liu.se

32 Ett exempel till Företaget består av ett antal avdelningar. Varje avdelning har ett namn, ett nummer, en chef och ett antal anställda. Startdatum för varje avdelningschef registreras. En avdelning kan ha flera lokaler. Varje avdelning finansierar ett antal projekt. Varje projekt har ett namn, ett nummer och en lokal. För varje anställd lagras följande information: namn, personnummer, adress, lön och kön.

33 Ett exempel till, forts En anställd jobbar för endast en avdelning men kan jobba med flera projekt som kan tillhöra olika avdelningar. Information om antalet timmar (per vecka) som en anställd jobbar med ett projekt sparas. Information gällande den anställdes chef sparas också. För varje anställd lagras information om familjen av försäkringsskäl. För varje familjemedlem lagras förnamn, födelsedatum, kön samt relation till den anställde.

34 Frågor till exempel 2 Herr Ohlsson är sjuk idag, sök ut alla projekt där han jobbar så att man kan sätta upp anslag i lokalen om att han är sjuk. De anställda som har barn under 12 år ska få ett erbjudande om barnförsäkring (lista anställda med barn under 12) Projekt X behöver att man lägger mer tid. De chefer som har folk som jobbar på projekt X ska sammankallas för förhandlingar.

35 Frågor Forts Hur är lönestatistiken på företaget? Har vi avdelningar där medellönen ligger högre eller lägre än andra? Har kvinnor och män i genomsnitt lika lön? Elin Larsson har mycket att göra: hur många timmar i veckan jobbar hon egentligen på sina projekt?