SlideShare a Scribd company logo
1 of 57
Chapter 20
       Concepts for
Object-Oriented Databases




         Copyright © 2004 Pearson Education, Inc.
Chapter Outline
20.1 Overview of O-O Concepts
20.2 O-O Identity, Object Structure and Type
    Constructors
20.3 Encapsulation of Operations, Methods and
    Persistence
20.4 Type and Class Hierarchies and Inheritance
20.5 Complex Objects
20.6 Other O-O Concepts
20.7 Summary & Current Status

      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-2
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Oriented Concepts
 Object
  – An object represents a real world entity (Person), a
    concept (Cricket Match), a logical thing (Driving
    Licence), a physical thing (Car)
  – User Defined Complex Data type
  – An object is made of two things:
     State: properties (name, address, birthDate of a Person)
     Behaviour: operations (age of a Person is computed
      from birthDate and current date)




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Oriented Concepts
 An object has associated with it:
   – A set of variables that contain the data for the object. The value of each
     variable is itself an object.
   – A set of messages to which the object responds; each message may have
     zero, one, or more parameters.
   – A set of methods, each of which is a body of code to implement a
     message; a method returns a value as the response to the message
 The physical representation of data is visible only to
  the implementor of the object
 Messages and responses provide the only external
  interface to an object. The term message does not
  necessarily imply physical message passing. Messages
  can be implemented as procedure invocations.

           Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                          Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Oriented Concepts
 Methods are programs written in general-purpose
  language with the following features
  – only variables in the object itself may be referenced
    directly
  – data in other objects are referenced only by sending
    messages.
 Methods can be read-only or update methods
  – Read-only methods do not change the value of the object




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Oriented Concepts
 Strictly speaking, every attribute of an entity
  must be represented by a variable and two
  methods, called the accessor methods, one to
  read and the other to update the attribute
  – e.g., the attribute address is represented by a
    variable address and two messages get-address
    and set-address.
  – For convenience, many object-oriented data
    models permit direct access to variables of other
    objects.


       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Oriented Concepts
 Object
  – Every object has a unique Object Identifier (OID)
  – Described by 4 major characteristics
     Identifier : System wide unique id of an object
     Name : optionally, may have a unique name in a DB
     Lifetime: determines if the object is persistent or
      transient
     Structure: determines the construction using type
      constructors




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identifiers
 Object identifiers used to uniquely identify objects
  ( 32 or 64 bit integers)
   – Object identifiers are unique:
       no two objects have the same identifier
       each object has only one object identifier
   – can be stored as a field of an object, to refer to another
     object.
   – Can be
       system generated (created by database) or
       external (such as social-security number)
   – System generated identifiers:
       Are easier to use, but cannot be used across database systems
       May be redundant if unique identifier already exists


        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Oriented Concepts
