(Data)Modellering. nikos dimitrakas rum 2423

Relevanta dokument
Relationsdatabasdesign

Konceptuell modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser design och programmering. Design processen ER- modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Objektorientering. Grunderna i OO

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

Databaser och Datamodellering Foreläsning IV

Lite om databasdesign och modellering

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

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

Riktlinjer för. INFORMATIONSMODELLER I Sparx EA 1.0

Databasdesign. E-R-modellen

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

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

Kontoutdelning EFTER dagens föreläsning (WinXP/FC/Daisy/Unix) Programvaror på kursen: MySQL MS Access 2003 Rational Rose

Relationsmodellen och syntetisk databasdesign

Objektorienterad analys och design

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

Introduktion till informationssystem Från verklighet till relationsdatabas Konceptuell modellering och databasmodellering Modelleringsmönster

Objektorientering Klasser

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

Konceptuell modellering. Formalisering, automatisering och effektivisering

Föreläsning om OO, OOA och UML

Modul DB1-1 Databasmodellering

INFORMATIONSMODELLERING

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

Introduktion. Byggstenar TDBA

Relationsdatabasdesign, 2I-4067

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Föreläsning 15: Repetition DVGA02

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

Översättning av modeller uttryckta med STANLIs begreppsmodell till Express

Informationssystem och Databasteknik

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

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

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

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

ER-Diagram. Databasutveckling Diagram

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

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

IT i organisationer och databasteknik

En introduktion i Sparx EA INFORMATIONSMODELLERING

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

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

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorientering Användning

Exempel-tentamen 1. + Lösningsförslag. Inga hjälpmedel är tillåtna.

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

Objektorienterad Systemutveckling 1 (7,5 hp)

Unified Modeling Language UML

TDP005 Projekt: objektorienterade system

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

Arv. Objektorienterad och komponentbaserad programmering

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

GIS, databasteknik och kartografi. Databasmodellering

NVDB - Översiktlig informationsmodell

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Tentamen för DD1370 Databasteknik och informationssystem

Erfarenheter från Hazop användning på programvara i Arte740. Presentation för SESAM Claes Norelöv 4Real AB

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

Modul DB1-2 Datamodellering

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Frågor och svar till tentamen i Kravhantering

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Företagsmodellering i UML

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.

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

IT i organisationer och databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Småprat Small talk (stressed vowels are underlined)

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Tentamen för DD1370 Databasteknik och informationssystem

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Analytisk relationsdatabasdesign

OOMPA 2D1359 Föreläsning 5

Copyright Syntell AB 1

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

TDP005. Föreläsning 3 - UML. Filip Strömbäck

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

Databaser. Vad du ska lära dig: Ordlista

Teoridel (svaren direkt på lydelsen)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

OOMPA 2D1359 Föreläsning 2

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Mål med lektionen! Repetera och befästa kunskaperna.

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

Information. Computer

Föreläsning 9: Arv och UML

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

2. Objekt, operatorer och integritetsregler 3. Databasobjekt

Reducering till relationsscheman

1 Modelleringsterminologi enligt IRM

Transkript:

(Data)Modellering nikosd@kth.se 08-161295 rum 2423 Connolly/Begg (3rd edition) Kapitel 11, 12 och 14 (4th edition) Kapitel 11, 12 och 15 (5th edition) Kapitel 12, 13 och 16 (6th edition) Kapitel 12, 13 och 16 1 Vad är en modell? Definitioner av modell : Robert A. Maksimchuk, Eric J. Naiburg (UML): A miniature representation of an object. A pattern on which something not yet produced will be based. A design or type. One serving as an example to be emulated or imitated. Wordnet: Representation of something (sometimes on a smaller scale). A simplified description of a complex entity or process. 2

Typer av modellering Datamodellering Modellera data som berör verksamheten. TechTarget: Data modeling is the analysis of data objects that are used in a business or other context and the identification of the relationships among these data objects. Processmodellering Modellera verksamhetens processer. Verksamhetsmodellering Modellera olika aspekter av en verksamhet. Kan inkludera datamodellering och processmodellering. 3 Datamodellering Konceptuell modellering oberoende av alla fysiska aspekter Logisk databasmodellering plattformsoberoende, men anpassad för vald databastyp Fysisk databasmodellering implementationsspecifik 4

Modelleringsmetod Faktorer som bör ingå i en modelleringsmetod: användarmedverkan. utgå endast från informationskrav. beakta integritetskrav. normalisera och validera de framtagna modellerna. använd grafisk notation så långt som möjligt, men komplettera med textuell notation när nödvändigt. använd samma metod under hela modelleringsfasen. var villig att göra om steg. 5 Modelleringsmetod Konceptuell modellering Ta fram en konceptuell modell Logisk databasmodellering Omvandla en konceptuell modell till en logisk databasmodell Fysisk databasmodellering Omvandla en logisk databasmodell till en fysisk databasmodell 6

Konceptuell modellering Olika notationer ER UML MOLOC??? Olika begrepp Entitetstyper (entiteter), klasser, koncept, begrepp Relationstyper (relationer), samband, associationer Attribut, egenskaper, properties Identifierare, avbildningsregler, kardinalitet, multiplicitet Supertyp, superklass, subtyp, subklass, arv 7 Konceptuell modell Betrakta följande exempel: En familj kan äga en bil. Varje bil ägs av en familj. 1..1 0..* 1..1 0..* (m,1,p,t) 8

