Object Oriented Dabatases
Object Oriented Dabatases
A Data Model
• A data model is a logical organization of the
real world objects (entities), constraints on
them, and the relationships among objects.
• A database language is a concrete syntax of
a data model
• A database system implements a data model
Object Data Model
• A core object-oriented data model consists
of the following basic object-oriented
concepts
• Object and object identifier
– A real world entity is uniformly modeled as
object (associated with unique id: used to
pinpoint an object to retrieve)
Object Data Model
• Attributes and methods
– every object has a state (the set of values for the
attributes of an object) and a behavior (the set
of methods – program code – which operates
on the state of the object).
– The state and behavior encapsulated in an
object are accessed or invoked from outside the
object only through explicitly message passing.
Object Data Model
• Class
– a means of grouping all the objects which share
the same set of attributes and methods.
– An object must belong to only one class as an
instance of that class (instance-of relationship).
– A class is similar to an object data type.
– A class may also be primitive (no attributes),
e.g., integer, string, Boolean
Object Data Model
• Class hierarchy and inheritance
– Derive a new class (subclass) from existing
class (superclass). The subclass inherits all the
attributes and methods of the existing class and
may have additional attributes and methods.
Single inheritance (class hierarchy) vs. multiple
inheritance (class lattice)
Object oriented data model
• In object oriented, data model represents
data and relationships of a real world
entities in a single structure which is known
as object
• In this model, two or more related objects
are connected through links as shown in the
diagram (next slide)
Object
Shape
Methods Behavior of an
getArea() object
Properties of getPerimeter()
an object
Object Security
Service
Bus
C++
Client ORB Application
Service
Interface Definition Language
(IDL)
• It is CORBA’s object contract language
• It is not a complete programming language
• It consists of two parts
– Front End
• Understands IDL syntax, creates intermediate representation
– Back End
• Understands the target language (C++, Java,..)
• Takes intermediate representation and produces language
specific source code
• Creates “stubs”: Client side stubs of the interface
• Creates “skeletons”: Server side stubs of the interface
Data Dictionary for ORB object
Model
• IDL Stubs - The code generated for a specific IDL
interface to allow static invocation of that interface. Linked
into a CORBA client
• IDL Skeleton - The code generated for a specific IDL
interface. Linked into a CORBA object implementation
• Dynamic Invocation Interface - Allows invocations of
CORBA operations without IDL stubs
• Dynamic Skeleton Interface - Interface that allows
interpretation of requests to a server for types that were not
known at compile time
Data Dictionary for ORB object
model
• ORB Interface - Interface offering miscellaneous services
from the ORB to clients and servers
• ORB agent - Locates and launches servers; facilitates
client communication with servers
• Object Adapter - Capable of activating servers whose
objects are required by invocations. (After a server is ready
it must inform the Object Adapter that its objects can
receive requests).
• Interface Repository - Stores operations and parameter
types of CORBA objects for discovery.
Group Assignment
Write short notes about query processing and
query optimization supported by vivid
examples, motives, techniques and
implementation details (Refer to chap. 18 and
19 of Fundamentals of Database Systems by
Elmasri and Navathe, 2016) . Group
presentation will be conduct during next
period.