Skip to content
UoL CS Notes

Tutorial 4

COMP107 Tutorials

ER by View Integration

You should consider each user perspective separately.

  • Requirements are given for many users groups or applications independently.
  • an ER schema is designed for each user group and application (typically by different developers.)
  • Individual views are merged into a global conceptual schema.
  • Individual views can be reconstructed as external schema after view integration.

View Integration

  1. Identification of correspondences and conflicts among schema.
    • Need to identify constructs in schemas that represent the same real-world concept.
  2. Modification of views to conform to one another.
    • Some of the view schemas may need to be refined to resolve conflicts identified in 1.
  3. Merging of views.
    • Global schema is created by merging individual schemas.
  4. Restructuring.
    • Global schema may require further refinement to remove redundancies or unnecessary complexity.

Example

  1. In the example we put up all the diagrams next to each other to view the conflicts. They include:
    • Names (including synonyms).
      • Homonyms - Using the same name for different things.
    • Notions
      • Where concepts are represented as entities or attributes.
  2. From this you change each view individually to make them coherent with each other.
  3. After this you eliminate redundancies to make them into a single diagram.

Task

Draw and ER or EER model to describe a library by using a view integration approach.

The group made this in the first phase:

1st Phase

We should stick very specifically to the story. Over-designing is bad for other people’s designs and you should stick to only the points in your story.

The subject of the user story does not need to be included in the diagram. This is because they are the user and don’t need data stored about them to use the database.

The group made this in the second phase.

1st Phase

Attributes should not be shared between different entities.

The attribute course should be an entity and not a complex attribute. This would make a student enrolled in many courses.