1 object oriented & object relational databases ranga raju vatsavai teaching mentor (prof....

30
1 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

Post on 21-Dec-2015

225 views

Category:

Documents


1 download

TRANSCRIPT

1

Object Oriented & Object Relational Databases

Ranga Raju VatsavaiTeaching Mentor (Prof. Shekhar)

CSci 5708 : Architecture and Implementation of Database Management Systems, Fall 2003 Week 15 (11/24, 11/26/03) Lecture Notes

2

Last Class (11/24/03)

RDBMS limitations No support for complex data types and predicates

OO Rich set of features – encapsulation,

inheritance, .. Helps manage complexity

Conceptual Modeling – Simple Extensions EER, UML, PEER

3

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, …)

4

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

5

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

6

Mapping - ODL

Example interface Student { attribute string status; attribute Department major; relationship set<Department> majorOf inverse

Department::students; …. }

7

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

8

ORDBMS Fundamentals (SQL3)

OO Features in SQL3 Objects Type constructors Collection types User-defined functions and procedures Support for large objects Inheritance

9

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

10

ORDBMS Fundamentals (SQL3)

Here is a general form of ADT specification CREATE TYPE <type-name> (

list of component attributes with individual typesOptional declaration of = and < functions for the typedeclaration of other functions (methods) for the type);

Example CREATE TYPE DepartmentADT (

Code int,Name char(10),EQUALS deptEQ, //deptEQ – we will define it

laterLESS THAN NONE //DEFAULTDefintion of other functions goes here …);

11

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.

12

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

13

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)

14

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>

ExampleDECLARE EXTERNAL Square

POLYGONRETURNS BOOLEAN

LANGUAGE C;

15

ORDBMS Fundamentals (SQL3)

Row type objects Essentially tuples and they roughly resembles

struct/class CREATE ROW TYPE <typename>

(<listOfAttributes-and-their-types>) CREATE ROW TYPE DepartmentType(

code INT,name CHAR(10));

16

ORDBMS Fundamentals (SQL3)

Creating Relations of Row Type OF TYPE <row-type-name>

Example 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));

17

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’;

18

ORDBMS Fundamentals (SQL3)

Collection types setof

Example CREATE TABLE Rectangles (rname CHAR(10),

pnts setof(Points)).

SELECT r.rname FROM Rectangles r WHERE count(r.pnts) = 5;

rname points

r1 {{1,1},{1,2},{2,2},{2,1},{1,1}}

19

ORDBMS Fundamentals (SQL3)

Support for large objects blob, clob

Consider class recording Class_video_recordings(cid: integer, cmdate:

date, loc char(10), video: BLOB)

20

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.

21

ORDBMS Fundamentals (SQL3)

OO Features in SQL3 Objects Type constructors Collection types User-defined functions and procedures Support for large objects Inheritance

22

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

23

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

24

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). One solution – interpreted rather than compiled (Java and

procedural portions of SQL:1999). Run in different address space than the DBMS

Method Caching Cache of input and output of methods

Pointer Swizzling Technique to reduce cost of cached object

25

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

26

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

27

Demo

Postgresql/PostGIS

28

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

29

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)

30

Acknowledgements

PFF FacultyProf. ShekharClass

Happy Thanks Giving and good luck on final exams.