This book is for all data modelers, data architects, and database designers―be they novices who want to learn what’s involved in data modeling, or experienced modelers who want to brush up their skills.
A novice will not only gain an overview of data modeling, they will also learn how to follow the data modeling process, including the activities required for each step. The experienced practitioner will discover (or rediscover) techniques to ensure that data models accurately reflect business requirements.
This book describes rigorous yet easily implemented approaches to:
- modeling of business information requirements for review by business stakeholders before development of the logical data model
- normalizing data, based on simple questions rather than the formal definitions which many modelers find intimidating
- naming and defining concepts and attributes
- modeling of time-variant data
- documenting business rules governing both the real world and data
- data modeling in an Agile project
- managing data model change in any type of project
- transforming a business information model to a logical data model against which developers can code
- implementing the logical data model in a traditional relational DBMS, an SQL:2003-compliant DBMS, an object-relational DBMS, or in XML.
Part 1 describes business information models in-depth, including:
- the importance of modeling business information requirements before embarking on a logical data model
- business concepts (entity classes)
- attributes of business concepts
- attribute classes as an alternative to DBMS data types
- relationships between business concepts
- time-variant data
- generalization and specialization of business concepts
- naming and defining the components of the business information model
- business rules governing data, including a distinction between real-world rules and data rules.
Part 2 journeys from requirements to a working data resource, covering:
- sourcing data requirements
- developing the business information model
- communicating it to business stakeholders for review, both as diagrams and verbally
- managing data model change
- transforming the business information model into a logical data model of stored data for implementation in a relational or object-relational DBMS
- attribute value representation and data constraints (important but often overlooked)
- modeling data vault, dimensional and XML data.
What is a data model?
Why develop one?
Everyone’s a data modeler
The importance of getting it right
Why not develop the logical data model immediately?
Why not document requirements using a logical data model?
Persistent roles and event roles
Does a business information model need attributes?
Why are there no foreign keys?
Functional dependency on more than one attribute
Functional dependency on a relationship
Documenting composite attributes
Other composite attributes
Independent and coupled multi-valued attributes
Sequence in a multi-valued attribute
Functional dependency and multi-valued attributes
Multi-valued composite attributes
Set selection attributes
Documenting simple attribute classes
Attribute class operations
Cardinality and optionality
When not to use a 1:n relationship
n:n relationship or multi-valued attribute?
n:n relationship or time-variant 1:n relationship?
Recording changes in time-variant data
Attributes of relationships
Documenting attributes of relationships
Subtypes with different attributes
Mutually exclusive taxonomies
Jointly exhaustive taxonomies
Subtypes with different relationships
Documenting subtypes in a data modeling tool
Attribute generalization across role entity classes
Attribute generalization across subtypes
Attribute generalization within an entity class
Naming entity classes
Quality criteria for entity class names
Terms with multiple meanings
What does each entity instance look like?
Terms with specialized meanings
General and specific names
Relationship names in diagrams
Using a taxonomic glossary to manage names
Why a taxonomic glossary?
What does a taxonomic glossary look like?
Entity class and attribute definitions
Entity class definitions
Quality criteria for entity class definitions
When should data rules be documented?
Attribute cardinality rules
Mandatory attribute rules
Conditional mandatory attribute rules
Prohibited attribute rules
Mandatory attribute group rules
Multi-valued attribute cardinality rules
Attribute content rules
Value set rules
Data consistency rules
Temporal data rules
Spatio-temporal data rules
Attribute format rules
Variant and invariant attributes
Cardinality and optionality
Mandatory relationship groups
Recursive relationship rules generally
Quasi-recursive relationship pairs
Irreflexive relationship pairs
Symmetric relationship pairs
Acyclic relationship pairs
Documenting data rules
Documenting attribute rules
Documenting mandatory attributes
Documenting other single-attribute rules
Documenting data consistency rules
Where to document attribute rules
Documenting relationship rules
Relationship markings in a data model diagram
Other relationship rules
Where to document relationship rules
Documenting uniqueness rules
Decision support data
Rules that vary according to location or situation
Making sure that other data complies with rule data
Pre- and post-event rules
What should a business information model include?
What should a business information model not include?
Isn’t that just a conceptual data model?
Selecting a data modeling tool
What tool functionality is required?
Sourcing data requirements
Developing the model
Data modeling in an Agile project
Data modeling in other projects
Building the initial model
Documenting assumptions and questions
Managing data model change
Renaming an entity class or attribute
Moving an attribute between entity classes
Alternative models of the same reality
Communicating the model
Data model diagrams
Sharing and presentation
Describing the model verbally
Entity class assertions
Attribute rule assertions
Relationship rule assertions
Uniqueness rule assertions
Completing data rule capture, analysis, and review
Generating a logical data model from a business information model
Removing derived data items
Adding primary keys
Using business information model attributes
Adding non-visible primary keys
Adding primary keys: a summary
Choosing DBMS data types
Columns representing identifier attributes
Columns representing Boolean attributes
Columns representing set selection attributes
Columns representing descriptor attributes
Columns representing temporal attributes
Columns representing quantifier attributes
Columns representing media attributes
Internal and external representations
Representing composite and multi-valued attributes
Overlapping foreign keys
Hierarchies and acyclic relationship pairs
Handling composite attributes
Handling multi-valued attributes
Multi-valued attribute sequencing
Handling supertypes and subtypes
Handling history recording
Recording history in the system being modeled
6th Normal Form
Handling data rules
Rules inherited from the business information model
Supporting programming, improving performance
Replicating business information model changes
Implementing in a relational DBMS
Managing other data rules
Documented data rules
Relationships that are mandatory at the n end
Supertypes and subtypes
Hierarchies and acyclic relationship pairs
Other performance improvement measures
XML data structures
Graham has had four decades of experience in assisting businesses and government departments to acquire relevant and effective IT solutions, and manage information effectively. He has developed specialist expertise in a variety of areas, in particular data modeling and business rules. He has presented papers at conferences in Australia, the US, the UK, France and Germany, as well as meetings of DAMA (the Data Management Association) – in Australia and the US – and ACS (the Australian Computer Society). He has developed and delivered training courses in data modeling, database design and business rules, and delivered them in Australia, the US and Canada. He co-authored with Graeme Simsion the widely-used textbook, Data Modeling Essentials, and Morgan Kaufmann published his book Writing Effective Business Rules in February 2012. Graham has also written articles on natural language business rule statements for the Business Rules Journal.