Object–role modeling: Difference between revisions

Content deleted Content added
clean up, remove excessive and redundant ELs, fix caps (common noun), WP:CAPSACRS, remove links for downloading software
GreenC bot (talk | contribs)
Rescued 1 archive link; reformat 1 link. Wayback Medic 2.5 per WP:USURPURL and JUDI batch #21aa
 
(46 intermediate revisions by 33 users not shown)
Line 1:
{{Short description|Programming technique}}
:''Not to be confused with [[Object-relational mapping]].
{{Distinguish|Object–relational mapping}}
[[File:ORM-diagram-tkz-orm.png|406px|thumb|Example of an ORM2 diagram]]
 
'''Object–role modeling''' ('''ORM''') is used to model the [[semantics]] of a [[universe of discourse]]. ORM is often used for [[data modeling]] and [[software engineering]].
[[File:ORM-diagram-tkz-orm.png|406px|thumb|example of an ORM2 diagram]]
 
An object–role model uses graphical symbols that are based on [[First-order logic|first order predicate logic]] and set theory to enable the modeler to create an unambiguous definition of an arbitrary universe of discourse. Attribute free, the predicates of an ORM Model lend themselves to the analysis and design of [[graph database]] models in as much as ORM was originally conceived to benefit relational database design.
'''Object-role modeling''' (ORM) is used to model the [[semantics]] of a [[universe of discourse]]. ORM is often used for [[data modeling]] and [[software engineering]].
 
The term "object–role model" was coined in the 1970s and ORM based tools have been used for more than 30 years&nbsp;– principally for [[data modeling]]. More recently ORM has been used to model [[business rules]], XML-Schemas, [[data warehouse]]s, requirements engineering and web forms.<ref>{{Cite book | last = Jarrar | first = M. | title = Conceptual Modeling - ER 2007 | chapter = Towards Automated Reasoning on ORM Schemes | doi = 10.1007/978-3-540-75563-0_14 | series = Lecture Notes in Computer Science | volume = 4801 | pages = 181–197 | year = 2007 | bibcode = 2007LNCS.4801..181J | isbn = 978-3-540-75562-3 | citeseerx = 10.1.1.148.6251 }}</ref>
An object-role model uses graphical symbols that are based on first order predicate logic and set theory to enable the modeler to create an unambiguous definition of an arbitrary universe of discourse.
 
The term "object-role model" was coined in the 1970s and ORM based tools have been used for more than 30 years&nbsp;– principally for [[data modeling]]. More recently ORM has been used to model [[business rules]], XML-Schemas,
[[data warehouse]]s, requirements engineering and web forms.<ref>http://logicblox.pbworks.com/f/Paper+Jarrar+-+automated+reasonning+on+ORM.pdf</ref>
 
== History ==
The roots of ORM can be traced to research into semantic modeling for information systems in Europe during the 1970s. There were many pioneers and this short summary does not by any means mention them all. An early contribution came in 1973 when Michael Senko wrote about "data structuring" in the IBM Systems Journal. In 1974 Jean-Raymond Abrial contributed an article about "Data Semantics". In June 1975, [[Eckhard Falkenberg]]'s doctoral thesis was published and in 1976 one of Falkenberg's papers mentions the term "object-roleobject–role model".
 
[[G.M. Nijssen]] made fundamental contributions by introducing the "circle-box" notation for object types and roles, and by formulating the first version of the conceptual schema design procedure. Robert Meersman extended the approach by adding subtyping, and introducing the first truly conceptual query language.
 
