Week 05 - cottageland.net

advertisement
7
Object Oriented Database
and UML
MIS 304 Winter 2006
7
And now for Something Completely
Different…
2
7
Class Objective
• Understand the basic concepts of Object
Orientation.
• Understand how the OO approach differs from
the Relational approach.
• Apply the concepts of OO to Database
management.
• Understand the UML Modeling Language and how
it applies to databases
3
7
Object Orientation and Its Benefits
• Object orientation is a modeling and development
methodology based on object-oriented (OO)
concepts.
• Definition of Object Orientation:
A set of design and development principles based on
conceptually autonomous computer structures known as
objects. Each object represents a real-world entity with
the ability to interact with itself and with other objects.
• Think of objects as “Nouns” with the “Verbs” already
attached to them.
4
7
5
7
The History of Object Orientation
Video
6
7
Additional Information on PARC
• Dealers of Lightning: Xerox PARC and the Dawn
of the Computer Age , Michael Hiltzik, Texere,
2001, ISBN 1842030000
• Triumph of the Nerds, Robert Cringley, PBS, 1995.
7
7
The Evolution of OO Concepts
• From traditional to object-oriented programming
(OOP)
– Before OOP, data and procedures were isolated from each
other. Data were treated as the passive component, while
procedures manipulated the data as the active component.
– Procedural languages (e.g., COBOL) encouraged the rigid
distinction between data and procedure.
– In an OOP environment, the programmer asks Objects to
perform operations on themselves.
– OO concepts first appeared in some programming
languages and set the stage for more refined OO concepts.
8
7
The Evolution of OO Concepts
• Main Objectives of Object-Oriented
Programming Languages (OOPL)
– To provide an easy-to-use software development
environment.
– To provide a powerful software modeling tool for
applications prototyping.
– To decrease development time by reducing the amount
of code.
– To improve programmer productivity by making that
code reusable.
9
7
The Evolution of OO Concepts
• Important Attributes of OO Environment
– The data set is no longer passive.
– Data and procedures are bound together,
creating an object.
– The object has an innate ability to act on itself.
10
7
Object-Oriented Concepts
• Overview
– Objects: Components and Characteristics
– Object Identity
– Attributes (Instance Variables)
– Object State
– Messages and Methods
– Classes
– Protocol
– Superclasses, Subclasses, and Inheritance
– Methods Overriding and Polymorphism
– Abstract Data Types
– Object Classification
11
7
Object-Oriented Concepts
• Objects: Components and Characteristics
An object is an abstract representation of a real-world entity
that has a unique identity, embedded properties, and the
ability to interact with other objects and itself.
12
7
Object-Oriented Concepts
• Object Identity
– The object’s identity is represented by an object ID
(OID), which is unique to that object.
– The OID is assigned by the system at the moment of
the object’s creation and cannot be changed under any
circumstance.
– The OID can be deleted only if the object is deleted,
and that OID can never be reused.
13
7
Object Identity
• Based on an Object Identifier (OID)
• Must be guaranteed to be unique in the space in
which the object exists.
• Syntax options
– Dotted 1.2.3.4.5.6.7
– GUID Semi-Random number {}
14
7
Object-Oriented Concepts
• Attributes (Instance Variables)
– Objects are described by their attributes, known as
instance variables. (See Table 11.2)
– Attributes have a domain. The domain logically groups
and describes the set of all possible values that an
attribute can have.
– An attribute can be single valued or multivalued.
– Attributes may reference one or more other objects.
15
Object Attributes
7
16
7
Object-Oriented Concepts
• Object State
– The object state is the set of values that the object’s
attributes have at a given time.
• If we change the object’s state, we must change the
values of the object attributes.
• To change the object’s attribute values, we must send a
message to the object.
• This message invokes a method.
17
7
Object-Oriented Concepts
• Messages and Methods
– Every operation performed on an object must be
implemented by a method.
• Methods represent real-world actions and are equivalent
to procedures in traditional programming languages.
– Every method is identified by a name and has a body.
• The body is composed of computer instructions written in
some programming language to represent a real-world
action.
18
7
Object-Oriented Concepts
• Messages and Methods
– To invoke a method you send a message to the object.
• A message is sent by specifying a receiver object, the
name of the method, and any required parameters.
• The internal structure of the object cannot be accessed
directly by the message sender. The ability to hide the
object’s internal details (attributes and methods) is known
as encapsulation.
• An object may send messages to change or interrogate
another object’s state. (See Figure 11.3)
19
Objects Send Messages To Each Other
7
20
7
Object-Oriented Concepts
• Classes
– Objects that share common characteristics are
grouped into classes. A class is a collection of similar
objects with shared structure (attributes) and behavior
(methods).
– Each object in a class is known as a class instance or
object instance. (See Figure 11.4)
– Classes are general and extensible
– Example: STUDENT class (See Figure 11.5)
21
7
Class Illustration
Animal
Vertebrates
Living
Living
Backbone
22
Representation Of The Class Student
7
23
7
Object-Oriented Concepts
• Protocol
– The class’s collection of messages, each identified by a
message name, constitutes the object or class protocol.
– The protocol represents an object’s public aspect; i.e., it is
known by other objects as well as end users.
– The implementation of the object’s structure and methods
constitutes the object’s private aspect.
– A message can be sent to an object instance or the class.
When the receiver object is a class, the message will invoke a
class method.
24
7
Public and Private Aspects Of An Object
25
7
Flashlights Demo
• Example of basic OO concepts
26
OO Summary: Object Characteristics
7
27
7
Object-Oriented Concepts
• Superclasses, Subclasses, and Inheritance
– Classes are organized into a class hierarchy.
• Example: Musical instrument class hierarchy (Figure 11.8)
– Piano, Violin, and Guitar are a subclass of Stringed instruments,
which is, in turn, a subclass of Musical instruments.
– Musical instruments defines the superclass of Stringed
instruments, which is, in turn, the superclass of the Piano, Violin,
and Guitar classes.
– Inheritance is the ability of an object within the hierarchy to
inherit the data structure and behavior (methods) of the
classes above it.
28
7
Musical Instruments Class Hierarchy
29
Object-Oriented Concepts
7
• Two variants of inheritance:
– Single inheritance exists when a class has only one
immediate superclass above it.
• Most of the current OO systems support single inheritance.
• When the system sends a message to an object instance, the
entire hierarchy is searched for the matching method in the
following sequence:
– Scan the class to which the object belongs.
– If the method is not found, scan the superclass.
• The scanning process is repeated until either one of the
following occurs:
– The method is found.
– The top of the class hierarchy is reached without finding the
message.
30
7
Single Inheritance
31
7
Object-Oriented Concepts
• Two variants of inheritance:
– Multiple inheritance allow a class to be derived from several
parent superclasses located above that class.
– Single inheritance exists when a class has only one
immediate (parent) superclass above it.
32
Motor Vehicle And
Bicycle Instance Variables
7
33
7
Object-Oriented Concepts
• Method Overriding and Polymorphism
– We may override a superclass’ method definition by
redefining the method at the subclass level. (See
Figure 11.12)
– Polymorphism allows different objects to respond to
the same message in different ways. (See Figure
11.13)
34
Employee Class Hierarchy
Method Override
7
35
Employee Class Hierarchy
Polymorphism
7
36
7
Object-Oriented Concepts
• Object Classification
– A simple object contains only single-valued attributes and
none of its attributes refer to another object.
– A composite object contains at least one multivalued
attribute and none of its attributes refer to another object.
– A compound object contains at least one attribute that
references another object.
– A hybrid object contains a repeating group of attributes, and
at least one of the repeating attributes refers to another
object.
– An associative object is used to represent a relationship
between two or more objects.
37
7
Characteristics of an OO Data Model
• An Object-Oriented Data Model Must:
– Support the representation of complex objects.
– Be extensible; i.e., it must be capable of defining new data
types as well as the operations to be performed on them.
– Support encapsulation; i.e., the data representation and the
method’s implementation must be hidden from external
entities.
– Exhibit inheritance; an object must be able to inherit the
properties (data and methods) of other objects.
– Support the notion of object identity (OID).
38
7
How do you apply these concepts to
Databases?
39
OO And E-R Model Components
7
40
7
OODM and Previous Data Models
• Object, Entity, and Tuple
– An OODM object has additional characteristics
such as behavior, inheritance, and
encapsulation.
– Such characteristics make OO modeling much
more natural than E-R and relational
modeling.
41
An Invoice Representation
7
But remember the object has “methods” attached to it too.
42
7
OODM and Previous Data Models
• Class, Entity Set, and Table
– Class is a more powerful concept that allows not only the
description of the data structure but also the description of
the behavior.
– A class allows both the concept and the implementation of
abstract data types.
• Encapsulation and Inheritance
– An object belonging to a class inherits all the properties of its
superclasses.
– Encapsulation hides the data representation and the
method’s implementation from other objects and the user.
43
7
OODM and Previous Data Models
• Object ID
– Object ID is not supported in either the E-R model or
the relational model.
– The hierarchical and the CODASYL models support
some form of ID.
• Relationships
– Relationships in an OODM can be of two types:
interclass references or class hierarchy inheritance.
– E-R and relational models use a value-based
relationship approach.
44
7
OODM and Previous Data Models
• Access
– E-R and relational models use an ad hoc, setoriented query language.
– OODM is suited to support both navigational
and set-oriented access.
45
7
Object-Oriented DBMS
46
The Thirteen OODBMS Rules
7
47
7
How OO Affects Database Design
• OO database design approach provides both the
data identification and the procedures or data
manipulation to be performed.
• OO database design forces us to think of data
and procedures as a self-contained entity.
• OO design is iterative and incremental in nature.
• DBA’s role is likely to change with more
programming responsibilities.
• Lack of standards affects OO database design.
48
7
OODBMS: Advantages and Disadvantages
• Advantages
– More semantic information.
– Support for complex objects.
– Extensibility of data types.
– Improved performance with efficient caching.
– Versioning.
– Faster development and easy maintenance through inheritance and
reusability.
– Technology-driven product for next generation DBMS.
– Potential to integrate DBMSs into a single environment.
49
7
OODBMS: Advantages and Disadvantages
• Disadvantages
– Strong opposition from the established players.
– Lack of theoretical foundation.
– Retrogressive to the old pointer systems.
– Lack of standard ad hoc query language.
– Lack of business data design and management tools.
– Steep learning curve.
– Lack of resources.
50
7
How OO Concepts Have Influenced the
Relational Model
• New Features for Extended Relational
(Object/Relational) Model
– Extensibility of new user-defined (abstract) data types
– Complex objects
– Inheritance
– Procedure calls (rules or triggers)
– System-generated identifiers (OID surrogates)
51
7
How OO Concepts Have Influenced the
Relational Model
• Philosophy that guides the relational model’s
enhancements:
– Semantic and object-oriented concepts are necessary to
support the new generation of applications.
– These concepts can and must be added to the relational model.
– The benefits of the relational model must be preserved to
protect the investment in relational technology and to provide
downward compatibility.
52
7
The Next Generation of DBMS
• The next generation of DBMS is likely to
incorporate features borrowed from:
– Object-oriented database systems
– Artificial intelligence systems
– Expert systems
– Distributed database
– The Internet
53
7
So how do we model it?
• Need a new modeling methodology that accounts
for these new features.
54
7
55
7
Unified Modeling Language
MIS 304 Winter 2006
7
Class Objective
• Understand the Reasons for the development of a
UML
• Apply the concepts of UML to Databases
• Be able to construct some simple UML models.
57
7
Tower of Babel
• You have already seen 4 different “Modeling
Languages”
– The two in the book (actually 4 were mentioned)
– MS Access “Relationships”
– Basic “Objects”
• There are dozens of others.
58
7
Modeling Goals
• One of the goals of modeling is to improve
communication.
• When two IT people got together to compare
models they often waste a lot of time explaining
their models syntax to one another.
• You learn one in school and the organization you
work for uses another.
What to do?
59
7
The Solution
Put all of the World’s “Modeling Experts” in a room
and push pizza under the door every 5 hours but
don’t let them out until they agree on a single way
of modeling a “system”.
60
7
The Result - UML
•
•
•
•
An “Object Oriented” approach to modeling.
A common modeling notation.
A common modeling language.
Defines several related model notations for
representing all aspects of a system.
61
7
UML Goals
• To represent complete systems, not just software.
• Establish a explicit coupling between concepts
and executable code.
• Take into account scaling factors.
• Make the model understandable to humans and
machines.
62
7
UML Models
•
•
•
•
The Class Model for static structures.
The State model expresses dynamic behavior.
The Use Case describes the requirements of the user.
The Interaction Model represents scenarios and message
flows.
• The Implementation Model shows the work units
• The Deployment Model provides details that pertain to process
allocation.
And a special subset for Databases
63
7
A UML Model of UML Models
0..M
Package
Includes
0..1
0..*
0..1
Model
0..*
0..* References
Element
Model Element
Visual Element
1..*
0..*
Projection
64
7
UML Diagrams
• The Diagram provides the reader with a means of
Visualizing and manipulating model elements.
• The level of detail is suitable to the Context.
• The common building block is the Element.
• Mechanisms provide a way to link and describe
the elements.
65
7
UML Diagrams
•
•
•
•
•
•
•
•
•
Class Diagram 
Sequence Diagram 
Collaboration Diagram
Object Diagram 
Statechart Diagram
Activity Diagram 
Use Case Diagram 
Component Diagram
Deployment Diagram
66
7
Packages
• Provide a way to partition
a model
• Defines a namespace
• Packages can be
contained in other
packages.
Package Name
67
7
Class Diagrams
• A general way to describe
static structure.
• Describes a classic object
“class”
• No real change from
traditional OO model
notation
Class Name
Properties
Operations
68
7
Class Example
• Flashlight class
Flashlight
Handle
Shape
Bulbs
OnOff( )
69
7
Associations
An Association
Tools
Flashlight
A Link
Flashlight
Maglight
70
7
Associations
• Describe how elements are linked together.
–
–
–
–
–
1
0..1
M..N
0..*
1..*
One and only one
0 to 1
Many to many
0 to any integer
1 to any integer
71
7
Associations
0..M
Package
Includes
0..1
0..*
0..1
Model
0..*
0..* References
Element
Model Element
Visual Element
1..*
0..*
Projection
72
7
Class Hierarchy
Animal
Legs
2 Legs
4 Legs
Food
Carnivore
73
7
Object Diagrams
• Show a static state.
• Primarily used to show context.
• Look like Class diagrams.
74
7
Use Case
• Describes how the people involved “Use” the
system.
• Simple diagram that lays out the actors interfaces
and associations.
• One of the first steps in system design.
75
7
Use Case for Automobile
Drive
«uses»
«uses»
Customer
Service
Repair
«uses»
Mechanic
76
7
Activity Diagrams
• Represents the activities or behaviors of a
system.
77
7
Activity Diagram
Supply SSN
a.PersonID
Look up Person
SELECT PersonID, Name
FROM Person
WHERE p.PersonID =
a.PersonID
Identify
Person
Name
78
Activity Diagram With Swimlanes
Teacher
Student
7
Board
Teach
Learn
Supervise
Exam
Take Exam
Evaluate
79
7
Sequence Diagrams
• Used to display interactions between objects.
• Focuses on expressing interactions.
• Defines the sequence of actions between objects.
80
7
Sequence Diagrams
Caller
Phone
Recipient
Picks Up
Dial Tone
Dial
Ring
Ring
Picks Up
Hello
81
7
UML Patterns
•
How humans solve problems.
1.
2.
3.
•
•
•
Look at a problem.
Try to find an analog in our experience.
Adapt the analog to our problem.
In a formal system you can do this in a
standardized way.
In UML these are called “Patterns”
In UML Patterns are identified by a Name.
82
7
UML Database Patterns
•
•
•
•
Singleton
Composite
Flyweight
Analysis Patterns
–
–
–
–
Party
Geographical location
Process
Document
83
7
Singleton
• The Problem
– One object instance
– Used in hierarchy where the entity is part of the
structure. (A manager is an Employee)
• The Solution
– Single relationship with itself.
84
7
Singleton
The Data and
AnyOperation elements
represent the classspecific attributes an d
operations
Singleton
#Data: Any
+Instance( ) Singleton
+AnyOperations( ): Any
1
1..1
85
7
Composite
• Models the basic “Parent-Child” relationship.
• Used things for Organization Charts, HeaderDetail structures or any similar pattern.
86
7
Composite UML
87
7
Composite ERD
1
Table1
Table2
Has
(x,y)
Key1
M
Attr1
(x,y)
Key2
Key1
88
7
Generating SQL From UML
A
A1 : String
A2 : String
CREATE TABLE A (
A_Id Number (5),
A1 VARCHAR(),
A2 VARCHAR(),
PRIMARY KEY(A_Id)
)
SetPrimaryKey(A_Id)
89
7
References
• Database Design for Smarties Using UML for Data
Modeling, Robert J. Muller, Academic Press, 1999,
ISBN 1-55860-515-0
90
Download