Loading content...
Entity-Relationship diagrams serve as the universal visual language for communicating database designs. Just as natural languages have dialects, ER modeling has developed multiple notation systems—each with its own conventions, strengths, and communities of practice. A database professional must be fluent in reading these different systems, as you'll encounter Chen notation in academic textbooks, Crow's Foot in enterprise tools, UML in software architecture documents, and various other conventions across different organizations and tools.
This page consolidates and deepens your understanding of how participation constraints are expressed across the major ER notation systems. You'll learn not just to recognize these notations, but to understand their design philosophies and translate fluently between them.
By the end of this page, you will master participation constraint notation across Chen, Crow's Foot (IE), UML, Min-Max, IDEF1X, and Barker notations. You'll understand the historical context and design rationale behind each system, develop fluency in translating between notations, and recognize which notation is appropriate for different contexts and audiences.
Historical Context:
Peter Chen introduced the Entity-Relationship model in his landmark 1976 paper, "The Entity-Relationship Model—Toward a Unified View of Data." This foundational work established not only the conceptual framework but also the original notation system that many academic institutions still teach today.
Chen notation emphasizes the semantic aspects of data modeling—focusing on meaningful representation over implementation details. Its geometric shapes create clear visual distinction between different modeling concepts.
Core Symbols:
| Symbol | Meaning | Description |
|---|---|---|
| Rectangle □ | Entity Type | A thing of significance about which data is stored |
| Diamond ◇ | Relationship Type | An association between entity types |
| Oval ○ | Attribute | A property of an entity or relationship |
| Line ─ | Connection | Links entities to relationships |
| Double Line ═ | Total Participation | Entity must participate in relationship |
| Double Rectangle ▢ | Weak Entity | Entity dependent on another for identification |
Participation Constraint Representation:
Chen notation uses line thickness to distinguish participation types:
CHEN NOTATION - PARTICIPATION CONSTRAINTS
Total Participation (double line):
┌──────────┐ ◇──────────◇ ┌──────────────┐
│ ORDER │═══════│ PLACED_BY│───────│ CUSTOMER │
└──────────┘ ◇──────────◇ └──────────────┘
║ │
Total: Every Partial: Not every
order is placed customer has
by a customer placed an order
Partial Participation (single line):
┌──────────────┐ ◇──────────◇ ┌──────────────┐
│ DEPARTMENT │───────│ HAS │───────│ MANAGER │
└──────────────┘ ◇──────────◇ └──────────────┘
│ │
Partial: Some Partial: Not every
departments may employee manages
not have managers a department
Cardinality in Chen Notation:
Chen's original notation expressed cardinality with numbers (1, N, M) placed near the entity:
┌──────────┐ N ◇──────────◇ 1 ┌──────────────┐
│ EMPLOYEE │═══════│ WORKS_FOR │───────│ DEPARTMENT │
└──────────┘ ◇──────────◇ └──────────────┘
Interpretation:
- N (near EMPLOYEE): Many employees can work for one department
- 1 (near DEPARTMENT): Each employee works for one department
- Double line on EMPLOYEE: Total participation (every employee works for some department)
- Single line on DEPARTMENT: Partial participation (a department might have no employees)
Over the decades, various textbooks have introduced modifications to Chen's original notation. Some use (min,max) pairs inside parentheses, others use different line styles, and some extend the notation for EER concepts. Always verify which variation is expected in your specific context.
Strengths and Limitations:
| Strengths | Limitations |
|---|---|
| Intuitive geometric shapes | Can become cluttered for large diagrams |
| Clear semantic emphasis | Less compact than alternatives |
| Excellent for teaching concepts | Cardinality notation less precise |
| Widely understood in academia | Less common in industry tools |
| Strong EER extensions available | Requires more diagram space |
Best Used When:
Historical Context:
Crow's Foot notation, also known as Information Engineering (IE) notation, was developed in the 1980s as part of the Information Engineering methodology promoted by James Martin and Clive Finkelstein. It became the de facto standard in enterprise software development and remains dominant in commercial database design tools.
The notation gets its name from the three-pronged "crow's foot" symbol used to indicate "many" in a relationship.
Core Symbols:
Crow's Foot uses a minimalist symbol set focused on the relationship endpoints:
CARDINALITY SYMBOLS:
──────│ One (and only one)
──────○ Zero or one
──────< Many (one or more)
──────○< Zero, one, or many
COMBINED SYMBOLS (Participation + Cardinality):
──────│| Exactly one (mandatory, single)
──────○| Zero or one (optional, single)
──────|< One or more (mandatory, multiple)
──────○< Zero or more (optional, multiple)
The key insight is that Crow's Foot combines participation (mandatory/optional) and cardinality (one/many) into a single compound symbol at each end of the relationship line.
Participation Constraint Representation:
In Crow's Foot notation:
CROW'S FOOT NOTATION - PARTICIPATION EXAMPLES
Example 1: Order-Customer Relationship
┌─────────┐ ┌──────────┐
│ ORDER │──────||─────────○<─────│ CUSTOMER │
└─────────┘ └──────────┘
Left side (ORDER): || = Must have exactly 1 customer (Total/Mandatory)
Right side (CUSTOMER): ○< = May have 0 or more orders (Partial/Optional)
Reading: "Each ORDER is placed by exactly one CUSTOMER.
Each CUSTOMER may place zero or more ORDERS."
Example 2: Employee-Project Assignment
┌──────────┐ ┌─────────┐
│ EMPLOYEE │──────○<────────○<──────│ PROJECT │
└──────────┘ └─────────┘
works_on
Both sides: ○< = Zero or more (Partial/Optional, Many)
Reading: "Each EMPLOYEE may work on zero or more PROJECTS.
Each PROJECT may have zero or more EMPLOYEES."
Example 3: Manager-Department
┌──────────┐ ┌────────────┐
│ EMPLOYEE │──────○|────────|<──────│ DEPARTMENT │
└──────────┘ └────────────┘
manages
Left side (EMPLOYEE): ○| = Zero or one (Optional, One)
Right side (DEPARTMENT): |< = One or more (Mandatory, Many)
Reading: "Each EMPLOYEE manages zero or one DEPARTMENT.
Each DEPARTMENT is managed by one or more EMPLOYEES."
Each endpoint has two components: the inner symbol (touching the entity) indicates the minimum (○ for zero, | for one), and the outer symbol indicates the maximum (| for one, < for many). Read left to right: minimum-maximum. So ○< means "zero to many" (partial, multiple) while |< means "one to many" (total, multiple).
| Symbol Combination | Min | Max | Participation | Common Description |
|---|---|---|---|---|
| ─||─ | 1 | 1 | Total | Exactly one (mandatory one) |
| ─○|─ | 0 | 1 | Partial | Zero or one (optional one) |
| ─|<─ | 1 | N | Total | One or more (mandatory many) |
| ─○<─ | 0 | N | Partial | Zero or more (optional many) |
Strengths and Limitations:
| Strengths | Limitations |
|---|---|
| Compact and efficient | Symbols can be small and hard to read |
| Combines participation and cardinality | Less intuitive for beginners |
| Dominant in industry tools | No explicit relationship names (in some versions) |
| Easily readable entity boxes | Weaker EER extension support |
| Efficient for large diagrams | Standardization varies by tool |
Best Used When:
Historical Context:
The Unified Modeling Language (UML) emerged in the 1990s from the consolidation of various object-oriented modeling approaches (Booch, OMT, OOSE). While UML is primarily a software modeling language, its class diagrams are frequently used for data modeling, especially in organizations that use object-relational mapping (ORM) or practice domain-driven design.
UML's approach to data modeling differs from traditional ER notation in that it emphasizes objects and classes rather than entities and relationships. However, the concepts map closely enough that UML is a viable alternative for database design.
Core Elements:
UML CLASS NOTATION:
┌────────────────────────┐
│ ClassName │ Class name (equivalent to Entity)
├────────────────────────┤
│ - attribute1: Type │ Attributes with types and visibility
│ - attribute2: Type │ - = private, + = public, # = protected
│ + attribute3: Type │
├────────────────────────┤
│ + method1(): RetType │ Methods (not used in pure data modeling)
│ + method2(param): void │
└────────────────────────┘
For data modeling, the method compartment is often omitted.
Participation and Cardinality: Multiplicity Notation
UML expresses participation constraints through multiplicity specifications—explicit min..max ranges at each association end:
UML MULTIPLICITY EXAMPLES:
┌─────────┐ 1..1 0..* ┌──────────┐
│ Order │─────────────────────────────────│ Customer │
└─────────┘ └──────────┘
places
Left (Order): 1..1 = Each order has exactly 1 customer
= Total participation, single
Right (Customer): 0..* = Each customer has 0 to many orders
= Partial participation, multiple
MULTIPLICITY SYNTAX:
1 = Exactly one (equivalent to 1..1)
0..1 = Zero or one (optional, single)
* = Zero or more (equivalent to 0..*)
1..* = One or more (mandatory, multiple)
n..m = Minimum n, maximum m (e.g., 2..5)
n = Exactly n (e.g., 3 = exactly 3)
Participation Constraint Mapping:
| UML Multiplicity | Participation Type | Description |
|---|---|---|
| 1 or 1..1 | Total (min=1) | Exactly one required |
| 1..* | Total (min=1) | One or more required |
| 0..1 | Partial (min=0) | Zero or one allowed |
| * or 0..* | Partial (min=0) | Zero or more allowed |
| n..m where n>0 | Total (min>0) | At least n required |
| 0..m | Partial (min=0) | Up to m allowed |
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
UML NOTATION COMPREHENSIVE EXAMPLES Example 1: Department-Employee (1:N with mixed participation)┌────────────────────┐ 1..1 0..* ┌────────────────────┐│ Department │◆─────────────────│ Employee │├────────────────────┤ ├────────────────────┤│ - deptId: int │ employs │ - empId: int ││ - name: string │ │ - name: string ││ - budget: decimal │ │ - salary: decimal │└────────────────────┘ └────────────────────┘ Reading: "Each Department employs 0 to many Employees. Each Employee works for exactly 1 Department." The filled diamond (◆) indicates composition (strong ownership).An open diamond (◇) would indicate aggregation (weaker association). Example 2: Project-Employee (M:N via association class)┌────────────────────┐ ┌────────────────────┐│ Project │ 0..* 0..* │ Employee │├────────────────────┤◇───────────────◇├────────────────────┤│ - projectId: int │ │ - empId: int ││ - name: string │ │ │ - name: string │└────────────────────┘ │ └────────────────────┘ │ ┌────────┴────────┐ │ Assignment │ ├─────────────────┤ │ - role: string │ Association class │ - hours: int │ (equivalent to bridge table) │ - startDate: dt │ └─────────────────┘ Reading: "Each Project has 0..* Employees. Each Employee works on 0..* Projects. The Assignment association class captures relationship attributes." Example 3: Inheritance/Generalization ┌────────────────────┐ │ Person │ ├────────────────────┤ │ - personId: int │ │ - name: string │ └─────────┬──────────┘ │ △ (generalization) ┌─────────┴─────────┐ │ │ ┌─────────┴───────┐ ┌────────┴────────┐ │ Student │ │ Instructor │ ├─────────────────┤ ├─────────────────┤ │ - studentId: id │ │ - instructorId │ │ - gpa: float │ │ - rank: string │ └─────────────────┘ └─────────────────┘UML distinguishes between association (plain line), aggregation (open diamond ◇), and composition (filled diamond ◆). For participation constraints, composition often implies total participation of the "part" in the "whole." If a Building is deleted, its Rooms are typically deleted too—reflecting existence dependency.
Strengths and Limitations:
| Strengths | Limitations |
|---|---|
| Explicit min..max is unambiguous | More verbose than Crow's Foot |
| Widely understood in software development | Not ER-specific (may confuse mixing with OO concepts) |
| Strong tool support (Enterprise Architect, Visual Paradigm) | Association classes can be complex |
| Natural fit for ORM-based development | Less common in traditional DBA contexts |
| Extends easily to full software models | Generalization/specialization may differ from EER |
Best Used When:
Historical Context:
Min-Max notation (also called structural constraints or participation constraints notation) emerged as an enhancement to Chen's original approach, providing explicit specification of both minimum and maximum cardinalities. It's particularly associated with the work of researchers who sought more precise semantic modeling.
The Notation:
Min-Max notation places (min, max) pairs near each entity's connection to the relationship diamond. The first number indicates the minimum number of relationship instances each entity must participate in; the second indicates the maximum.
MIN-MAX NOTATION STRUCTURE:
(min1, max1) (min2, max2)
┌──────────┐ ←───→ ◇─────◇ ←───→ ┌──────────┐
│ ENTITY_A │─────────────│ REL │────────────│ ENTITY_B │
└──────────┘ ◇─────◇ └──────────┘
(min1, max1): Participation constraint for ENTITY_A
(min2, max2): Participation constraint for ENTITY_B
min = 0: Partial participation (optional)
min ≥ 1: Total participation (mandatory)
max = 1: At most one relationship
max = N or *: No upper limit
Detailed Examples:
EXAMPLE 1: Employee works for Department
(1, 1) (0, N)
┌──────────┐ ─── ◇───────────◇ ─── ┌────────────┐
│ EMPLOYEE │──────│ WORKS_FOR │──────│ DEPARTMENT │
└──────────┘ ◇───────────◇ └────────────┘
Employee (1,1): Each employee works for exactly 1 department
min=1 → Total participation
max=1 → Cannot work for multiple departments
Department (0,N): Each department has 0 to many employees
min=0 → Partial participation
max=N → No limit on employees
EXAMPLE 2: Student enrolls in Course
(3, 8) (10, 50)
┌─────────┐ ─── ◇─────────◇ ─── ┌────────┐
│ STUDENT │─────────│ ENROLLS │─────────│ COURSE │
└─────────┘ ◇─────────◇ └────────┘
Student (3,8): Each student must enroll in 3 to 8 courses
min=3 → Total participation (full-time requirement)
max=8 → Credit hour limits
Course (10,50): Each course must have 10 to 50 students
min=10 → Course runs only with enough enrollment
max=50 → Classroom capacity limit
EXAMPLE 3: Project-Employee Assignment
(0, N) (0, N)
┌─────────┐ ─── ◇──────────◇ ─── ┌──────────┐
│ PROJECT │─────────│ ASSIGNED │─────────│ EMPLOYEE │
└─────────┘ ◇──────────◇ └──────────┘
Project (0,N): Each project may have 0 to N employees
Partial participation (new projects have no team yet)
Employee (0,N): Each employee may work on 0 to N projects
Partial participation (some employees on leave/admin)
Min-Max notation is exceptionally clear because the participation constraint is stated numerically. There's no need to memorize symbol meanings—(1,N) unambiguously means "at least 1, no upper limit." This makes it ideal for documentation and specification where precision matters more than visual compactness.
| Pattern | Participation | Meaning | Example Use Case |
|---|---|---|---|
| (0, 1) | Partial | Optional, at most one | Employee HAS Manager |
| (0, N) | Partial | Optional, no limit | Customer PLACES Order |
| (1, 1) | Total | Exactly one required | Order PLACED_BY Customer |
| (1, N) | Total | At least one, no limit | Course HAS Section |
| (m, n) | Total (if m>0) | Specific range | Student ENROLLS Course (3,8) |
Advantages of Min-Max Notation:
Limitations:
Best Used When:
Beyond the major notation systems, several specialized alternatives exist for particular contexts:
IDEF1X Notation:
IDEF1X (Integration Definition for Information Modeling) was developed by the U.S. Air Force and became a Federal Information Processing Standard (FIPS). It remains influential in defense, government, and large enterprise contexts.
Key Features:
IDEF1X EXAMPLE:
┌────────────────┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ┐
│ DEPARTMENT │──────── PROJECT_ASSIGN
│ (independent)│ │ (dependent) │
└────────────────┘ └ ─ ─ ─ ─ ─ ─ ─ ─ ┘
│
│ solid line = mandatory (total participation)
│
┌────────────────┐
│ EMPLOYEE │
│ (independent)│
└────────────────┘
Barker Notation (Oracle):
Richard Barker developed this notation while at Oracle, and it became the standard in Oracle's CASE tools. It's sometimes called the "Oracle notation."
Key Features:
BARKER NOTATION EXAMPLE:
┌─────────────────┐ ┌─────────────────┐
│ │ │ │
│ DEPARTMENT ├────────◀───────┤ EMPLOYEE │
│ │ is assigned to │ │
└─────────────────┘──────────────▶─└─────────────────┘
contains
Solid half-line (─) near EMPLOYEE: Employee MUST be assigned to a department
Dashed half-line (- -) near DEPARTMENT: Department MAY contain employees
Crow's foot at EMPLOYEE: Many employees per department
Bachman Notation:
Charles Bachman developed early data structure diagrams for network databases. While less common today, Bachman diagrams influenced later notations.
Key Features:
| Notation | Primary Domain | Participation Indicator | Key Strength |
|---|---|---|---|
| Chen | Academia | Double vs single line | Conceptual clarity |
| Crow's Foot (IE) | Enterprise tools | Circle vs bar symbol | Industry standard |
| UML | Software development | Multiplicity (0.., 1..) | OO integration |
| Min-Max | Formal specification | Explicit (min,max) pairs | Precision |
| IDEF1X | Government/Defense | Solid vs dashed lines | Rigorous modeling |
| Barker | Oracle environments | Solid vs dashed half-lines | Readable verb phrases |
While you should be fluent in multiple notations, avoid mixing notations within a single project or document. Choose one notation based on your audience and tools, then use it consistently. Include a notation legend or reference at the start of documentation for clarity.
Fluency in notation translation is a practical skill for database professionals who work across different tools, teams, and documentation sources.
Translation Framework:
To translate participation constraints between notations:
Identify the semantic meaning:
Apply the target notation's convention:
| Semantic Meaning | Chen | Crow's Foot | UML | Min-Max |
|---|---|---|---|---|
| Optional, one | Single line to 1 | ○| | 0..1 | (0,1) |
| Optional, many | Single line to N | ○< | 0..* | (0,N) |
| Mandatory, one | Double line to 1 | || | 1..1 or 1 | (1,1) |
| Mandatory, many | Double line to N | |< | 1..* | (1,N) |
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
COMPLETE TRANSLATION EXAMPLEScenario: "Every order must be placed by exactly one customer. A customer may place zero or more orders." ═══════════════════════════════════════════════════════════════ CHEN NOTATION:┌─────────┐ ◇─────────◇ ┌──────────┐│ ORDER │════════│ PLACED_BY│────────│ CUSTOMER │└─────────┘ 1 ◇─────────◇ N └──────────┘ ↑ ↑ Double line Single line (Total: must) (Partial: may) ═══════════════════════════════════════════════════════════════ CROW'S FOOT NOTATION:┌─────────┐ ┌──────────┐│ ORDER │────────||────────○<────│ CUSTOMER │└─────────┘ └──────────┘ ↑ ↑ Exactly one Zero or more ═══════════════════════════════════════════════════════════════ UML NOTATION:┌─────────┐ 1..1 0..* ┌──────────┐│ Order │─────────────────────────│ Customer │└─────────┘ placedBy └──────────┘ ═══════════════════════════════════════════════════════════════ MIN-MAX NOTATION: (1, 1) (0, N)┌─────────┐ ←──→ ◇────────◇ ←──→ ┌──────────┐│ ORDER │────────────│PLACED_BY│───────────│ CUSTOMER │└─────────┘ ◇────────◇ └──────────┘ ═══════════════════════════════════════════════════════════════ IDEF1X:┌─────────────────┐ ━━━━━━━━━━━ ┌─────────────────┐│ ORDER │──────────────│ CUSTOMER ││ (dependent) │ │ (independent) │└─────────────────┘ └─────────────────┘ ↑ Solid line from ORDER (mandatory participation)Tool-Specific Translation Tips:
ERwin to UML: ERwin uses Crow's Foot by default. When exporting to UML tools, map ○< to 0..* and |< to 1..*.
Academic papers to tools: Academic literature often uses Chen notation. Translate double lines to mandatory (|| or |<) and single lines to optional (○| or ○<) when implementing.
Lucidchart/draw.io: These general-purpose tools support multiple notations via shape libraries. Select one notation and stick with it—they don't auto-translate.
Forward/Reverse Engineering: Many tools can reverse engineer existing databases. Check that they correctly interpret NOT NULL foreign keys as mandatory participation.
Common Translation Errors:
We've surveyed the major ER notation systems and their approaches to representing participation constraints. This knowledge enables you to work confidently across academic, enterprise, and software development contexts.
What's Next:
With notation fundamentals established, we'll explore how participation constraints express business rules—translating natural language requirements into precise constraint specifications that ensure database integrity.
You can now read, create, and translate ER diagrams across major notation systems. This cross-notation fluency is essential for working in diverse teams, understanding legacy documentation, and using various database design tools. Next, we'll see how these notations connect to real business rules.