Skip to content

Abstract ER Models

We build one model across three class periods, adding requirements each time. Keep the same diagram open and extend it; do not start over. Use draw.io to draw. It runs in the browser, needs no account, and exports an image when you are done.

Notation

Use Chen notation: rectangles for entities, ovals for attributes, diamonds for relationships. Underline the attributes that identify an entity. We will meet a second notation later in the semester, so if a tool or an assistant offers you something that looks different, it is not what we want yet.

Part 1 (Sep 15)

With your group, create an ER model for the following requirements:

  • An X is uniquely identified by its ID, and has a name.
  • A Y is uniquely identified by its ID, and has an address consisting of a street address, city, state and zip code.
  • A Z is uniquely identified by its ID, and has a name, and may have one or more colors.
  • An R is uniquely identified by its name and has a birth date and a generation (e.g., boomer, gen-X, gen-Z, etc.)

There are no relationships yet. Get the entities and their attributes right first, and notice which requirements above are telling you about an attribute that is not a simple single value.

Part 2 (Sep 17)

With your group, extend the model you created in Part 1 to include the following requirements:

  • An X runs at least one Y, but usually more.
  • A Y may be run by an X.
  • An X can grow many Z's.
  • A Z is grown by exactly one X.
  • A R always owns a single Y.
  • Only one R can own an Y, but a Y doesn't have to be owned by a R.

Read each pair of sentences together. One sentence usually tells you the cardinality and the other tells you the participation.

Part 3 (Sep 22)

With your group, extend the model you created in Part 2 to include the following requirements:

  • A Z holds at least one W.
  • The W's that each Z holds are consecutively numbered starting at 1.
  • X's can eat many Z's.
  • Z's can be eaten by many X's.
  • An R may manage other R's.
  • An R may or may not be managed by another R.