Chapter 4 Enhanced Entity-Relationship and Object Modeling Chapter 4 1 Subclasses, Superclasses & Inheritance • Subclass - Often an Entity has many subgrouping which are meaningful and need to be explicitly represented. These are called subclasses. • Superclass - Is the term used to describe the Entity that contains a subclass(s). • A member of a subclass is the SAME member of its respective superclass with a specific role and it inherits the superclass attributes. Chapter 4 2 Specialization • Specialization is the process of defining a set of subclasses for an Entity type. • It allows the establishment of specific attributes for each subclass. • It allows us to show additional relationships between each subclass and other Entity types or other subclasses. Chapter 4 3 Fig 4.1 Page 77 Chapter 4 4 Generalization • Generalization is the reverse process of Specialization in which we identify their common features, attributes and relationships between different entities to create a superclass entity. Chapter 4 5 Figure 4.3 Page 79 Chapter 4 6 Constraints & Characteristics of Specialization & Generalization • Some subclasses are predicate-defined. This a constraint on the subclass as all members of this subclass MUST satisfy this condition. • When ALL subclasses are predicate-defined then the specialization is called an attribute-defined specialization. Chapter 4 7 Figure 4.4 Page 80 Chapter 4 8 • Another way to determine membership is called user-defined. This is when membership in the subclass is determined by the user. Therefore, it can not be determined by evaluating an attribute. Chapter 4 9 Specialization Constraints • Disjointness - Is the constraint that members of the superclass may belong to at most one subclass of a specialization. If this constraint is not present than the members of the subclass may overlap. • Completeness - Is the constraint that ALL members of the superclass MUST participate in the specialization. Chapter 4 10 Fig 4.5 Page 82 Chapter 4 11 Possible Constraints on Specialization • • • • Disjoint, total Disjoint, partial Overlapping, total Overlapping, partial Chapter 4 12 Hierarchies & Lattices • A Specialization Hierarchy is defined with the constraint that all subclasses can only participate in one class/subclass relationship. (This restriction only applies to the entity itself; not the elements that make up the entity.) • If a subclass can participate in more than one class/subclass relationship than it is a Specialization Lattice. Chapter 4 13 Fig 4.6 Page 83 Chapter 4 14 Shared Subclasses/Multiple Inheritance • When you have a Specialization Lattice any subclass which has two or more superclasses is a shared subclass. • These shared subclasses inherit ALL the attributes of each of their respective superclasses. • This leads to the concept of multiple inheritance since it inherits from all its superclasses. Chapter 4 15 Fig 4.7 Page 84 Chapter 4 16 Utilizing Specialization & Generalization in Modeling • There are two approaches to using either Specialization or Generalization to Model the MiniWorld. – Specialization uses top-down conceptual refinement process which starts at the superclass and then defines subclasses – Generalization uses bottom-up conceptual synthesis which starts with the subclasses and using common elements create superclasses. Chapter 4 17 Modeling Union Type Using Catagories • A category is defined as an entity that has two or more superclasses that represent distinct entity types. It is made up of a subset of the union of its superclasses. • These distinct entity types do not OVERLAP so there is no shared subclass that inherits ALL the attributes of its superclasses. Chapter 4 18 Figure 4.8 Chapter 4 19 Figure 4.9 Chapter 4 20 Conceptual Object Modeling Using UML Class Diagrams • UML - Universal Modeling Language • Under UML Entity Types are modeled as classes and an Entity in an ER diagram corresponds to an object in UML. Chapter 4 21 UML Notation • UML classes have three sections: – Top section which contains the class name – Middle section which includes the attributes. – Bottom section which includes the operations that can be applied to these objects. • The domain of an attribute may be specified by placing a ‘:’ followed by the domain name/description. Chapter 4 22 UML Notation (con’t) • Composite attributes are model as a structured domain. • A multivalued attribute will generally be modeled as a separate class. • Relationship types are called Associations in UML and relationship instances are called links which are shown as line. Chapter 4 23 UML Notation (con’t) • A relationship attribute is called a link attribute and is placed in a box that is connected to the association’s line by a dashed line. • Min, Max notation is used to specify relationship constraints but are placed on the opposite ends. Chapter 4 24 A ternary relationship generally represents more information than 3 binary relationships Chapter 4 25 Chapter 4 26 A Weak Entity with a Terary Identifying Relationship Chapter 4 27