Databaser design och programmering. Fö 2: 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. Design processen ER- modellering

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

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

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

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

ER-Diagram. Databasutveckling Diagram

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

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Lite om databasdesign och modellering

Databaser Design och programmering

Databasdesign. E-R-modellen

Databaser och Datamodellering Foreläsning IV

! 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

Grunderna för relationsmodellen!

Databaser - Design och programmering

732G16: Databaser - Design och programmering

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

Objektorientering. Grunderna i OO

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

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

(Data)Modellering. nikos dimitrakas rum 2423

Webbprogrammering, grundkurs 725G54

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

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

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

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

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

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

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

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

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

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

Tentamen för DD1370 Databasteknik och informationssystem

Logisk databasdesign

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

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

GIS, databasteknik och kartografi. Databasmodellering

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

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

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

Frågor och svar till tentamen i Kravhantering

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

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

Databaser. Vad du ska lära dig: Ordlista

TDDD12 och TDDD46 Databasteknik. Lena Strömbäck

Objektorientering Användning

Databasteori. Övningar

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

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

Objektorienterad analys och design

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

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

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

Modul DB1-1 Databasmodellering

2. Redundans 3. Normalformer

Objektorienterad analys och design

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

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

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

Relationell databasdesign

Tentamen för DD1370 Databasteknik och informationssystem

Konceptuella datamodeller

Reducering till relationsscheman

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

VAD GÖR DU / VEM ÄR DU?

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

Funktionella beroenden - teori

Relationsdatabasdesign

Informationssystem och Databasteknik

Objektorienterad Systemutveckling 1 (7,5 hp)

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Databasteknik för D1, SDU1 m fl

Universitetet: ER-diagram

Objektorienterad konstruktion

Kursens mål. Databasteknik TDDB48. Lärare. Kursorganisation. Laborationsinformation. Inlämning av laborationer. Responsible:

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

Introduktion till MySQL

Databasteknik för D1, SDU1 m fl

Tentamen DATABASTEKNIK - 1DL116

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Modul DB1-2 Datamodellering

Identifiering av typsituationer som kan skapa problem vid design och implementering av relationsdatabaser (HS-IDA-EA )

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

TDDI60 Tekniska databaser

NyA-webben Nyheter och planerad vidareutveckling

Transkript:

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

2 Programutveckling Interaktionsdesign, 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 Konceptuell datadesign 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 Entitetstyp En typ av företeelse som behöver representeras. En individ av den typen är en entitetsinstans Entitetstyp Person Byggnad/hus Kurs Företag Idé Entitetsinstans Anna Axelsson Globen Databaser - design och prog. Nokia AB E=MC 2

8 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: Student läser program läser blir då sambandstypen Anna Anderson läser Statistik och Dataanalys är en sambandsinstans

9 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.

10 Attribut: exempel Studenten Anna Axelsson kan t.ex. beskrivas som följande entitet: Attribut Attributvärde Namn Anna Axelsson LiuID annax234 Adress Studentvägen 8, 1tr Telefon 011-121212 Kurser 729G68, 732G16

11 Värden I en ER-modell brukar man identifiera tre slags attributvärden: enkla (ex. LiUID) sammansatta (ex. Adress) multipla (ex. kurser) null

12 Notation för ER-modeller ER-modeller beskrivs i diagramform Entitetstyp Sambandstyp Attribut

13 Exempel: universitetsstudier Kravspec Antag att universitetet behöver ett databassystem för att hålla rätt på studenter som går program, vilka sektioner de är med i och vilka som betalt terminssavgiften. Datakrav: För att representera studenter behöver vi lagra namn, personnummer för att få ett unikt ID, liuid och lösenord, samt kontaktinformation: adress och telefonnummer. En adress består av gatunamn, husnummer, postnummer och postort. En student kan ha flera telefonnummer. En student kan vara medlem i flera sektioner och antogs till ett program ett visst år. En student kan ha bytt program och har då antagits till ett annat program ett annat år.

14 Exempel: kravspec forts. De program som finns beskrivs med namn och en unik kod, t.ex. f7ksa och har en programansvarig och en studierektor (namnen lagras). Ett program har en tillhörande studentförening (sektion). Sektionerna identifieras med namn och man lagrar också sektionens lokal. En sektion kan organisera studenter från flera olika program (t.ex. både kandidat och master i samma ämne). Sektionerna tar en terminsavgift för medlemskapet och man vill registrera den senaste terminen en student betalt för.

15 Exempel: kravspec forts: Funktionskrav: Man vill kunna söka ut liu-id och annan kontaktinformation till de studenter som tillhör en viss sektion. Man vill kunna hitta vilken sektion som organiserar ett visst program och vilka studenter som går de olika programmen. Man vill kunna se när en student antogs till ett program. Man vill kunna se när en student senast betalade terminsavgiften. Mycket information! Hur angripa detta?

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

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

18 Nyckelattribut Identifiering av nyckelattribut ingår i ER-modellering 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?

19 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

20 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.

Universitetsexemplet 21

22 Exempel: Universitetsfest: entitetstyp utan id Antag att sektionerna vill registrera sina fester, alltså de fester sektionen regelbundet organiserar. Dessa identifieras med namn och har en tidpunkt, budget och lokal. Eftersom sektionerna inte nödvändigtvis kollar med varandra finns det ingen garanti för att olika sektioner inte hittar på fester med samma namn (men en sektion har naturligtvis inte två fester med samma namn).

23 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 24

25 Verifiera ER-modellen mot tänkta frågor Liu-id och kontaktinformation till en viss student? Vilken sektion organiserar ett visst program? Vilka studenter går ett visst program? När antogs en viss student till det eller de program den är registrerad på? Vilken termin betalade en viss student senast sektionsavgiften?

26 Designbeslut Tänk 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

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

28 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

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

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