Modell vs. värden/objekt Modellnivå 1..1 0..* Larsson Blå SAAB regnr ABC123 Instansnivå Röd Volvo regnr CCG443 Carlsson Svart Volvo regnr FRF578 Nilsson 9 Klass/Entitetstyp Beskriver en företeelse av vilken det finns många förekomster. T ex,, Företag, Hund, Köp. Representeras i modellen oftast som rektanglar: Hund Köp Företag Varje förekomst är ett identifierbart objekt (instans) av denna klass (entitetstyp) 10

Klass/Entitetstyp Varje klass namnges oftast så att den beskriver vad en förekomst (ett objekt) är. Man använder oftast substantiv. T ex är ett objekt av klassen en bil. Entitetstyper som är oberoende av andra kallas strong entity types Entitetstyper som är beroende av andra kallas weak entity types 11 Relationstyp/Association Beskriver ett samband som kan existera mellan objekt av klasser (entitetstyper). T ex att familjer kan äga bilar eller att företag kan samarbeta med andra företag. Representeras i modellen som en linje mellan de relaterade klasserna: 1..1 0..* 0..* samarbetar_med Företag 0..* 12

Relationstyp/Association Varje relationstyp/association har ett namn som beskriver innebörden av relationen. Namnet kan vara ett verb så att man lätt kan läsa t ex Om sambandet är mellan tre eller fler entitetstyper brukar man skapa en ny entitetstyp för sambandet med en gång. För varje association måste man definiera följande avbildningsregler för varje sida: minimum antal objekt som måste relateras för denna relation maximum antal objekt som kan relateras 13 Attribut/Egenskap Beskriver en egenskap som en klass har. T ex kan en bil ha egenskaper som färg, märke, antal dörrar och registreringsnummer. Varje attribut måste ha en domän (värdeförråd) och följande avbildningsregler: minimum antal värden som ett objekt måste ha för denna egenskap maximum antal värden som ett objekt kan ha för denna egenskap om två objekt av samma klass får ha samma värde för denna egenskap 14

Attribut/Egenskap Representeras i modellen oftast i klassens rektangel tillsammans med sina avbildningsregler: regnr 1..1 String Unique märke 0..1 String färg 1..* String antal_dörrar 1..1 Integer Jämför attribut och relationstyp! 15 Attribut/Egenskap Sammansatt attribut (composite attribute) T ex adress som består av gatuadress, postnummer och postort. Härledbart attribut (derived attribute) T ex antal bilar som en familj har. Flervärt attribut Ett objekt har flera värden för detta attribut 16

Identifierare Varje objekt måste kunna identifieras unikt. Alla objekt som tillhör samma klass (entitetstyp) måste identifieras på samma sätt, dvs med hjälp av samma attribut och relationer. Varje klass identifieras av en samling envärda attribut och associationer. Varje klass kan identifieras av flera olika kombinationer av attribut och associationer. 17 Verksamhetsregler Kallas också Business rules eller Enterprise constraints. Regler som ingår i verksamheten men kan inte visas grafiskt i modellen (oftast pga att de är beroende av objektens värden). Är en del av modellen och kompletterar den grafiska delen. T ex en person får inte delta i två olika aktiviteter samtidigt en anställd på ett företag får inte ha högre lön än sin chef. 18

Typer av associationer Ett-till-ett (1:1) T ex: En person en hund och en hund ägs av en person. Ett-till-många (1:M) T ex: En familj flera bilar och varje bil ägs av en familj. Många-till-många (M:M) T ex: Ett företag säljer många produkter och varje produkt säljs av många företag. Obs! Endast maximum (kardinalitet) anges i denna uppdelning 19 Arv Superklass Den generella klassen i arvshierarkin Subklass Den specifika klassen i arvshierarkin Exempel: Superklass: Person Subklass: Lärare Representeras oftast enligt följande notation: Kan läsas Lärare is a (är en) Person Person ISA Lärare 20

Arv Attribut och associationer som finns för superklassen ärvs ner till alla subklasser. Person namn hårfärg födelsedatum Andra regler som bör beaktas: Måste alla objekt av en superklass tillhöra även en subklass? (Participation constraint) Får ett objekt tillhöra flera subklasser? (Överlappande subklasser) (Disjoint constraint) ISA Lärare huvudämne titel 21 Arv Person Person ISA ISA {Mandatory, Or} Student Anställd Student Anställd ISA ISA {Optional, And) Lärare Forskare Lärare Forskare 22

Konceptuell modellering Identifiera klasser Definiera namn Identifiera relationer/associationer Definiera namn Definiera multiplicitet Identifiera attribut Definiera namn Definiera domän Definiera multiplicitet Identifiera identifierare Identifiera verksamhetsregler 23 Övning 1. Skapa en konceptuell modell för följande verksamhet. Varje familj har ett namn och en adress. Varje familj består av en eller flera personer. Varje person har ett namn och ett födelseår. Varje familj kan äga hundar. Varje person kan äga fiskar och hamstrar. Alla husdjur har namn och färger. Hundar har en ras. Personer har olika ansvar i hemmet (t ex diska, tvätta). Samma arbetsuppgift kan dock delas av många. Om en person två eller flera fiskar får denna person inte äga hamstrar. 2. Titta igenom de olika alternativa lösningarna (finns tillgängliga i Canvas). 3. Jämför din konceptuella modell med lösningarna. 24

Nästa steg Lektionsuppgifter lektion 2-3 (konceptuell modellering) Etapp 1 av projektarbetet (konceptuell modellering) Modelleringsverktyg (Astah, Rational Rose) 25