Advanced Database Systems
(CoSc2042)
Chapter one
Concepts for Object-Oriented Databases
Compiled by: Bekele A.
Outline
Overview of Object-Oriented Concepts
Object Identity, Object Structure, and Type Constructors
Encapsulation of Operations, Methods, and Persistence
Type Hierarchies and Inheritance
2
Overview of Object-Oriented Concepts
OO databases try to maintain a direct correspondence between real-world and
database objects so that objects do not lose their integrity and identity and can
easily be identified and operated upon.
Objects – User defined complex data types
An object has structure or state (variables) and methods (behavior/operations)
An object is described by four characteristics
Identifier: a system-wide unique id for an object
Name: an object may also have a unique name in DB (optional)
Lifetime: determines if the object is persistent or transient
Structure: Construction of objects using type constructors
3
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
4
Type Constructors:
In databases, the state (current value) of a complex object may
be constructed from other objects (or other values) by using
certain type constructors.
The three most basic constructors are atom, tuple, and set.
Other commonly used constructors include list, bag, and array.
Set, Iist, array and bag are called collection types.
Tuple type constructor is called structured type.
The atom constructor is used to represent all basic atomic
values, such as integers, real numbers, character strings,
Booleans, and any other basic data types that the system
supports directly.
5
Object-Oriented Concepts
Abstract Data Types
Class definition, provides extension to complex attribute
types
Encapsulation
Implementation of operations and object structure
hidden
Inheritance
Sharing of data within hierarchy scope, supports code
reusability
Polymorphism:
This refers to an operation's ability to be applied to
different types of objects.
• Operator overloading
6
What is Object Oriented Database? (OODB)
A database system that incorporates all the important
object-oriented concepts
Some additional features
Unique Object identifiers
Persistent object handling
7
Advantages of OODBS
Designer can specify the structure of objects and their
behavior (methods)
Better interaction with object-oriented languages such as
Java and C++
Definition of complex and user-defined types
Encapsulation of operations and user-defined methods
8
Object Query Language (OQL)
Declarative query language
Not computationally complete
Syntax based on SQL (select, from, where)
Additional flexibility (queries with user defined
operators and types)
9
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.
10
Result of the query (SQL)
Original table
Product no Name Color
P1 Ford Mustang Black
P2 Toyota Celica Green
P3 Mercedes SLK Black
Result
- The statement queries a relational
Name database.
Ford Mustang => Returns a table with rows.
Mercedes SLK
11
Result of the query (OQL)
Original table
Product no Name Color
P1 Ford Mustang Black
P2 Toyota Celica Green
P3 Mercedes SLK Black
Result - The statement
queries a object-
String String
oriented database
Ford Mustang Mercedes SLK
=> Returns a
collection of objects.
12
Comparison
Queries look very similar in SQL and OQL,
sometimes they are the same
In fact, the results they give are very different
Query returns:
OQL SQL
Object Tuple
Collection of objects Table
13
SQL3 “Object-oriented SQL”
Foundation for several OO database management systems –
ORACLE8, DB2, etc
New features – “relational” & “Object oriented”
Relational Features – new data types, new predicates, enhanced
semantics, additional security and an active database
Object Oriented Features – support for functions and
procedures
14
User defined Data Types
Creating a “row type”
Example:
create row type AddressType(
street char(50),
city char(20));
create row type StarType(
name char(30),
address AddressType);
15
Creating Data Types (contd.)
Creating “Table”
create table Address of type AddressType;
create table MovieStar of type StarType;
Instances of Row types are tuples in tables
16
Sample Query
Find the names and street addresses of those MovieStars who
stay in the city “Columbus”:
select MovieStar.name,
MovieStar.address.street
from MovieStar
where MovieStar.address.city = “Columbus”;
17
Complex Data and Queries
A Water Resource Management example
A database of state wide water projects
Includes a library of picture slides
Indexing according to predefined concepts – prohibitively
expensive
Type of queries
Geographic locations
Reservoir levels during droughts
Recent flood conditions, etc
18
Complex Data and Queries (contd.)
Addressing these queries
Linking this database to landmarks on a topographic map
Examining the captions for each slide
Implementing image-understanding programs
Inspecting images and ascertaining attributes
These type of queries necessitate dedicated
“methods”
19
Creating Functions
create function one() returns int4
as ‘select 1 as RESULT'
language 'sql';
select one() as answer;
answer
20
Creating “tables” with “methods”
Implementation
create table slides (
id int,
date date,
caption document,
picture CD_image,
method containsName
(name varchar)
returns boolean
as external name „matching‟
language „C‟ );
21
Creating Tables (Contd.)
create table landmarks(
name varchar (30),
location point);
22
Implementation (contd.)
Sample query – find a picture of a reservoir with low water level
which is in “Sacramento”
select P.id
from slides P, landmarks L
where IsLowWaterLevel (P.picture) and
P.containsName (L.name) and L.name =
“Sacramento”;
23