Chapter 9
Object-Oriented Database Management
BLCN-534: Fundamentals of Database Systems
Chapter Objectives
List several limitations in the relational database model.
Describe the object-oriented database concept.
Model data using such complex relationships as generalization and aggregation, and such concepts as inheritance and polymorphism.
Describe the benefits of encapsulation.
Describe the value of developing abstract data types.
Explain what an object/relational database is.
9-*
Object Orientation
An alternative approach to information systems and IS development.
Began during the 1980s.
More data-centric.
9-*
What’s Missing in the Relational Database Concept?
Many people would say that nothing is missing from the relational model.
Others would point out that for certain kinds of complex applications, the relational model is lacking in support for the more complex data model features they need.
9-*
What’s Missing in the Relational Database Concept?
Does not directly provide support for generalization/specialization.
Does not directly provide support for aggregation.
9-*
What’s Missing in the Relational Database Concept?
Does not have a system in which only a limited, controlled set of program segments is allowed to update particular data.
Does not directly support more complex data types such as:
graphic images
photo images
video clips
audio clips
long text documents
mathematical constructs such as matrices
9-*
Terminology: Object-Oriented Data Modeling
Object - describes an advanced data structure that includes an entity’s attributes plus methods or operations or procedures (program code!) that can operate on and modify the object’s attribute values.
(object) class - the objects that describe similar entities.
9-*
More advantages of Object Oriented Database Concept
Each object has an object identifier that is permanent and unique among all objects of all types in the system.
Some OODBMSs are implemented as pointer-based systems. related objects are “connected” by their storage addresses.
OODBMSs are the most natural data storage vehicles when object-oriented programming languages, such as C++, Smalltalk, and Java, are in use.
9-*
Unified Modeling Language
Introduced in 1997 by the Object Management Group (OMG)
Has nine standard diagrams that describe:
the system’s data
the business processes
the intended results
the components of the program code
the hardware and software architectures.
9-*
UML Class Diagram
Describes the system’s data, including attributes of and relationships between the “objects.”
9-*
Generalization
Also known as generalization/specialization
Is a relationship that recognizes that some kinds of entities can be subdivided into smaller, more specialized groups.
9-*
General Hardware Company ERD
General Hardware company E-R diagram.
General Hardware is a wholesaler.
9-*
General Hardware Company Generalization Diagram
Each box represents a class and has three sections separated by horizontal lines.
At the top, in capital letters, is the class name
In the middle are the class attributes
At the bottom are the class operations (not shown)
9-*
General Hardware Company Generalization Diagram
The upward pointing arrows indicate generalizations.
There are three kinds of products
TOOLs
LIGHT FIXTUREs
LUMBER
There are two kinds of tools
POWER TOOLs
NONPOWER TOOLs
9-*
Inheritance of Attributes
The PRODUCT class indicates that all products have three common attributes: Product Number, Product Name, and Unit Price.
All of the classes below PRODUCT inherit the attributes shown in PRODUCT.
9-*
Inheritance of Attributes
The attributes for POWER TOOLs are:
(from Product)
Product Number
Product Name
Unit Price
(from TOOL)
Weight
(from POWER TOOL)
Amperes
9-*
Inheritance of Attributes
The attributes for NONPOWER TOOLs are
(from Product)
Product Number
Product Name
Unit Price
(from TOOL)
Weight
(from NON-POWER TOOL)
Years of Warranty
9-*
Inheritance of Attributes
The attributes for LIGHT FIXTUREs are
(from Product)
Product Number
Product Name
Unit Price
(from LIGHT FIXTURE)
Number of Bulbs
Watts per Bulb
9-*
Inheritance of Attributes
The attributes for LUMBER are
(from Product)
Product Number
Product Name
Unit Price
(from LUMBER)
Type of Wood
Dimensions
9-*
Operations
Operations have now been added to the UML Diagram.
There are three kinds of operations:
Constructor
Query
Update
9-*
Operations: Constructor
Creates a new instance of a class, that is, a new object.
Example: Add Lumber
an operation that will add a new instance of LUMBER, that is, a new object, to the database.
9-*
Operations: Query
Returns data about the values of an object’s attributes but does not update them.
Example: Calculate Discount
calculates a discount for a particular customer buying a particular product and returns the result to the user who issued the query, but does not store the result in the database.
9-*
Operations: Update
Updates an object’s attribute values.
Example: Change Unit Price
a product’s unit price may have to be changed, and the result is stored in the database as the new unit price.
9-*
Polymorphism
Modification or refinement of operations as they are inherited downward.
The operations that are performed differently in the lower level objects can have modified names and will perform differently for the different kinds of objects.
9-*
Polymorphism
Looking at “Calculate Discount”:
Since there is nothing more said about the discount further down the hierarchy, the discount is calculated in the same way for all kinds of products.
Looking at “Calculate Extended Warranty Price”:
polymorphism occurs in the Calculate Extended Warranty Price operation because it is performed differently for power tools and nonpower tools.
9-*
Aggregation
9-*
Aggregation
A class is shown to be composed of other classes.
FRAMEs and BULBS are not kinds of LIGHT FIXTUREs; rather, each is a part of a LIGHT FIXTURE.
9-*
General Hardware Company Class Diagram
9-*
Good Reading Bookstores Class Diagram
A generalization hierarchy has been created under PRODUCT, which indicates that there are four kinds of products: BOOK, PERIODICAL, CD, and VIDEO/DVD.
The PERIODICAL class, and only this class, is associated with the ARTICLE class.
9-*
World Music Association Class Diagram
A generalization hierarchy has been constructed with subordinate classes ORCHESTRA, CHAMBER GROUP, and JAZZ GROUP.
9-*
Lucky Rent-A-Vehicle
Class Diagram
Lucky Rent-A-Car has expanded to become Lucky Rent-A-Vehicle!
A two-level generalization hierarchy under VEHICLE.
The diamond-shaped symbol on the branch under the TRUCK class indicates that there is an aggregation diagram under it.
9-*
Encapsulation
The attributes of a class or even an individual object are “encapsulated,” stored together on the disk, with the operations that will act upon them.
OODBMS will only permit the attributes of the encapsulated objects to be updated by the encapsulated update-type operations, thereby improving data integrity.
9-*
Encapsulation
When an application program requires encapsulated data, it sends a message to one of the object’s encapsulated operations to trigger it into action.
The application program sends along any input data needed for the operation.
9-*
Abstract Data Types
Object-oriented database allows the creation of new, abstract data types and operations that are associated with them.
9-*
Object/Relational Database
OODBMSs were lacking in several areas, including the superior query capabilities of SQL that everyone had become accustomed to.
Relational database and object-oriented database have come together in the form of hybrid relational database management systems with object-oriented features added to them.
9-*
General Hardware Company as an Object/Relational Database
9-*
Polymorphism
• Modification or refinement of operations as they are inherited downward. • The operations that are
performed differently in the lower level objects can have modified names and will perform differently for the different kinds of objects.
9-24