Loading learning content...
Entity-Relationship diagrams would be straightforward if everyone used the same notation. Unfortunately, the database industry has developed multiple competing notation systems, each with its own symbols, conventions, and visual vocabulary. When you move between organizations, academic resources, or modeling tools, you encounter different notations—sometimes dramatically different.
This diversity isn't arbitrary. Each notation evolved to address specific needs: Chen's original notation emphasized theoretical elegance, Crow's Foot prioritized intuitive readability, UML sought integration with object-oriented modeling, and Min-Max notation aimed for mathematical precision. Understanding these trade-offs helps you appreciate why different contexts prefer different notations.
Fluency in multiple notations is essential for professional database work. You'll read academic papers in Chen notation, collaborate with enterprise architects using Crow's Foot, review UML diagrams from software developers, and encounter tool-specific variations everywhere. This page equips you with the vocabulary to navigate this notational landscape with confidence.
By the end of this page, you will master the four major notation families (Chen, Crow's Foot, Min-Max, UML), understand the historical and practical reasons for their differences, translate between notations fluently, and make informed choices about which notation to use in different contexts.
Peter Chen introduced the Entity-Relationship model in his seminal 1976 paper. His notation, now called Chen notation or original ER notation, remains the foundation taught in computer science courses and appears in most academic textbooks.
| Concept | Symbol | Description |
|---|---|---|
| Entity | Rectangle | Box containing entity name |
| Relationship | Diamond | Rhombus containing relationship name |
| Attribute | Oval/Ellipse | Connected to entity or relationship |
| Key Attribute | Underlined text | Attribute name is underlined |
| Multivalued Attribute | Double oval | Two concentric ellipses |
| Derived Attribute | Dashed oval | Dashed border ellipse |
| Composite Attribute | Nested ovals | Sub-attributes branch from parent |
| Weak Entity | Double rectangle | Two concentric rectangles |
| Identifying Relationship | Double diamond | Two concentric diamonds |
Cardinality in Chen Notation:
Cardinality is expressed using numbers (1, N, or M) placed near the respective entities:
[ENTITY_A]───1───<RELATIONSHIP>───N───[ENTITY_B]
Reading Convention:
Clarifying the ambiguity:
There are two conventions for reading Chen notation cardinality:
Convention 1 (Near-side reading): The number indicates how many of the NEAR entity participate with one FAR entity.
1 near A means: one A per BN near B means: many B per AConvention 2 (Far-side reading): The number indicates how many of the FAR entity associate with one NEAR entity.
1 near A means: each A associates with one BN near B means: each B associates with potentially many... (this gets confusing)The most common convention (and the one we use):
[DEPARTMENT]───1───<EMPLOYS>───N───[EMPLOYEE]
↑ ↑
One department Many employees
can employ... can work in...
Read as: One department employs many employees.
Participation Constraints in Chen Notation:
[DEPARTMENT]────────<EMPLOYS>════════[EMPLOYEE]
↑ ↑
Single line Double line
(partial: dept (total: every
may have no employee must
employees) have a dept)
Complete Chen Diagram Example:
┌──────────┐
│ name │
└────┬─────┘
│
┌──────────────┐ │ ┌──────────────┐
│ DEPARTMENT │──────1──────< EMPLOYS >──────N──────│ EMPLOYEE │
└──────┬───────┘ └──────────────┘ └───────┬───────┘
│ │
┌───┴───┐ ┌────┴────┐
│dept_id│ │emp_id │
└───────┘ │(underln)│
(underlined = PK) └─────────┘
Chen notation excels in educational settings and conceptual modeling phases. Its explicit attribute ovals and relationship diamonds clearly distinguish concepts. However, complex diagrams become cluttered—all those ovals consume significant space. Industry practice often prefers more compact notations for large schemas.
Crow's Foot notation, also called Information Engineering (IE) notation, is perhaps the most widely used notation in industry practice. Developed in the 1980s, it emphasizes visual intuition: the symbols look like their meaning, making diagrams immediately readable even without training.
| Symbol | Name | Meaning | Visual Mnemonic |
|---|---|---|---|
| ⅄ (three-prong fork) | Crow's Foot | Many (unbounded) | Fork holds many items |
| | (single line) | Hash Mark | One (exactly one) | Single stake = one item |
| ○ (circle) | Circle | Zero (optional) | Empty circle = nothing required |
| || (two lines) | Double Bar | One and only one | Emphatic single |
| |○ (line + circle) | Zero or One | Optional, max one | Could be empty OR one |
| ⅄| (fork + line) | One or Many | Mandatory, unbounded | At least one, possibly many |
| ⅄○ (fork + circle) | Zero or Many | Optional, unbounded | Could be none, could be many |
Reading Crow's Foot Diagrams:
The key insight: look at the symbol at the FAR END from where you're reading.
[DEPARTMENT] ||──────────⅄| [EMPLOYEE]
↑ ↑
(at dept end) (at employee end)
Reading from DEPARTMENT: Look at the symbol near EMPLOYEE → crow's foot with bar (⅄|) Meaning: One department relates to ONE OR MANY employees.
Reading from EMPLOYEE: Look at the symbol near DEPARTMENT → double bar (||) Meaning: One employee relates to ONE AND ONLY ONE department.
Combined reading: "A department has one or many employees; an employee belongs to exactly one department." This is a 1:N relationship.
Representing All Cardinality Types:
One-to-One (1:1):
[PERSON] ||──────────|| [PASSPORT]
Each person has exactly one passport; each passport belongs to exactly one person.
One-to-Many (1:N):
[CUSTOMER] ||──────────⅄| [ORDER]
Each customer has one or many orders; each order belongs to exactly one customer.
Many-to-Many (M:N):
[STUDENT] ⅄|──────────⅄| [COURSE]
Each student enrolls in one or many courses; each course has one or many students.
Note on optionality: The above assume total participation. For optional:
[EMPLOYEE] |○──────────○⅄ [PROJECT]
Each employee may work on zero or many projects; each project may have zero or many employees.
Entity Representation in Crow's Foot:
Unlike Chen, entities include attributes inside the box:
┌─────────────────────┐
│ EMPLOYEE │
├─────────────────────┤
│ PK employee_id │
│ name │
│ email │
│ FK department_id │
└─────────────────────┘
Common conventions:
PK = Primary KeyFK = Foreign KeyUK = Unique KeyNN = Not NullRelationships are lines connecting boxes—no separate relationship symbol (unlike Chen's diamonds).
Different tools and authors render Crow's Foot slightly differently. The crow's foot might appear as three separate lines, a proper fork ⅄, or even an arrow-like shape. The circle might be hollow or filled differently. The meaning remains consistent; only the rendering varies.
Min-Max notation, also called structural notation or (min,max) notation, takes a mathematical approach: explicitly stating the minimum and maximum cardinality as an ordered pair. This notation is unambiguous but requires understanding the convention for interpretation.
Basic Syntax:
[ENTITY]──(min,max)──<RELATIONSHIP>──(min,max)──[ENTITY]
The (min,max) pair specifies:
min: The minimum number of times an entity participates in the relationshipmax: The maximum number of times an entity participates in the relationshipN or * denotes unbounded (no maximum)Example:
[DEPARTMENT]──(0,N)──<EMPLOYS>──(1,1)──[EMPLOYEE]
↑ ↑
Interpretation:
There are two conventions for where (min,max) is placed: (1) Near the entity it describes—the participation of THAT entity, or (2) Near the entity at the OTHER end—the participation of the FAR entity. Most texts use convention #1 (near the entity it describes). Always verify which convention is in use.
| (min,max) | Meaning | Participation | Equivalent Crow's Foot |
|---|---|---|---|
| (0,1) | Zero or one | Optional, at most one | |○ |
| (1,1) | Exactly one | Mandatory, exactly one | || |
| (0,N) | Zero or more | Optional, unbounded | ○⅄ |
| (1,N) | One or more | Mandatory, unbounded | |⅄ |
| (2,5) | Between 2 and 5 | Specific range | (no direct equivalent) |
Representing All Cardinality Types:
One-to-One (1:1):
[PERSON]──(1,1)──<HAS>──(1,1)──[PASSPORT]
Each person has exactly one passport (1,1); each passport belongs to exactly one person (1,1).
One-to-Many (1:N):
[DEPARTMENT]──(1,N)──<EMPLOYS>──(1,1)──[EMPLOYEE]
Each department has 1 to N employees; each employee belongs to exactly one department.
Many-to-Many (M:N):
[STUDENT]──(0,N)──<ENROLLS>──(0,N)──[COURSE]
Each student enrolls in 0 to N courses; each course has 0 to N students.
Note the flexibility:
[TEAM]──(5,11)──<HAS_MEMBER>──(1,3)──[PLAYER]
Each team has 5 to 11 players; each player belongs to 1 to 3 teams.
This expresses specific cardinality constraints impossible in basic Chen or Crow's Foot notation!
Advantages of Min-Max Notation:
Disadvantages:
Unified Modeling Language (UML) is not strictly an ER notation—it's a software modeling standard. However, UML Class Diagrams are frequently used to model database schemas, especially in object-oriented development contexts where the same diagram serves both application and database design.
UML Class Diagram Basics:
┌─────────────────────────┐
│ «entity» │
│ Employee │
├─────────────────────────┤
│ - employeeId: int │
│ - name: String │
│ - salary: decimal │
├─────────────────────────┤
│ + getSalary(): decimal │
│ + promote(): void │
└─────────────────────────┘
Three compartments:
For database modeling, the third compartment is typically removed, leaving just name and attributes.
UML Multiplicity:
UML uses multiplicity at association ends:
[Employee] ────────────── [Department]
1..* 1
Multiplicity Syntax:
| Notation | Meaning |
|---|---|
1 | Exactly one |
0..1 | Zero or one |
* | Zero or more (unbounded) |
1..* | One or more |
0..* | Zero or more (explicit) |
2..5 | Between 2 and 5 |
3 | Exactly 3 |
Reading Convention: The multiplicity at an end indicates how many of THAT class can associate with one instance of the OTHER class.
[Employee]──────────[Department]
0..* 1
↑ ↑
Many employees One department
per department per employee
| Relationship | Chen | Crow's Foot | Min-Max | UML |
|---|---|---|---|---|
| 1:1 (both mandatory) | 1────1 | ||────|| | (1,1)────(1,1) | 1────1 |
| 1:1 (B optional) | 1────1 | ||────|○ | (1,1)────(0,1) | 1────0..1 |
| 1:N (mandatory) | 1────N | ||────⅄| | (1,N)────(1,1) | 1────1..* |
| 1:N (optional many) | 1────N | |○────○⅄ | (0,1)────(0,N) | 0..1────* |
| M:N (mandatory) | M────N | ⅄|────⅄| | (1,N)────(1,N) | 1..────1.. |
| M:N (optional) | M────N | ○⅄────○⅄ | (0,N)────(0,N) | ──── |
UML Association Types:
UML distinguishes several association types relevant to ER modeling:
Association (plain line):
[Employee]────────[Project]
General relationship, semantic meaning determined by context.
Aggregation (hollow diamond):
[Department]◇────────[Employee]
'Has-a' relationship; parts can exist independently of whole.
Composition (filled diamond):
[Order]◆────────[OrderItem]
Strong 'owns' relationship; parts cannot exist without whole.
For database modeling:
UML is particularly useful when both application and database are being designed together. The same class diagram can inform object-relational mapping (ORM) configuration. Tools like Enterprise Architect, Visual Paradigm, and even MySQL Workbench support UML-style diagrams for database design.
IDEF1X (Integration Definition for Information Modeling) is a data modeling technique developed in the 1980s, standardized by NIST. It's widely used in government, defense, and large enterprise contexts, particularly in the United States. While less common in startup environments, understanding IDEF1X is valuable for working with legacy systems and government contracts.
| Concept | Symbol | Description |
|---|---|---|
| Independent Entity | Rectangle with square corners | Entity whose existence doesn't depend on another entity |
| Dependent Entity | Rectangle with rounded corners | Entity that depends on another for identity |
| Identifying Relationship | Solid line | Child inherits parent PK as part of its PK |
| Non-Identifying Relationship | Dashed line | Child references parent but has its own PK |
| Cardinality (many) | Filled dot | Placed at the 'many' end |
| Cardinality (one) | No symbol or line | The 'one' end has no special symbol |
| Optional (zero) | Diamond | Zero allowed (hollow diamond at optional end) |
IDEF1X Diagram Example:
┌─────────────────┐ ┌──────────────────┐
│ DEPARTMENT │ │ EMPLOYEE │
├─────────────────┤ ├──────────────────┤
│ department_id │══════════●│ employee_id │
│ name │ │ name │
│ location │ │ department_id(FK)│
└─────────────────┘ └──────────────────┘
↑ ↑
Solid line Filled dot
(identifying (many side)
or not)
Key Differences from Other Notations:
Identifying vs. Non-Identifying Relationships:
This is IDEF1X's distinctive contribution to data modeling:
Identifying Relationship (solid line):
┌─────────────┐ ╭─────────────╮
│ ORDER │════════●│ LINE_ITEM │
├─────────────┤ ├─────────────┤
│ order_id │ │ order_id(PK)│ ← PK inherited from parent
│ order_date │ │ line_num(PK)│ ← Plus local discriminator
└─────────────┘ │ product_id │
╰─────────────╯
(rounded corners = dependent)
Non-Identifying Relationship (dashed line):
┌─────────────┐ ┌─────────────┐
│ DEPARTMENT │- - - - ●│ EMPLOYEE │
├─────────────┤ ├─────────────┤
│ dept_id │ │ emp_id(PK) │ ← Own PK
│ name │ │ dept_id(FK) │ ← Just a reference
└─────────────┘ └─────────────┘
(dashed = non-identifying)
While IDEF1X may seem legacy, it's still required in government contracts and some enterprise environments. Its rigorous treatment of entity dependency and PK inheritance is more precise than casual ER notations. Understanding IDEF1X concepts (especially identifying relationships) improves your modeling in any notation.
With multiple notations available, how do you choose which to use? The answer depends on context, audience, tooling, and organizational standards.
| Context | Recommended Notation | Reason |
|---|---|---|
| Academic coursework | Chen | Matches textbooks; emphasizes concepts |
| Database design (industry) | Crow's Foot | Most widely understood; tool support |
| Formal specification | Min-Max | Mathematical precision; specific ranges |
| Object-oriented project | UML | Consistency with application diagrams |
| Government/Defense | IDEF1X | Standard requirement; precise dependency modeling |
| Quick whiteboard sketch | Crow's Foot simplified | Intuitive; minimal symbols needed |
| Complex constraints | Min-Max or UML | Can express (2,5) type ranges |
Decision Framework:
1. Check organizational standards Many organizations mandate specific notations. Check before creating diagrams.
2. Consider your tools Your modeling tool may default to a notation:
3. Know your audience
4. Match complexity to notation
The most valuable skill isn't choosing the 'best' notation—it's being fluent in all major notations. You'll encounter diagrams you didn't create. Being able to read any notation, and create diagrams in whatever notation your team prefers, makes you a more effective collaborator.
Being able to translate between notations is essential when working with diverse teams, tools, or documentation sources. Here's a systematic approach to translation:
Translation Process:
Step 1: Identify the source notation Look for distinctive markers:
Step 2: Extract the semantic meaning For each relationship, determine:
Step 3: Render in target notation Apply the target notation's symbols to the semantic meaning.
Translation Example:
Source (Chen):
[STUDENT]────N────<ENROLLS>────M────[COURSE]
│
┌───┴───┐
│ grade │
└───────┘
Semantic extraction:
Target (Crow's Foot):
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ STUDENT │ │ ENROLLMENT │ │ COURSE │
├─────────────┤ ├─────────────┤ ├─────────────┤
│ student_id │⅄○──────||│ student_id │||──────○⅄│ course_id │
│ name │ │ course_id │ │ title │
└─────────────┘ │ grade │ └─────────────┘
└─────────────┘
Note: M:N becomes two 1:N relationships through a junction table. The relationship attribute (grade) moves to the junction table.
Target (Min-Max):
[STUDENT]──(0,N)──<ENROLLS>──(0,N)──[COURSE]
│
{grade}
Target (UML):
[Student] *─────────────────* [Course]
\ /
\ /
0..* 0..*
\ /
\ /
┌────────────────┐
│ Enrollment │
├────────────────┤
│ grade: String │
└────────────────┘
(Association Class)
UML handles M:N with relationship attributes using an association class—a class attached to the association line.
Some notations express constraints that others cannot. For example, Min-Max's (2,5) cannot be directly expressed in basic Crow's Foot. IDEF1X's identifying relationship concept doesn't have a direct Chen equivalent. When translating, document any constraints that cannot be visually represented.
We have thoroughly explored the landscape of ER and data modeling notations. Let's consolidate the essential takeaways:
What's Next:
With cardinality types (1:1, 1:N, M:N) and notation styles now mastered, we complete this module by exploring minimum cardinality—the often-overlooked constraint that specifies whether participation is mandatory or optional. This final piece completes your cardinality toolkit for comprehensive relationship modeling.
You can now read, create, and translate between all major ER notation styles. This fluency ensures you can communicate effectively with any database professional, understand any documentation, and use any modeling tool in the industry.