1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of...

46
1 Object-Oriented Databases Chapter 11

Transcript of 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of...

Page 1: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

1

Object-Oriented Databases

Chapter 11

Page 2: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

2

 

• Limitations to the relational model?

• Examples of applications that will not work well with the relational model?

Page 3: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

3

Shortcomings of DB models for:

• CAD/CAM - keep track of 1000's of matching parts and subassemblies– relational inefficient for this– object versioning

• complex market-oriented operations (securities)

• geographical information systems• CASE• multimedia databases• WWW

Page 4: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

4

Different because of:

• requirements and characteristics that differ from traditional business applications

• more complex structures for objects• new data types for storing images, text, user

defined types• nonstandard application specific operations

Page 5: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

5

OODB systems

• Prototypes: ORION, IRIS, ENCORE,• Commercial products:

– ObjectStore V7.3 (free download, mentions big data)

– Versant V8 (free downloads)– Objectivity/DB10 (mentions big data), also has

InfiniteGraph– Discontinued: Itasca based on Orion, POET

Page 6: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

OODB systems

• Open source object database– PostgreSQL 9.1 (or is it ORDB?)– Perst (McObject) – supports SQL, ACID, etc.

• Used by DirectTV

– Db4o – queries only in Java, C#, VB.NET (owned by Versant)

– Magma 4.2 ?? Still around, old websites – Squeak (smalltalk-Gemstone)

6

Page 7: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

7

Different approaches to designing OODB1. Applications written in extension of existing

OOPL (1st generation OODB) to include:• DB functionality

– store and manage objects created by OOPL– DB features such as transactions, concurrency

control, etc.   • Selling point - unified programming and DB language but

need query optimization, etc. – Gemstone (Smalltalk), Poet (C++)

Page 8: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

8

Designing cont’d 2. Extend relational DB to include OO features:

– OID, type hierarchy, inheritance, encapsulation, arbitrary data types, nested objects, etc.

– Query language extended with programming capability

– application communicates with DBMS through embedded query language calls in application program

– Already familiar with DBMS but performance decreased  

• Postgres - extended Ingres, Oracle

Page 9: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

9

Designing cont’d

3. Start entire process from scratch - unify relational and OO system

– (next generation?)–   NO

Page 10: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

10

Object Data Model - ODM

• Bring concepts of OOPL into DB systems– Object corresponds to mini-world object– Object is data and behavior, object has

attributes and operations (methods)• Encapsulation (SQL, optimization?)

– Data object has OID – immutable• Identity vs. value based• Generated by system

– Group data objects into classes (or types) - abstract mechanism, share same structure and behavior

Page 11: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

11

ODM

Class has:– instances– methods and data - encapsulation for information

hiding - access only through methods– composite classes - composed of multiple types– nested objects - contains another object– complex objects - set of objects      – class hierarchy (ISA) – specialization - define new

classes from existing ones– inheritance of attributes and methods - reuse

Page 12: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

12

ODM

Encapsulation• implementation hidden• define behavior of object using operations• object accessible through predefined operations• If query on attributes?

– SQL violates encapsulation • SQL for visible (OSQL), rest is encapsulated

Page 13: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

13

ODM

Completeness• DBS needs to be computationally

complete (Turing)• SQL not computationally complete -

unless embedded SQL – impedance mismatch, since sets

• connections with DML and OOPL in ODB more acceptable

Page 14: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

14

ODM

Add features such as: – concurrency – recovery – schema evolution– Versions– What about query language?– Performance?

Page 15: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

15

ODM

Object identity OID• correspondence between real-world and

database objects• OIDs like RIDs except can point to other OIDs• used to refer  to objects in application programs

and in references between objects(relationships) • unique over entire DB and even over distributed

DB

Page 16: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

16

OID vs. primary key

• identity based vs. value-based• unique over entire DB and even over distributed DB (if

primary key changes, still same real-world object)• immutable - values of OID for object should not change

- OID not assigned to another object

- not dependent on any attribute values

- not use physical address      • system generated OID• not visible to user

Page 17: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

17

OIDs in reality

• in extended ODMSs, query language extended to allow access by OID

• in OOPL, allow value based access by key

• in Postgres - oid attribute in every tuple

Page 18: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

18

OID Implementation

1.  physical address - fast – rarely  used, cannot move or delete - if so, all

references must be changes also

2.  structured addresses - popular, 1-2 disk accesses

physical and logical component    segment and page # and logical slot number         if change, use forwarding 

Page 19: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

19

OID Implementation cont’d

•    3.  surrogates - poorer retrieval – purely logical – use any algorithm to produce unique IDs

(e.g. date, time) – use hash index to map to physical address

(Postgres) – object pages are hash buckets - single disk

access

Page 20: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

20

OID Implementation cont’d

• 4.  typed surrogate - like surrogate for retrieval – contains type ID and object ID – can obtain type without fetching it - ORION – difficult to change type - may be useful to be

able to segment address space (distributed)

Page 21: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

21

OID Implementation

• More efficient for artificially generated identifiers

• Performance improved if generate OID to speed object lookup

Page 22: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

22

Swizzling

• All references in cached objects replaced with object's address

• pointer to other memory resident objects - swizzling

• saves OID lookup with subsequent references

Page 23: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

23

Implementation Issues:

• pointer (OID) to nested object• nested - no joins needed

– path queries instead of joins

• when bring in an object into memory, bring in nested objects as well

