Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

27
Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee

Transcript of Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Page 1: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Chapter 24 Introduction to Object DBMSs

Prepared by Kai Huang

CS157B

Prof Sin-Min Lee

Page 2: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Object Oriented DBMS History

Object-oriented model popularized in programming languages Simula 67, Smalltalk, C++, JavaEarlier database models(hierarchical, network, relational) focused on record-oriented informationNew database applications need more & better support for complex data.

Page 3: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

The weakness of RDBMSsPoor representation of ‘real world’ entities. The process of normalization generally leads to the creation of relations that do not corresponds to entities in the ‘real world’. Semantic overloading, namely there is no mechanism to distinguish between entities and relationships, or to distinguish between different kinds of relationship that exist between entities.Poor support for integrity and enterprise constraints.

Page 4: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

The weakness of RDBMSs (cont)

Homogeneous data structure. The fixed structure is too restrictive for many ‘real world’ objects that have a complex structure, and it leads to unnatural joins, which are inefficient.Limited Operations. It only has a fixed set of operations such as set and tuple – oriented operations, operations that are provided in the SQL specification.Difficulty handling recursive queriesImpedance mismatch

Page 5: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

New database applications

Traditional applications had these properties:UniformityRecord orientationSmall data itemsAtomic fields

Page 6: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

New database applications (cont)

New applications requiring more complex info: Computer-aided design(CAD). A CAD database

stores data relating to mechanical and electrical design covering objects like buildings, IC circuits.

Computer-aided software engineering(CASE). A CASE database stores data relating to the stages of the software development lifecycle planning.

Office information systems (OIS). An OIS database stores data relating to the computer control of information in a business including emails, invoices, etc.

Page 7: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Why consider these new applications?

The following have made them feasible(they were out of reach in the 70s):Faster CPUsLarger main memoriesLarger disksBetter, faster networksLower cost for all of the above!

Page 8: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Object Oriented data Model

Object is similar to an entity in ER model. If we are to implement Object Oriented DBMSs in Java, for each entity, we will create a class for it.

Object Oriented concept centers around encapsulating both data and procedures for operation on data as a single unit.

Page 9: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

What is encapsulation?

Encapsulation means that an object contains both the data structure and the set of operations that can be used to manipulate it. Often cases, adopting encapsulation hides the implementation from the users do not necessarily have to know the detail of it.

Page 10: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Other OOP concepts

Abstraction: Abstraction is the process of identifying the essential aspects of an entity and ignoring the unimportant properties.

Information Hiding: We separate the external aspects of an object from its internal details, which are hidden from the outside world.

Page 11: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Object Oriented data Model(cont)

Object: A uniquely identifiable entity that contains both the attribute that describe the state of a ‘real world’ object and the actions that are associated with it.Set of variablesSet of methods (code to execute in

response to messages). This is the main difference from the ER model.

Page 12: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Objects

Variables can beAtomic values (like character, integer

number, boolean value)Objects (other user defined objects).Reference to other objects

Page 13: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Objects (cont)

Object classes. Objects that have the same attributes and respond to the same messages can be grouped together to form a classDefine object type (structure and behavior)An object is an instance of a classSometimes associated with a collection of

all instances in class

Page 14: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

class timeSeries {/* variables */

List* entryList; /* list of elements */time beginning;

time ending;elementDescriptor elemDesc; /* element type descriptor */

/* messages */elementDescriptor getElementType();

Tuple getFirstElement();Tuple getLastElement();

Tuple getFirstElementAfter(time t);}

Example Object class

Page 15: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Inheritance

Inheritance allows one class to be defined as a special case of a more general class.The types of inheritance are IS-A hierarchy idea Single inheritance Multiple inheritance Repeated inheritance. A special case of multiple

inheritance in which the super class inherit from a common super class.

Selective inheritance.

Page 16: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Polymorphism

Objects of different types can respond to same message, e.g. “print(),” in different ways.Makes it possible to develop general, extensible software systems.It has three types: operation, inclusion and parametric.More important than inheritance

Page 17: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Object Identity

An object in an Object Oriented Database remains the same object even if some or all of its attribute values change. It is a key part of the definition of an object.

Not the same as relational DBMS, where a data vale is used for identity.

Object-oriented databases use an internally-generated object identifier to uniquely identify an object.

Page 18: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Object containment

Same as aggregation concept in ER model

Part-of hierarchy

Page 19: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Other Object Oriented techniques

Overloading: allows the name of a method to be reused within a class definition or across definitions. This is a special case of the more general concept of polymorphism.Overriding: a special case of overloading which allows the names of a property to be redefined in a subclassDynamic binding: Allows the determination of an object’s type and methods to be deferred until runtime.

Page 20: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Persistent Programming Languages

Standard programming languages only allow storing persistent (permanent) information which could be in files or in a database via a database API.

In either case, format of objects in persistent storage is different than format in memory

Page 21: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Persistent Programming Languages (cont)

Problem known as impedance mismatch

Idea: allow programming language objects to be persistent.

Persistent versions of Pascal, Smalltalk, C++ have been developed

Page 22: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Persistent Programming Languages (cont)

Allows simpler creation and manipulation of persistent objects

Drawbacks:Since language is powerful, it is easy to

make errors that damage DatabaseHard to optimize I/O access made by

database application

Page 23: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Making Objects PersistentTypically, persistence or non-persistence is specified at object creation time.

E.g.

class foo {int a; float y;}

persistent collection foo_coll<foo>;

foo *x, *y;

x = new foo(); //non-persistent

y = new (foo_coll) foo(); //persistent

Page 24: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Some OODBs Have Limited Query Capability

E.g. (similar to ObjectStore query)

class emp {int eno, char [20] name, dept

*d};

class dept {int dno, char[20]name};

persistent collection<emp>empcoll

Page 25: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Some OODBs Have Limited Query Capability

(cont)collection<emp> * result;

result = {: x in empcoll || x -> d.dnp = 10:]

Less opportunity for optimization than in a relational DBMS with SQL

Page 26: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

Complex ObjectsSometimes we need object that consists of subobjects or components. A complex object is an item that is viewed as a single object in the ‘real world’ but combines with other objects in a set of complex A-PART-OF relationships. The objects contained may themselves be complex objects, resulting in an A-PART-OF hierarchy.

Page 27: Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.

SummaryObject Oriented DBs designed to support new application areas – multi-media, CAD, CASE, GIS etc.Object = data + methodsInheritance, object containmentPersistent programming languagesOODBs have limited query capabilityAdvantages and disadvantages of OODBs. Next Generation DBMSs: Object-Oriented Data Model and Object-Relational Data Model