68
Object oriented DataBase Prof. Sin-Min Lee Department of Computer Science

Object oriented DataBase

  • Upload
    oswald

  • View
    49

  • Download
    1

Embed Size (px)

DESCRIPTION

Object oriented DataBase. CS157B Lecture 24. Prof. Sin-Min Lee Department of Computer Science. Object Database Systems. Not a new concept – research dates back to the mid-1970s As the technology matured, a number of commercial ODBMSs appeared in the 80s and early 90s - PowerPoint PPT Presentation

Citation preview

Page 1: Object oriented DataBase

Object oriented DataBase

Prof. Sin-Min Lee

Department of Computer Science

Page 2: Object oriented DataBase

Object Database Systems

• Not a new concept – research dates back to the mid-1970s

• As the technology matured, a number of commercial ODBMSs appeared in the 80s and early 90s

• To compete with RDBMSs, it became clear that a standard for ODBMSs, analogous to SQL, was needed

Page 3: Object oriented DataBase
Page 4: Object oriented DataBase
Page 5: Object oriented DataBase

Object-Oriented and Multimedia Databases

• The object-oriented database (OODB) contains both the text data of traditional databases plus information about the set of actions that can be taken on the data fields.

• Many OODBs are multimedia databases that include graphics, audio information and animation.

Page 6: Object oriented DataBase

Object Orientation

• Modeling and development methodology

• A set of design and development principles based on objects

• Objects – self-contained, reusable modules that contain data as well as their procedures

Page 7: Object oriented DataBase
Page 8: Object oriented DataBase

OOP – Object oriented Programming

• OO concepts in Ada, Algol, LISP, SIMULA• OOPLs – Smalltalk, C++, Java• Provide for –

– SW development environment– SW modeling tool– Reduce the amount of code– Reusable code

Page 9: Object oriented DataBase

Objects

• Data and procedures bound together form an Object

• Data is no longer passive

• The object can act on itself (recursive)

Page 10: Object oriented DataBase

OOP Terminology

• Object Identity (OID)

• Attributes (Instance variables)

• Object State

• Messages and Methods

• Encapsulated Structure – The ability to hide the object’s internal details

Page 11: Object oriented DataBase

OOP Terminology• Object Class

– the logical structure of an object (name, attributes, methods)

• Object Class Library – a group of object classes

• Object– an instance of an object class

• Protocol – – collection of messages

Page 12: Object oriented DataBase

OOP Terminology

• Superclasses

• Subclasses

• Inheritance– Single – Multiple

Page 13: Object oriented DataBase

OOP Terminology

• Polymorphism – situation in which one name can be used to invoke

different functions

• Inheritance – automatically assuming the attributes and methods of

another object at a higher class

Page 14: Object oriented DataBase
Page 15: Object oriented DataBase

Object Classification

• Simple object

• Composite object

• Compound object

• Hybrid object

• Associative object

Page 16: Object oriented DataBase

OOP Example

Page 17: Object oriented DataBase

PERSONNAME SADDRESS SDOB SSEX SAGE I

Instancevariables John Smith

123 Easy St23-Nov-1970M32

Object Instances

Page 18: Object oriented DataBase

Instance VariablesADTs

NAMEFIRST_NAME SMIDDLE_NAME SLAST_NAME S

ADDRESSSTREET_NUM SSTREET SAPARTMENT SCITY SSTATE SZIP I

DOBDAY IMONTH IYEAR I

Page 19: Object oriented DataBase

PERSON

Employee Student

SuperClass

Subclasses

Page 20: Object oriented DataBase

Representing 1:M Relationships(Premiere Products Example)

CustomerSS#NameAddressBalanceCred_Lim

Sales_Rep 1

Sales_RepNameAddressTot_CommCom_Rate

Customer M

Page 21: Object oriented DataBase

Representing M:M Relationships

Manufacturer CodeNameAddressContact:

Person 1

ItemCodeDescriptionQuantityUnit_PriceManufacturers:

Manufacturer MItems:

Item M

Page 22: Object oriented DataBase

Late Binding

‘A desirable characteristic of OO development is its ability to let any object’s attribute contain object that define different data types (or classes) at different times. ‘

Page 23: Object oriented DataBase

Late binding

Attributes RDBMSItem_Type NumericDescription CharVendor NumericWeight NumericPrice Numeric

Instance variables OODBItem_Type Inv_TypeDescription String_of_charVendor VendorWeight WeightPrice Money

Page 24: Object oriented DataBase

OODBMS

OODBMS

Object-OrientedFeatures

Conventional DBMS

OO ConceptsOO data modelsOOPLGUI

