V. Megalooikonomou Object-Oriented and Object-Relational DBMSs (based on notes by Silberchatz,Korth,...

34
V. Megalooikonomou Object-Oriented and Object- Relational DBMSs (based on notes by Silberchatz,Korth, and Sudarshan and notes by C. Faloutsos at CMU) Temple University – CIS Dept. CIS616– Principles of Data Management

Transcript of V. Megalooikonomou Object-Oriented and Object-Relational DBMSs (based on notes by Silberchatz,Korth,...

V. Megalooikonomou

Object-Oriented and Object-Relational DBMSs

(based on notes by Silberchatz,Korth, and Sudarshan and notes by C. Faloutsos at CMU)

Temple University – CIS Dept.CIS616– Principles of Data Management

Detailed outline OO DBMSs OR DBMS

complex data types inheritance UDFs

ORACLE-specific extensions Conclusions

Why more than RDBMSs? RDBMS: tuples, of numbers +

strings What apps need only those?

Why more than RDBMSs? RDBMS: tuples, of numbers +

strings What apps need only those?

Banks Airlines Retailer stores ...

Q: Other apps, with more req’s?

Why more than RDBMS’s Q: Other apps, with more req’s? A:

text multimedia; financial apps/forecasting Geographic Inf. Sys. CAD/CAM Network management

Their specs? complex objects (sets/vectors) inheritance new data types (image, video, ...)

and user defined functions (UDFs)

Two solutions: Object Oriented DBMSs Object Relational DBMSs

OO DBMS roughly, ‘C++’ with persistence commercial systems:

O2; ObjectStore; Objectivity Object Database Management

Group (ODMG): defined standards BUT: OODBMS have small market

share Hence: OR-DBMSs

OR DBMSs

traditional DBMS with attempts to provide

enriched data types user defined data types support for large / complex objects inheritance

SQL-3 proposed extensions complex types (sets, lists,

multisets) inheritance (IS-A hierarchies) User Defined Functions (UDFs)

Complex types

e.g.,create type MyDate (

day decimal(2),month char(3),year decimal (4)

);

Complex types

e.g., Row Types:create row type Doc (

callnum varchar2(10),title char(20),authors list (varchar2(20))

);create table document of type Doc;

Complex types

DML - insertions:

insert into document values(‘QA123.45’, ‘DB systems’,

set(‘Smith’, ‘Johnson’) );

Inheritance

single inheritance:create type Person (

ssn varchar2(10),name char(20));

create type Student (major varchar2(5))under Person;

Inheritance

multiple inheritance:create type Teacher (

salary integer) under Person;create type TA under Student,

Teacher;

Inheritance

multiple inheritance:

constraints: one TA record corresponds to exactly one ‘Teacher’ and ‘Student’ record

insertions/deletions/updates: appropriately propagated.

Object Ids and references

can define ‘object ids’ for each object,

and use them, effectively as pointers.

Query language extensions

(recall:)create row type Doc (

callnum varchar2(10),title char(20),authors list (varchar2(20))

);create table document of

type Doc;

find titles, (co-)authored by ‘Smith’

Query language extensions

select titlefrom documentwhere ‘Smith’ in authors;

SQL-3 proposed extensions - overview complex types (sets, lists,

multisets) inheritance (IS-A hierarchies) User Defined Functions (UDFs)

UDFscreate function author-count (adoc

document)returns integer as

select count (authors)from adoc;

select title from document dwhere author-count(d) > 1

UDFs

UDFs: stay within the DBMS, for everybody to use!

Detailed outline OO DBMSs OR DBMS

complex data types inheritance UDFs

ORACLE-specific extensions Conclusions

ORACLE-specific Large objects PL/SQL and UDFs

ORACLE-specific Large objects, e.g., video, images,

3d-MRI scans new data types:

ORACLE-specific Large objects, e.g., video, images, 3d-

MRI scans new data types: LOB (=Large OBject)

BLOB: (up to 4Gb; binary: jpeg, mpeg, ...) CLOB: (up to 2Gb; character: english text) NCLOB:(..............; multi-byte characters) (LONG: similar, for backwards compatibility)

ORACLE-specific stored procedures PL/SQL: a ‘C’-like language

too large to describe here… example of a stored procedure:

ORACLE-specific

SQL> create or replace procedure del-st-rec

(s-id number) as begin delete from student where s-id = ssn; end del-st-rec;

SQL> execute del-st-rec ( 123 );

IllustraInformixIBM’s Informix Dynamic Server Illustra Informix Dynamic Server

(Universal Data Option) IBM DB2 Universal Database –

Informix Product family

IllustraInformixIBM’s Informix Dynamic Server

Datablades technology - extensions for specific data domains Image Text Geodetic Spatial Time series Video Web

Informix - Sample SQL queries

COMPUTE VOLUME OF A GIVEN STRUCTURE return volume((select unique image from structures where side='Left' and atlas='Brodmann' and name='17')) ;

DISPLAY GIF OF ALL LESIONS SUMMED UP insert into temp_image_1 values(permanent(map_image(sum_images(( select image from patient_images where image.description='All

Lesions')), 'redgreenscale'))) ; select TS.SliceNo, slice(TS.SliceNo,overlay.image)::GIF as LesionDensity from TalairachSlices TS, temp_image_1 overlay order by SliceNo ;

Detailed outline OO DBMSs OR DBMS

complex data types inheritance UDFs

ORACLE-specific extensions Informix Conclusions

Conclusions OO and OR DBMS strive for

complex data types inheritance UDFs

OR DBMSs: overwhelming market share (why?)

Conclusions OR DBMSs: overwhelming market

share (why?) SQL is more standardized than OO

query languages legacy data are in SQL more SQL programmers are available