| Preface | p. vii |
| Motivation | p. vii |
| Purpose | p. viii |
| Readers | p. ix |
| Structure | p. ix |
| Downloads | p. xi |
| Acknowledgments | p. xi |
| About the Author | p. xiii |
| Contents | p. xv |
| List of Abbreviations | p. xxi |
| About Relationships and ORN | p. 1 |
| Introduction Including a Brief History of Relationships | p. 3 |
| Relationships | p. 3 |
| A Brief History of Relationships | p. 4 |
| The paper-based system | p. 5 |
| The computerized file-based system | p. 6 |
| Early data models and DBMSs | p. 8 |
| The relational model and RDBMS | p. 15 |
| The entity-relationship model and database | p. 19 |
| Semantic models, the object model, and the ODBMS | p. 23 |
| The object-relational DBMS | p. 31 |
| Problems in Modeling and Implementing Relationships | p. 32 |
| Preview of a Solution | p. 35 |
| Object Relationship Notation (ORN) | p. 39 |
| Syntax | p. 39 |
| Graphical Representation | p. 40 |
| Semantics | p. 41 |
| Examples | p. 42 |
| <*-to-*> | p. 44 |
| <1-to-*> - | p. 45 |
| <0..1-to-*> - | p. 47 |
| <0..1-to*> -X- | p. 47 |
| <0..1-to-1..*>? | p. 48 |
| !<0..1-to-*> | p. 49 |
| '<*-to-1..*> | p. 50 |
| Flashback to the Company Database | p. 51 |
| ORN Simulator A Modeling Tool Where Associations Come Alive | p. 53 |
| Creating a Database Model and a Database | p. 53 |
| Verifying Association Semantics | p. 60 |
| Architecture | p. 66 |
| Benefits | p. 67 |
| Association Patterns Emerging from a Variety of Association Types | p. 69 |
| Context | p. 69 |
| Pattern Descriptions | p. 71 |
| "is defined by" pattern | p. 73 |
| "is recorded for" pattern | p. 75 |
| "is a realization of" pattern | p. 79 |
| "is associated by" pattern | p. 80 |
| "is an update of" pattern | p. 81 |
| "is a part of" pattern | p. 82 |
| "is a" pattern | p. 89 |
| Patterns in Database Modeling and Implementation | p. 90 |
| Associations That Don't Conform to a Pattern | p. 95 |
| Conclusion | p. 96 |
| Comparing ORN to Similar Declarative Schemes | p. 97 |
| Schemes for Relational Databases and Object Relations | p. 98 |
| Null constraint | p. 98 |
| Key constraints | p. 99 |
| Referential integrity rules | p. 100 |
| Subjectivity constraints | p. 102 |
| Additional relationship semantics | p. 103 |
| Schemes for the ER model | p. 105 |
| Schemes in ODBMSs | p. 105 |
| Whole-Part Properties and Dimensions for Class Diagrams | p. 107 |
| Proposed association dimensions for Class diagrams | p. 108 |
| Primary characteristics for whole-part relationships | p. 111 |
| Secondary characteristics for whole-part relationships | p. 112 |
| Conclusion | p. 113 |
| Using ORN to Develop a Database System | p. 115 |
| ORN Additive A Tool for Extending SQL Server with ORN | p. 117 |
| Capabilities, Operations, and Architecture | p. 117 |
| Capabilities | p. 118 |
| Operations and architecture | p. 119 |
| The +ornddl command | p. 121 |
| The +orndml command | p. 121 |
| ORN Additive DDL Statements | p. 122 |
| USE statement | p. 122 |
| Constraint statement | p. 123 |
| Delete statement | p. 123 |
| Set Orn_Message_Number_Base statement | p. 125 |
| Example of a query file with ORN Additive DDL statements | p. 125 |
| ORN Additive DML Statements | p. 125 |
| Use statement | p. 125 |
| Begin Transaction statement | p. 127 |
| Save Transaction statement | p. 127 |
| Commit Transaction statement | p. 127 |
| Rollback Transaction statement | p. 127 |
| Set Rxc_Mode statement | p. 128 |
| Enable/Disable Orn_Triggers statement | p. 129 |
| Example of query file with ORN Additive DML statements | p. 130 |
| Conclusion | p. 132 |
| Object Relater Plus (OR+) An ORN-extended Object DBMS | p. 133 |
| Capabilities and Compatibilities | p. 133 |
| ODDL | p. 135 |
| ODDL specification | p. 135 |
| p. 138 |
| Control commands | p. 140 |
| ODML | p. 141 |
| Architecture, Implementation, and Extensibility | p. 143 |
| Architecture | p. 143 |
| Implementation | p. 145 |
| Extensibility | p. 146 |
| Conclusion | p. 147 |
| Mapping Database Models to DDLs From ORN-Extended Class Diagrams to ORN-Extended DBMSs | p. 149 |
| Mapping an ORN-Extended Model to an ORN-Extended SQL | p. 149 |
| Transformating the model for a relational database | p. 149 |
| Mapping classes to tables | p. 153 |
| Mapping associations to foreign keys | p. 154 |
| Mapping an ORN-Extended Model to an Object DDL | p. 157 |
| Transforming the model for an object database | p. 158 |
| Mapping classes to class definitions and extents | p. 159 |
| Mapping associations to object-based attributes | p. 160 |
| Conclusion | p. 163 |
| Association Semantics Dealing with the Subtleties, Inconsistencies, and Ambiguities | p. 165 |
| Inconsistencies | p. 165 |
| Within an | p. 166 |
| Involving combinations | p. 170 |
| Inconsistency Detection | p. 171 |
| Ambiguities | p. 172 |
| Associations as Functions | p. 174 |
| Conclusion | p. 177 |
| Adding ORN to a DBMS | p. 179 |
| A Conceptual Implementation of ORN Exploring Semantic Circularity and Ambiguity | p. 181 |
| Algorithms | p. 182 |
| Algorithm CreateObject | p. 182 |
| Transaction operations | p. 183 |
| Supporting pseudocode for complex object operations | p. 184 |
| Algorithm CreateLink | p. 185 |
| Algorithm DeleteObject | p. 186 |
| Algorithm DestroyLink | p. 187 |
| Algorithm ChangeLink | p. 187 |
| Link Cycles | p. 188 |
| Circularity | p. 189 |
| Ambiguities | p. 190 |
| The Theorem for ORN Semantic Clarity and its proof | p. 196 |
| Conclusion | p. 203 |
| Adding ORN to the SQL Standard for RDBMSs | p. 205 |
| Motivation | p. 205 |
| Overview of SQL Association Capabilities | p. 206 |
| Proposed ORN Extension to SQL | p. 209 |
| Conclusion | p. 213 |
| Adding ORN to the ODMG Standard for ODMSs | p. 215 |
| Motivation | p. 215 |
| Adding ORN to ODL | p. 217 |
| Associations in ODL | p. 217 |
| Adding ORN syntax | p. 218 |
| Adapting ORN semantics to ODL | p. 219 |
| Algorithms | p. 221 |
| Class Transaction | p. 223 |
| Method new() | p. 225 |
| Method delete() | p. 226 |
| Method _enforce_binding() | p. 227 |
| Method form_tpR() | p. 229 |
| Method drop_tpR() | p. 230 |
| Method_enforce_explicit_binding() | p. 230 |
| Method change_tpR() | p. 231 |
| Example | p. 232 |
| Conclusion | p. 234 |
| Bibliography | p. 237 |
| Index | p. 241 |
| Table of Contents provided by Ingram. All Rights Reserved. |