Data accessibilityPersistenceBackup and RecoveryTransaction ProcessingConcurrencySecurity/IntegrityAdministration

Page 25: Object oriented DataBase
Page 26: Object oriented DataBase

13 Rules for an OODBMSfrom the OODBS Manifesto

• System must support complex objects

• Object identifier must be supported

• Objects must be encapsulated

• Systems must support types or classes

• System must support inheritance

• System must avoid premature binding

• System must be computationally complete

• System must be extensible

Page 27: Object oriented DataBase

Object Database Systems

• The vendors formed a consortium, the Object Database Management Group (ODMG), to define a standard

• Current standards specification is ODMG 2.0

• Architecture has four major components – a data model, a specification language, a query language, and language bindings

Page 28: Object oriented DataBase

Object Data Model

• Based upon the (Object Management Group) OMG Object Model

• OMG is another consortium of vendors instituted to create standards

• Besides an object model, they oversee standards for UML and CORBA (Common Object Request Broker Architecture)

Page 29: Object oriented DataBase

Object Model

• Two basic modeling primitives – objects and literals

• An object has a unique identifier

• A literal has no identifier

• Every object and every literal is categorized by its type – a set of values and a set of supported operations

Page 30: Object oriented DataBase

Object Model

• An object’s state is characterized by a set of properties

• An object property can be either an attribute or a relationship to another object

• The set of operations that can be executed on or by an object defines the behavior of an object

Page 31: Object oriented DataBase

Object Model

• An operation may have input and/or output parameters, and may return a value

• The type of each parameter and the returned value must be specified

• A database stores objects, which can be shared by multiple users and applications

• A database is based on a schema, defined in the object definition language (ODL)

Page 32: Object oriented DataBase

Types

• There are two facets to the definition of a type – an external specification and one or more implementations

• The specification of a type corresponds to what is visible to a user – operations that can be applied to instances, its properties, or state variables, and any exceptions that can be raised by the operations

Page 33: Object oriented DataBase

Types

• An implementation of a type defines the internal aspects of the objects of a type – how the operations access or modify the properties of an object

• A class definition and an interface definition may specify both the abstract behavior and the abstract state of an object

Page 34: Object oriented DataBase

Types

• A literal definition specifies only the abstract state of a literal type

• An implementation of an object type consists of a representation and a set of methods

• The representation is a data structure realizing the abstract state of an object or literal, expressed in a language binding

Page 35: Object oriented DataBase

Types

• Each property is represented by an instance variable

• The operations of an object type are implemented as procedures expressed in a language binding

• The internal details of an implementation are invisible to the user

Page 36: Object oriented DataBase

Inheritance

• Inheritance is a second important characteristic of object orientation

• The data model supports two constructs supporting inheritance – interfaces and classes

• Interfaces permit the definition of subtypes• A subtype represents the specialization of a

more general type (the supertype)

Page 37: Object oriented DataBase

Inheritance

• The generalization/specialization relationship is often called an “is-a” relationship

• Interfaces are abstract types – they cannot be instantiated

• The data model supports multiple inheritance of interfaces

Page 38: Object oriented DataBase

Inheritance

• Classes support a second form of inheritance, described as the “extends” relationship

• A class can extend the behavior and state of another class

• Classes can be instantiated

• An object is an instance of a class

Page 39: Object oriented DataBase

Inheritance

• Classes support only single inheritance

• An interface can inherit from another interface, but not from a class

• A class can inherit from multiple interfaces and can extend a single class

• Objects have a number of characteristics – identifiers, names, lifetimes, and structures

Page 40: Object oriented DataBase

Identifiers

• Unlike the relational model, objects within a database are assigned unique identifiers

• An identifier is generated by the database system when the object is created

• They are immutable – although the properties of a object may change, its identifier remains the same throughout its lifetime

Page 41: Object oriented DataBase
Page 42: Object oriented DataBase

Names

• Object identifiers are commonly used for one object to refer to another

• An object may also have a name

• Applications typically refer to some objects by a user-defined name

• The database internally maps names to identifiers

Page 43: Object oriented DataBase

Lifetimes

• The lifetime of an object is specified when it is created

• The are two possible lifetimes – persistent and transient

• A transient object is allocated memory by an application’s runtime system

• A transient object’s lifetime is the lifetime of the procedure or process that creates it

Page 44: Object oriented DataBase

Lifetimes

• Persistent objects are allocated memory and secondary storage that is managed by the ODBMS runtime system

• A persistent object exists after the process that created it terminates

• Persistent objects also called database objects

• Object types and lifetimes are independent

Page 45: Object oriented DataBase

Collection Objects