Object Structure
  The state (current value) of a complex object may
  be constructed from other objects (or other values)
  by using certain type constructors
 Can be represented by (i,c,v)
   – i is an unique id
   – c is a type constructor
   – v is the object state
 Constructors
   – Basic types: atom, tuple and set
   – Collection type: list, bag and array

       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure, and
          Type Constructors (3)
 Example 1, one possible relational database state
  corresponding to COMPANY schema




        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-10
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure, and
            Type Constructors (4)
 Example 1 (cont.):




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-11
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure, and
            Type Constructors (5)
 Example 1 (cont.)




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-12
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure, and
          Type Constructors (6)
 Example 1 (cont.)
  We use i1, i2, i3, . . . to stand for unique system-
  generated object identifiers. Consider the
  following objects:
  o1 = (i1, atom, ‘Houston’)
  o2 = (i2, atom, ‘Bellaire’)
  o3 = (i3, atom, ‘Sugarland’)
  o4 = (i4, atom, 5)
  o5 = (i5, atom, ‘Research’)
  o6 = (i6, atom, ‘1988-05-22’)
  o7 = (iElmasri/Navathe,i2, i3})
         7
           , set, {i1, Fundamentals of Database Systems, Fourth Edition       Chapter 20-13
                        Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure, and
          Type Constructors (7)

 Example 1(cont.)
  o8 = (i8, tuple, <dname:i5, dnumber:i4, mgr:i9,
  locations:i7, employees:i10, projects:i11>)
  o9 = (i9, tuple, <manager:i12, manager_start_date:i6>)
  o10 = (i10, set, {i12, i13, i14})
  o11 = (i11, set {i15, i16, i17})
  o12 = (i12, tuple, <fname:i18, minit:i19, lname:i20, ssn:i21, . .
  ., salary:i26, supervi­sor:i27, dept:i8>)
  ...

         Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-14
                        Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure,
   and Type Constructors (8)
Example 1 (cont.)
The first six objects listed in this example represent
 atomic values. Object seven is a set-valued object
 that represents the set of locations for department 5;
 the set refers to the atomic objects with values
 {‘Houston’, ‘Bellaire’, ‘Sugarland’}. Object 8 is a
 tuple-valued object that represents department 5
 itself, and has the attributes DNAME, DNUMBER,
 MGR, LOCATIONS, and so on.



 Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-15
                Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure,
      and Type Constructors (9)
Example 2:
  This example illustrates the difference between the two
  definitions for comparing object states for equality.
  o1 = (i1, tuple, <a1:i4, a2:i6>)
  o2 = (i2, tuple, <a1:i5, a2:i6>)
  o3 = (i3, tuple, <a1:i4, a2:i6>)
  o4 = (i4, atom, 10)
  o5 = (i5, atom, 10)
  o6 = (i6, atom, 20)

    Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-16
                   Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure,
   and Type Constructors (10)
Example 2 (cont.):
In this example, The objects o1 and o2 have equal states,
since their states at the atomic level are the same but the
values are reached through distinct objects o4 and o5.


However, the states of objects o1 and o3 are identical,
even though the objects themselves are not because they
have distinct OIDs. Similarly, although the states of o4
and o5 are identical, the actual objects o4 and o5 are equal
but not identical, because they have distinct OIDs.

  Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-17
                 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure,
         and Type Constructors (11)
Figure 20.1 Representation of a DEPARTMENT complex object
  as a graph




        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-18
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Object Identity, Object Structure,
        and Type Constructors (12)
Figure 20.2 Specifying the object types Employee, date, and
  Department using type constructors




        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-19
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
20.3 Encapsulation of Operations,
         Methods, and Persistence (1)

Encapsulation
 One of the main characteristics of OO languages and
  systems
 Related to the concepts of abstract data types and
  information hiding in programming languages




        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-20
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Encapsulation of Operations,
        Methods, and Persistence (2)

  Specifying Object Behavior via Class Operations:
 The main idea is to define the behavior of a type of
  object based on the operations that can be externally
  applied to objects of that type.
 In general, the implementation of an operation can
  be specified in a general-purpose programming
  language that provides flexibility and power in
  defining the operations.


       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-21
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Encapsulation of Operations,
        Methods, and Persistence (3)
  Specifying Object Behavior via Class Operations
  (cont.):
 For database applications, the requirement that all
  objects be completely encapsulated is too stringent.
 One way of relaxing this requirement is to divide
  the structure of an object into visible and hidden
  attributes (instance variables).



       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-22
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Encapsulation of Operations,
      Methods, and Persistence (4)
Figure 20.3 Adding operations to definitions of
Employee and Department




     Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-23
                    Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Encapsulation of Operations,
         Methods, and Persistence (5)
Specifying Object Persistence via Naming and
  Reachability:
 Naming Mechanism: Assign an object a unique
  persistent name through which it can be retrieved by this and
  other programs.
 Reachability Mechanism: Make the object
  reachable from some persistent object.
 An object B is said to be reachable from an object A if a
  sequence of references in the object graph lead from object A
  to object B.


        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-24
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Encapsulation of Operations,
         Methods, and Persistence (6)
Specifying Object Persistence via Naming and
  Reachability (cont.):
 In traditional database models such as relational model or
  EER model, all objects are assumed to be persistent.

 In OO approach, a class declaration specifies only the type
  and operations for a class of objects. The user must
  separately define a persistent object of type set
  (DepartmentSet) or list (DepartmentList) whose value is the
  collection of references to all persistent DEPARTMENT
  objects


        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-25
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Encapsulation of Operations,
         Methods, and Persistence (7)




Note: The above figure is now called Figure 20.4 in Edition 4
        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-26
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
20.4 Type and Class Hierarchies and
                 Inheritance (1)
 Type (class) Hierarchy
 A type in its simplest form can be defined by giving it a type
  name and then listing the names of its visible (public)
  functions
 When specifying a type in this section, we use the following
  format, which does not specify arguments of functions, to
  simplify the discussion:
  TYPE_NAME: function, function, . . . , function

  Example:
  PERSON: Name, Address, Birthdate, Age, SSN

        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-27
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
              Inheritance (2)
 Subtype: when the designer or user must create a
  new type that is similar but not identical to an
  already defined type

 Supertype: It inherits all the functions of the
  subtype




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-28
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
              Inheritance (3)
Example (1):
  EMPLOYEE: Name, Address, Birthdate, Age, SSN, Salary,
  HireDate, Seniority
  STUDENT: Name, Address, Birthdate, Age, SSN, Major,
  GPA
  OR:
  EMPLOYEE subtype-of PERSON: Salary, HireDate,
  Seniority
  STUDENT subtype-of PERSON: Major, GPA



       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-29
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
               Inheritance (4)
Example (2):
  Consider a type that describes objects in plane geometry,
  which may be defined as follows:

     GEOMETRY_OBJECT: Shape, Area, ReferencePoint




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-30
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
              Inheritance (5)
 Example (2) (cont.):
  Now suppose that we want to define a number of subtypes
  for the GEOMETRY_OBJECT type, as follows:

     RECTANGLE subtype-of GEOMETRY_OBJECT:
     Width, Height
     TRIANGLE subtype-of GEOMETRY_OBJECT:
     Side1, Side2, Angle
     CIRCLE subtype-of GEOMETRY_OBJECT: Radius


       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-31
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
               Inheritance (6)
 Example (2) (cont.):
  An alternative way of declaring these three subtypes is to
  specify the value of the Shape attribute as a condition that
  must be satisfied for objects of each subtype:

     RECTANGLE subtype-of GEOMETRY_OBJECT
     (Shape=‘rectangle’): Width, Height
     TRIANGLE subtype-of GEOMETRY_OBJECT
     (Shape=‘triangle’): Side1, Side2, Angle
     CIRCLE subtype-of GEOMETRY_OBJECT
     (Shape=‘circle’): Radius


        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-32
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
              Inheritance (7)
 Extents: In most OO databases, the collection of
  objects in an extent has the same type or class.
  However, since the majority of OO databases
  support types, we assume that extents are
  collections of objects of the same type for the
  remainder of this section.
 Persistent Collection: It holds a collection of
  objects that is stored permanently in the database
  and hence can be accessed and shared by multiple
  programs

       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-33
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Type and Class Hierarchies and
                Inheritance (8)
 Transient Collection: It exists temporarily during
  the execution of a program but is not kept when the
  program terminates
class Employee (extent all_emp key ssn)
  { attribute string name;
     attribute string ssn;
     attribute short age;
     relationship Dept works_for inverse
  dept :: has;
     void reassign (in string new_name);
  }; Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-34
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
EER DIAGRAM
                                  Person


                                      d



Student                                                               Lecturer

                                                                       N

                                                                      worksFor

                                                                       1


                                                                      Department



 Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition                 Chapter 20-35
                Copyright © 2004 Ramez Elmasri and Shamkant Navathe
University schema in ODL
 class Person
 { attribute struct pname {string fname, string lname, string mname}name;
   attribute string address;
   attribute date birthDate;
   short age(); };

 class Lecturer extends Person (extent Lecturers)
 { attribute short room;
 relationship Department worksFor       inverse Department::staff;
 boolean teachUnit(in Unit U); };

 class Student extends Person (extent Students)
 { attribute string major;
   boolean register(in Course C);
   boolean takeUnit(in Unit U); };


class Department (extent Departments)
{ attribute string name;
  relationship set<Lecturer> staff                         inverse Lecturer::worksFor; };




        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                        Copyright © 2004 Ramez Elmasri and Shamkant Navathe
20.5 Complex Objects (1)

 Unstructured complex object: It is provided by a DBMS
  and permits the storage and retrieval of large objects that are
  needed by the database application.
 Typical examples of such objects are bitmap images and
  long text strings (such as documents); they are also known
  as binary large objects, or BLOBs for short.
 This has been the standard way by which Relational DBMSs
  have dealt with supporting complex objects, leaving the
  operations on those objects outside the RDBMS.



        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-37
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Complex Objects (2)

 Structured complex object: It differs from an
  unstructured complex object in that the object’s
  structure is defined by repeated application of the
  type constructors provided by the OODBMS.
  Hence, the object structure is defined and known to
  the OODBMS. The OODBMS also defines
  methods or operations on it.




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-38
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
20.6 Other Objected-Oriented Concepts (1)

 Polymorphism (Operator Overloading):
  This concept allows the same operator name or symbol to
  be bound to two or more different implementations of the
  operator, depending on the type of objects to which the
  operator is applied




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-39
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Other Objected-Oriented Concepts (2)

 Multiple Inheritance and Selective Inheritance
  Multiple inheritance in a type hierarchy occurs when a
  certain subtype T is a subtype of two (or more) types and
  hence inherits the functions (attributes and methods) of both
  supertypes.
For example, we may create a subtype
  ENGINEERING_MANAGER that is a subtype of both
  MANAGER and ENGINEER. This leads to the creation of
  a type lattice rather than a type hierarchy.



        Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-40
                       Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Other Objected-Oriented Concepts (3)

Versions and Configurations
 Many database applications that use OO systems
  require the existence of several versions of the same
  object
 There may be more than two versions of an object.




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-41
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Other Objected-Oriented Concepts (4)

 Configuration: A configuration of the complex
  object is a collection consisting of one version of
  each module arranged in such a way that the
  module versions in the configuration are
  compatible and together form a valid version of the
  complex object.




       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-42
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
               Copyright © 2004 Ramez Elmasri and Shamkant Navathe
RDBMS – a view point

 RDBMS representation of a pet called “cat’




      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe
OODBMS – a view point

 Wholesome ‘view’ of the object!!




      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe
RDMBS – the standard view
STUDENT
Student# StudentName Address                                        STUDIES

1        jane jones 6 The High Street                               Student# Course#

2         brian brown              104 Park Avenue                  1              C1

3        clara clarke              97 Gilmore Street                2              T2

4         sally smith              68 Lemon Grove                   3              T2

5         tom taylor               53 London Road                   4              Q9
                                                                    5              F
                        COURSE
                        Course# CourseName
                        C1          computing
                        F3          flower arranging
                        Q9           quantum mechanics
                        T2          theology

           Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                             Copyright © 2004 Ramez Elmasri and Shamkant Navathe
OODBMS – how it looks




Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
               Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Comparison
 RDBs vs. OODBs.
  – RDBs have only one construct i.e. Relation, whereas the type
    system of OODBs is much richer and complex.
  – RDBs require primary keys and foreign keys for
    implementing relationships, OODBs simply don’t.
  – Optimization of queries in OODBs is much complex than
    RDBs, but is mainly inspired from the Optimization
    techniques in RDBs.
  – OODBs support complex data whereas RDBs don’t.
  – OODBs are much faster than RDBs but are less mature to
    handle large volumes of data.
  – There is more acceptance and domination of RDBs in the
    market than that for OODBs.

         Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                        Copyright © 2004 Ramez Elmasri and Shamkant Navathe
RDBMS .. OODBMS

 SQL is used to ‘query’ a RDBMS.
  – Operates over a Relational database
    implemented as a ‘table’ or multiple ‘tables’ and
    produces a resultant ‘table’ containing rows of
    entity sets
 OQL is used to query a ODBMS
  – OQL statement will query an object database
    and return a collection-object which contains
    resultant objects
      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Example of OQL query


The following is a sample query
  “what are the names of the black product?”

Select distinct p.name
From products p
Where p.color = “black”
  ⇒Valid in both SQL and OQL, but results are different.
Result of the query (SQL)

  Product no            Name                     Color
  P1                    Ford Mustang             Black
Original table
  P2                    Toyota Celica            Green
  P3                    Mercedes SLK             Black

- The statement queries a relational database.
=> Returns a table with rows.

   Result
       Name
       Ford Mustang
       Mercedes SLK
Result of the query (OQL)
Product no             Name                          Color
P1                     Ford Mustang                  Black
Original table
P2                     Toyota Celica                 Green
P3                     Mercedes SLK                  Black

- The statement queries a object-oriented database
=> Returns a collection of objects.

  Result
 String                  String
 Ford Mustang            Mercedes SLK
20.7 Summary (1)

 Object identity: Objects have unique identities that
  are independent of their attribute values.
 Type constructors: Complex object structures can
  be constructed by recursively applying a set of
  basic constructors, such as tuple, set, list, and bag.
 Encapsulation of operations: Both the object
  structure and the operations that can be applied to
  objects are included in the object class definitions.


       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-53
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Summary (2)

 Programming language compatibility: Both
  persistent and transient objects are handled
  uniformly. Objects are made persistent by
  being attached to a persistent collection.
 Type hierarchies and inheritance: Object
  types can be specified by using a type
  hierarchy, which allows the inheritance of
  both attributes and methods of previously
  defined types.

      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-54
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Summary (3)

 Extents: All persistent objects of a particular type
  can be stored in an extent. Extents corresponding
  to a type hierarchy have set/subset constraints
  enforced on them.
 Support for complex objects: Both structured and
  unstructured complex objects can be stored and
  manipulated.
 Polymorphism and operator overloading:
  Operations and method names can be overloaded to
  apply to different object types with different
  implementations.
       Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-55
                      Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Summary (4)

 Versioning: Some OO systems provide support for
  maintaining several versions of the same object.
 Comparison : RDBMS & OODBMS




      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-56
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe
Current Status

 OODB market not growing much per se. Currently
  around $250M as opposed to the relational DB
  revenue upwards of $50B.
 O-O ideas are being used in a large number of
  applications, without explicitly using the OODB
  platform to store data.
 Growth: O-O tools for modeling and analysis, O-O
  Programming Languages like Java and C++
 Compromise Solution Proposed: Object Relational
  DB Management (Informix Universal Server,
  Oracle 10i, IBM’s UDB, DB2/II …)
      Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition    Chapter 20-57
                     Copyright © 2004 Ramez Elmasri and Shamkant Navathe

More Related Content

What's hot

Adbms 17 object query language
Adbms 17 object query languageAdbms 17 object query language
Adbms 17 object query languageVaibhav Khanna
 
Object oriented database model
Object oriented database modelObject oriented database model
Object oriented database modelPAQUIAAIZEL
 
Object Oriented Database Management System
Object Oriented Database Management SystemObject Oriented Database Management System
Object Oriented Database Management SystemAjay Jha
 
OODM-object oriented data model
OODM-object oriented data modelOODM-object oriented data model
OODM-object oriented data modelAnilPokhrel7
 
2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMS2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMSkoolkampus
 
Entity Relationship Diagram
Entity Relationship DiagramEntity Relationship Diagram
Entity Relationship DiagramShakila Mahjabin
 
data modeling and models
data modeling and modelsdata modeling and models
data modeling and modelssabah N
 
Distributed Database Management System
Distributed Database Management SystemDistributed Database Management System
Distributed Database Management SystemHardik Patil
 
Lecture 04 normalization
Lecture 04 normalization Lecture 04 normalization
Lecture 04 normalization emailharmeet
 
08. Object Oriented Database in DBMS
08. Object Oriented Database in DBMS08. Object Oriented Database in DBMS
08. Object Oriented Database in DBMSkoolkampus
 
Distributed dbms architectures
Distributed dbms architecturesDistributed dbms architectures
Distributed dbms architecturesPooja Dixit
 
Week 3 Classification of Database Management Systems & Data Modeling
Week 3 Classification of Database Management Systems & Data ModelingWeek 3 Classification of Database Management Systems & Data Modeling
Week 3 Classification of Database Management Systems & Data Modelingoudesign
 

What's hot (20)

Object oriented database
Object oriented databaseObject oriented database
Object oriented database
 
Ordbms
OrdbmsOrdbms
Ordbms
 
DDBMS Paper with Solution
DDBMS Paper with SolutionDDBMS Paper with Solution
DDBMS Paper with Solution
 
Adbms 17 object query language
Adbms 17 object query languageAdbms 17 object query language
Adbms 17 object query language
 
Object oriented databases
Object oriented databasesObject oriented databases
Object oriented databases
 
Object oriented database model
Object oriented database modelObject oriented database model
Object oriented database model
 
PPL, OQL & oodbms
PPL, OQL & oodbmsPPL, OQL & oodbms
PPL, OQL & oodbms
 
Object Oriented Database Management System
Object Oriented Database Management SystemObject Oriented Database Management System
Object Oriented Database Management System
 
Distributed DBMS - Unit 3 - Distributed DBMS Architecture
Distributed DBMS - Unit 3 - Distributed DBMS ArchitectureDistributed DBMS - Unit 3 - Distributed DBMS Architecture
Distributed DBMS - Unit 3 - Distributed DBMS Architecture
 
Data models
Data modelsData models
Data models
 
OODM-object oriented data model
OODM-object oriented data modelOODM-object oriented data model
OODM-object oriented data model
 
2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMS2. Entity Relationship Model in DBMS
2. Entity Relationship Model in DBMS
 
Data models
Data modelsData models
Data models
 
Entity Relationship Diagram
Entity Relationship DiagramEntity Relationship Diagram
Entity Relationship Diagram
 
data modeling and models
data modeling and modelsdata modeling and models
data modeling and models
 
Distributed Database Management System
Distributed Database Management SystemDistributed Database Management System
Distributed Database Management System
 
Lecture 04 normalization
Lecture 04 normalization Lecture 04 normalization
Lecture 04 normalization
 
08. Object Oriented Database in DBMS
08. Object Oriented Database in DBMS08. Object Oriented Database in DBMS
08. Object Oriented Database in DBMS
 
Distributed dbms architectures
Distributed dbms architecturesDistributed dbms architectures
Distributed dbms architectures
 
Week 3 Classification of Database Management Systems & Data Modeling
Week 3 Classification of Database Management Systems & Data ModelingWeek 3 Classification of Database Management Systems & Data Modeling
Week 3 Classification of Database Management Systems & Data Modeling
 

Viewers also liked

The Object Oriented Database System Manifesto
The Object Oriented Database System ManifestoThe Object Oriented Database System Manifesto
The Object Oriented Database System ManifestoBeat Signer
 
Revision sql te it new syllabus
Revision sql te it new syllabusRevision sql te it new syllabus
Revision sql te it new syllabussaurabhshertukde
 
Database management systems
Database management systemsDatabase management systems
Database management systemsUjjwal 'Shanu'
 
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
Overview of Object-Oriented Concepts Characteristics by vikas jagtapOverview of Object-Oriented Concepts Characteristics by vikas jagtap
Overview of Object-Oriented Concepts Characteristics by vikas jagtapVikas Jagtap
 
Module 3 Object Oriented Data Models Object Oriented notations
Module 3  Object Oriented Data Models Object Oriented notationsModule 3  Object Oriented Data Models Object Oriented notations
Module 3 Object Oriented Data Models Object Oriented notationsTaher Barodawala
 
Er & eer to relational mapping
Er & eer to relational mappingEr & eer to relational mapping
Er & eer to relational mappingsaurabhshertukde
 
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)Beat Signer
 
