Design the ER model

Conceptual design describes the domain with entities, relationships, attributes, identifiers and generalizations. The toolbar on the left shows the actions available for the selected element.

The Show button opens the Code panel next to the canvas: a text version of the schema that updates with every change (see Notation).

Entities and relationships

  1. Place entities and relationships on the canvas with the Entity and Relation buttons, in any order.
  2. Select a relationship and click Connect (Shift + C), then click an entity to link it. The line created is a participation, an element in its own right that can be selected and deleted.
  3. Double-click any element to rename it.

A relationship links two or three entities. A recursive relationship connects the same entity twice and requires a Role on both participations, such as supervisor and supervisee.

Names may contain letters, digits and underscores, and cannot start with a digit. Spaces become underscores. Entity and relationship names are converted to uppercase and must be unique across the schema.

Attributes

  • Attribute (Shift + A) adds an attribute to the selected entity or relationship. The default cardinality for new attributes is mandatory (1,1), but it can be modified at any time during the design phase.
  • Subattr (Shift + S) on an attribute makes it composite, such as Address with Street, City and ZipCode.
  • Card. sets the cardinality. A minimum of 0 makes the attribute optional; a maximum of many makes it multivalued.
  • Identifier (Shift + I) marks an entity attribute as part of the internal identifier. Identifier attributes are always (1,1).

Participations

Select a participation line to set its cardinality with Card., its Role, or to use it for external identification with Ext. Id. See Weak entities.

Generalizations

  1. Select a child entity, click To Parent (Shift + P) and select the parent entity.
  2. Repeat for every child. Children of the same parent share one generalization.
  3. Select the generalization and use Type to set it as total or partial, exclusive or overlapping. New generalizations are partial-exclusive by default, but can be changed to any of the available options.

Child entities automatically inherit the identifier from the parent and cannot define their own. Consequently, any generalization with a single child is treated as a subset and is restricted to being partial-exclusive.

Errors and warnings

Incorrect elements are marked on the diagram, red for errors and yellow for warnings, with full details shown in the status bar upon selection. Errors must be fixed before translating; warnings are suggestions. Delete also removes the elements that depend on the deleted one, such as its attributes and participations. See Validation messages.