Information Modeling and Relational Databases: From Conceptual Analysis to Logical Design
Dr. Terry Halpin makes a compelling case for designing databases using a method called Object Role Modeling (ORM), and teaches the reader how to use the method.
Review: A properly designed database is critical to the success of business applications. Developers love good database designs because they are much easier to code against, and they make it much easier to accommodate the business requirements of the user, which is after all the purpose of the application. Everyone recognizes the need for good data design, but few people know how fill that need. A good database design requires a good data model, where does one learn how to create a good data model? If you are looking for one book that will really make a difference the next time you design a database, look no further than Information Modeling and Relational Databases by Dr. Terry Halpin.
Halpin’s writing style is clear and interesting, and the numerous examples he uses make the concepts easier to digest. Besides examples within the text, each subsection of the book has a complete set of exercises. Comparing your answers with the supplied answers is a great way to make sure you’ve absorbed the material. This book is very comprehensive; it starts with simple concepts, and ends with discussions of relational algebra, UML and ER modeling, in addition to Halpin’s preferred method, Object Role Modeling (ORM). Halpin’s presentation and explanation of ORM sets this book apart from other data modeling books. As Halpin explains it, the focus in ORM is on business facts, not abstract data structures. As a professional database designer, one of the most common (and often valid) criticisms I encounter is that data modelers often seem too far removed from the business or too “theoretical”.
Genuinely good theories should have practical benefits, which is certainly the case with ORM. Object Role Modeling has a very solid theoretical foundation (indeed it is grounded in logic and philosophy), but the application of ORM is very practical. Throughout the book, one is struck by how often Halpin emphasizes the importance of getting real examples from the users. Of course, many books will tell you how important it is to get requirements from the users, but they don’t outline a simple, usable method for actually doing it.
Halpin outlines such a method in the “Conceptual Schema Design Procedure” (CSDP). The CSDP is a step-by-step guide to using ORM for producing a first class data model based on business requirements. The CSDP walks one through the entire process, from familiarization with the business to the final quality checks on the model. ORM and the CSDP provide a simple way to organize, manipulate and validate the business knowledge that you glean from the users.
Halpin calls ORM a conceptual modeling method. So what does an ORM conceptual model look like? At its core an ORM conceptual model is a set of simple assertions about the data for a particular business and how those data relate. Examples are “Employee drives Car” and “Car is made by Manufacturer” etc. Such assertions are known as sentence types. Each of these sentence types alone deals with only a small part of the business data, but taken as a collection, the sentence types form a complete picture of the data that must be stored and manipulated in the business environment.
Every one of these sentence types is populated (i.e. turned from a general statement into specific examples) with sample data. The sample data can either be supplied directly by the users, or created by the users and database designer as part of the design sessions. Once the sentence types are populated, you apply constraints that regulate the allowable populations.
ORM’s constraint language is very expressive. Using ORM, you can directly model such constraints as “No person can review a book which s/he has written”, “No employee can have insurance unless s/he is full time”, and “An ambassador can be assigned to a country only if s/he is fluent in one of the languages spoken in that country”. Other modeling methods have trouble with these kinds of constraints, but ORM takes them in stride. Expressing these constraints in the data model makes it easier to enforce the rules in the resulting application.
There is an accompanying graphical representation for ORM models, but the entire model can be expressed in terms of (indeed originated as) simple sentences with real sample data and rules. Halpin correctly argues that users can validate these simple sentences much more easily than they can validate graphical representations of data structures (e.g. tables and keys).
Once you have the completed conceptual model, it is quite easy to create a relational (or object-relational) schema on which to base your application. Halpin provides a simple algorithm for automatically generating a relational schema from an ORM conceptual model. The generated schema is automatically normalized as a result of the mapping process. Because of this automatic normalization feature, Halpin’s discussion of normalization, while complete, is not as lengthy as the discussions found in some other books.
I recommend this book to anyone who has an interest in the design of database applications. If you are not interested in design, let me put it another way: If you have ever written (or directed someone to write) a CREATE TABLE statement, you need this book! People who have never done data modeling will be well served by learning this method first, and accomplished modelers can learn a technique that will greatly improve their communication with their users, and yield higher quality results.
Download From Link1 Link2