Database fundamentals (4 Research Paragraphs)
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