Object-Role Modeling (ORM) is a fact-based approach to data modeling that expresses the information requirements of any business domain simply in terms of objects that play roles in relationships. All facts of interest are treated as instances of attribute-free structures known as fact types, where the relationship may be unary (e.g. Person smokes), binary (e.g. Person was born on Date), ternary (e.g. Customer bought Product on Date), or longer. Fact types facilitate natural expression, are easy to populate with examples for validation purposes, and have greater semantic stability than attribute-based structures such as those used in Entity Relationship Modeling (ER) or the Unified Modeling Language (UML).
All relevant facts, constraints and derivation rules are expressed in controlled natural language sentences that are intelligible to users in the business domain being modelled. This allows ORM data models to be validated by business domain experts who are unfamiliar with ORM’s graphical notation. For the data modeler, ORM’s graphical notation covers a much wider range of constraints than can be expressed in industrial ER or UML class diagrams, and thus allows rich visualization of the underlying semantics.
Written as a sequel to the author’s previous book Object-Role Modeling Fundamentals, this book briefly reviews the fundamentals of ORM, and then discusses additional topics such as model reports generation, vocabulary glossaries, relational mapping options, annotated relational schemas, schema optimization, and data modeling patterns. Written in easy-to-understand language, it illustrates each topic with simple examples, and explains how to use the freeware NORMA tool to implement the ideas discussed. The book also includes many practical exercises to promote expertise in the techniques covered, with answers provided to all the exercise questions.