© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data...

20
© 2009 Pearson Education, Inc. Publishing as © 2009 Pearson Education, Inc. Publishing as Prentice Hall Prentice Hall 1 Chapter 15: Chapter 15: Object-Oriented Data Object-Oriented Data Modeling Modeling Modern Database Management Modern Database Management 9 9 h Edition Edition Jeffrey A. Hoffer, Mary B. Prescott, Jeffrey A. Hoffer, Mary B. Prescott, Heikki Topi Heikki Topi

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

2020

Figure 15-14 Example of aggregation

A Personal Computer includes CPU, Hard Disk, Monitor, and Keyboard as parts. But, these parts can exist without being installed into a computer. The open diamond indicates aggregation, but not composition