35
III. Current Trends: 3 - Object DBMSs Slide 1/23 III. Current Trends Part 3: Introduction to Object DBMSs

III. Current Trends: 3 - Object DBMSsSlide 1/23 III. Current Trends Part 3: Introduction to Object DBMSs 3C13/D63C13/D6

Embed Size (px)

Citation preview

III. Current Trends: 3 - Object DBMSs Slide 1/23

III. Current Trends

Part 3: Introduction to Object DBMSs

III. Current Trends: 3 - Object DBMSs Slide 2/23

14.0 Content

14.1 Objectives14.2 Next Generation Database Systems14.3 Why do we need a new data model?

• Weaknesses of RDBMSs • Advanced Database Applications

14.4 Introduction to OO data models and concepts14.5 OODBMS Strategies

• Alternatives• Persistent Programming Languages• Storing objects in a Relational Database

14.6 Issues in OODBMSs14.7 OODBMS Architecture14.8 OO Database Manifesto14.9 Advantages/disadvantages of OODBMSsAPPENDIX: Object-Oriented Concepts

Content

III. Current Trends: 3 - Object DBMSs Slide 3/23

14.1 Objectives

ObjectivesIn this Lecture you will learn:• Unsuitability of RDBMSs for advanced database

applications.

• Object-oriented data models.

• OODBMS strategies

• Problems of storing objects in relational

database.

III. Current Trends: 3 - Object DBMSs Slide 4/23

14.2 Next generation database systems

Next Generation Database Systems

First Generation DBMS: Network and Hierarchical

–Required complex programs for even simple queries.–Minimal data independence.–No widely accepted theoretical foundation.

Second Generation DBMS: Relational DBMS–Helped overcome these problems.

Third Generation DBMS: OODBMS and ORDBMS.

III. Current Trends: 3 - Object DBMSs Slide 5/23

14.2 Next generation database systems

Next Generation Database Systems

History of data models:

III. Current Trends: 3 - Object DBMSs Slide 6/23

Why do we need a new data model?

III. Current Trends: 3 - Object DBMSs Slide 7/23

14.3 Why do we need a new data model?

Weaknesses of RDBMSs• Poor Representation of “Real World” Entities

– Normalization leads to relations that do not correspond to entities in “real world”.• Semantic Overloading

– Relational model has only one construct for representing data and data relationships: the relation.

– Relational model is semantically overloaded (a relation “means” different things in different contexts)

• Poor Support for Integrity and Enterprise Constraints• Homogeneous Data Structure

– Relational model assumes both horizontal and vertical homogeneity. – Many RDBMSs now allow Binary Large Objects (BLOBs).

• Limited Operations– RDBMs only have a fixed set of operations which cannot be extended.

III. Current Trends: 3 - Object DBMSs Slide 8/23

14.3 Why do we need a new data model?

Weaknesses of RDBMSs• Difficulty Handling Recursive Queries

– Extremely difficult to produce recursive queries.– Extension proposed to relational algebra to handle this type

of query is unary transitive (recursive) closure operation.• Impedance Mismatch

– Most Data Manipulation Languages lack computational completeness.

– To overcome this, SQL can be embedded in a high-level 3GL.

– This produces an impedance mismatch - mixing different programming paradigms. 30% of programming effort and code space is expended on this type of conversion.

• Other Problems with RDBMSs– Transactions are generally short-lived and concurrency

control protocols not suited for long-lived transactions.– Schema changes are difficult.

III. Current Trends: 3 - Object DBMSs Slide 9/23

14.3 Why do we need a new data model?

Advanced Database Applications

Widespread acceptance of RDBMSs. But apps with different needs to traditional business apps…

• Computer-Aided Design (CAD) Stores data relating to mechanical and electrical design– Data has many types, each with a small number of instances.– Designs may be very large.

• Computer-Aided Manufacturing (CAM) Stores similar data to CAD, plus data about discrete production.

• Computer-Aided Software Engineering (CASE) Stores data about stages of software development lifecycle

• Network Management Systems Coordinate delivery of communication services across a computer network.

– Systems handle complex data and require real-time performance and continuous operation

III. Current Trends: 3 - Object DBMSs Slide 10/23

14.3 Why do we need a new data model?

Applications• Office Information Systems (OIS) and Multimedia Systems Stores data

relating to computer control of information in a business, including email documents,

invoices… • Digital Publishing Becoming possible to store books, journals, papers, and articles

