
- •Contents
- •Intended Audience
- •Typographical Conventions
- •Benefits of Data Modeling
- •Data Modeling Sessions
- •Session Roles
- •Sample IDEF1X Modeling Methodology
- •Logical Models
- •The Entity Relationship Diagram
- •The Key-Based Model
- •The Fully-Attributed (FA) Model
- •Physical Models
- •The Transformation Model
- •The DBMS Model
- •Benefits of Data Modeling in ERwin
- •The Entity-Relationship Diagram
- •Defining Entities and Attributes
- •Logical Relationships
- •Many-to-Many Relationships
- •Validating the Design of the Logical Model
- •Data Model Example
- •Identifying Types of Keys
- •Selecting a Primary Key
- •Designating Alternate Key Attributes
- •Designating Inversion Entry Attributes
- •Relationships and Foreign Key Attributes
- •Dependent and Independent Entities
- •Identifying Relationships
- •Non-Identifying Relationships
- •Rolenames
- •Naming Entities and Attributes
- •Synonyms, Homonyms, and Aliases
- •Entity Definitions
- •Definition References and Circularity
- •Constructing a Business Glossary
- •Attribute Definitions
- •Rolenames
- •Definitions and Business Rules
- •Relationship Cardinality
- •Cardinality in Non-Identifying Relationships
- •Referential Integrity
- •Reading 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 Versus Incomplete Subtype Structures
- •Inclusive and Exclusive Relationships
- •When to Create a Subtype Relationship
- •Overview of the Normal Forms
- •Functional Dependence (FD)
- •Full Functional Dependence
- •First Normal Form (1NF)
- •Second Normal Form (2NF)
- •Third Normal Form (3NF)
- •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?
- •ERwin Support for Normalization
- •First Normal Form Support
- •Second and Third Normal Form Support
- •Creating a Physical Model
- •Summary of Logical and Physical Model Components
- •Denormalization
- •Classification of Dependent Entities
- •Glossary
- •Index

Overview of the Normal Forms
Overview of the Normal Forms
The following are formal definitions for the most common normal forms.
Functional Dependence (FD)
Given an entity E, attribute B of E is functionally dependent on attribute A of E if and only if each value of A in E has associated with it precisely one value of B in E (at any one time). In other words, A uniquely determines B.
Full Functional Dependence
Given an entity E, an attribute B of E is fully functionally dependent on a set of attributes A of E if and only if B is functionally dependent on A and not functionally dependent on any proper subset of A.
First Normal Form (1NF)
An entity E is in 1NF if and only if all underlying values contain atomic values only. Any repeating groups (that might be found in legacy COBOL data structures, for example) must be eliminated.
Second Normal Form (2NF)
An entity E is in 2NF if it is in 1NF and every non-key attribute is fully dependent on the primary key. In other words, there are no partial key dependencies — dependence is on the entire key K of E and not on a proper subset of K.
Third Normal Form (3NF)
An entity E is in 3NF if it is in 2NF and no non-key attribute of E is dependent on another non-key attribute. There are several equivalent ways to express 3NF. Here is a second: An entity E is in 3NF if it is in 2NF and every non-key attribute is non-transitively dependent on the primary key. A third and final way is: An entity E is in 3NF if every attribute in E carries a fact about all of E (2NF) and only about E (as represented by the entity’s entire key and only by that key). One way to remember how to implement 3NF is using the following quip: “Each attribute relies on the key, the whole key, and nothing but the key, so help me Codd!”
7–2 ERwin Methods Guide