Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
2006-10-25 1
Konceptuell modellering och Databasmodellering
Kontoutdelning EFTER dagens föreläsning (WinXP/FC/Daisy/Unix)
Programvaror på kursen:MySQLMS Access 2003Rational Rose
2006-10-25 2
Konceptuell modellering och Databasmodellering
Från verklighet till systemKonceptuell modelleringModelleringsmönster
2
3
Från verklighet till system
Verklighet
Urval
Modell
Informationssystem
ProduktOrder
Kund
4
Arkitektur hos ettinformationssystem
Data
Presentation
Applikationslogik
Användargränssnittvia en browser
Java servlets somexekverar på en server
Data från endatabashanterare
3
5
Relationsdatabaser
Namn Gatuadress Postnummer Postadress Telefon Kontokort GiltighetstidPia Eriksson Storg. 12 171 55 Torget 88 77 66 155 666 777 11/01Ulf Eriksson Storg. 12 171 55 Torget 88 77 66 234 555 678 11/00Ola Hansson Lillg. 2 218 43 Landet 55 44 11 666 222 111 09/01Bo Eriksson Storg. 12 171 55 Torget 88 77 66 432 654 221 11/01Bo Johnsson Eriksg. 45 171 55 Torget 99 77 21 123 444 321 11/01My Hansson Lillg. 2 218 43 Landet 55 44 11 666 222 111 09/01
KUND
6
Frågespråk
Hur kommer applikationsprogrammen åt data i databasen?Genom ett frågespråk.
SELECT NamnFROM PRODUKTWHERE Typ = ”Stol”
4
7
Presentation
Hur kommer (slut-) användare åt information i databasen?Gränssnittet ger möjlighet att nåapplikationsprogrammenoch därmed data i databasen.
8
Modeller
Modell:Struktur som avbildar vissa aspekter av någon del av verklighetenExempel:KartorDifferentialekvationerKonceptuella modellerSyfte med modeller:Studera verkligheten indirekt genom att studera modellenUnderlätta kommunikation Utgöra underlag för vidare implementering
5
9
Building the “right” system
Universe of Discourse Use of CM
Contract
Data-base
“System”
Education,Reverse Engineering
Conceptual Model (CM)
ANIMAL SPECIES
FLOCKMEMBERSHIP
0..*
0..*
0..*
1
belongs_to
1
1
Weight Mean_weight
Date Number
?=<>
myflock
my_animal
10
Grafiska modelleringsspråk
Exempel på grafiska modelleringsspråk: UML, E(A)R diagram, Petri nets, Event-Process Chain (EPC), IDEF0, IDEF3, dataflödesdiagram, Role-activity diagrams (RAD), databasdiagram
Några grafiska modelleringsspråk är mer expressiva (uttrycksfulla) än andra. Ett skäl till det är att vissa innehåller fler modelleringselement (symboler). De kan då representera fler begrepp, det vill säga fler aspekter av verkligheten (systemet). En nackdel är att ett sådant språk har fler modelleringstermer för användaren att lära sig
6
11
Varför använda grafiska modeller?
- Analysredskap – underlättar analys av en verksamheten
- Designbeskrivningar – ritningar över systemet som ska byggas
eller förändras
- Valideringsinstrument – det vill säga validera systemet mot
användare och uppdragsgivare med hjälp av grafiska modeller
så att systemet får rätt egenskaper innan det byggs klart
- Kontrakt mellan beställare och utförare
12
Modeller: Struktur och beteende
Beteendemodeller / beteendediagram
- specificerar dynamiska (beteendemässiga) aspekter av systemet, det vill säga specificerarsjälva manipuleringen / förändringen av destatiska relationerna och i vilken ordning det sker
Strukturella modeller / strukturdiagram
- specificerar statiska aspekter av systemet, det vill säga statiska relationer / förhållanden mellantermer
7
13
Konceptuell modellering
En konceptuell modell beskriver data och datasamband på ett representationsoberoende sätt. Vad modellen sen ska implementeras som/i får inte påverka modellens utformning!
14
Modeller – problem?
Modell: En struktur som avbildar vissa aspekter av någon del av verkligheten
Modeller förenklar
Modeller förvanskar - Grönland, Afrika
Modeller fokuserar - topografisk, politisk
Modelleringsspråk: Komplexa språk med många symboler versus ’enklare’språk som är lättare att förstå/förklara/validera av lekmän som kan domänenmen inte språket
Ex på modell - KARTA
8
15
Modellering fortsättning
Kontroll av data skall ske så tidigt (så nära källan) som möjligt!
Systemet ska inte kontrollera att data inte är fel, utan undanröja möjligheterna till att det blir fel.
Lättare sagt än gjort: Man måste modellera RÄTT (inte bara på rätt sätt) och modelleringsspråket måste kunnarepresentera alla typer av sakförhållanden.
16
Ogdens triangel
EXTENSION
TERM
INTENSION
9
17
Samma ord - olika begrepp (homonymer)
På vilka sätt används ordet ”bok” i meningarna nedan?Jules Verne skrev många böcker, en har boktiteln ’Kapten Grants barn’Biblioteket i Vällingby har många böckerOm ’Kapten Grants barn’ trycks i A4-format blir antalet sidor i en tryckt bok 100.Bokhandlaren i Jönköping sålde många böcker
18
Samma begrepp - olika ord (synonymer)
Avskeda - Friställa
Arbetsgivare – Arbetsköpare
Student – Elev?
10
19
Modeller och modelleringsspråk
Modell
System
Språk
beskrivs av
är skrivet i ett
20
UML klassdiagram
Klass
Association
11
21
Klassdiagram – centralt i UML
Klassdiagrammen är i majoritet – har blivit nästan synonymt med UML.
Klassdiagram beskriver klasser som finns i en domän eller ett system, och statiska associationer mellan klasserna.
Klassdiagram visar också klassernas attribut (och operationer).
Studentpersonnrnamnepostadress
registreraFörKurs()
KurskursIDkursnamn
Notera här, att man kan se följande ord användas som synonymer :
• typ och klass,• relation och association,• strukturell och statisk,
22
Klasser – notationsvarianter
Klassnamn
AttributOperationer
Studentpersonnrnamnepostadress
registreraFörKurs()begäraUtökatKonto()
Studentpersonnrnamnepostadress
Student
12
23
Klassdiagram och objektdiagram
Studentpersonnrnamnbostadsadressepostadress
annaSvan:Studentpersonnr = ”770102-XXXX”namn = ”Anna Cecilia Svan”bostadsadress = ”Ekvägen 10”epostadress = ”[email protected]”
nilsHall:Studentpersonnr = ”850302-XXXX”namn = ”Nils Erik Hall”bostadsadress = ”Rågstigen 3”epostadress = ”[email protected]”
ObjektdiagramKlassdiagram
Kallas ofta instansdiagram.
Utökad notation för namngivning.
Attribut tilldelas värden.
Alla associationer från klassdiagrammet följer med till objekten.
Kan ses som en stillbild av ett eller fler objekt vid en viss, given tidpunkt. Varför? Attributens värden kan ändras under objektens livscykel.
Klass Objekt (instans)Objekt (instans)
24
Egenskaper har multiplicitet (så kallade avbildningsregler)
Multipliciteten för en egenskap (attribut eller association) indikerar hur många olika objekt (eller värden) som kan uppfylla egenskapen.
Multiplicitet för associationer anges vid de associerade klasserna var för sig.
För fullständighet när vi anger multiplicitet gäller att:- det minsta antalet anges först- det största antalet anges sist- två punkter skrivs ut mellan antalen
Studentpersonnrnamnepostadress
KurskursIDkursnamn
RegistreringregistreringsIDdatum
0..*1..1 0..* 1..11..11..1
1..*
1..11..1
1..10..1
13
25
Multiplicitet – vanliga kombinationer
1..1 Minst 1 och högst 1. Exempel: En student har ett, och endast ett, värde på attributet personnr.
1..* Minst 1 och obegränsat övre antal. Exempel: En student har alltid en epostadress sig tilldelad, men kan ha hur många som helst fler.
0..* 0 är giltigt och obegränsat övre antal. Exempel: En student behöver inte ha någon registrering på någon kurs, men kan ha registreringar på ett godtyckligt antal.
0..1 0 är giltigt och högst 1 Exempel: En kurs behöver inte ha fått ettkursnamn, och kan ha högst ett.
Studentpersonnrnamnepostadress
KurskursIDkursnamn
RegistreringregistreringsIDdatum
0..*1..1 0..* 1..11..11..1
1..*
1..11..1
1..10..1
26
Avbildningsregler för ATTRIBUT i UML –vad identifierar en klass?
Studentpersonnrnamnepostadress
1..11..1
1..*
Studentpersonnrnamnepostadress
1..1, UNIK1..1
1..*
14
27
Att namnge associationer
Tre sätt att namnge associationer:
1) med ett verb vid vardera klassen.
Identifiera, eller härled, lämpliga verb ur domänbeskrivningen som uttrycker associationens semantiska betydelse vid var och en av de associerade klasserna.
Exemplet uttyds:
- en bil genomgår noll-till-många bilregistreringar
- en bilregistrering gäller exakt en bil
Bil Bilregistrering1..1
0..* datum 1..1bilmärke 1..1 gäller
genomgår
28
Att namnge associationer, forts.
Tre sätt att namnge associationer:
2) med ett enda verb vid associationsstrecket.
Identifiera, eller härled, ett verb ur domänbeskrivningen som uttrycker associationens semantiska betydelse bäst. Ange vid associationsstrecket.
Markera läsriktningen. Görs med en fylld pilspets.
Exemplet uttyds:
- en bil genomgår noll-till-många bilregistreringar
Bil Bilregistrering1..1
0..* bilregistreringsdatum 1..1bilmärke 1..1 genomgår
15
29
Att namnge associationer, sista
Tre sätt att namnge associationer:
3) med ett substantiv vid vardera klassen.
Identifiera, eller härled, ur domänbeskrivningen vilken respektive roll de associerade klasserna har i just den aktuella associationen. Rollerna är substantiv. Ange de tvåsubstantiven vid respektive klass.
Exemplet uttyds:
- en student kan, när den är exjobbare, ha en-till-många lärare som handledare
- en lärare kan vara handledare till noll-till-många studenter som är exjobbare
Student Lärare0..*
1..* anstnr 1..1studregnr 1..1 exjobbare
handledare
30
Multiplicitet för associationer
Multiplicitet beskriver hur många olika objekt som kan delta i en association mellan två klasser.
Exempel:
Ett Studentobjekt associeras till noll-till-många Registreringar.
Ett Registreringobjekt associeras till en-till-en, d.v.s. exakt en, Student.
Studentpersonnrnamnepostadress
KurskursIDkursnamn
RegistreringregistreringsIDdatum
0..*1..1 0..* 1..1
16
31
Multiplicitet - regler i systemet vs ’common sense’
BIL PERSONRegno: Sträng 1..1UNIKMärke Sträng 1..1
Pnr: Sträng 1..1UNIK
ägs_av
32
Multiplicitet - en övning
PERSON
har_mor
Vilka avbildningsregler gäller för associationen ’har_mor’ ?
17
33
Så hur gör man då…?
I en verklig situation intervjuas användare, manualer läses, eventuella existerande system studeras, verksamheten studeras, etc…Ibland har man bara tillgång till textuellabeskrivningar av det system man ska modelleraHur angripa dessa? Verb, substantiv, adjektiv? Modelleringsmönster, så kallade data-abstractions, tumregler, med mera...
34
Att göra urvalet
Ett företag önskar sälja sina produkter, som är möbler, genom en webbutik. Kunderna skall kunna lägga beställningar på möblerna med hjälp av webbutiken. Produkterna levereras sedan med lastbil till kunderna. För att kunderna skall få en bra bild av möblerna så behöver de veta deras vikt, typ, storlek och det material de är tillverkade av; det behövs också foton på möblerna. Utöver kostnaderna för de enskilda möblerna måste kunden också betala för fraktkostnaden som baseras påden sammanlagda vikten. Kunden kan begära att få leverans inte bara till sin egen adress utan också till andra adresser. Kunden kan önska en tid dåleveransen skall ske - det inträffar dock ibland att den verkliga leveranstiden avviker från den önskade. För att kunden skall veta om en leverans gått iväg eller inte behövs information om avgångstider för leveranser. Företaget eftersträvar att samtidigt skicka iväg alla de produkter som ingår i en beställning men man lyckas inte alltid med det, och då kan det behövas flera leveranser för en beställning. Kunden betalar med kontokort.
18
35
BESTÄLLNING
KUNDPRODUKT
BESTÄLLNINGS-RAD
LEVERANS
1..1
1..*
1..1
0..*1..1
0..*
0..1
1..*
NamnTypHöjdBredd DjupMaterialViktPrisBild-litenBild-stor
NamnGatuadressPostnummerPostadressTelefonKontokortGiltighetstid
Best-nummerGatuadressPostnummerPostadressDatumFraktkostnad
Antal
LeveransbilAvtalatdatumAvtaladtidAvgångsdatumAvgångstidLeveransdatumLeveranstid
36
Multiplicitet som mått på en modells kvalitet?
Tumregel: Alla attribut i en klass bör vara totala (= ha minvärde 1)
Ett stort antal partiella attribut (attribut med minvärde = 0) betyderatt inte alla instanser (objekt) av klassen har något värde på attributen/egenskaperenaifråga vilket tyder på att man blandat flera fenomen i en och samma klass.
DJURNamn: 1..1 Skatt_betald: 0..1Adress: 0..1Vikt: 1..1Medelvikt: 0..1Utbredning-sområde: 0..1
DJURNamn: 1..1Adress: 1..1Vikt: 1..1
ARTUtbrednings-område 1..1Medelvikt 1..1
HUNDSkatt_betald: 1..1
19
37
Modelleringsmönster- Analysmönster - Data abstractions
Vilken verklighet man än vill avbilda så förekommer hierarkiska stru-kturer. Det betyder att vi måste fånga dessa strukturer i vår modell avsamma verklighet.
Däggdjur
Djur
Fåglar
Gräsätare
Hovdjur Tax
Gnu Kanin
Rovdjur
Gnagare
Pingvin
38
Klasschema med så kallade ’isa’-associationer:
DJUR
ROV-DJUR
DÄGG-DJUR
GNAGARE
GRÄS-ÄTARE
TAX
GNU
PINGVIN
HARE
FÅGLAR
HOVDJUR
isa isa
isaisa
isa isa
isa isa
isa
isa
Arv forts.
20
39
Arv
HUND
DJUR
isa isa
En arvs-hierarki består av sub- och supertyper. Subtyperna utgör endelmängd av supertypen. Om subtyperna “täcker upp” hela super-typen säger man att de är uttömmande (eng. exhaustive). Om en och
höra till flera subtyper säger man attande (eng. mutually independent).
samma instans inte kan tillär ömsesidigt uteslut
MAN och KVINNA är ömsesidigtuteslutande och uttömmande mapPERSON
HUND och KATT är ömsesidigtuteslutande men inte uttömmande mapDJUR
subtyperna
KATTMAN
PERSON
isa isaKVINNA
Namn: String1..1 UNIK
Namn: String1..1 UNIK
Skatt: Integer1..1
Militärtjänstort:String: 1..1
40
Arv
Kund Kontohavare Konto
Företag
Person Bankbok
Lån
1 1..*
Hur hade schemat blivit om isa-relationer inte använts?
0..*
1..*Arbetar_hos
Kundnr: Integer
Namn : String 1..11..1 UNIK
Kontonr: Integer1..1 UNIK
Börsnoterad:String 1..1
Saldo: Integer 1..1
Lånesumma : Integer1..1
21
41
Person KontoKontohavare
1 1..*
Kundnr: Integer
Namn : String 1..11..1 UNIK
Börsnoterad:String 0..1
Kontonr: Integer1..1Saldo: Integer 0..1Lånesumma:Integer 0..1
arbetar_hos
0..*
0..1
Arv
42
• Om subtyper har alla attribut och relationer gemensamma:
• Om en subtyp är uttömmande map supertypen: Låt sub-
• Om flera subtyper inte har några egna attribut eller relation-
Överväg att kombinera dem till en subtyp. Lägg ev. till ett
er: Överväg att slå samman dem till en subtyp.
extra attribut i entiteten som tjänas som typ-beteckning.
typen uppgå i supertypen.
Arv forts.
22
43
Reifiering
BOT
botas SJUKDOM
BEHANDLING
SJUKDOM
botar
BEHAND-LINGbotmedel
blir:
Relationen “botar” är M:M. Om man vill lagra information som berör relationen “botar” måste relationen reifieras, dvs göras tillett objekt. Övriga M:M kan lämnas som de är på modelleringsnivå, men måste brytas upp när man skapar en relationsdatabas!
1..*
0..*
1
11..*
0..*
Procent: Float 1..1
44
Övning reifiering
KLUBBär_medlem_i
Uttöka det konceptuella schemat ovan så attdet klarar av att representera att en viss persongick in i en viss klubb vid ett visst tillfälle!
Klubb_namn: Sträng1..1 UNIK
PERSONNamn: Sträng 1..1UNIK
1..1 0..*
23
45
Template-Copy strukturer (power types)
titel
Vissa objekt kan ses som “mallar”för andra objekt, “kopior”.En mall beskriver de generelladragen hos kopiorna som i sin turkan innehålla ett antal idividuelladrag. Mallar är ofta abstraktaobjekt medan kopior är konkretaobjekt. Kopior kan ses sommaterialiseringar av mallar.
BOK är ett typiskt exempel på enmall, boken som ett litterärt verk.BOK:en har en titel, en författareosv. De individuella kopiorna ärde fysiska exemplaren av detlitterära verket som kan ha egen-skaper som vikt, antal sidor etc.
Observera att KOPIA inte utgören delmängd av BOK. Template-Copies är inte samma sak somsupertyp-subtyp.
KOPIA
BOK
av_typ1
0..*
Författare: String
Titel: String 1..11..1 UNIK
Vikt: String 1..1
Antal_sidor 1..1
46
Samma ord - olika begrepp
På vilka sätt används ordet ”bok” i meningarna nedan?Jules Verne skrev många böcker, en heter ’Kapten Grants barn’Biblioteket i Vällingby har många böckerOm ’Kapten Grants barn’ trycks i A4-format blir antalet sidor i en tryckt bok 100.Bokhandlaren i Jönköping sålde många böcker
FörfattareTitelViktAntal_sidor
BOKFörfattareTitel
KOPIAViktAntal_sidor
1..1 0..*
tillhör
24
47
PRODUKT
NamnTypHöjdBredd DjupMaterialViktPrisBild-litenBild-stor
KUND
NamnGatuadressPostnummerPostadressTelefonKontokortGiltighetstid
BESTÄLLNING
Best-nummerGatuadressPostnummerPostadressDatumFraktkostnadLEVERANS
LeveransbilAvtalatdatumAvtaladtidAvgångsdatumAvgångstidLeveransdatumLeveranstid
0..*
1..* 1..*
1..1
48
PRODUKT
NamnTypHöjdBredd DjupMaterialViktPrisBild-litenBild-stor
KUND
NamnGatuadressPostnummerPostadressTelefonKontokortGiltighetstid
BESTÄLLNING
Best-nummerGatuadressPostnummerPostadressDatumFraktkostnad
LEVERANS
LeveransbilAvtalatdatumAvtaladtidAvgångsdatumAvgångstidLeveransdatumLeveranstid
1..*0..*
1..*
1..1
BESTÄLLNINGS-RAD
Antal: 1..1l
1..1
1..1
25
49
PRODUKT
NamnTypHöjdBredd DjupMaterialViktPrisBild-litenBild-stor
KUND
NamnGatuadressPostnummerPostadressTelefonKontokortGiltighetstid
BESTÄLLNING
Best-nummerGatuadressPostnummerPostadressDatumFraktkostnad
LEVERANS
LeveransbilAvtalatdatumAvtaladtidAvgångsdatumAvgångstidLeveransdatumLeveranstid
1..*0..*
1..*
1..1
BESTÄLLNINGS-RAD
Antal: 1..1l
1..1
1..11..*
0..1