electronically and deliver them over high-speed networks to consumers– As with OIS, digital publishing is being extended to handle multimedia documents

consisting of text, audio, image, and video data and animation.

• Geographic Information Systems (GIS) GIS database stores spatial and temporal information, such as that used in land management and underwater exploration

• Interactive and Dynamic Web sites Need to handle multimedia content and to interactively modify display based on user preferences and user selections. Also have added complexity of providing 3D rendering.

III. Current Trends: 3 - Object DBMSs Slide 11/23

OO Programming Languages

• OO programming languages already provide solutions to many of these issues

• Idea: incorporate OO programming language features into DBMSs– (though beware: a programming

language and a DB address different requirements)

III. Current Trends: 3 - Object DBMSs Slide 12/23

14.4 Introduction to OO data models

OO data models and OODBMSsNo single agreed object data model…

OODM: Object-Oriented Data Model. Data model that captures semantics of objects supported in object-oriented programming.

OODB: Object-Oriented Database. Persistent and sharable collection of objects defined by an ODM.

OODBMS: Object-Oriented DBMS. Manager of an ODB.

Zdonik & Maier’s threshold model that OODBMS must, at a min:- provide database functionality.- support object identity.- provide encapsulation.- support objects with complex state.

Khoshafian & Abnous OODBMS definition:OO= Abstract Data Types + Inheritance + Object identityOODBMS= OO + Database capabilities.

III. Current Trends: 3 - Object DBMSs Slide 13/23

14.4 Introduction to OO data models

OO Concepts: Object IdentityObject identifier (OID) assigned to object when it is created that is:

– System-generated.– Unique to that object.– Invariant.– Independent of the values of its attributes (that is, its state).– Invisible to the user (ideally).

Advantages of OIDs: •They are efficient.•They are fast.

•They cannot be modified by the user. •They are independent of content.

- RDBMS: object identity is value-based, primary key provides uniqueness.- Primary keys do not provide type of object identity required in OO systems:

–key only unique within a relation, not across entire system–key chosen from atts of relation, making it part of object state.

III. Current Trends: 3 - Object DBMSs Slide 14/23

14.4 Introduction to OO data models

OO Concepts: Complex Objects

Complex Objects: An object that consists of subobjects but is viewed as a single object.

•Objects participate in a A-PART-OF (APO) relationship.

•Contained object can be encapsulated within complex object, accessed by complex object’s methods.

•Or have its own independent existence, and only an OID is stored in complex object.

III. Current Trends: 3 - Object DBMSs Slide 15/23

14.5 OODBMS Strategies

Alternative Strategies for Developing OODBMSs

1. Extend existing object-oriented programming language.- GemStone extended Smalltalk.

2. Provide extensible OODBMS library.- Approach taken by Ontos, Versant, and ObjectStore.

3. Embed OODB language constructs in a conventional host language.- Approach taken by O2,which has extensions for C.

4. Extend existing database language with object-oriented capabilities.- Approach being pursued by RDBMS and OODBMS vendors.- Ontos and Versant provide a version of OSQL.

5. Develop a novel database data model/language.

III. Current Trends: 3 - Object DBMSs Slide 16/23

12.2 OODBMS Strategies

Persistent Programming Languages (PPLs)

PPL: Language that provides users with ability to (transparently) preserve data across successive executions of a program, and even allows such data to be used by many different programs.

In contrast: Database Programming Language (e.g. SQL) differs by its incorporation of features beyond persistence, such as transaction management, concurrency control, and recovery.

PPL Motivations:•Improving programming productivity by using simpler semantics•Removing ad hoc arrangements for data translation and storage•Providing protection mechanisms over the whole environment

- PPLs eliminate impedance mismatch by extending programming language with database capabilities

The more encompassing term Persistent App System (PAS) is sometimes used now.

III. Current Trends: 3 - Object DBMSs Slide 17/23

14.5 OODBMS Strategies

Storing Objects in Relational Databases

One approach to achieving persistence with an OOPL is to use an RDBMS as the underlying storage engine.

Requires mapping class instances (i.e. objects) to one or moretuples distributed over one or more relations.

To handle class hierarchy, have two basics tasks to perform:(1) design relations to represent class hierarchy;(2) design how objects will be accessed.

III. Current Trends: 3 - Object DBMSs Slide 18/23

14.5 OODBMS Strategies

Storing Objects in Relational Databases

Sample inheritancehierarchy for staff

III. Current Trends: 3 - Object DBMSs Slide 19/23

14.5 OODBMS Strategies

