Overview
Object-role models are based on elementary facts, and expressed in diagrams 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, propositions 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.
ORM is attribute-free : unlike Entity Relationship (ER) and Unified Modeling Language (UML) models, 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 includes procedures for mapping facts to attribute-based structures, such as those of ER or UML.
Fact-based textual representations are based on formal subsets of native languages, and are easier to understand by people without a technical education. Object-role models are easier to understand than technical languages such as Object Constraint Language (OCL) and UML class models. Fact-based graphical notations are more expressive than thosde of ER and UML. An object-role model can be automatically mapped to relational and deductive databases (such as datalog).
ORM2 is the latest generation of Object-Role Modeling . The main objectives for the ORM 2 graphical notation are:
- More compact display of ORM models without compromising clarity
- Improved internationalization (e.g. avoid English language symbols)
- Simplified drawing rules to facilitate creation of a graphical editor
- Extended use of views for selectively displaying/suppressing detail
- Support for new features (e.g. role path delineation, closure aspects, modalities)
Read more about this topic: Object-Role Modeling