Entity (types, attibute types)
Entity (types, attibute types)Entity (types, attibute types)
Entity (types, attibute types)Zaheer Soomro
 
Object-Relational Database Systems(ORDBMSs)
Object-Relational Database Systems(ORDBMSs)Object-Relational Database Systems(ORDBMSs)
Object-Relational Database Systems(ORDBMSs)Sahan Walpitagamage
 
Database system concepts
Database system conceptsDatabase system concepts
Database system conceptsKumar
 
Rdbms
RdbmsRdbms
Rdbmsrdbms
 
Database management system
Database management systemDatabase management system
Database management systemRizwanHafeez
 

Viewers also liked (20)

Object oriented dbms
Object oriented dbmsObject oriented dbms
Object oriented dbms
 
The Object Oriented Database System Manifesto
The Object Oriented Database System ManifestoThe Object Oriented Database System Manifesto
The Object Oriented Database System Manifesto
 
Chapt 1 odbms
Chapt 1 odbmsChapt 1 odbms
Chapt 1 odbms
 
Revision sql te it new syllabus
Revision sql te it new syllabusRevision sql te it new syllabus
Revision sql te it new syllabus
 
Database management systems
Database management systemsDatabase management systems
Database management systems
 
Introduction er & eer
Introduction er & eerIntroduction er & eer
Introduction er & eer
 
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
Overview of Object-Oriented Concepts Characteristics by vikas jagtapOverview of Object-Oriented Concepts Characteristics by vikas jagtap
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
 