Mapping classes to relationsNo. of strategies for mapping classes to relations, although each results in a loss of semantic information.

1. Map each class or subclass to a relation:Staff (staffNo, fName, lName, position, sex, DOB, salary)Manager (staffNo, bonus, mgrStartDate)SalesPersonnel (staffNo, salesArea, carAllowance)

2. Map each subclass to a relationManager (staffNo, fName, lName, position, sex, DOB, salary, bonus, mgrStartDate)SalesPersonnel (staffNo, fName, lName, position, sex, DOB, salary, salesArea, carAllowance)

3. Map the hierarchy to a single relationStaff (staffNo, fName, lName, position, sex, DOB, salary, bonus, mgrStartDate, salesArea, carAllowance, typingSpeed, typeFlag)

III. Current Trends: 3 - Object DBMSs Slide 20/23

14.6 Issues in OODBMSs

Issues in OODBMSsPreviously: problem areas for relational databases:- Long duration transactions- Versions- Schema evolution

How these issues are addressed in OODBMSs:1. Transactions: unit of concurrency control and recovery is

an Object.- Locking based protocols most common type of CC

mechanism- Multiversion CC protocols & advanced T models, such as

sagas…2. Versions: Allow changes to properties of objects to be

managed so that object references always point to correct object version.Itasca identifies 3 types of versions:1. Transient Versions.2. Working Versions.3. Released Versions.

III. Current Trends: 3 - Object DBMSs Slide 21/23

14.6 Issues in OODBMSs

Issues in OODBMSs3. Schema Evolution: Some apps require considerable

flexibility in dynamically defining and modifying database schema

Typical schema changes:(1) Changes to class definition:

(a) Modifying Attributes.(b) Modifying Methods.

(2) Changes to inheritance hierarchy:(a) Making a class S superclass of a class C.(b) Removing S from list of superclasses of C.(c) Modifying order of superclasses of C.

(3) Changes to set of classes, such as creating and deleting classes and modifying class names.

Changes must not leave schema inconsistent.

III. Current Trends: 3 - Object DBMSs Slide 22/23

14.7 OODBMS Architecture

ArchitectureThree basic Client-server architectures:1. Object Server: distribute processing between the two

components. • Typically, client is responsible for T management &

interfacing to PL• Server responsible for other DBMS functions.• Best for cooperative, object-to-object processing in an open,

distributed environment.2. Page Server:• Most database processing is performed by client. • Server responsible for secondary storage and providing

pages at client’s request.3. Database Server:• Most database processing performed by server. • Client passes requests to server, receives results and passes

to app. • Approach taken by many RDBMSs.

III. Current Trends: 3 - Object DBMSs Slide 23/23

14.7 OODBMS Architecture

Storing and executing methods

Benefits of (b):

• Eliminates redundant code.• Simplifies modifications.• Methods are more secure.• Methods can be shared concurrently.• Improved integrity.

Two approaches:(a) Store methods in external files.(b) Store methods in database.

III. Current Trends: 3 - Object DBMSs Slide 24/23

14.8 OO Database Manifesto

The OO Database system manifesto1. Complex objects must be supported.

2. Object identity must be supported. 3. Encapsulation must be supported. 4. Types or Classes must be supported.5. Types or Classes must be able to inherit from their ancestors.6. Dynamic binding must be supported.7. The DML must be computationally complete.8. The set of data types must be extensible.9. Data persistence must be provided.10. The DBMS must be capable of managing very large

databases.11. The DBMS must support concurrent users.12. DBMS must be able to recover from hardware/software

failures.13. DBMS must provide a simple way of querying data.+ optional features including type checking/inferencing,

versions…

III. Current Trends: 3 - Object DBMSs Slide 25/23

14.9 Advantages/disadvantages of OODBMSs

Advantages/disadvantages of OODBMSs

Advantages:• Enriched Modeling Capabilities. • Extensibility. • Removal of Impedance Mismatch.• More Expressive Query Language.• Support for Schema Evolution.• Support for Long Duration Ts.• Applicability to Advanced Database Apps.• Improved Performance.

Disadvantages:• Lack of Universal Data Model.• Lack of Experience.• Lack of Standards.• Query Optimization compromises Encapsulation.• Object Level Locking may impact Performance.• Complexity.• Lack of Support for Views.• Lack of Support for Security.

III. Current Trends: 3 - Object DBMSs Slide 26/23

14.10 Summary

Summary