• The data model supports a number of container types to store collections of objects

• All elements of a collection must be of the same type

• Set object – an unordered collection with no duplicates

Page 46: Object oriented DataBase

Collection Objects

• Bag object – an unordered collection that may contain duplicate objects

• List object – an ordered collection of elements

• Array object – another kind of ordered collection of objects

• Both lists and arrays are position-oriented

Page 47: Object oriented DataBase

Collection Objects

• The insertion and removal operations take argument specifying the position at which the element is to be inserted or deleted

• Both collections are zero-based• Removing an element from a list changes

the positions of elements in the list tail• Removing an element from an array simply

replaces the element with a null value

Page 48: Object oriented DataBase

Modeling an Object’s State

• Two kinds of properties – attributes and relationships

• An attribute is defined to be of a single type• Its type may be either a literal or a class• Relationships define associations between

two types• The data model supports only binary

relationships

Page 49: Object oriented DataBase

Modeling an Object’s State

• Relationships are defined implicitly by specifying traversal paths

• Traversal paths are always declared in pairs

• This permits bidirectional traversal from either object in the association

• The ODBMS is responsible for maintaining the referential integrity of a relationship

Page 50: Object oriented DataBase

Modeling an Object’s State

• The connectivity of a relationship may be one-to-one, one-to-many, or many-to-many

• The connectivity is always clear from the syntax of the declaration of a relationship

• To represent arbitrary n-ary relationships, a designer would create a new class type, each instance of which would representan n-tuple

Page 51: Object oriented DataBase

Object Definition Language

• The Object Definition Language (ODL) is used to define the specification of object types

• Roughly corresponds to the DDL of SQL

• A designer uses ODL to define a database schema

Page 52: Object oriented DataBase

Structured Types

struct Address { string street; string city; string state; string zip;};

Page 53: Object oriented DataBase

Interfacesinterface Person { attribute string name; attribute Address personAddress; relationship Person spouse

inverse Person::spouse; relationship set<Person> children

inverse Person::parents; relationship list<Person> parents

inverse Person::children; boolean marrriage(in Person newSpouse); void move(in Address newAddress);};

Page 54: Object oriented DataBase

Classesclass Salary{

attribute float base;attribute float overtime;

};

class Employee : Person( extent employees){ attribute short empID;

attribute Salary annual_salary;void raise(in float new_base);void fire();

};

Page 55: Object oriented DataBase

Classes

class Professor extends Employee( extent professors){

attribute enum Rank {full, associate, assistant} rank;relationship set<Section> teaches

inverse Section::is_taught_by;};

Page 56: Object oriented DataBase
Page 57: Object oriented DataBase
Page 58: Object oriented DataBase
Page 59: Object oriented DataBase

LAST 5 RULES

• System must be able to remember data locations

• System must be able to handle very large databases

• System must support concurrent users

• System must be able to recover from hardware and software

• Data query must be simple

Page 60: Object oriented DataBase

OODBMS• ObjectStore ………….. Object Design, Inc.

• Objectivity/D ………… Objectivity Inc.

• Versant OODBMS …. Versant Corp

• ONOS*Integrator ….ONTOS, Inc

• FastObjects…………….. Poet Software

Page 61: Object oriented DataBase

Why not use a Traditional Relational DBMS?

• The traditional Relational DBMS stores data in tables, rows, and columns

• Objects have several complex structures that cannot be represented in tables, rows, or columns.– These structures include executable statements (i.e.,

methods) and pointers

Page 62: Object oriented DataBase

How are the Relational Database (RDBMS) Manufacturers

Responding?• The manufacturers of RDBMS are

incorporating additional features to allow for the storage of more complex items. Oracle has been particularly active in incorporating these features.– The term object-relational DBMS has been coined to

describe this classification of DBMS.

Page 63: Object oriented DataBase
Page 64: Object oriented DataBase

•Still developing•Lack of standards•Is there a sufficient theoretical foundation?

Page 65: Object oriented DataBase

What’s Wrong With ODBMSs?

• Relationships among objects use object identifiers and must be explicitly designed

• Critics of the object model refer to the use of object identifiers to implement relationships as “pointer spaghetti”

• Reminiscent of the older CODASYL network model

• Difficult to perform ad hoc queries

Page 66: Object oriented DataBase

What’s Wrong With ODBMSs?

• Vendors don’t support the ODMG standard

• Only one vendor currently supports OQL

• There is no capability to create views

• Robustness, scalability, and fault-tolerance do not measure up to RDBMSs

• Still an immature field – these problems should be corrected in the future

Page 67: Object oriented DataBase
Page 68: Object oriented DataBase