Object oriented data model
Object oriented data modelObject oriented data model
Object oriented data model
 
ORDBMS
ORDBMSORDBMS
ORDBMS
 
Module 3 Object Oriented Data Models Object Oriented notations
Module 3  Object Oriented Data Models Object Oriented notationsModule 3  Object Oriented Data Models Object Oriented notations
Module 3 Object Oriented Data Models Object Oriented notations
 
Temporal database
Temporal databaseTemporal database
Temporal database
 
Er & eer to relational mapping
Er & eer to relational mappingEr & eer to relational mapping
Er & eer to relational mapping
 
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
 
Entity (types, attibute types)
Entity (types, attibute types)Entity (types, attibute types)
Entity (types, attibute types)
 
Object-Relational Database Systems(ORDBMSs)
Object-Relational Database Systems(ORDBMSs)Object-Relational Database Systems(ORDBMSs)
Object-Relational Database Systems(ORDBMSs)
 
Database system concepts
Database system conceptsDatabase system concepts
Database system concepts
 
Oops ppt
Oops pptOops ppt
Oops ppt
 
Object-oriented concepts
Object-oriented conceptsObject-oriented concepts
Object-oriented concepts
 
Rdbms
RdbmsRdbms
Rdbms
 
Database management system
Database management systemDatabase management system
Database management system
 