Object role modeling also evolved from the ''Natural language Information Analysis Method'', a methodology that was initially developed by the academic researcher, [[G.M. Nijssen]] in the Netherlands ([[Europe]]) in the mid-1970s and his research team at the Control Data Corporation Research Laboratory in Belgium, and later at the University of Queensland, Australia in the 1980s. The acronym '''NIAM''' originally stood for "Nijssen's Information Analysis Methodology", and later generalised to "Natural language Information Analysis Methodology" and ''Binary Relationship Modeling'' since G. M. Nijssen was only one of many people involved in the development of the method.<ref>{{cite book |last=Wintraecken |first=J. J. V. R. |date=1990 |orig-year=1987 |title=The NIAM information analysis method: theory and practice |series=Translation of: Informatie-analyse volgens NIAM |___location=Dordrecht; Boston |publisher=[[Kluwer Academic Publishers]] |isbn=079230263X |oclc=19554537 |doi=10.1007/978-94-009-0451-4 |s2cid=30209824 |url=https://books.google.com/books?id=iJaqCAAAQBAJ}}</ref>
 
In 1989, [[Terry Halpin]] completed his PhD thesis on ORM, providing the first full formalization of the approach and incorporating several extensions.
 
Also in 1989, [[Terry Halpin]] and [[G.M. Nijssen]] co-authored the book "Conceptual Schema and Relational Database Design" and several joint papers, providing the first formalization of object-roleobject–role modeling. Since then Dr. [[Terry Halpin]] has authored six books and over 160 technical papers.
 
A graphical NIAM design tool which included the ability to generate database-creation scripts for Oracle, DB2 and DBQ was developed in the early 1990s in Paris. It was originally named Genesys and was marketed successfully in France and later Canada. It could also handle ER diagram design. It was ported to SCO Unix, SunOs, DEC 3151's and Windows 3.0 platforms, and was later migrated to succeeding [[Microsoft]] operating systems, utilising XVT for cross operating system graphical portability. The tool was renamed OORIANE and is currently being used for large data warehouse and SOA projects.
Line 28 ⟶ 27:
 
== Concepts ==
[[File:Object-Role Model Overview.jpg|thumb|240px|right|Overview of object-roleobject–role model notation, Stephen M. Richard (1999).<ref name="SMR99"/>]]
 
=== Facts ===
Object-roleObject–role models are based on elementary facts, and expressed in [[diagram]]s that can be verbalised into natural language. A fact is a [[proposition]] such as "John Smith was hired on 5 January 1995" or "Mary Jones was hired on 3 March 2010".
 
With ORM, [[proposition]]s such as these, are abstracted into "fact types" for example "Person was hired on Date" and the individual propositions are regarded as sample data. The difference between a "fact" and an "elementary fact" is that an elementary fact cannot be simplified without loss of meaning. This "fact-based" approach facilitates modeling, transforming, and querying information from any ___domain.<ref name="orm.net">{{Cite web | url=http://www.orm.net/pdf/ORM2_TechReport1.pdf | title=ORM 2 Graphical Notation | access-date=2024-05-19}}</ref>
 
=== Attribute-free ===
ORM is attribute-free: unlike models in the [[entity–relationship model|entity–relationship]] (ER) and [[Unified Modeling Language]] (UML) methods, ORM treats all elementary facts as relationships and so treats decisions for grouping facts into structures (e.g. attribute-based entity types, classes, relation schemes, XML schemas) as implementation concerns irrelevant to semantics. By avoiding attributes, ORM improves semantic stability and enables verbalization into natural language.
ORM is attribute-free : unlike models in the [[Entity-relationship model|
entity relationship]] (ER) and [[Unified Modeling Language]] (UML) methods,
ORM treats all elementary facts as relationships and so treats decisions for grouping facts into structures (e.g. attribute-based entity types, classes, relation schemes, XML schemas) as implementation concerns irrelevant to semantics. By avoiding attributes in the base model, ORM
improves semantic stability and enables verbalization into natural language.
 
=== Fact-based modeling ===
[[Fact-based modeling]] includes procedures for mapping facts to attribute-based structures, such as those of ER or UML.<ref name="orm.net"/>
 
Fact-based textual representations are based on formal subsets of native languages. ORM proponents argue that ORM models are easier to understand by people without a technical education. For example, proponents argue that object-roleobject–role models are easier to understand than declarative languages such as [[Object Constraint Language]] (OCL) and other graphical languages such as [[Unified Modeling Language|UML]] class models.<ref name="orm.net"/> Fact-based graphical notations are more expressive than those of ER and [[Unified Modeling Language|UML]]. An object-roleobject–role model can be automatically mapped to relational and deductive databases (such as [[datalog]]).<ref>{{Cite web|url=http://www.ormfoundation.org/files/folders/orm_2010/entry2360.aspx|archive-url=https://web.archive.org/web/20110413060716/http://www.ormfoundation.org/files/folders/orm_2010/entry2360.aspx|url-status=usurped|archive-date=April 13, 2011|title=P:11 Mapping ORM To Datalog - an Overview - The ORM Foundation|website=www.ormfoundation.org|access-date=May 31, 2020}}</ref>
 
=== ORM 2 graphical notation ===
ORM2 is the latest generation of object-roleobject–role modeling . The main objectives for the ORM 2 graphical notation are:<ref>{{cite web|url=http://www.orm.net/pdf/ORM2.pdf |title=ORM 2 |access-date=April 22, 2009 |url-status=dead |archive-url=https://web.archive.org/web/20090219122007/http://orm.net/pdf/ORM2.pdf |archive-date=February 19, 2009 }} Halpin, T. 2005, 'ORM 2', On the Move to Meaningful Internet Systems 2005: OTM 2005 Workshops, eds R. Meersman, Z. Tari, P. Herrero et al., Cyprus. Springer LNCS 3762, pp. 676-87676–87.</ref>
* More compact display of ORM models without compromising clarity
* Improved internationalization (e.g. avoid English language symbols)
Line 55 ⟶ 51:
 
=== Design procedure ===
[[File:Schema for Geologic Surface.gifsvg|thumb|360px|right|Example of the application of Object Role Modeling in a "Schema for Geologic Surface", Stephen M. Richard (1999).<ref name="SMR99">Stephen M. Richard (1999). [http://pubs.usgs.gov/of/1999/of99-386/richard.html Geologic Concept Modeling]. U.S. Geological Survey Open-File Report 99-386.</ref>]]
System development typically involves several stages such as: feasibility study; requirements analysis; conceptual design of data and operations; logical design; external design; prototyping; internal design and implementation; testing and validation; and maintenance. The seven steps of the conceptual schema design procedure are:<ref name="TH01">Terry Halpin (2001). [http://www.orm.net/pdf/ORMwhitePaper.pdf "Object-Role Modeling: an overview"]</ref>
 
Line 67 ⟶ 63:
 
ORM's conceptual schema design procedure (CSDP) focuses on the analysis and design of data.
 
== Tools ==
{{cleanup-remainder|date=December 2011}}
 
=== ORMLite ===
ORMLite is a free, open-source modeling tool that supports ORM 2 notation. It was created as a self-learning environment to help popularize ORM. It can verbalize facts and generate relational models. It is written in Python and so it is multi-platform. Version 0.13b was released in November 2012.
 
=== NORMA ===
Dr. [[Terry Halpin]] led the initial development of the [[NORMA (software modeling tool)|NORMA]] ORM modeling tool whilst he was a Professor at [[Neumont University]]. This is now supported via The ORM Foundation, a UK-based non-profit organization dedicated to the promotion of the object-role modeling.
 
[[NORMA (software modeling tool)|NORMA]] (Natural ORM Architect for Visual Studio) is a free and open source plug-in to Microsoft [[Visual Studio#Visual Studio 2005|Visual Studio 2005]], [[Visual Studio#Visual Studio 2008|Visual Studio 2008]], [[Visual Studio#Visual Studio 2010|Visual Studio 2010]] and [[Visual Studio#Visual Studio 2012|Visual Studio 2012]]. NORMA supports second generation ORM(ORM 2), and can be used to generate code from and object-role model to several implementation targets, such as major [[Database management systems|database engines]], object-oriented code, and XML schema. Examples include:
 
{| class="wikitable" border="1" margin
|-
| Database engines
| [[Microsoft Sql Server]], [[Oracle database|Oracle]], [[IBM DB2|DB2]], [[MySQL]], [[PostgreSQL]], etc.
|-
| Programming languages
| [[Language Integrated Query|LINQ to SQL]], PLiX (Programming Language in XML)<ref>http://sourceforge.net/projects/plix The PLiX Project at SourceForge</ref> and [[PHP]]
|-
| Other
| [[XML Schema (W3C)|XML schemas]] (XSD)
|}
 
Advantages of NORMA include:
* Accepts text input and automatically generates graphics
* Validates common constraints and completeness as the model is entered
* Provides simultaneous narrative and graphic versions of all models
* Provides multiple vies of a model(ORM graphics, Relational, E-R and text narrative)
* Automatic navigation from error message to graphic view of the error
* The four views (ORM, Relational, E-R and narrative) provide useful access for modelers. However, the narrative view of the model is easier to read by those who are not familiar with ORM, Relational or E-R diagrams.
* Can reverse-engineer a physical database (partial)
* Narrative view uses hyperlinks for full cross-referencing
* Graphical model has no fixed bounds
 
Dr. [[Terry Halpin]]'s 2008 book, ''Information Modeling and Relational Databases, Second Edition''<ref name="THBBB">{{Citation
| last = Halpin | first = Terry
| author-link = Terry Halpin
| last2 = Morgan | first2 = Tony
| title = Information Modeling and Relational Databases: From Conceptual Analysis to Logical Design
| edition = 2nd
| publisher = [[Morgan Kaufmann]]
| date = March 2008
| isbn = 978-0-12-373568-3 }}</ref> "...uses the notation of ORM 2 (second generation ORM), as supported by the NORMA (Natural ORM Architect) tool..." (page 10), and "(...) At the time of writing, the Natural ORM Architect (NORMA) tool provides the most complete support for the ORM 2 notation discussed in this book." (Preface, xxv).
 
{{As of|2009|4}}, the NORMA project<ref name="SFORM">NORMA - [http://sourceforge.net/projects/orm The ORM Project at Sourceforge]</ref> delivers frequent releases.
 
Each new NORMA Community Technical Preview (CTP) is published in the library of The ORM Foundation website.<ref>[https://www.ormfoundation.org/files/folders/norma_the_software/default.aspx library of The ORM Foundation website]</ref>
 
=== DogmaModeler ===
[[File:DogmaModeler1.jpg|thumb|320px|DogmaModeler screenshot.<ref>[http://www.jarrar.info/Dogmamodeler/index.htm DogmaModeler website]</ref>]]
[[DogmaModeler]] is a free [[Ontology (computer science)|ontology]] modeling tool based on Object role modeling. The philosophy of DogmaModeler is to enable non-IT experts to model ontologies with a little or no involvement of an ontology engineer.
 
This challenge is tackled in [[DogmaModeler]] through well-defined methodological principles. The first version of DogmaModeler was developed at the [[Vrije Universiteit Brussel]].
 
The DogmaModeler Project<ref>[http://sourceforge.net/projects/dogmamodeler/ The DogmaModeler project at SourceForge]</ref> shows no activity since its creation in 2006, and the source code for the project is not available through that site. The latest version of the program, available at the DogmaModeler website is dated on October 27, 2006.<ref>[http://jarrar.info/Dogmamodeler DogmaModeler web site]</ref>
 
Since then the project seems to have been continued and expanded into several other tools at the [[Vrije Universiteit Brussel]]'s Semantics Technology and Applications Research Laboratory (VUB STARLab).<ref>http://www.starlab.vub.ac.be/website/research</ref>
 
=== VisioModeler ===
The former ORM tool known as VisioModeler is an unsupported product from Microsoft Corporation. Models developed in VisioModeler may be exported to Microsoft's current and future ORM solutions.
 
The early ORM tools such as IAST (Control Data) and RIDL* were followed by InfoDesigner, InfoModeler and [[#VisioModeler|VisioModeler]].
 
When Microsoft bought the Visio Corporation, Microsoft extended VisioModeler and made it a component of Microsoft Visual Studio. This was Microsoft's first ORM implementation and it was published in the 2003 Enterprise Architects release of [[Visual Studio#Visual Studio .NET 2003|Visual Studio]] as a component of the tool called "Microsoft [[#Visio for Enterprise Architects (VEA)|Visio for Enterprise Architects (VEA)]]".
 
In the same year, a companion "how to" book was published by Morgan Kaufmann entitled "Database Modeling with Microsoft Visio for Enterprise Architects"
.<ref>{{Citation
| last = Halpin | first = Terry
| author-link = Terry Halpin
| last2 = Evans | first2 = Ken
| last3 = Hallock| first3 = Pat
| last4 = Maclean | first4 = Bill
| title = Database Modeling with Microsoft Visio for Enterprise Architects
| publisher = [[Morgan Kaufmann]]
| date = September 2003
| isbn = 978-1-55860-919-8 }}</ref> Microsoft has retained the ORM functionality in the high-end version of Visual Studio 2005 and the Morgan Kaufmann book remains a suitable user guide for both versions.
 
=== Visio for Enterprise Architects (VEA) ===
Microsoft included a powerful ORM and logical database modeling solution within its Visio for Enterprise Architects (VEA) product. The 2005 release of VEA also included some minor upgrades (e.g. a driver for SQL Server 2005 was included).
 
=== CaseTalk ===
A modeling tool called CaseTalk<ref>http://www.casetalk.com/ The CaseTalk website</ref> based on the ORM-dialect known as Fully Communication Oriented Information Modeling ([[FCO-IM]]) is developed and maintained by Oelan in the Netherlands.
 
=== Infagon ===
A freeware ORM tool known as Infagon is available from Mattic software. Infagon is also based on the [[FCO-IM]] dialect.
 
=== Other tools ===
* '''[[Doctool]]''' and '''[[CogNIAM]]''' (CogNIAM tools).<ref>http://www.pna-group.com Doctool and CogNIAM (CogNIAM tools)</ref>
* '''[[ActiveFacts]]''' (ORM 2 tools),.<ref>http://dataconstellation.com/ActiveFacts/ ActiveFacts</ref>
* '''[[DogmaStudio]]''' (ORM Ontology tool),.<ref>http://www.starlab.vub.ac.be/website/tools DogmaStudio</ref>
* '''[[Orthogonal Toolbox]]''' (free XML add-on to database modeling COM API for Microsoft's ORM solution).<ref>http://www.orthogonalsoftware.com/products.html Orthogonal Toolbox</ref>
 
== See also ==
* [[Concept map]]
* [[Conceptual schema]]
* [[Enhanced entity–relationship model]] (EER)
* [[Information flow diagram]]
* [[Ontology double articulation]]
* [[Ontology engineering]]
* [[Relational algebra]]
* [[Three -schema approach]]
 
== References ==
{{reflistReflist|2}}
 
== Further reading ==
* FCO-IM Publications, [http://fco-im.nl fco-im.nl]
* {{Citation
| last = Halpin | first = Terry
| author-link = Terry Halpin
| author2-link = G.M. Nijssen
| title = Conceptual Schema and Relational Database Design
| publisher = [[Prentice Hall]]
Line 183 ⟶ 88:
| isbn = 978-0-13-167263-5}}
* {{Citation
| lastlast1 = Rossi
| firstfirst1 = Matti
| last2 = Siau
| first2 = Keng
| title = Information Modeling in the New Millennium
| publisher = IGI Global
| date = April 2001
| isbn = 978-1-878289-77-3 }}
| url-access = registration
| url = https://archive.org/details/informationmodel0000ross
}}
* {{Citation
| lastlast1 = Halpin | firstfirst1 = Terry
| author-link = Terry Halpin
| last2 = Evans | first2 = Ken
Line 200 ⟶ 110:
| isbn = 978-1-55860-919-8 }}
* {{Citation
| lastlast1 = Halpin | firstfirst1 = Terry
| author-link = Terry Halpin
| last2 = Morgan | first2 = Tony
Line 210 ⟶ 120:
 
== External links ==
{{commonsCommons category|Object role modeling}}
* [http://www.ormfoundation.org/ The ORM Foundation]
* [http://www.orm.net Terry Halpin's ORM site]
 
{{DEFAULTSORT:Object Role Modeling}}
[[Category:Data modeling]]
[[Category:Data modeling languages]]
[[Category:Modeling languages]]