55
ORM, UML og DL-Lite A,id Vegard Nossum 21. oktober 2010

ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM, UML og DL-LiteA,id

Vegard Nossum

21. oktober 2010

Page 2: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Plan

Introduksjon til ORM-modellering

Formalisering av ORM og UML

Litt om kompleksitet

Page 3: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Begreper og forekomster

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

Person Organisasjon Stilling

I Forekomster av begrepet Person:

Page 4: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 5: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Objekttyper

I Objekttyper er et fellesbegrep for begreper og representasjoner

Page 6: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 7: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 8: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 9: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 10: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 11: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 12: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 13: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 14: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Begrepsdannelser

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

Person

Organisasjon

DatoAnsettelse

Page 15: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 16: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 17: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Mengdelikhetsskranker 3

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

Person Korn

sår/sås av

høster/høstes av

Page 18: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 19: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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å

Page 20: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Mengdeulikhetsskranker 3

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

Person Gren

sager/blir saget

sitter på/blir sittet på

Page 21: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 22: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Delmengdeskranker 2

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

Person Bjørn

selger/selges av

skyter/skytes av

Page 23: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Delmengdeskranker 3

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

Person Bjørn

selger/selges av

skyter/skytes av

Page 24: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 25: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Mengdeulikhetsskranker + totalskranker

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

Person

er mann

er kvinne

Page 26: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Arv

I Underbegreper arver rollene til superbegrepet

Person AnsattStudent

I Underbegreper kan være uttømmende og disjunkte

Person AnsattStudent

Page 27: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

ORM-modellering: Verdiskranker

I Verdiskranker begrenser forekomstene av en objekttype

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

Page 28: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 29: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Plan

Introduksjon til ORM-modellering

Formalisering av ORM og UML

Litt om kompleksitet

Page 30: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Begreper

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

Person Person Person

Page 31: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 32: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Perfekte broer

Person Navn

har/tilhører

har/tilhørerhar/tilhører

I Person v δ(harNavn)

I (funct harNavn)I (id Person harNavn)

Page 33: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 34: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 35: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 36: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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−

Page 37: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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)

Page 38: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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−)

Page 39: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Begrepsdannelser (UML)

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

Person DatoAnsettelse

Person Dato

Ansettelse

0..* 0..*

Page 40: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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)

Page 41: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 42: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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−

Page 43: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 44: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Mengdeulikhetsskranker 1

Person Gren

sager/blir saget

sitter på/blir sittet på

I ∃SAGER v ¬∃SITTER-PÅ

Page 45: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Mengdeulikhetsskranker 2

Person Gren

sager/blir saget

sitter på/blir sittet på

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

Page 46: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Mengdeulikhetsskranker 3

Person Gren

sager/blir saget

sitter på/blir sittet på

I SAGER v ¬SITTER-PÅ

Page 47: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Delmengdeskranker 1

Person Bjørn

selger/selges av

skyter/skytes av

I ∃SELGER v ∃SKYTER

Page 48: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Delmengdeskranker 2

Person Bjørn

selger/selges av

skyter/skytes av

I ∃SELGER− v ∃SKYTER−

Page 49: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Delmengdeskranker 3

Person Bjørn

selger/selges av

skyter/skytes av

I SELGER v SKYTER

Page 50: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 51: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Arv med disjunkte underbegreper

Person AnsattStudent

Person AnsattStudent

I Student v ¬Ansatt

Page 52: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Formalisering: Arv med uttømmende underbegreper

Person AnsattStudent

I Person v Student u Ansatt

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

Page 53: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

Plan

Introduksjon til ORM-modellering

Formalisering av ORM og UML

Litt om kompleksitet

Page 54: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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

Page 55: ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE 2 vAnsettelse,9ANSETTELSE 2 vTelefon I Ansettelsev9ANSETTELSE 1,(functANSETTELSE

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