Similar to Oodbms ch 20

Database and Design system in Fundamentals ppt
Database and Design system in Fundamentals pptDatabase and Design system in Fundamentals ppt
Database and Design system in Fundamentals pptUMANJUNATH
 
Overview and Current Status of IMS Learning Object and Discovery (LODE)
Overview and Current Status of IMS Learning Object and Discovery (LODE)Overview and Current Status of IMS Learning Object and Discovery (LODE)
Overview and Current Status of IMS Learning Object and Discovery (LODE)David Massart
 
Chapter 1 - Concepts for Object Databases.ppt
Chapter 1 - Concepts for Object Databases.pptChapter 1 - Concepts for Object Databases.ppt
Chapter 1 - Concepts for Object Databases.pptShemse Shukre
 
In Memory Database Essay
In Memory Database EssayIn Memory Database Essay
In Memory Database EssayTammy Moncrief
 
Adbms 11 object structure and type constructor
Adbms 11 object structure and type constructorAdbms 11 object structure and type constructor
Adbms 11 object structure and type constructorVaibhav Khanna
 
Java is an Object-Oriented Language
Java is an Object-Oriented LanguageJava is an Object-Oriented Language
Java is an Object-Oriented Languageale8819
 
Hibernate Training Session1
Hibernate Training Session1Hibernate Training Session1
Hibernate Training Session1Asad Khan
 
Mapping VRA Core 4.0 to the CIDOC/CRM ontology
Mapping VRA Core 4.0 to the CIDOC/CRM ontologyMapping VRA Core 4.0 to the CIDOC/CRM ontology
Mapping VRA Core 4.0 to the CIDOC/CRM ontologyGiannis Tsakonas
 
From relational data to object spaces
From relational data to object spacesFrom relational data to object spaces
From relational data to object spacesAndrea Saltarello
 

Similar to Oodbms ch 20 (20)

Database and Design system in Fundamentals ppt
Database and Design system in Fundamentals pptDatabase and Design system in Fundamentals ppt
Database and Design system in Fundamentals ppt
 
Overview and Current Status of IMS Learning Object and Discovery (LODE)
Overview and Current Status of IMS Learning Object and Discovery (LODE)Overview and Current Status of IMS Learning Object and Discovery (LODE)
Overview and Current Status of IMS Learning Object and Discovery (LODE)
 
Chapter 1 - Concepts for Object Databases.ppt
Chapter 1 - Concepts for Object Databases.pptChapter 1 - Concepts for Object Databases.ppt
Chapter 1 - Concepts for Object Databases.ppt
 
In Memory Database Essay
In Memory Database EssayIn Memory Database Essay
In Memory Database Essay
 
Adbms 11 object structure and type constructor
Adbms 11 object structure and type constructorAdbms 11 object structure and type constructor
Adbms 11 object structure and type constructor
 
Normalization.ppt
Normalization.pptNormalization.ppt
Normalization.ppt
 
ER Diagram
ER DiagramER Diagram
ER Diagram
 
Introduction to odbms
Introduction to odbmsIntroduction to odbms
Introduction to odbms
 
B017441015
B017441015B017441015
B017441015
 
Data modeling
Data modelingData modeling
Data modeling
 
Java is an Object-Oriented Language
Java is an Object-Oriented LanguageJava is an Object-Oriented Language
Java is an Object-Oriented Language
 
java
javajava
java
 
ENCh26.ppt
ENCh26.pptENCh26.ppt
ENCh26.ppt
 
Chapter2
Chapter2Chapter2
Chapter2
 
Java pdf
Java   pdfJava   pdf
Java pdf
 
Hibernate Training Session1
Hibernate Training Session1Hibernate Training Session1
Hibernate Training Session1
 
Database model BY ME
Database model BY MEDatabase model BY ME
Database model BY ME
 
