About
A relationship is a model element that relates two entities .
In its simple form (semantic form), it's a description that has a verb such as:
- has
- consists of
- uses
- …
As a set of entity is called an entity set, relationship have also the notion of relationship set that groups relation between the same type of entities.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships.
Example
- a marriage is a relationship between two entities in the entity set PERSON.
- father-son is a relationship between two person entities
- is greater than is a relationship between two numbers (or two length of a persons)
Characteristic
Identification
A relationship is identifiable.
Primary Key
The primary key of a relationship is the primary keys of the involved entities. See primary key relationship
Identifier
To get the identifier on a global scope, you will add the namespace to the primary_key. See Logical Data Modeling - Global Identifier (Fully Qualified Name, Canonical Form).
Attribute
Relationships have attributes (saved in a value).
Example:
- Consider the attribute percentage-of-time which is the portion of time a particular employee is committed to a particular project
- Since its meaning depends on both the employee and project, it is:
- neither an attribute of employee
- nor an attribute of project
- it's therefore a relationship attribute
Role
role is a relationship attribute that defines the function performed in the relationship. It is used to distinguish two entity (object) of the entity set (class) when describing its use in the context of an association.
For instance, Husband and wife are roles
Visualisation / Representation / Implementation
A relationship can be represented or implemented in different ways. See Logical Data Modeling - Relationship Representation / Implementation / Visualisation
Arity / Degree
The degree of a relationship is the number of entities that participate in the relationship.
A relationship may be:
Property
Relationship Property are only for binary relationship (ie between two elements)
Property | Definition on a binary relationship |
---|---|
antisymmetric | if a is related to b, then b is not related to a or a = b |
asymmetric | if a is related to b, then b is not related to a |
symmetric | if a is related to b, then b is related to a |
reflexive | if a can be related to a (to itself ) |
transitive | if a is related to b, b is related to c, then a is related to c |
Comparable
A relationship is of true or false and can then be described by a comparison operator.
Relationship by data type
- For a relation (Relational Data Management)
- For text: Natural Language Processing:
- For code (In general)
- For graph
- For a tree