Download raju-ordbms2

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Open Database Connectivity wikipedia , lookup

Clusterpoint wikipedia , lookup

SQL wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Database wikipedia , lookup

PL/SQL wikipedia , lookup

Relational model wikipedia , lookup

Database model wikipedia , lookup

Transcript
Object Oriented & Object Relational Databases
Ranga Raju Vatsavai
Teaching Mentor (Prof. Shekhar)
CSci 5708 : Architecture and Implementation of Database
Management Systems, Fall 2003
Week 15 (11/24, 11/26/03) Lecture Notes
1
Last Class (11/24/03)

RDBMS limitations


OO



No support for complex data types and predicates
Rich set of features – encapsulation, inheritance, ..
Helps manage complexity
Conceptual Modeling – Simple Extensions

EER, UML, PEER
2
Learning Objectives





Basic concepts of OO and OR models
Extensions at conceptual modeling
Mapping Conceptual Model into Logical Model
Exposure to additional features in SQL:1999
standard.
Ability to model and implement a broader class of
applications (spatial, multimedia, engineering,
biological, scientific, …)
3
Mapping Conceptual Model onto Logical Model
EER Model
OO/ODL
Entity or
Subclass
Class (all attributes, multivalued attributes
– set, bag or list, composite - tuple
Binary
relationships
Add relationship properties or reference
attributes
Include appropriate operations for each
class
N-ary
relationshps
Separate classes with appropriate
references to each participating class
Subclass
Class inherits the type and methods of its
super class, and all attributes, relationship
references, and operations
4
Mapping Conceptual Model onto Logical Model




OO – Object Definition Language
OR – SQL3 DDL
ODL is an extension of Interface Description
Language.
ODL class definition includes



Attributes
Relationships
Methods
5
Mapping - ODL

Example






interface Student {
attribute string status;
attribute Department major;
relationship set<Department> majorOf inverse
Department::students;
….
}
6
ORDBMS Fundamentals



Try to unify aspects of both relational and object
databases
Relation is still central
No standard of what constitutes an ORDBMS



Won Kim’s (UniSQL) white paper
Michael Stonebraker – ORDBMS, The Next Great Wave
Query language – SQL3
7
ORDBMS Fundamentals (SQL3)

OO Features in SQL3






Objects
Type constructors
Collection types
User-defined functions and procedures
Support for large objects
Inheritance
8
ORDBMS Fundamentals (SQL3)

Objects in SQL3 comes in two flavors





ADTs and Row objects
ADTs – user defined arbitrary data types is a key
feature of ORDBMS
ADTs are a combination of atomic data types and
associated methods
DBMS doesn’t need to know about how ADT’s are
stored or their methods work? It just has to know
about ADT’s signature
Hiding ADT internals is called encapsulation
9
ORDBMS Fundamentals (SQL3)

Here is a general form of ADT specification

CREATE TYPE <type-name> (
list of component attributes with individual types
Optional declaration of = and < functions for the type
declaration of other functions (methods) for the type
);

Example

CREATE TYPE DepartmentADT (
Code int,
Name char(10),
EQUALS deptEQ,
//deptEQ – we will define it later
LESS THAN NONE//DEFAULT
Defintion of other functions goes here …
);
10
ORDBMS Fundamentals (SQL3)

Defining ADT’s methods




FUNCTION <name> ( <arguments> ) RETURNS
<type>;
Functions are of two types – internal and external
External functions are written in host language and only
signature appears in ADT definition.
Internal functions are written in extended SQL




:= assignment
local variables can be declared inside function (:a
DepartmentADT)
dot op is used to access components of structure
BEGIN and END are used to collect several stmts.
11
ORDBMS Fundamentals (SQL3)

Here is an example constructor method

FUNCTION DepartmentADT(:id INT, :dname CHAR(10))
RETURNS DepartmentADT;
:d DepartmentADT;
BEGIN
:d := DepartmentADT();
:d.code := :id;
:d.name := :dname;
RETURN :d;
END;

Discussion question – define method deptEQ
12
ORDBMS Fundamentals (SQL3)

Function deptEQ(:d1 DepartmentADT, :d2 DepartmentADT)
RETURNS BOOLEAN;
RETURN (:d1.code = :d2.code
AND :d1.name = :d1.name);

We could have used DEFAULT (system defined)
13
ORDBMS Fundamentals (SQL3)

External functions


ADT’s can have methods that are written in host
language (e.g. C, C++, …)
Only signature appears in ADT definition
DECLARE EXTERNAL <functionName> <signature>
LANGUAGE <language name>

Example
DECLARE EXTERNAL Square
POLYGON
RETURNS BOOLEAN
LANGUAGE C;
14
ORDBMS Fundamentals (SQL3)

Row type objects



Essentially tuples and they roughly resembles
struct/class
CREATE ROW TYPE <typename> (<listOfAttributes-andtheir-types>)
CREATE ROW TYPE DepartmentType(
code INT,
name CHAR(10)
);
15
ORDBMS Fundamentals (SQL3)

Creating Relations of Row Type


Example


OF TYPE <row-type-name>
CREATE TABLE Department OF TYPE DepartmentType;
References – A component attribute of tuple may
be a reference to a tuple of another (or posibly
same) relation.

CREATE ROW TYPE Department (
code INT,
name CHAR(10),
chair REF (Faculty_Row_Type)
);
16
ORDBMS Fundamentals (SQL3)

CREATE ROW TYPE Department_Row_Type (
code INT,
name CHAR(10),
chair REF (Faculty_Row_Type)
);


CREATE TABLE Department OF TYPE
Department_Row_Type;
Q? Print chair name of EECS department



SELECT d.chair->name
FROM Department d
WHERE d..name = ‘EECS’;
17
ORDBMS Fundamentals (SQL3)

Collection types


setof
Example




CREATE TABLE Rectangles (rname CHAR(10), pnts
setof(Points)).
rname
points
r1
{{1,1},{1,2},{2,2},{2,1},{1,1}}
SELECT r.rname
FROM Rectangles r
WHERE count(r.pnts) = 5;
18
ORDBMS Fundamentals (SQL3)


Support for large objects
 blob, clob
Consider class recording

Class_video_recordings(cid: integer, cmdate: date, loc
char(10), video: BLOB)
19
ORDBMS Fundamentals (SQL3)

Inheritance

Used in two ways:




reusing and refining types, and
for creating hierarchies of collections of similar but not
identical objects
UNDER
CREATE TYPE Student UNDER Person (addr
address)


Creates an explicit relationship between subtype Student
and supertype Person.
An object of subtype is considered to be an object of
supertype.
20
ORDBMS Fundamentals (SQL3)

OO Features in SQL3






Objects
Type constructors
Collection types
User-defined functions and procedures
Support for large objects
Inheritance
21
Outline for today’s class 11/26/03



Objectives
Mapping Conceptual Model into Logical
Model
ORDBMS Fundamentals





How ORDBMS incorporates OO ideas
SQL3
Physical Design and efficiency Issues
Demo
Conclusions
22
Physical design and efficiency issues

Need





efficiently storage of ADT’s and structured objects
efficient indexed access
Main problem is size, so disk layout is important
BLOBS require special storage, typically different
location on disk (separate from the tuple)
Indexing


Domain specific (large collection of indices)
Extendible indices
23
Physical design and efficiency issues

Query processing



User defined aggregate functions (SQL defined may not be
useful)
ORDBMS allows registering new aggregate functions
Security – external methods of ADT’s – can compromise the
database or crash (if its buggy).



Method Caching


One solution – interpreted rather than compiled (Java and
procedural portions of SQL:1999).
Run in different address space than the DBMS
Cache of input and output of methods
Pointer Swizzling

Technique to reduce cost of cached object
24
Comparison of OO and ORDBMS

Fundamental difference is in philosophy






OODMSs try to add DBMS functionality to Prog. Lang.
ORDBMS try to add richer data types and predicates to
an RDBMS
OODBMS – aimed at applications where object-centric
viewpoint is appropriate
ORDBMS – aimed at applications where large data
collections are the focus
Query (OQL) is not efficiently supported in OODBMS
Query processing is the centerpiece of an ORDBMS
25
Outline for today’s class 11/26/03



Objectives
Mapping Conceptual Model into Logical
Model
ORDBMS Fundamentals





How ORDBMS incorporates OO ideas
SQL3
Physical design and efficiency issues
Demo
Summary and Conclusions
26
Demo

Postgresql/PostGIS
27
Summary and Conclusions






Basic concepts of OO and OR models
Extensions at conceptual modeling
Mapping Conceptual Model into Logical Model
Exposure to additional features in SQL:1999
standard.
Ability to model and implement a broader class of
applications (spatial, multimedia, engineering,
biological, scientific, …)
ORDBMS/SQL3 offer much promise
28
Additional Readings



http://www.cs.umn.edu/~vatsavai/oo-ordbms.ppt
Main – Database Management Systems by Raghu
Ramakrishnan (Chapter 24: Object Database
Systems).
Additional References (relevant chapters):


Fundamentals of Database Systems – Elmasri & Navathe
A First Course In Database Systems – Ullman & Widom.


http://www-users.cs.umn.edu/~shekhar/5705/
Spatial Database – A Tour (Chapter 2 and 3)
29
Acknowledgements
PFF Faculty
Prof. Shekhar
Class
Happy Thanks Giving and good luck on final
exams.
30