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

36
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

Upload: kenya-frantom

Post on 14-Dec-2015

226 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

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

Page 2: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Outline for today 11/24/03

Objectives Introduction

Need for OO/OR-DBMS OO Fundamentals

How (OO)DBMS incorporates OO ideas Database Modeling/Querying

Conclusions

OODBMS ORDBMS

Conceptual ODL/UML EER/PEER

Page 3: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Outline for next class 11/26/03

Objectives ORDBMS Fundamentals

How ORDBMS incorporates OO ideas Mapping Conceptual Model into

Logical Model OQL vs. SQL-99 Comparison of OODBMS and

ORDBMS Conclusions

Page 4: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

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

Page 5: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction

Why OODBMS? Let us start with modeling this simple

example in a RDBMS Assume that we are given the following diagram

0,0

1

2

34

56 7

8

Page 6: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction – Motivating Example

Our objective is to store this graph in a RDBMS and support queries on these simple geometries

What kind of relations we need? Print names of rectangles which are squares Find all objects which are inside the rectangle 7.

0,0

1

2

34

56 7

8

Page 7: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction – Motivating Example

Relations POINT(pname, x, y), EDGE(ename, aPoint),

RECTANGLE(rname, anEdge).

0,0

1

2

34

56 7

8

r5 e1

r5 e2

r5 e3

r5 e4

e1 p1

e1 p2

e2 p2

e2 p3

e3 p3

e3 p4

e4 p4

e4 p1

p1 3 4

p2 3 10

p3 10 10

p4 10 4

RECTANGLE

EDGEPOINT

Page 8: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction – Motivating Example

Logical Flow

Edge e1 Edge e2

E1.ename = e2.enameE1.aPoint <> e2.aPoint

Edge_Pnt_List (eName, stPnt, endPnt)Point p1

Point p2

Edge_length (eName, eLength)

Rectangle r

rname

Page 9: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction – Motivating Example

CREATE VIEW pnt_list (ename, stPnt, endPnt)AS SELECT e.ename, e1.aPoint, e2.aPoint

FROMedge e1, edge e2WHERE e1.ename = e2.ename

