Entity-Relationship Data Model Alex Ostrovsky
Presentation Overview ► Short historical overview ► Elements of E-R Model ► Basic organization & relationships in E-R Model ► Design principles
History of E-R Model ► E-R Model was proposed by Dr. Peter Chen (currently professor at Louisiana State University) ► Chen’s original paper on E-R Model is the 35 th most sited paper in computer science ► Chen has written papers interconnecting E-R model and linguistics
Introduction ► Database Structure is often called Database Schema ► E-R model is graphical in nature, thus making it easy to analyze and observe relationship between data elements ► Most DBMS are based upon E-R model ► E-R model is not a good match for the sophisticated data structures required in today’s DBMS
Elements of E-R Model ► Data represented graphically via entity- relationship diagram which contains 3 main element types: Entity sets Attributes Relationships
Entity sets, Attributes, Relationships ► Entity set Is an abstract object, collection of such objects forms an entity set. Similar notion as in OO design ► Attribute: Some concrete data (or object type) by which entity set is defined ► Relationship Specific connection between 2 or more entity sets
E-R Diagram ► Represents E-R elements by nodes of specific shape to indicate kind Entity sets are represented by rectangles Attributes are shown as ovals Relationships correspond to diamonds ► Simple example from the book:
Simple illustration
Instances of E-R diagram ► DB described by E-R will contain specific data (i.e. database instance) ► Each entity set will contain a particular finite set of entities ► Each entity contains a particular value for each attribute ► E-R data is not stored directly in DB
E-R Relationships ► ► Suppose R is a relationship connecting entity sets E and F. Then: If each member of E can be connected by R to at most one member of F, then we say that R is many- one from E to F. Note that in a many-one relationship from E to F, each entity in F can be connected to many members of E. If R is both many-one from E to F and many-one from F to E, then we say that R is one-one. In a one-one relationship an entity of either entity set can be connected to at most one entity of the other set. If R is neither many-one from E to F or from F to E, then we say R is many-many
Multi-way relationships ► ► There is a relationship Sequel-of between the entity set Movies and itself. ► ► To differentiate the two movies in a relationship, one line is labeled by the role Original and one by the role Sequel, indicating the original movie and its sequel, respectively.
Relationships Continued ► Some data models limit relationships to be binary ► It is possible to convert multi-way relationship into a collection of binary many- one relationships ► Need to introduce a connecting entity set, which will act as a bridge between smaller sets which come from splitting a larger multi-way relationship set. ► Connecting entity set might have its own attributes
Design Principles ► Faithfulness: Design has to comply strictly with specifications Logical attributes and relationships ► Avoid redundancy ► "Everything should be made as simple as possible, but not simpler.” Albert Einstein ► Choose right relationships ► Select right elements Many choices exist between using attributes and using entity set/relationship combinations An attribute is simpler to implement than either entity set or a relationship
Design Principals Cont. ► To replace an entity set by an attribute or attributes of several entity sets 3 conditions must be enforced: All relationships in which entity set is involved must have arrows entering it. That is, it must be the “one” in many-one relationships, or its generalization for the case of multi-way relationships. The attributes for E must collectively identify an entity. if there are several attributes, then no attribute must depend on the other attributes No relationship involves E more than once
Thank You.
References ► Dr. Chen’s homepage: ► Database Systems: A First Course, J.D. Ullman & J. Widom ► relationship_diagram relationship_diagram relationship_diagram ► ► hip_diagram hip_diagram hip_diagram