ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE...

Preview:

Citation preview

ORM, UML og DL-LiteA,id

Vegard Nossum

21. oktober 2010

Plan

Introduksjon til ORM-modellering

Formalisering av ORM og UML

Litt om kompleksitet

ORM-modellering: Begreper og forekomster

I Begreper tegnes som et rektangel med avrundede hjørner:

Person Organisasjon Stilling

I Forekomster av begrepet Person:

ORM-modellering: Representasjoner

I Motivasjon: Kan ikke lagre selve forekomstene i endatamaskin...

I ...men vi kan lagre representasjoner av forekomsteneI Representasjoner tegnes som et rektangel med avrundede

hjørner og stiplede linjer:

Personnummer Organisasjonsnummer

I Forekomster av representasjonen Personnummer:I 09075736194I 07046518455I ...

ORM-modellering: Objekttyper

I Objekttyper er et fellesbegrep for begreper og representasjoner

ORM-modellering: Faktatyper

I Faktatyper forbinder ett eller flere begreperI “Person er ansatt av Organisasjon.”

Person Organisasjon

er ansatt av/ansetter

I Antall roller i en faktatype er faktatypens aritetI Faktatyper i ORM har aritet ≥ 1

ORM-modellering: Broer

I Broer forbinder et begrep og en representasjonI “Person har Personnummer.”

Person Personnummer

har/tilhører

I Broer har alltid aritet 2

ORM-modellering: Påkrevde roller

I Påkrevde roller er roller som må spilles av enhver forekomst avbegrepet (eller representasjonen)

I “Enhver Person har Personnummer.”

Person Personnummer

har/tilhører

ORM-modellering: Entydighetsskranker

I Entydighetsskranker begrenser forekomstene i en rolleI “Hver Person kan ikke ha flere enn ett Personnummer.”

Person Personnummer

har/tilhører

Person PersonnummerDiego Calvanese 09075736194Giuseppe De Giacomo 09075736194Diego Calvanese 07046518455

ORM-modellering: Entydighetsskranker 2

I “Hvert Personnummer kan ikke tilhøre mer enn én Person.”

Person Personnummer

har/tilhører

Person PersonnummerDiego Calvanese 09075736194Diego Calvanese 07046518455Giuseppe De Giacomo 09075736194

ORM-modellering: Perfekte broer

I En perfekt bro er en bro hvor enhver forekomst av begrepethar en entydig representasjon

Person Personnummer

har/tilhører

Person PersonnummerDiego Calvanese 09075736194Diego Calvanese 07046518455Giuseppe De Giacomo 09075736194

I Ifølge latinerne skal alle broer være perfekte broer

ORM-modellering: Lange entydighetsskranker

I En entydighetsskranke kan dekke mer enn én rolleI Da er det kombinasjonen av de to rollene som ikke må

forekomme mer enn én gang

Person Organisasjon

er ansatt av/ansetter

Person OrganisasjonDiego Calvanese Università di RomaDiego Calvanese Universitetet i OsloGiuseppe De Giacomo Università di RomaGiuseppe De Giacomo Università di Roma

ORM-modellering: Faktatyper med aritet > 2

I “Person ble ansatt av Organisasjon på Dato.”

Person

Organisasjon

Dato

ble ansatt av/ansetter/på

Person Organisasjon DatoDiego Calvanese Università di Roma 01.01.1990Diego Calvanese Università di Roma 01.01.1997Giuseppe De Giacomo Università di Roma 01.01.2005Giuseppe De Giacomo Universitetet i Oslo 01.01.2005

ORM-modellering: Begrepsdannelser

I Vi kan erstatte den ternære rollen med en begrepsdannelse

Person

Organisasjon

DatoAnsettelse

ORM-modellering: Mengdelikhetsskranker 1

I “De (og bare de) som sår, høster.”

Person Korn

sår/sås av

høster/høstes av

ORM-modellering: Mengdelikhetsskranker 2

I “Det (og bare det) som sås, høstes.”

Person Korn

sår/sås av

høster/høstes av

ORM-modellering: Mengdelikhetsskranker 3

I “Man høster hva man sår.”

Person Korn

sår/sås av