NEXT LECTURE:III Current TrendsPart 3: Object-Relational

DBMSs (2)

14.1 Objectives14.2 Next Generation Database Systems14.3 Why do we need a new data model?

Weaknesses of RDBMSs Advanced Database Applications

14.4 Introduction to OO data models and concepts14.5 OODBMS Strategies

Alternatives Persistent Programming Languages Storing objects in a Relational Database

14.6 Issues in OODBMSs14.7 OODBMS Architecture14.8 OO Database Manifesto14.9 Advantages/disadvantages of OODBMSsAPPENDIX: Object-Oriented Concepts

III. Current Trends: 3 - Object DBMSs Slide 27/23

APPENDIX

Object-Oriented Concepts

III. Current Trends: 3 - Object DBMSs Slide 28/23

Appendix: Object-Oriented Concepts

Object-oriented conceptsTo start with, a brief review of underlying themes…

Abstraction: Process of identifying essential aspects of an entity and ignoring unimportant properties. - Concentrate on what an object is and what it does, before deciding how to implement it.

Encapsulation: Object contains both data structure and set of operations used to manipulate it.

Information Hiding: Separate external aspects of an object from its internal details, which are hidden from outside.

– Allows internal details of object to be changed without affecting apps that use it, provided external details remain same.

– Provides data independence.

III. Current Trends: 3 - Object DBMSs Slide 29/23

Appendix: Object-Oriented Concepts

Objects and AttributesObject: Uniquely identifiable entity that contains both the attributes that describe the

state of a real-world object and the actions associated with it.– Definition very similar to ‘entity’, however, object encapsulates both state and behavior; – an entity only models state.

Attribute: Contain current state of an object.

• Attributes can be classified as simple or complex. • Simple attribute can be a primitive type such as integer, string, etc., which takes on literal

values.• Complex attribute can contain collections and/or references. • Reference attribute represents relationship. • complex object: contains one or more complex atts

III. Current Trends: 3 - Object DBMSs Slide 30/23

Appendix: Object-Oriented Concepts

Methods and messagesMethod: Defines behavior of an object, as a set of

encapsulated functions.Message: Request from one object to another asking

second object to execute one of its methods.

(a)

(b)

(a) Object showing atts and methods(b) Example of a method

III. Current Trends: 3 - Object DBMSs Slide 31/23

Appendix: Object-Oriented Concepts

ClassesClass: Blueprint for defining a set of similar objects.

-Objects in a class are called instances.

-Class is also an object with own class attributes and class methods.

III. Current Trends: 3 - Object DBMSs Slide 32/23

Appendix: Object-Oriented Concepts

Subclasses, Superclasses and inheritance

Inheritance allows one class of objects to be defined as a special case of a more general class.

Special cases are subclasses and more general cases are superclasses.

Generalization: process of forming a superclass Specialization: forming a subclass •Subclass inherits all properties of its superclass and can define its own unique properties. •Subclass can redefine inherited methods. •All instances of subclass are instances of superclass. •Principle of substitutability: instance of subclass can be used whenever method/construct expects instance of superclass.•A KIND OF (AKO): Name for relationship between subclass and superclass

4 Types ofinheritance: 1. single2. multiple3. repeated 4. selective

III. Current Trends: 3 - Object DBMSs Slide 33/23

Appendix: Object-Oriented Concepts

Types of inheritance

(a)

(b)

(c)

(a) Single(b) Multiple(c) Repeated

(b)

III. Current Trends: 3 - Object DBMSs Slide 34/23

Appendix: Object-Oriented Concepts

Overriding and overloadingOverriding: Process of redefining a property within a

subclass.Overloading: Allows name of a method to be reused with a

class or across classes.Overriding Example:Might define method in Staff class to increment salary based on commission

method void giveCommission(float branchProfit) {

salary = salary + 0.02 * branchProfit; }

May wish to perform different calculation for commission in Manager subclass:

method void giveCommission(float branchProfit) {

salary = salary + 0.05 * branchProfit; }

III. Current Trends: 3 - Object DBMSs Slide 35/23

Appendix: Object-Oriented Concepts

Polymorphism and dynamic binding

Polymorphism: Means ‘many forms’. Three types: 1. operation 2. Inclusion3. parametric.

Dynamic Binding: Runtime process of selecting appropriate method based on an object’s type.

Example: With list consisting of an arbitrary no. of objects from the Staff hierarchy, we can write: list[i]. print

and runtime system will determine which print() method to invoke depending on the object’s (sub)type.