ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE...
Transcript of ORM, UML og DL-LiteA,id - Universitetet i oslo · 1 vAnsettelse,9ANSETTELSE 1 vPerson I 9ANSETTELSE...
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