Mapping VRA Core 4.0 to the CIDOC/CRM ontology
Mapping VRA Core 4.0 to the CIDOC/CRM ontologyMapping VRA Core 4.0 to the CIDOC/CRM ontology
Mapping VRA Core 4.0 to the CIDOC/CRM ontology
 
From relational data to object spaces
From relational data to object spacesFrom relational data to object spaces
From relational data to object spaces
 
Entity Framework
Entity FrameworkEntity Framework
Entity Framework
 

More from saurabhshertukde (16)

Introduction er & eer
Introduction er &  eerIntroduction er &  eer
Introduction er & eer
 
Integrity & security
Integrity & securityIntegrity & security
Integrity & security
 
Er model
Er modelEr model
Er model
 
Eer case study
Eer case studyEer case study
Eer case study
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
J2 ee archi
J2 ee archiJ2 ee archi
J2 ee archi
 
J2 ee architecture
J2 ee architectureJ2 ee architecture
J2 ee architecture
 
Software project-scheduling
Software project-schedulingSoftware project-scheduling
Software project-scheduling
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
Analysis modelling
Analysis modellingAnalysis modelling
Analysis modelling
 
Analysis concepts and principles
Analysis concepts and principlesAnalysis concepts and principles
Analysis concepts and principles
 
Risk analysis
Risk analysisRisk analysis
Risk analysis
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Oodbms ch 20

  • 1. Chapter 20 Concepts for Object-Oriented Databases Copyright © 2004 Pearson Education, Inc.
  • 2. Chapter Outline 20.1 Overview of O-O Concepts 20.2 O-O Identity, Object Structure and Type Constructors 20.3 Encapsulation of Operations, Methods and Persistence 20.4 Type and Class Hierarchies and Inheritance 20.5 Complex Objects 20.6 Other O-O Concepts 20.7 Summary & Current Status Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-2 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 3. Object Oriented Concepts  Object – An object represents a real world entity (Person), a concept (Cricket Match), a logical thing (Driving Licence), a physical thing (Car) – User Defined Complex Data type – An object is made of two things: State: properties (name, address, birthDate of a Person) Behaviour: operations (age of a Person is computed from birthDate and current date) Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 4. Object Oriented Concepts  An object has associated with it: – A set of variables that contain the data for the object. The value of each variable is itself an object. – A set of messages to which the object responds; each message may have zero, one, or more parameters. – A set of methods, each of which is a body of code to implement a message; a method returns a value as the response to the message  The physical representation of data is visible only to the implementor of the object  Messages and responses provide the only external interface to an object. The term message does not necessarily imply physical message passing. Messages can be implemented as procedure invocations. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 5. Object Oriented Concepts  Methods are programs written in general-purpose language with the following features – only variables in the object itself may be referenced directly – data in other objects are referenced only by sending messages.  Methods can be read-only or update methods – Read-only methods do not change the value of the object Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 6. Object Oriented Concepts  Strictly speaking, every attribute of an entity must be represented by a variable and two methods, called the accessor methods, one to read and the other to update the attribute – e.g., the attribute address is represented by a variable address and two messages get-address and set-address. – For convenience, many object-oriented data models permit direct access to variables of other objects. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 7. Object Oriented Concepts  Object – Every object has a unique Object Identifier (OID) – Described by 4 major characteristics Identifier : System wide unique id of an object Name : optionally, may have a unique name in a DB Lifetime: determines if the object is persistent or transient Structure: determines the construction using type constructors Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 8. Object Identifiers  Object identifiers used to uniquely identify objects ( 32 or 64 bit integers) – Object identifiers are unique:  no two objects have the same identifier  each object has only one object identifier – can be stored as a field of an object, to refer to another object. – Can be  system generated (created by database) or  external (such as social-security number) – System generated identifiers:  Are easier to use, but cannot be used across database systems  May be redundant if unique identifier already exists Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 9. Object Oriented Concepts Object Structure The state (current value) of a complex object may be constructed from other objects (or other values) by using certain type constructors  Can be represented by (i,c,v) – i is an unique id – c is a type constructor – v is the object state  Constructors – Basic types: atom, tuple and set – Collection type: list, bag and array Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 10. Object Identity, Object Structure, and Type Constructors (3)  Example 1, one possible relational database state corresponding to COMPANY schema Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-10 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 11. Object Identity, Object Structure, and Type Constructors (4)  Example 1 (cont.): Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-11 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 12. Object Identity, Object Structure, and Type Constructors (5)  Example 1 (cont.) Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-12 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 13. Object Identity, Object Structure, and Type Constructors (6)  Example 1 (cont.) We use i1, i2, i3, . . . to stand for unique system- generated object identifiers. Consider the following objects: o1 = (i1, atom, ‘Houston’) o2 = (i2, atom, ‘Bellaire’) o3 = (i3, atom, ‘Sugarland’) o4 = (i4, atom, 5) o5 = (i5, atom, ‘Research’) o6 = (i6, atom, ‘1988-05-22’) o7 = (iElmasri/Navathe,i2, i3}) 7 , set, {i1, Fundamentals of Database Systems, Fourth Edition Chapter 20-13 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 14. Object Identity, Object Structure, and Type Constructors (7)  Example 1(cont.) o8 = (i8, tuple, <dname:i5, dnumber:i4, mgr:i9, locations:i7, employees:i10, projects:i11>) o9 = (i9, tuple, <manager:i12, manager_start_date:i6>) o10 = (i10, set, {i12, i13, i14}) o11 = (i11, set {i15, i16, i17}) o12 = (i12, tuple, <fname:i18, minit:i19, lname:i20, ssn:i21, . . ., salary:i26, supervi­sor:i27, dept:i8>) ... Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-14 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 15. Object Identity, Object Structure, and Type Constructors (8) Example 1 (cont.) The first six objects listed in this example represent atomic values. Object seven is a set-valued object that represents the set of locations for department 5; the set refers to the atomic objects with values {‘Houston’, ‘Bellaire’, ‘Sugarland’}. Object 8 is a tuple-valued object that represents department 5 itself, and has the attributes DNAME, DNUMBER, MGR, LOCATIONS, and so on. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-15 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 16. Object Identity, Object Structure, and Type Constructors (9) Example 2: This example illustrates the difference between the two definitions for comparing object states for equality. o1 = (i1, tuple, <a1:i4, a2:i6>) o2 = (i2, tuple, <a1:i5, a2:i6>) o3 = (i3, tuple, <a1:i4, a2:i6>) o4 = (i4, atom, 10) o5 = (i5, atom, 10) o6 = (i6, atom, 20) Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-16 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 17. Object Identity, Object Structure, and Type Constructors (10) Example 2 (cont.): In this example, The objects o1 and o2 have equal states, since their states at the atomic level are the same but the values are reached through distinct objects o4 and o5. However, the states of objects o1 and o3 are identical, even though the objects themselves are not because they have distinct OIDs. Similarly, although the states of o4 and o5 are identical, the actual objects o4 and o5 are equal but not identical, because they have distinct OIDs. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-17 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 18. Object Identity, Object Structure, and Type Constructors (11) Figure 20.1 Representation of a DEPARTMENT complex object as a graph Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-18 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 19. Object Identity, Object Structure, and Type Constructors (12) Figure 20.2 Specifying the object types Employee, date, and Department using type constructors Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-19 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 20. 20.3 Encapsulation of Operations, Methods, and Persistence (1) Encapsulation  One of the main characteristics of OO languages and systems  Related to the concepts of abstract data types and information hiding in programming languages Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-20 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 21. Encapsulation of Operations, Methods, and Persistence (2) Specifying Object Behavior via Class Operations:  The main idea is to define the behavior of a type of object based on the operations that can be externally applied to objects of that type.  In general, the implementation of an operation can be specified in a general-purpose programming language that provides flexibility and power in defining the operations. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-21 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 22. Encapsulation of Operations, Methods, and Persistence (3) Specifying Object Behavior via Class Operations (cont.):  For database applications, the requirement that all objects be completely encapsulated is too stringent.  One way of relaxing this requirement is to divide the structure of an object into visible and hidden attributes (instance variables). Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-22 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 23. Encapsulation of Operations, Methods, and Persistence (4) Figure 20.3 Adding operations to definitions of Employee and Department Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-23 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 24. Encapsulation of Operations, Methods, and Persistence (5) Specifying Object Persistence via Naming and Reachability:  Naming Mechanism: Assign an object a unique persistent name through which it can be retrieved by this and other programs.  Reachability Mechanism: Make the object reachable from some persistent object.  An object B is said to be reachable from an object A if a sequence of references in the object graph lead from object A to object B. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-24 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 25. Encapsulation of Operations, Methods, and Persistence (6) Specifying Object Persistence via Naming and Reachability (cont.):  In traditional database models such as relational model or EER model, all objects are assumed to be persistent.  In OO approach, a class declaration specifies only the type and operations for a class of objects. The user must separately define a persistent object of type set (DepartmentSet) or list (DepartmentList) whose value is the collection of references to all persistent DEPARTMENT objects Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-25 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 26. Encapsulation of Operations, Methods, and Persistence (7) Note: The above figure is now called Figure 20.4 in Edition 4 Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-26 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 27. 20.4 Type and Class Hierarchies and Inheritance (1)  Type (class) Hierarchy  A type in its simplest form can be defined by giving it a type name and then listing the names of its visible (public) functions  When specifying a type in this section, we use the following format, which does not specify arguments of functions, to simplify the discussion: TYPE_NAME: function, function, . . . , function Example: PERSON: Name, Address, Birthdate, Age, SSN Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-27 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 28. Type and Class Hierarchies and Inheritance (2)  Subtype: when the designer or user must create a new type that is similar but not identical to an already defined type  Supertype: It inherits all the functions of the subtype Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-28 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 29. Type and Class Hierarchies and Inheritance (3) Example (1): EMPLOYEE: Name, Address, Birthdate, Age, SSN, Salary, HireDate, Seniority STUDENT: Name, Address, Birthdate, Age, SSN, Major, GPA OR: EMPLOYEE subtype-of PERSON: Salary, HireDate, Seniority STUDENT subtype-of PERSON: Major, GPA Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-29 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 30. Type and Class Hierarchies and Inheritance (4) Example (2): Consider a type that describes objects in plane geometry, which may be defined as follows: GEOMETRY_OBJECT: Shape, Area, ReferencePoint Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-30 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 31. Type and Class Hierarchies and Inheritance (5)  Example (2) (cont.): Now suppose that we want to define a number of subtypes for the GEOMETRY_OBJECT type, as follows: RECTANGLE subtype-of GEOMETRY_OBJECT: Width, Height TRIANGLE subtype-of GEOMETRY_OBJECT: Side1, Side2, Angle CIRCLE subtype-of GEOMETRY_OBJECT: Radius Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-31 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 32. Type and Class Hierarchies and Inheritance (6)  Example (2) (cont.): An alternative way of declaring these three subtypes is to specify the value of the Shape attribute as a condition that must be satisfied for objects of each subtype: RECTANGLE subtype-of GEOMETRY_OBJECT (Shape=‘rectangle’): Width, Height TRIANGLE subtype-of GEOMETRY_OBJECT (Shape=‘triangle’): Side1, Side2, Angle CIRCLE subtype-of GEOMETRY_OBJECT (Shape=‘circle’): Radius Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-32 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 33. Type and Class Hierarchies and Inheritance (7)  Extents: In most OO databases, the collection of objects in an extent has the same type or class. However, since the majority of OO databases support types, we assume that extents are collections of objects of the same type for the remainder of this section.  Persistent Collection: It holds a collection of objects that is stored permanently in the database and hence can be accessed and shared by multiple programs Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-33 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 34. Type and Class Hierarchies and Inheritance (8)  Transient Collection: It exists temporarily during the execution of a program but is not kept when the program terminates class Employee (extent all_emp key ssn) { attribute string name; attribute string ssn; attribute short age; relationship Dept works_for inverse dept :: has; void reassign (in string new_name); }; Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-34 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 35. EER DIAGRAM Person d Student Lecturer N worksFor 1 Department Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-35 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 36. University schema in ODL class Person { attribute struct pname {string fname, string lname, string mname}name; attribute string address; attribute date birthDate; short age(); }; class Lecturer extends Person (extent Lecturers) { attribute short room; relationship Department worksFor inverse Department::staff; boolean teachUnit(in Unit U); }; class Student extends Person (extent Students) { attribute string major; boolean register(in Course C); boolean takeUnit(in Unit U); }; class Department (extent Departments) { attribute string name; relationship set<Lecturer> staff inverse Lecturer::worksFor; }; Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 37. 20.5 Complex Objects (1)  Unstructured complex object: It is provided by a DBMS and permits the storage and retrieval of large objects that are needed by the database application.  Typical examples of such objects are bitmap images and long text strings (such as documents); they are also known as binary large objects, or BLOBs for short.  This has been the standard way by which Relational DBMSs have dealt with supporting complex objects, leaving the operations on those objects outside the RDBMS. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-37 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 38. Complex Objects (2)  Structured complex object: It differs from an unstructured complex object in that the object’s structure is defined by repeated application of the type constructors provided by the OODBMS. Hence, the object structure is defined and known to the OODBMS. The OODBMS also defines methods or operations on it. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-38 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 39. 20.6 Other Objected-Oriented Concepts (1)  Polymorphism (Operator Overloading): This concept allows the same operator name or symbol to be bound to two or more different implementations of the operator, depending on the type of objects to which the operator is applied Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-39 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 40. Other Objected-Oriented Concepts (2)  Multiple Inheritance and Selective Inheritance Multiple inheritance in a type hierarchy occurs when a certain subtype T is a subtype of two (or more) types and hence inherits the functions (attributes and methods) of both supertypes. For example, we may create a subtype ENGINEERING_MANAGER that is a subtype of both MANAGER and ENGINEER. This leads to the creation of a type lattice rather than a type hierarchy. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-40 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 41. Other Objected-Oriented Concepts (3) Versions and Configurations  Many database applications that use OO systems require the existence of several versions of the same object  There may be more than two versions of an object. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-41 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 42. Other Objected-Oriented Concepts (4)  Configuration: A configuration of the complex object is a collection consisting of one version of each module arranged in such a way that the module versions in the configuration are compatible and together form a valid version of the complex object. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-42 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 43. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 44. RDBMS – a view point  RDBMS representation of a pet called “cat’ Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 45. OODBMS – a view point  Wholesome ‘view’ of the object!! Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 46. RDMBS – the standard view STUDENT Student# StudentName Address STUDIES 1 jane jones 6 The High Street Student# Course# 2 brian brown 104 Park Avenue 1 C1 3 clara clarke 97 Gilmore Street 2 T2 4 sally smith 68 Lemon Grove 3 T2 5 tom taylor 53 London Road 4 Q9 5 F COURSE Course# CourseName C1 computing F3 flower arranging Q9 quantum mechanics T2 theology Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 47. OODBMS – how it looks Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 48. Comparison  RDBs vs. OODBs. – RDBs have only one construct i.e. Relation, whereas the type system of OODBs is much richer and complex. – RDBs require primary keys and foreign keys for implementing relationships, OODBs simply don’t. – Optimization of queries in OODBs is much complex than RDBs, but is mainly inspired from the Optimization techniques in RDBs. – OODBs support complex data whereas RDBs don’t. – OODBs are much faster than RDBs but are less mature to handle large volumes of data. – There is more acceptance and domination of RDBs in the market than that for OODBs. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 49. RDBMS .. OODBMS  SQL is used to ‘query’ a RDBMS. – Operates over a Relational database implemented as a ‘table’ or multiple ‘tables’ and produces a resultant ‘table’ containing rows of entity sets  OQL is used to query a ODBMS – OQL statement will query an object database and return a collection-object which contains resultant objects Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 50. Example of OQL query The following is a sample query “what are the names of the black product?” Select distinct p.name From products p Where p.color = “black” ⇒Valid in both SQL and OQL, but results are different.
  • 51. Result of the query (SQL) Product no Name Color P1 Ford Mustang Black Original table P2 Toyota Celica Green P3 Mercedes SLK Black - The statement queries a relational database. => Returns a table with rows. Result Name Ford Mustang Mercedes SLK
  • 52. Result of the query (OQL) Product no Name Color P1 Ford Mustang Black Original table P2 Toyota Celica Green P3 Mercedes SLK Black - The statement queries a object-oriented database => Returns a collection of objects. Result String String Ford Mustang Mercedes SLK
  • 53. 20.7 Summary (1)  Object identity: Objects have unique identities that are independent of their attribute values.  Type constructors: Complex object structures can be constructed by recursively applying a set of basic constructors, such as tuple, set, list, and bag.  Encapsulation of operations: Both the object structure and the operations that can be applied to objects are included in the object class definitions. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-53 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 54. Summary (2)  Programming language compatibility: Both persistent and transient objects are handled uniformly. Objects are made persistent by being attached to a persistent collection.  Type hierarchies and inheritance: Object types can be specified by using a type hierarchy, which allows the inheritance of both attributes and methods of previously defined types. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-54 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 55. Summary (3)  Extents: All persistent objects of a particular type can be stored in an extent. Extents corresponding to a type hierarchy have set/subset constraints enforced on them.  Support for complex objects: Both structured and unstructured complex objects can be stored and manipulated.  Polymorphism and operator overloading: Operations and method names can be overloaded to apply to different object types with different implementations. Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-55 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 56. Summary (4)  Versioning: Some OO systems provide support for maintaining several versions of the same object.  Comparison : RDBMS & OODBMS Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-56 Copyright © 2004 Ramez Elmasri and Shamkant Navathe
  • 57. Current Status  OODB market not growing much per se. Currently around $250M as opposed to the relational DB revenue upwards of $50B.  O-O ideas are being used in a large number of applications, without explicitly using the OODB platform to store data.  Growth: O-O tools for modeling and analysis, O-O Programming Languages like Java and C++  Compromise Solution Proposed: Object Relational DB Management (Informix Universal Server, Oracle 10i, IBM’s UDB, DB2/II …) Elmasri/Navathe, Fundamentals of Database Systems, Fourth Edition Chapter 20-57 Copyright © 2004 Ramez Elmasri and Shamkant Navathe

Editor's Notes

  1. 03/05/12