Information Modeling and Relational DatabasesBy
- Terry Halpin
- Tony Morgan
Information Modeling and Relational Databases, second edition, provides an introduction to ORM (Object-Role Modeling)and much more. In fact, it is the only book to go beyond introductory coverage and provide all of the in-depth instruction you need to transform knowledge from domain experts into a sound database design. This book is intended for anyone with a stake in the accuracy and efficacy of databases: systems analysts, information modelers, database designers and administrators, and programmers. Terry Halpin, a pioneer in the development of ORM, blends conceptual information with practical instruction that will let you begin using ORM effectively as soon as possible. Supported by examples, exercises, and useful background information, his step-by-step approach teaches you to develop a natural-language-based ORM model, and then, where needed, abstract ER and UML models from it. This book will quickly make you proficient in the modeling technique that is proving vital to the development of accurate and efficient databases that best meet real business objectives.
The audience is the same as for the first edition: data modelers, database designers, information architects, and practitioners/managers in data management.
Hardbound, 976 Pages
Published: March 2008
Imprint: Morgan Kaufmann
This book is an excellent introduction to both information modeling in ORM and relational databases. The book is very clearly written in a step-by-step manner, and contains an abundance of well-chosen examples illuminating practice and theory in information modeling. I strongly recommend this book to anyone interested in conceptual modeling and databases. Dr. Herman Balsters, Director of the Faculty of Industrial Engineering, University of Groningen, The Netherlands
- 1 Introduction 1.1 Information Modeling 1.2 Modeling Approaches 1.3 Some Historical Background 1.4 The Relevant Skills 1.5 Summary 2 Information Levels and Frameworks 2.1 Four Information Levels 2.2 The Conceptual Level 2.3 Database Design Example 2.4 Development Frameworks 2.5 Summary 3 Conceptual Modeling: First Steps 3.1 Conceptual Modeling Language Criteria 3.2 Conceptual Schema Design Procedure 3.3 CSDP Step 1: From Examples to Elementary Facts 3.4 CSDP Step 2: Draw Fact Types, and Populate 3.5 CSDP Step 3: Trim Schema; Note Basic Derivations 3.6 Summary 4 Uniqueness Constraints 4.1 CSDP Step 4: Uniqueness Constraints; Arity Check 4.2 Uniqueness Constraints on Unaries and Binaries 4.3 Uniqueness Constraints on Longer Fact Types 4.4 External Uniqueness Constraints 4.5 Key Length Check 4.6 Projections and Joins 4.7 Summary 5 Mandatory Roles 5.1 Introduction to CSDP Step 5 5.2 Mandatory and Optional Roles 5.3 Reference Schemes 5.4 Case Study: A Compact Disc Retailer 5.5 Logical Derivation Check 5.6 Summary 6 Value, Set-Comparison and Subtype Constraints 6.1 CSDP Step 6: Value, Set-Comparison and Subtype constraints 6.2 Basic Set Theory 6.3 Value Constraints and Independent Objects 6.4 Subset, Equality, and Exclusion Constraints 6.5 Subtyping 6.6 Generalization of Object Types6.7 Summary 7 Other Constraints and Final Checks 7.1 CSDP Step 7: Other Constraints and Final Checks 7.2 Occurrence Frequencies 7.3 Ring Constraints7.4 Other Constraints and Rules 7.5 Final Checks 7.6 Summary8 Entity Relationship Modeling 8.1 Overview of ER8.2 Barker notation8.3 Information Engineering notation8.4 IDEF1X8.5 Mapping from ORM to ER8.6 Summary 9 Data Modeling in UML 9.1 Introduction9.2 Object-Orientation9.3 Attributes9.4 Associations9.5 Set-Comparison constraints9.6 Subtyping9.7 Other Constraints and Derivation Rules9.8 Mapping from ORM to UML9.9 Summary 10 Advanced Modeling Issues10.1 Join Constraints10.2 Deontic Rules10.3 Temporality10.4 Collection Types10.5 Nominalization and Objectification10.6 Open/Closed World Semantics10.7 Higher-Order Types10.8 Summary11 Relational Mapping 11.1 Implementing a Conceptual Schema 11.2 Relational Schemas 11.3 Relational Mapping Procedure 11.4 Advanced Mapping Aspects 11.5 Summary 12 Data Manipulation with Relational Languages 12.1 Relational Algebra 12.2 Relational Database Systems 12.3 SQL: Historical and Structural Overview 12.4 SQL: Identifiers and Data Types 12.5 SQL: Choosing Columns, Rows, and Order 12.6 SQL: Joins 12.7 SQL: In, Between, Like, and Null Operators 12.8 SQL: Union and Simple Subqueries 12.9 SQL: Scalar Operators and Bag Functions 12.10 SQL: Grouping 12.11 SQL: Correlated and Existential Subqueries12.12 SQL: Recursive Queries12.13 SQL: Updating Table Populations 12.14 SQL: Other Useful Constructs 12.15 Summary13 Using Other Database Objects13.1 SQL: Data Definition 13.2 SQL: User Defined Functions13.3 SQL: Views and Computed Columns13.4 SQL: Triggers13.5 SQL: Stored Procedures13.6 SQL: Indexes13.7 Other Objects13.8 Exploiting 3GLs13.9 Exploiting XML13.10 Security and Meta-Data13.11 Concurrency13.12 Summary 14 Schema Transformations14.1 Schema Equivalence and Optimization14.2 Predicate Specialization and Generalization14.3 Nesting, Coreferencing, and Flattening14.4 Other Transformations14.5 Conceptual Schema Optimization14.6 Normalization14.7 Denormalization and Low Level Optimization14.8 Reengineering14.9 Data Migration and Query Transformation14.10 Summary15 Process and State Modeling15.1 Introduction15.2 Processes and Workflow15.3 Foundations for Process Theory15.4 State Models versus Process Models15.5 Modeling Information Dynamics in UML15.6 Standard Process Patterns15.7 Business Process Standards Initiatives15.8 Integration of Process Models and Information Models15.9 Summary16 Other Modeling Aspects and Trends 16.1 Introduction 16.2 Data Warehousing and OLAP 16.3 Conceptual Query Languages 16.4 Schema Abstraction Mechanisms 16.5 Further Design Aspects16.6 Ontologies and the Semantic Web16.7 Post-Relational Databases 16.8 Metamodeling 16.9 Summary ORM glossary (ORM 1 and ORM 2)ER glossary UML glossaryBibliography Index