AND e1.aPoint <> e2.aPoint;CREATE VIEW edge_length (ename, elength)AS SELECT e.ename, sqrt(sq(p1.x –p2.x) + sq(p1.y – p2.y)

FROM pnt_list e, point p1, point p2WHERE e.stPnt = p1.pname AND e.endPnt = p2.pname;

Page 10: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction – Motivating Example

Discussion Question –Print the square names

Page 11: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction – Motivating Example

Solution

SELECT r.rnameFROM rectangle r, edge_length eWHERE r.anEdge = e.enameGROUP BY r.rnameHAVING max(e.elength) ~ MIN (e.elength);

Page 12: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Introduction

Though we can model and query these simple geometric objects, its

Not clean Complexity increases with complex objects (like

irregular polygons) Even with these simple objects, how do you answer

queries like ‘find nearest objects to point 2’ or ‘find all intersecting objects’

What is lacking Support for complex data types Support for predicates (e.g., area, intersect, length)

Page 13: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

Has its origin in OO programming languages Object

State – current value Behavior - what operations are permitted

Difference between PL Object and DB Object PL – Objects exist only during program execution

(transient objects). DB – Objects persist beyond program termination;

stored permanently on a secondary storage DB – allows sharing of objects among multiple

programs and applications

Page 14: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

OID – unique system generated object identifier for each object

Compare this with RDBMS primary key Object structure

Arbitrarily complex in order to contain all necessary information about the object

Compare this with RDBMS (rectangle object) – information about complex

object is often scattered The state of complex object may be constructed

from other objects using type constructors

Page 15: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

Type constructors Basic – atom, tuple, and set Others – list, bag, and array (collection/bulk

types) tuple – also called as a structured type

Formally an object can be thought of as a triple (I,C,V)

I – OID C – type constructor V – object state (current value)

Page 16: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

Examples o1 = (i1, atom, ‘Pen-Chung Yew’) o2 = (i2, atom, ‘Minneapolis’) o3 = (i3, atom, ‘Computer Science’) o4 = (i4, set, {i1,i2,i3}) o5 = (i4, tuple, <DNAME:i3, DCHAIR:i1>)

Page 17: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

Type hierarchies and Inheritance OODB permits definition of new types based on

other predefined types, leading to a type hierarchy Example

TYPE_NAME: function, function, …, function PERSON: firstName, lastName, dob, SSN STUDENT: firstName, lastName, dob, SSN, status,

GPA FACULTY: firstName, lastName, dob, SSN, rank,

salary STUDENT subtype_of PERSON: major, GPA FACULTY subtype_of PERSON: rank, salary

Page 18: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

Exercise: Consider the geometry objects defined in our first example and defined class hierarchies

0,0

1

2

34

56 7

8

Page 19: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

example - GEOMETRY_OBJECT: Shape, Area, ReferencePoint RECTANGLE subtype-of GEOMETRY_OBJECT

(Shape=‘rectangle’): edge1, edge2, edge3, edge4

Page 20: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

OODBMS-Fundamentals

Standards: ODMG Made up of several parts

Object Model Object Definition Language (ODL) Object Query Language (OQL) Binding to OO programming languages (C++,

Smalltalk, Java) OOBMS

O2 ObjectStore Jasmine

Page 21: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling

Enhance Entity Relationship (EER – Chap 4, Elmasri/Navathe)

Pictogram Enhanced Entity Relationship (PEER – Chapter 2, SD A Tour).

Unified Modeling Language (UML) Object Definition Language

Page 22: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling

Example We use two examples (school-DB) and park-DB

(from SDB-A Tour). Identify typical objects (and hierarchies) in

school-DB Person, Student, Faculty, Department

Identify relationships 1:1, 1:M, M:N, partial participation, …

Let us start with EER Includes all the modeling concepts of ER Additionally includes oo concepts of – subclass,

superclass, specialization and generalization, attribute and relationship inheritance

Page 23: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - EER

PersonSSN firstNam

e

d

Student Faculty

Department

major worksin

1 1

NN

status rank

dob

lastName

code name

Page 24: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - EER

Find a suitable entity and define a overlapping type of relationship

Page 25: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - UML

PersonSSNdob

firstNamelastName

Department

CodeName

Studentstatus

Facultyrank

* *

{disjoint, mandatory}

deptmajor

1

1

majorsIn worksIn

0..1chairchairOf

Page 26: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEERExactly one

Many (0 or More)

Optional (0 or One)

One or More

Numerically Specified

Aggregation

Inheritance

Derived Class

1+

OGC-Geometry

Page 27: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

State Park (ER Model)

River RoadCrosses

Name Length Geometry Name NoOfLanes

Geometrysupplies

Volume

Facility Forest Forest_Stand

Fire_Station Fire_Image

Name

Geometry

Belongs_to

within

Name

Elevation

accessGeometry

Stand-id

Geometry

Specie

Part_of

capturesmanages

Name Geometry Image-id Image

1 1

M1

NM

M

N

1 M

1

MM

N

Page 28: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

Pictogram : miniature version of geographic object inserted inside of a box

Entity pictograms Relationship pictograms

Advantages Ease of use Complete grammar Translation rules Pictogram inserted ER diagram to SQL3 level

constructs

Page 29: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

Pictograms

<Pictogram> <Shape>* // any possible shape! // user-defined

shapes

<Shape> <Basic Shape><Multi-Shape><Derived Shape><Alternate Shape>

Page 30: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

<Basic Shape> PolygonPoint Line

Pictograms for Basic Shapes

Pictograms for Multi-Shapes

0, nn<Cardinality

>0,111,n0,nn

Page 31: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

<Derived Shape>Pictograms for Derived

Shapes

Pictograms for Alternate Shapes

<Basic Shape>

<Basic Shape><Basic Shape>

<Basic Shape><Derived Shape>

Page 32: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

Any Possible Shape *

!Raster TIN Thesian

Pictograms for Raster Shapes

Pictograms for Relationships

Part_of (Network) Part_of (Partition)

User Defined Shape

Raster Shape RasterTIN

Thesian

Page 33: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Database Modeling - PEER

State Park (PEER)

River RoadCrosses

Name Length Name NoOfLanes

supplies

Volume

Facility Forest Forest_Stand

Fire_Station Fire_Image

Name

Belongs_to

NameElevation

access

Stand-id Specie

Part_of

capturesmanages

Name Image-id

1 1

NM

M

N

1 M

1

MM

N

Page 34: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Summary and Conclusions

Learning Objectives Understand OO Concepts Conceptual Modeling

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

Page 35: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

Next Week

ORDMBS (SQL-3) in depth Mapping of Conceptual Model onto

ORDBMS (SQL-3 DDL constructs) Examples using Postgresql/PostGIS Comparison of OODBMS and

ORDBMS Conclusions

Page 36: Object Oriented & Object Relational Databases Ranga Raju Vatsavai Teaching Mentor (Prof. Shekhar) CSci 5708 : Architecture and Implementation of Database

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)