Carnegie Mellon Carnegie Mellon Univ. Dept. of Computer Science Database Applications C. Faloutsos OO and OR DBMSs
Carnegie Mellon C. Faloutsos2 General Overview - rel. model Relational model - SQL Functional Dependencies & Normalization Physical Design; Indexing Query optimization Transaction processing Advanced topics –Distributed Databases –OO- and OR-DBMSs
Carnegie Mellon C. Faloutsos3 Detailed outline OO DBMSs OR DBMS –complex data types –inheritance –UDFs ORACLE-specific extensions Conclusions
Carnegie Mellon C. Faloutsos4 Why more than RDBMSs? RDBMS: tuples, of numbers + strings What apps need only those?
Carnegie Mellon C. Faloutsos5 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?
Carnegie Mellon C. Faloutsos6 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
Carnegie Mellon C. Faloutsos7 Their specs? complex objects (sets/vectors) inheritance new data types (image, video,...) and user defined functions (UDFs)
Carnegie Mellon C. Faloutsos8 Two solutions: Object Oriented DBMSs Object Relational DBMSs
Carnegie Mellon C. Faloutsos9 OO DBMS roughly, ‘C++’ with persistence commercial systems: –O2; ObjectStore; Objectivity ODMG: defined standards BUT: OODBMS have small market share Hence: OR-DBMSs
Carnegie Mellon C. Faloutsos10 OR DBMSs traditional DBMS with attempts to provide user defined data types support for large / complex objects inheritance
Carnegie Mellon C. Faloutsos11 SQL-3 proposed extensions complex types (sets, lists, multisets) inheritance (IS-A hierarchies) User Defined Functions (UDFs)
Carnegie Mellon C. Faloutsos12 Complex types eg, create type MyDate ( day decimal(2), month char(3), year decimal (4) );
Carnegie Mellon C. Faloutsos13 Complex types eg, Row Types: create row type Doc ( callnum varchar2(10), title char(20), authors list (varchar2(20)) ); create table document of type Doc;
Carnegie Mellon C. Faloutsos14 Complex types DML - insertions: insert into document values (‘QA123.45’, ‘DB systems’, set(‘Smith’, ‘Johnson’) );
Carnegie Mellon C. Faloutsos15 Inheritance single inheritance: create type Person ( ssn varchar2(10), name char(20)); create type Student (major varchar2(5)) under Person;
Carnegie Mellon C. Faloutsos16 Inheritance multiple inheritance: create type Teacher ( salary integer) under Person; create type TA under Student, Teacher;
Carnegie Mellon C. Faloutsos17 Inheritance multiple inheritance: constraints: one TA record corresponds to exactly one ‘Teacher’ and ‘Student’ record insertions/deletions/updates: appropriately propagated.
Carnegie Mellon C. Faloutsos18 Object Ids and references can define ‘object ids’ for each object, and use them, effectively as pointers.
Carnegie Mellon C. Faloutsos19 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’
Carnegie Mellon C. Faloutsos20 Query language extensions select title from document where ‘Smith’ in authors;
Carnegie Mellon C. Faloutsos21 SQL-3 proposed extensions - overview complex types (sets, lists, multisets) inheritance (IS-A hierarchies) User Defined Functions (UDFs)
Carnegie Mellon C. Faloutsos22 UDFs create function author-count (adoc document) returns integer as select count (authors) from adoc; select title from document d where author-count(d) > 1
Carnegie Mellon C. Faloutsos23 UDFs UDFs: stay within the DBMS, for everybody to use!
Carnegie Mellon C. Faloutsos24 Detailed outline OO DBMSs OR DBMS –complex data types –inheritance –UDFs ORACLE-specific extensions Conclusions
Carnegie Mellon C. Faloutsos25 ORACLE-specific Large objects PL/SQL and UDFs
Carnegie Mellon C. Faloutsos26 ORACLE-specific Large objects, eg., video, images, 3d-MRI scans new data types:
Carnegie Mellon C. Faloutsos27 ORACLE-specific Large objects, eg., 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)
Carnegie Mellon C. Faloutsos28 ORACLE-specific stored procedures PL/SQL: a ‘C’-like language –too large to describe here (see book on reserve) –example of a stored procedure:
Carnegie Mellon C. Faloutsos29 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 );
Carnegie Mellon C. Faloutsos30 Detailed outline OO DBMSs OR DBMS –complex data types –inheritance –UDFs ORACLE-specific extensions Conclusions
Carnegie Mellon C. Faloutsos31 Conclusions OO and OR DBMS strive for –complex data types –inheritance –UDFs OR DBMSs: overwhelming market share (why?)
Carnegie Mellon C. Faloutsos32 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