Welcome!
What is ORM? ORM stands for "Object-Role Modeling". You can use ORM to design information models that are unambiguous because ORM is based on first order predicate logic which has evolved from the works of people such as Aristotle, Leibniz, Cantor, Frege and Russell.
Forget Manual Normalization: With ORM, you avoid the need to use complex, time-consuming and error prone normalization methods such as the Functional Dependency analysis that is popular with people who use the Entity-Relationship approach.
Once you have created an object-role model, you can generate a fully normalised relational schema in a few mouse clicks. With just a few more mouse clicks, you can generate the code needed (DDL) to set up your database in a relational database management system.(RDBMS)
Laws of Thought: In the 19th century, George Boole showed how to answer questions about logic using mathematics. Boole's 1854 book is about the "Laws of Thought" and the principles of Boolean logic are widely understood in the computer industry. However, Boolean principles also apply to all kinds of reasoning - including day-to-day decisions by individuals.
ORM helps to clarify meaning: When you create an object-role model you create a precise and meaningful description of your information domain. So ORM tools provide a means for people to agree on exactly what they mean. ORM's power to clarify meaning has many potential uses. So far, the main use of ORM has been to help computer application developers to design databases. For example, from an object-role model, you can automatically derive a fully normalised relational data model. You can also derive other artefacts such as a class model and an entity relationship diagram. These artefacts can then be transformed into usable artefacts such as a physical database.
Easy to use: ORM has only one data structure - the fact type. This simplicity is supported by a comprehensive set of constraint types that allow you to create complex information models.
Validating your model: One of the biggest problems in data modeling is making sure that the data model is understood and approved by "domain experts". ORM tools support this process because they have built in "verbalizers" that generate easy-to-understand natural language from the object-role model. Using natural language makes it easy for a non-technical person to validate the content of the model. In contrast, if a non-technical person wants to understand a UML or entity-relationship (ER) model, the person must first learn the UML or ER language. ORM provides a simpler and more accurate approach to information modeling than other approaches such as Entity-Relationship modeling and UML.
What is the history of ORM? The roots of ORM can be traced to research into semantic modeling in Europe during the 1970's. There were many pioneers and this short summary does not mention them all. An early contribution came in 1973 when M Senko wrote about "data structuring" in the IBM Systems Journal. In 1974 JR 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 mentioned the term "object-role model". Other contributors in continental Europe introduced the "circle-box" notation and an early version of the conceptual schema design procedure. Other people added subtyping, and conceptual query ideas.The first full formalization came in 1989 when Terry Halpin completed his PhD thesis on ORM. Terry also introduced extensions. In 1989, Terry Halpin and GM Nijssen co-authored the book "Conceptual Schema and Relational Database Design".
How can I learn more? The authoritative book on ORM is Terry Halpin's 2008 "Big Brown Book" entitled "Information Modeling and Relational Databases - Second Edition". (The first edition was published in 2001). You can order the Big Brown Book by clicking on the "Second Edition" image (see sidebar - Books). You can read about ORM from the documents in the Library. You can also participate in the Forum.
Are there any ORM Tools? The growth of ORM has followed the availability of a series of steadily improving ORM tools. The early ORM tools such as IAST (Control Data) and RIDL* were followed by InfoDesigner, InfoModeler and 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 as a component of the tool called called "Microsoft Visio for Enterprise Architects". In the same year, a companion "how to" book was published by Morgan Kaufmann entitled "Database Modeling with Microsoft Visio for Enterprise Architects". (see sidebar) Microsoft has retained the ORM functionality in the high-end version of Visual Studio and the Morgan Kaufmann book remains a suitable user guide for both versions. The next "in the works" ORM tool is an open source tool called NORMA (Natural ORM Architect for Visual Studio). You can download the latest release of NORMA from the tools section in the Library.
Forum: The Forum is for discussing ORM related topics. Visitors can see most of the discussions but to participate you have to register on the site. Not all discussions are visible to all registered members because they are for specialised sub-groups. However, if you don't see a topic that you feel should be given its own Forum, please post a message in the "Request a Topic" Forum. Your post should include a title, a description of the scope, how it relates to ORM and why you think that the ORM community will find it of interest.
Library: You can download ORM software, ORM tutorials and ORM related documents from the Library. Most documents are in PDF format but there are also multimedia file types.
Research: The research page supports ORM research. You can see the experimental material that I used in my 2008 MSc dissertation project. This experiment was designed to test the hypothesis that “ORM based methods require at least 25% less effort than alternative methods such as UML and ER.”
Visitors can browse the Library and Forum. Registered members can download documents and participate in the forum discussions. Registration is free - just click on the "Join" button at the top right of the screen and follow the instructions.
If you experience a problem, please send a description of the problem to admin AT ormfoundation.org.
Thank you for visiting The ORM Foundation website.
Ken Evans ken.evans AT ormfoundation.org
What's New
-
[quote user="Ken Evans"] I have asked Brian Christensen to answer your question. It's my (possibly incorrect) understanding that since ORM Lite is written in Python, it is Python itself that provides the multi-platform capability rather than there being a separate version for each platform. True or False? [/quote] Thank you. Yes, that's...
-
I have asked Brian Christensen to answer your question. It's my (possibly incorrect) understanding that since ORM Lite is written in Python, it is Python itself that provides the multi-platform capability rather than there being a separate version for each platform. True or False? Also, are you saying that you have been able to look at the source...
-
Hi. Where can I find the source for ORM Lite? All I see is Windows packages on the library section although the notes say it runs on Linux and MacOS as well. I thought I had found the source code repository on SourceForge, but it looks like that's a different project.
-
I've tried to generate test data and I really don't understand it. I there a way to test data on the model one click at a time. Is there a good article on this? Makes me want to add little arrows between entities that tell the model how many times to loop and which entities go first and which ones go next and in what direction.