• replace OID with memory address (can't do this in relational)– eager and lazy swizzling

• fast access - memory resident 

Page 24: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

OSQL – Object SQL 

24

• ODMG (disbanded) provided standards for ODB just like relational databases.

• Result is OSQL (object SQL)

Page 25: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

25

Object-relational - ORDMS

• Informix, IBM, Hewlett-Packard, Unisys, Oracle, and UniSQL

• “Extended relational" is probably the more appropriate term

• ORDMSs specified by the extensions to the SQL standard, SQL3/4

• http://en.wikipedia.org/wiki/Comparison_of_object-relational_database_management_systems

Page 26: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

26

ORDMS

• Superset of RDMS• Definition?

– Allows user defined types– User defined functions– Indexing/access methods to support them

• ORDBMSs have had their greatest success in managing media objects and complex data such as geospatial and financial time series data

• frequently used in Web applications and specialized data warehouses

Page 27: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

27

Oracle’s object relational

• Oracle ORDB– Relaxes 1NF– Has object types, so users can create tables

and objects– Allows users to create

• Types as objects• Object tables

– OIDs– Inheritance

Page 28: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

28

Create type• Create type must be followed by a / in SQL Plus (; optional)• No objects created, like a struct type// Create object type

Create type name_t as object ( lname varchar(10),

fname varchar(10), mi char(1) ) /

// Create relational tableCreate table teachers

( tid int, tname name_t, room int) /

Page 29: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

29

How to insert?

Can use object_type_name( ) form as an object constructor,

Builds objects from value of attributes

Insert into teachers values (1234, name_t(‘Sky’, ‘Sue’, ‘V’), 120);

NOTE: data in name_t is never an OID, it is just the data or a copy of the data if stored elsewhere

Page 30: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

30

Path queries

Select t.tname.lname from teachers t where room = 120;

// sometimes aliases are required

// in my examples always use them

Page 31: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

31

Create Object table

Create type person_t as object(ssn int,Pname name_t,age int)/

Create table people of person_t;

To query people:// You can use the usual SQL

Select * from people where age > 25;

//Or you can use: value ( )Select value(p) from people p where age > 25;

Page 32: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

32

Inheritance

CREATE TYPE vehicle AS OBJECT

(VID VARCHAR2(20),

COLOR CHAR(10),

MAKE VARCHAR2(10),

MODEL VARCHAR2(10) ) NOT FINAL

/ CREATE TYPE car UNDER vehicle

( DOORS NUMBER,

SPORT CHAR(1) )

/

Page 33: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

33

Ref Object reference//Use REF keyword to point to a row object

Create type car_reg as object ( license int, drives ref car)

Create table registrations of car_reg;

//Use dot notation to follow a REF to derefence a REF:Select r.drives.vid from registrations r;

// or can use DEREF to dereferenceSelect DEREF(drives) from registrations;

//If you want to display the OIDs of the objects in a table use:Select REF(p) from people p;

         

Page 34: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Examples

Notice the difference between a REF and the object_type_name( ) form

How to insert tuples and query :

Example of object-relational in OracleResults from above in SQLExample if creating objects with circular

dependenciesSet (collection of objects) – nested tables or

VARRAY

34

Page 35: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Nested tables

create type dependent_t under person_t(

essn ref employee_t,

relationship varchar(10))

create type dependent_tbl as table of dependent_t

35

Page 36: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Nested tables

Create type employee_t under person_t(

ssn int,

address varchar(30),

dependent dependent_tbl;

• You also need:

Create table employee of employee_t nested table dependent store as dependent_table;

36

Page 37: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Methods

member function getName return name_t is

begin

return name_t(fname, minit, lname);

end get Dependent;

37

Page 38: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Methods

MEMBER FUNCTION getGender return varchar is

BEGIN

IF self.sex=‘M’ then

return ‘Male’;

ELSE

return ‘Female’;

END IF;

END;

38

Page 39: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Methods

create type employee_t as object (ssn int, etc.

member function getGender return varchar,

member function getName return name_t);

39

Page 40: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

To invoke methods

• Select e.getName(), e.getGender() from employee e;

40

Page 41: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

41

Performance

• Performance of OODB affected by: – cache sizes– clustering (all of same class together versus

subclass follows superclass)– Nested objects– Indexes (just like relations)– views – swizzling – Replication– Versions (replicate common data?)

Page 42: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Versions

• Shared version (not updatable)– Check out and update– Deleted only by owner

• Working version– Update/delete by owner– New transient derived from existing one– Existing promoted to working

42

Page 43: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

Versions

• Version hierarchy - timestampsuser: specify versioned objecttrace version historydelete version (delete all versions created from it

or just most recent)merge

• Class if versionable– Generic object– Default version#– Next version#– Version description– Working or transient

43

Page 44: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

44

OODB issues

• physical OODB design – clustering problems (NP-hard) – placing objects onto pages so number of

page faults is minimal

• user hints for clustering • where to stores objects, near related

objects • how to store objects, near related objects

Page 45: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

45

Example

• e.g.  Bob is a person, but also an employee   store all persons   Bob Sally Joe Bill           Bob Bill        Sally Joe        person                       employee       students   if store extra attributes, must also retrieve information from person class

• store as       employee   student retrieve all of them for person

Page 46: 1 Object-Oriented Databases Chapter 11. 2 Limitations to the relational model? Examples of applications that will not work well with the relational model?

46

Schema evolution

• Schema evolution – dynamically define and modify DB schema – invariant - set of properties of the schema – rules for preserving invariance

• 2 types of schema changes: – 1.  definition of a class (contents

(attribute/method) of node) – 2.  to structure (edges and nodes)