2

I was stuck on a relation description and unable to model it in the Crow's Foot Notation:

Each individual vehicle is a particular model of a particular brand offered by the company (e.g., the XF is a model of the car brand Jaguar of Tata Motors). Each model can be offered with a variety of options, but an individual car may have only some (or none) of the available options.

If I were using the Chen's Notation, I could use an aggregation relationship. But how can I model that in a Crow's Foot Notation? Thanks for helping.

1 Answer 1

3

In short

There isn't aggregation and generalization in the crow's foot notation. The strength of crow's foot its simplicity: a notation for the smallest common denominator of how to related entities. This is why nobody invested in making it more complex.

Some more arguments

Interestingly Chen's Entity Relationship model and Everest's inverted arrows notation (colloquially known as crow's foot) were both introduced in 1976:

  • Both use the concepts of entity, attribute, and identifiers in a similar meaning.

  • Both use the concept of relationships, but with a slightly different meaning:

    • Chen uses relationships in a very relational sense and recognizes that they may also have their own attributes. The semantics is very close to UML's association (in fact it's the opposite: UML's father were most probably inspired by Chen's work which was a de-facto standard).
    • Everest represents relationships to pragmatically cover very different techniques, inter-alia the then-popular hierarchical model (where an entity could be related to another through some kind of unidirectional database/file pointers), the network model and the relational model. The fact that it covered very different realities, reduced the relationship notation to the smallest common denominator (e.g. there's no attribute for a relation, there are just cardinalities).

From the point of view of the graphical notation, both differred as well:

  • Chen's ERD is very expressive: the relationship is decomposed in 3 parts: the relationship symbol, and two edges relating it to the related entities, each edge with its cardinality. It's easy to add more symbolism either drawing an edge differently or changing the shape of the symbol.
  • The crow's foot notation, is more compact and elegant, since the relation is reduced to an edge that bears graphically the cardinality at both sides. But this compactness is at the expense of the expressivity and alos makes it more difficult to enrich. Crow's foot is also easy to use in combination with graphical representation of tables, making it very common for table-level diagrams.

ERD is a semantically rich data modelling foundation. It became mainstream with the growth of the RDBMS market. It was enriched with aggregation and generalization, but only in a later stage. In Chen's papers from 1976 and 77 for example, there are a couple of examples with parts and wholes and no special notation was used for aggregation. The extended entity relationship emerged in the mid 80s (see for example this article from 86).

No similar evolution existed for the crow's foot notation, which is not a full modeling concept on its own: it's a simplified notation that allows to draw some ER elements. More advanced modelling concept, such as relations with attributes, require immediately some gymnastics: the use of an intermediary "relational" entity is required to emulate traditional ER.

The good news

The good news, is that aggregation -- while being commonly used and making us feel comfortable -- is not really needed and adds only little value.

In the UML world, it is something that is frequently debated (see an example here on SO). But the argument is not from me, it's from James Rumbaugh, a modelling pioneer and UML founding father who calls aggregation a "modelling placebo":

Keep in mind that aggregation is association. Aggregation conveys the thought that the aggregate is inherently the sum of its parts. In fact, the only real semantics that it adds to association is the constraint that chains of aggregate links may not form cycle (...) In spite of the few semantics attached to aggregation, everybody thinks it is necessary (for different reasons). Think of it as a modeling placebo.

I couldn't find another quote back, but he also explained in one of his books, that it is very difficult to objectively distinguish an aggregation from an association.

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.