høster/høstes av

ORM-modellering: Mengdeulikhetsskranker1 1

I “Sag ikke av en gren når du sitter på en annen gren.”

Person Gren

sager/blir saget

sitter på/blir sittet på

1Kilde: INF1300 – 1.9.2008 – Ellen Munthe-Kaas

ORM-modellering: Mengdeulikhetsskranker 2

I “Sag ikke av en gren som noen andre sitter på.”

Person Gren

sager/blir saget

sitter på/blir sittet på

ORM-modellering: Mengdeulikhetsskranker 3

I “Sag ikke av den grenen du selv sitter på.”

Person Gren

sager/blir saget

sitter på/blir sittet på

ORM-modellering: Delmengdeskranker2 1

I “Alle som selger en bjørn må ha skutt en bjørn.”

Person Bjørn

selger/selges av

skyter/skytes av

2Kilde: INF1300 – 13.9.2010 – Ellen Munthe-Kaas

ORM-modellering: Delmengdeskranker 2

I “Alle bjørner som selges må ha blitt skutt.”

Person Bjørn

selger/selges av

skyter/skytes av

ORM-modellering: Delmengdeskranker 3

I “Selg ikke skinnet før bjørnen er skutt.”

Person Bjørn

selger/selges av

skyter/skytes av

ORM-modellering: Totalskranker

I Totalskranker uttrykker at minst én av rollene må spilles avhver forekomst

I “Person må være ansatt, student eller begge deler.”

Person

er ansatt

er student

ORM-modellering: Mengdeulikhetsskranker + totalskranker

I “Person må være enten mann eller kvinne.”

Person

er mann

er kvinne

ORM-modellering: Arv

I Underbegreper arver rollene til superbegrepet

Person AnsattStudent

I Underbegreper kan være uttømmende og disjunkte

Person AnsattStudent

ORM-modellering: Verdiskranker

I Verdiskranker begrenser forekomstene av en objekttype

Kjønn Kjønnskode {“Mann”, “Kvinne”}

ORM-modellering: Ringskranker

I Ringskranker kan brukes på to roller i en faktatype som spillesav samme objekttype

Person

Refleksiv

Irefleksiv

Symmetrisk

Asymmetrisk

Antisymmetrisk

Transitiv

Intransitiv

Plan

Introduksjon til ORM-modellering

Formalisering av ORM og UML

Litt om kompleksitet

Formalisering: Begreper

I Begreper i ORM, klasser i UML og konsepter i DL beskriveralle mengder av objekter

Person Person Person

Formalisering: Representasjoner og broer

I Representasjoner i ORM har ikke noe direkte motstykke i UMLeller DL

I Broer i ORM tilsvarer derimot attributter i UML og DL

Person Navn

har/tilhører

I δ(harNavn) v PersonI ρ(harNavn) v xsd:string

Formalisering: Perfekte broer

Person Navn

har/tilhører

har/tilhørerhar/tilhører

I Person v δ(harNavn)

I (funct harNavn)I (id Person harNavn)

Formalisering: Unære faktatyper

I Rollen i en unær faktatype i ORM må enten spilles eller ikkespilles

Person

er gift

I Dette kan uttrykkes med et boolsk attributt i UML og DL

I δ(erGift) v PersonI ρ(erGift) v xsd:boolean

Formalisering: Binære faktatyper

I Binære faktatyper i ORM kan uttrykkes ved forbindelser (eng.:associations) i UML og roller i DL

Person Telefon

eier/eies av

Person Telefon0..* 0..*

I ∃EIER v PersonI ∃EIER− v Telefon

I Merk: I DL er tolkningen av en rolle en mengde av ordnede par

Formalisering: Binære faktatyper: Påkrevde roller

I “Hver Person eier minst én Telefon.”

Person Telefon

eier/eies av

Person Telefon0..* 1..*

I Person v ∃EIER

Formalisering: Binære faktatyper: Påkrevde roller 2

I “Hver Telefon eies av minst én Person.”

Person Telefon

eier/eies av

Person Telefon1..* 0..*

I Telefon v ∃EIER−

Formalisering: Binære faktatyper: Entydighetsskranker

