Content deleted Content added
GreenC bot (talk | contribs) Rescued 1 archive link; reformat 1 link. Wayback Medic 2.5 per WP:USURPURL and JUDI batch #21aa |
|||
(37 intermediate revisions by 27 users not shown) | |||
Line 1:
{{Short description|Programming technique}}
{{Distinguish|Object–relational mapping}}
'''
▲[[File:ORM-diagram-tkz-orm.png|406px|thumb|example of an ORM2 diagram]]
An
▲'''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 – 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. 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.
== 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 "
[[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 |
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
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
=== Facts ===
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 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
=== 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
=== ORM 2 graphical notation ===
ORM2 is the latest generation of
* More compact display of ORM models without compromising clarity
* Improved internationalization (e.g. avoid English language symbols)
Line 71 ⟶ 67:
* [[Concept map]]
* [[Conceptual schema]]
* [[Enhanced entity–relationship model]] (EER)
* [[Information flow diagram]]
* [[Ontology double articulation]]
* [[Ontology engineering]]
* [[Relational algebra]]
* [[Three
== References ==
{{
== Further reading ==
Line 84 ⟶ 81:
| last = Halpin | first = Terry
| author-link = Terry Halpin
| title = Conceptual Schema and Relational Database Design
| publisher = [[Prentice Hall]]
Line 91 ⟶ 88:
| isbn = 978-0-13-167263-5}}
* {{Citation
|
| | 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
|
| author-link = Terry Halpin
| last2 = Evans | first2 = Ken
Line 108 ⟶ 110:
| isbn = 978-1-55860-919-8 }}
* {{Citation
|
| author-link = Terry Halpin
| last2 = Morgan | first2 = Tony
Line 118 ⟶ 120:
== External links ==
{{
{{DEFAULTSORT:Object Role Modeling}}
[[Category:Data modeling]]
[[Category:Data modeling languages]]
[[Category:Modeling languages]]
|