01Home 02Work With Me 03Speaking 04Research 05Teaching 06Students 07Products 08News 09Writing 10About 11Platform New 12Contact 13Curriculum Vitae
Data Modelling

Attributes & Participation

The details that decide whether a model is right or wrong. Break attributes into their parts, then read participation constraints — when every row must join in, and when it's optional — through two guided activities.

3 min readFree, no login
Data Modelling The first slide of Attributes & Participation

This is the written version of an interactive, slide-by-slide deck. The live diagrams, worked examples and practice quiz are in the interactive deck.

In this lesson

  • Composite attrs
  • Partial
  • Total
  • Activities + answers

Composite Attributes & Participation Constraints

ER Chen's Notation — Lesson 4 of 5

Flashcards

What is a composite attribute?

An attribute made up of multiple sub-attributes, each holding a distinct piece of information. Example: Address = StreetNumber + StreetName + City + PostCode.

How is a composite attribute drawn in Chen's notation?

An outer ellipse (the composite parent, drawn with a thicker teal border) with smaller sub-attribute ellipses connected to it by lines — like branches.

Give an example of a composite attribute in a booking system.

GuestName (FirstName, LastName), CheckInAddress (StreetName, Suburb, City, PostCode), or ContactDetails (PhoneNumber, Email).

Why break an attribute into composite sub-attributes?

To allow querying or processing individual parts — e.g., sorting by LastName, filtering by City, or extracting PostCode for delivery routing.

What is the difference between composite and multivalued?

Composite: ONE value split into parts (Name = First + Last). Multivalued: MULTIPLE separate values ({PhoneNumber} = 021…, 09…). Different notations and SQL mappings.

How does a composite attribute map to SQL?

Each sub-attribute becomes its own column. The composite parent itself does NOT become a column. E.g., Address → street_name, city, post_code columns.

What is a participation constraint?

A rule specifying whether ALL entities in an entity set (total participation) or just SOME (partial participation) must participate in at least one instance of a relationship.

What does total participation mean and how is it drawn?

Every entity instance MUST participate in at least one relationship instance. Drawn as a DOUBLE LINE (══) between the entity and the relationship diamond.

What does partial participation mean and how is it drawn?

Some entity instances do NOT have to participate in any relationship instance. Drawn as a SINGLE LINE (──) — the default notation.

A business rule says "Every ORDER must belong to a CUSTOMER". What participation does ORDER have?

Total participation — drawn as a double line from ORDER to the places/belongs_to relationship diamond. Maps to NOT NULL FK in SQL.

A business rule says "A CUSTOMER may or may not have placed an ORDER". What participation does CUSTOMER have?

Partial participation — drawn as a single line (default) from CUSTOMER to the relationship diamond. The FK column in ORDER allows NULL.

How do you identify total vs. partial participation from a business rule?

Total: key words are "must", "every", "all", "required", "always". Partial: key words are "may", "can", "optional", "might", "not necessarily".

Common questions

What is the difference between a composite and a multivalued attribute?

A composite attribute is one value split into parts — Name is First plus Last. A multivalued attribute is several separate values of the same kind — a customer with three phone numbers. They use different notation and map to the database differently: composites become multiple columns, multivalued attributes become a separate table.

What is a derived attribute?

An attribute whose value is calculated from other stored data rather than stored itself — age derived from date of birth, or order total derived from line items. It is drawn with a dashed ellipse, and is normally computed on read instead of being stored, so it cannot fall out of sync.

What is a composite attribute?

An attribute made up of multiple sub-attributes, each holding a distinct piece of information. Example: Address = StreetNumber + StreetName + City + PostCode.

How is a composite attribute drawn in Chen's notation?

An outer ellipse (the composite parent, drawn with a thicker teal border) with smaller sub-attribute ellipses connected to it by lines — like branches.

Give an example of a composite attribute in a booking system.

GuestName (FirstName, LastName), CheckInAddress (StreetName, Suburb, City, PostCode), or ContactDetails (PhoneNumber, Email).

Why break an attribute into composite sub-attributes?

To allow querying or processing individual parts — e.g., sorting by LastName, filtering by City, or extracting PostCode for delivery routing.

What is the difference between composite and multivalued?

Composite: ONE value split into parts (Name = First + Last). Multivalued: MULTIPLE separate values ({PhoneNumber} = 021…, 09…). Different notations and SQL mappings.

How does a composite attribute map to SQL?

Each sub-attribute becomes its own column. The composite parent itself does NOT become a column. E.g., Address → street_name, city, post_code columns.

What is a participation constraint?

A rule specifying whether ALL entities in an entity set (total participation) or just SOME (partial participation) must participate in at least one instance of a relationship.

What does total participation mean and how is it drawn?

Every entity instance MUST participate in at least one relationship instance. Drawn as a DOUBLE LINE (══) between the entity and the relationship diamond.

What does partial participation mean and how is it drawn?

Some entity instances do NOT have to participate in any relationship instance. Drawn as a SINGLE LINE (──) — the default notation.

A business rule says "Every ORDER must belong to a CUSTOMER". What participation does ORDER have?

Total participation — drawn as a double line from ORDER to the places/belongs_to relationship diamond. Maps to NOT NULL FK in SQL.

A business rule says "A CUSTOMER may or may not have placed an ORDER". What participation does CUSTOMER have?

Partial participation — drawn as a single line (default) from CUSTOMER to the relationship diamond. The FK column in ORDER allows NULL.

How do you identify total vs. partial participation from a business rule?

Total: key words are "must", "every", "all", "required", "always". Partial: key words are "may", "can", "optional", "might", "not necessarily".

Work through it interactively.

The deck adds live diagrams, step-by-step reveals and practice activities that a written page can't carry.