I “Hver Person eier ikke mer enn én Telefon.”

Person Telefon

eier/eies av

Person Telefon0..* 0..1

I (funct EIER)

Formalisering: Binære faktatyper: Entydighetsskranker 2

I “Hver Telefon eies ikke av mer enn én Person.”

Person Telefon

eier/eies av

Person Telefon0..1 0..*

I (funct EIER−)

Formalisering: Begrepsdannelser (UML)

I Begrepsdannelser i ORM tilsvarer forbindelsesklasser (eng.:association classes) i UML

Person DatoAnsettelse

Person Dato

Ansettelse

0..* 0..*

Formalisering: Begrepsdannelser (DL)

Person DatoAnsettelse

I ∃ANSETTELSE1 v Ansettelse, ∃ANSETTELSE−1 v PersonI ∃ANSETTELSE2 v Ansettelse, ∃ANSETTELSE−2 v TelefonI Ansettelse v ∃ANSETTELSE1, (funct ANSETTELSE1)

I Ansettelse v ∃ANSETTELSE2, (funct ANSETTELSE2)

I (id Ansettelse ANSETTELSE 1, ANSETTELSE 2)

Formalisering: Mengdelikhetsskranker 1

Person Korn

sår/sås av

høster/høstes av

I ∃SÅR v ∃HØSTERI ∃HØSTER v ∃SÅR

Formalisering: Mengdelikhetsskranker 2

Person Korn

sår/sås av

høster/høstes av

I ∃SÅR− v ∃HØSTER−

I ∃HØSTER− v ∃SÅR−

Formalisering: Mengdelikhetsskranker 3

Person Korn

sår/sås av

høster/høstes av

I SÅR v HØSTERI HØSTER v SÅR

Formalisering: Mengdeulikhetsskranker 1

Person Gren

sager/blir saget

sitter på/blir sittet på

I ∃SAGER v ¬∃SITTER-PÅ

Formalisering: Mengdeulikhetsskranker 2

Person Gren

sager/blir saget

sitter på/blir sittet på

I ∃SAGER− v ¬∃SITTER-PÅ−

Formalisering: Mengdeulikhetsskranker 3

Person Gren

sager/blir saget

sitter på/blir sittet på

I SAGER v ¬SITTER-PÅ

Formalisering: Delmengdeskranker 1

Person Bjørn

selger/selges av

skyter/skytes av

I ∃SELGER v ∃SKYTER

Formalisering: Delmengdeskranker 2

Person Bjørn

selger/selges av

skyter/skytes av

I ∃SELGER− v ∃SKYTER−

Formalisering: Delmengdeskranker 3

Person Bjørn

selger/selges av

skyter/skytes av

I SELGER v SKYTER

Formalisering: Arv

I Arv i ORM uttrykkes ved inklusjonspåstander (eng.: inclusionassertion) i DL

PersonAnsatt

I Ansatt v Person

I Merk: I UML er underklasser disjunkte

Formalisering: Arv med disjunkte underbegreper

Person AnsattStudent

Person AnsattStudent

I Student v ¬Ansatt

Formalisering: Arv med uttømmende underbegreper

Person AnsattStudent

I Person v Student u Ansatt

I Merk: I DL-LiteA,id er u ikke tillatt

Plan

Introduksjon til ORM-modellering

Formalisering av ORM og UML

Litt om kompleksitet

Kompleksitet

“. . . ORM is so expressive that its underlying logic extendsa little beyond decidable fragments of first order logic.This makes it difficult to achieve efficient automatedchecking of aspects such as schema satsifiability . . . ”

Terry Halpin and Tony Morgan,

Information Modeling and Relational Databases

Kompleksitet

“Examples of ORM features that can’t be translated intoSHOIN (D), and hence OWL DL, include uniquenessand frequency constraints spanning multiple roles (of thesame or different relationships), set-comparisonconstraints involving multiple arguments, acyclic ringconstraints, and deontic constraints. The DLRifddescription logic adds support for identifier and functionaldependency constraints, so it can capture internaluniqueness constraints spanning multiple roles as well asexternal uniqueness constraints.”

Terry Halpin and Tony Morgan,

Information Modeling and Relational Databases