ORM Practicality
ORM, Object Role Modeling, no not - Object Relational Mapping or Operational Risk Management, was formally started about the 1990's by Dr. Terry Halpin. The concept of ORM has always been about designing and querying databases at a conceptual level. In theory, the domain expert is one who can explain many to all aspects of a certain required system. The conceptual modeler should ask enough questions to the domain expert so that all parts of the required system are encompassed and noted. These "features" are then translated into facts or rather stated as facts. In theory, the completed model contains all facts about the given system and the database modeler can then proceed to hand the available database to the programmers to write against the system.
This is great for theory, the concept makes since and it seems like an amazing practice for people to apply in their daily work cycles. One interesting conundrum that seems to come up with some people is that they don't like some of the practices that ORM presents. Before we get into that, let me give you an example:
Visual imagery. Most people can explain their ideas, concepts, visions with imagery. "I want it to do this." "It should look something like this" It's hard enough for entrepreneurs and business owners to explain their ideas as users, it gets even harder with ORM. Of course, this is why we have a distinct role for people who use ORM. And the only communication that actually occurs is in facts being stated, verifying certain roles.. etc. Of course, there is the possibility that facts are going to be left out (that's always a possibility). In a brainstorming session, there is a definitive point in time where certain constraints are simply meaningless, the important part of brainstorming is to gather information and be able to track it in its databound form.
So what to people do? Whiteboards are one way, so is the simple pencil and paper, OneNote, Word docs... the list is endless for this. Eventually though, those models have to come in some fashion that can be reused. While ORM does provide a step in generating database models, it and most of the database community leaves out the ability to visualize concepts, create them and use them almost immediately.
Collective information, is all about throwing in facts or assumed facts (to which you verify later) and then being able to use that information in its visual representation. Imagine drawing a piece of paper, it's a small piece of paper with some lines on it. You label it as a post. Then imagine copying those a bunch and putting a bundle together, you label this pile a blog. Then you draw a person, whom you care deeply about. Who is this person? Why this person is a user. A user who wishes to use your system and can only hope it does what they want! You can continue to add to this drawing by looking closely at the post. You erase the squiggly lines and add detail, there's a title in here, some content, the date is was posted and a few comments.
In this example we don't care about what each post is identified by; we don't care how many characters the title should be before it's cut off. Sometimes we just need to get a basic idea down on paper, imagine how enthralled we would be if our ideas became instant reality before our vary eyes. We don't know exactly the path we want, we don't know all the facts, but we have a concept, our data in visual form almost immediately.
Comments
Nijssen and Dr. Terry Halpin provided the first formalization of Object-Role Modeling in joint papers and the work, Conceptual Schema and Relational Database Design, (Prentice Hall, Sydney:1989). I should have clarified ORM's more graphically formal context in my post.
Thank you :)