© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data...
Transcript of © 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data...
© 2009 Pearson Education, Inc. Publishing as Prentice © 2009 Pearson Education, Inc. Publishing as Prentice HallHall 11
Chapter 15:Chapter 15: Object-Oriented Data Modeling Object-Oriented Data Modeling
Modern Database ManagementModern Database Management99hh Edition Edition
Jeffrey A. Hoffer, Mary B. Prescott, Jeffrey A. Hoffer, Mary B. Prescott,
Heikki TopiHeikki Topi
22
ObjectivesObjectives• Definition of termsDefinition of terms• Describe phases of object-oriented development life cycleDescribe phases of object-oriented development life cycle• State advantages of object-oriented modelingState advantages of object-oriented modeling• Compare object-oriented model with E-R and EER modelsCompare object-oriented model with E-R and EER models• Model real-world application using UML class diagramModel real-world application using UML class diagram• Provide UML snapshot of a system stateProvide UML snapshot of a system state• Recognize when to use generalization, aggregation, and Recognize when to use generalization, aggregation, and
compositioncomposition• Specify types of business rules in a class diagramSpecify types of business rules in a class diagram
33
The Unified Modeling Language (UML)The Unified Modeling Language (UML)
• A language for specifying, visualizing, and A language for specifying, visualizing, and constructing the artifacts of software systems, constructing the artifacts of software systems, as well as for business modeling (as well as for business modeling (UML UML Document SetDocument Set, 1997), 1997)
• Class diagramClass diagram is the most relevant UML is the most relevant UML diagram for database modelingdiagram for database modeling
44
What Is Object-Oriented Data Modeling?What Is Object-Oriented Data Modeling?• Centers around objects and classesCenters around objects and classes• Involves inheritanceInvolves inheritance• Encapsulates both data and behaviorEncapsulates both data and behavior• Benefits of Object-Oriented ModelingBenefits of Object-Oriented Modeling
– Ability to tackle challenging problemsAbility to tackle challenging problems– Improved communication between users, analysts, designers, and Improved communication between users, analysts, designers, and
programmersprogrammers– Increased consistency in analysis, design, and programmingIncreased consistency in analysis, design, and programming– Explicit representation of commonality among system componentsExplicit representation of commonality among system components– System robustnessSystem robustness– Reusability of analysis, design, and programming resultsReusability of analysis, design, and programming results
55
Classes and ObjectsClasses and Objects• Class: An entity that has a well-defined role in the Class: An entity that has a well-defined role in the
application domain, as well as state, behavior, application domain, as well as state, behavior, and identityand identity– Tangible: person, place or thingTangible: person, place or thing– Concept or Event: department, performance, Concept or Event: department, performance,
marriage, registrationmarriage, registration– Artifact of the Design Process: user interface, Artifact of the Design Process: user interface,
controller, schedulercontroller, scheduler
• Object: a particular instance of a classObject: a particular instance of a class
ObjectsObjects exhibit BEHAVIOR as well as attributes Different from entitiesentities
66
State, Behavior, IdentityState, Behavior, Identity
• State: attribute types and valuesState: attribute types and values• Behavior: how an object acts and reactsBehavior: how an object acts and reacts– Behavior is expressed through operations that can Behavior is expressed through operations that can
be performed on itbe performed on it
• Identity: every object has a unique identity, Identity: every object has a unique identity, even if all of its attribute values are the sameeven if all of its attribute values are the same
77
Class diagramClass diagram shows the static structure of an object-oriented model: object classes, internal structure, relationships
Figure 15-2 UML class and object diagram
a) Class diagram showing two classes
88
OperationOperation
• A function or service that is provided by all A function or service that is provided by all instances of a classinstances of a class
• Types of operations:Types of operations:– ConstructorConstructor: creates a new instance of a class: creates a new instance of a class– QueryQuery: accesses the state of an object but does not : accesses the state of an object but does not
alter its statealter its state– UpdateUpdate: alters the state of an object: alters the state of an object– ScopeScope: operation applying to the class instead of an : operation applying to the class instead of an
instanceinstance
Operations implement the object’s behaviorbehavior
99
AssociationsAssociations• AssociationAssociation: : – Named relationship among object classes Named relationship among object classes
• Association RoleAssociation Role::– Role of an object in an association Role of an object in an association – The end of an association where it connects to a The end of an association where it connects to a
classclass• MultiplicityMultiplicity: : – How many objects participate in an association. How many objects participate in an association.
Lower-bound…Upper-bound (cardinality)Lower-bound…Upper-bound (cardinality)
1010
Figure 15-3Examples of association relationships of different degrees
Lower-bound – upper-bound
Represented as: 0..1, 0..*, 1..1, 1..*
Similar to minimum/maximum cardinality rules in EER
Unary
Binary
Ternary
1111
Association ClassAssociation Class• An association that has attributes or An association that has attributes or
operations of its own or that participates in operations of its own or that participates in relationships with other classesrelationships with other classes
• Like an associative entity in E-R modelLike an associative entity in E-R model
1212
Figure 15-6aClass diagram showing association classes
Registration class implements a many-to-many association between Student and Course
1313
Generalization/SpecializationGeneralization/Specialization• Subclass, superclassSubclass, superclass– similar to subtype/supertype in EERsimilar to subtype/supertype in EER
• Common attributes, relationships, andCommon attributes, relationships, and operationsoperations• Disjoint vs. OverlappingDisjoint vs. Overlapping• Complete (total specialization) vs. incomplete (partial Complete (total specialization) vs. incomplete (partial
specialization)specialization)• Abstract Class: no direct instances possible, but Abstract Class: no direct instances possible, but
subclasses may have direct instancessubclasses may have direct instances• Concrete Class: direct instances possibleConcrete Class: direct instances possible
1414
Figure 15-9 Examples of generalization, inheritance, and constraints
a) Employee superclass with three subclasses
Shared attributes and operations
An employee can only be one of these subclasses
An employee may be none of them
Specialized attributes and operations
1515
Figure 15-9 Examples of generalization, inheritance, and constraints (cont.)
b) Abstract Patient class with two concrete subclasses
Abstract indicated by italics
A patient MUST be EXACTLY one of the subtypes Dynamic means a
patient can change from one subclass to another over time
1616
Class-Scope AttributeClass-Scope Attribute
• Specifies a value common to an entire class, Specifies a value common to an entire class, rather than a specific value for an instance. rather than a specific value for an instance.
• Represented by underliningRepresented by underlining
• ““=“ is initial, default value=“ is initial, default value
1717
PolymorphismPolymorphism
• Abstract OperationAbstract Operation: Defines the form or : Defines the form or protocol of the operation, but not its protocol of the operation, but not its implementationimplementation
• MethodMethod: The implementation of an operation: The implementation of an operation• PolymorphismPolymorphism: The same operation may : The same operation may
apply to two or more different classes in apply to two or more different classes in different waysdifferent ways
1818
Figure 15-11 Polymorphism, abstract operation, class-scope attribute, and ordering
Class-scope attributes–only one value common to all instances of these classes (includes default values)
This operation is abstract…it has no method at Student level
Methods are defined at subclass level
1919
AggregationAggregation• AggregationAggregation: A part-of relationship between a : A part-of relationship between a
component object and an aggregate objectcomponent object and an aggregate object
• CompositionComposition: A stronger form of aggregation in : A stronger form of aggregation in which a part object belongs to only one whole which a part object belongs to only one whole object and exists only as part of the whole objectobject and exists only as part of the whole object
• Recursive AggregationRecursive Aggregation: Composition where : Composition where component object is an instance of the same class component object is an instance of the same class as the aggregate objectas the aggregate object