- •Contents
- •Data Modeling Concepts
- •Benefits of Data Modeling
- •Methods
- •Typographical Conventions
- •Introduction
- •Data Modeling
- •Data Modeling Sessions
- •Session Roles
- •Sample IDEF1X Modeling Methodology
- •Modeling Architecture
- •Logical Models
- •Entity Relationship Diagram
- •Key-Based Model
- •Fully-Attributed Model
- •Physical Models
- •Transformation Model
- •DBMS Model
- •How to Construct a Logical Model
- •Entity Relationship Diagram
- •Entities and Attributes Defined
- •Logical Relationships
- •Many-to-Many Relationships
- •Logical Model Design Validation
- •Data Model Example
- •Key-Based Data Model
- •Key Types
- •Entity and Non-Key Areas
- •Primary Key Selection
- •Alternate Key Attributes
- •Inversion Entry Attributes
- •Relationships and Foreign Key Attributes
- •Dependent and Independent Entities
- •Identifying Relationships
- •Non-Identifying Relationships
- •Rolenames
- •Overview
- •Entity and Attribute Names
- •Synonyms, Homonyms, and Aliases
- •Entity Definitions
- •Descriptions
- •Business Examples
- •Comments
- •Definition References and Circularity
- •Business Glossary Construction
- •Attribute Definitions
- •Validation Rules
- •Rolenames
- •Definitions and Business Rules
- •Relationships
- •Relationship Cardinality
- •Cardinality in Non-Identifying Relationships
- •Referential Integrity
- •Referential Integrity Options
- •RI, Cardinality, and Identifying Relationships
- •RI, Cardinality, and Non-Identifying Relationships
- •Additional Relationship Types
- •Many-to-Many Relationships
- •N-ary Relationships
- •Recursive Relationships
- •Subtype Relationships
- •Complete Compared to Incomplete Subtype Structures
- •Inclusive and Exclusive Relationships
- •IDEF1X and IE Subtype Notation
- •When to Create a Subtype Relationship
- •Normalization
- •Overview of the Normal Forms
- •Common Design Problems
- •Repeating Data Groups
- •Multiple Use of the Same Attribute
- •Multiple Occurrences of the Same Fact
- •Conflicting Facts
- •Derived Attributes
- •Missing Information
- •Unification
- •How Much Normalization Is Enough
- •Support for Normalization
- •First Normal Form Support
- •Second and Third Normal Form Support
- •Objective
- •Support for the Roles of the Physical Model
- •Summary of Logical and Physical Model Components
- •Denormalization
- •Classification of Dependent Entities
- •Glossary
- •Index
Relationships and Foreign Key Attributes
Rolenames
When foreign keys migrate from the parent entity in a relationship to the child entity, they are serving double-duty in the model in terms of stated business rules. To understand both roles, it is sometimes helpful to rename the migrated key to show the role it plays in the child entity. This name assigned to a foreign key attribute is called a rolename. In effect, a rolename declares a new attribute, whose name is intended to describe the business statement embodied by the relationship that contributes the foreign key.
The foreign key attribute of “player-team-id.team-id” in the PLAYER entity shows the syntax for defining and displaying a rolename. The first half (before the period) is the rolename. The second half is the original name of the foreign key, sometimes called the base name.
Once assigned to a foreign key, a rolename migrates across a relationship just like any other foreign key. For example, suppose that you extend the example to show which
PLAYERs have scored in various games throughout the season. The “player-team-id” rolename migrates to the SCORING PLAY entity (along with any other primary key attributes in the parent entity), as shown in the figure below:
Note: A rolename is also used to model compatibility with legacy data models where the foreign key often had a different name from the primary key.
Chapter 4: The Key-Based Data Model 35
