the object database

Post on 14-Jan-2016

54 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

The Object Database. Object databases integrate database technology with the object-oriented paradigm In object databases, each entity of the real world is represented by an object. Classical examples of objects are: Electronic components, designed using a Computer Aided Design (CAD) system; - PowerPoint PPT Presentation

TRANSCRIPT

--The Object Database-- 1

The Object Database

Object databases integrate database technology with the object-oriented paradigm

In object databases, each entity of the real world is represented by an object. Classical examples of objects are: Electronic components, designed using a Computer Aided

Design (CAD) system; Mechanical components, designed using a Computer Aided

Manufacturing (CAM) system; Specifications and programs, managed in a Computer Aided

Software Engineering (CASE) environment; Multimedia documents, which includes text, images and

sound, managed by multimedia document managers.

--The Object Database-- 2

Non-1NF Date

Consider the table shown below.

--------------------- ACME | part | place | ------|------

| liquor| Paris

| engine| Paris

| ----------|----------------

DELCO | part | place

| ------|------

| engine| Rome

....

--The Object Database-- 3

Un-nest and Normalise Table

The relational database solution - unnest

Normalize if necessary ACME appears twice What happened to structure?

supplier | part | Place --------------------- ACME | liquor | Paris

ACME | engine | Paris

DELCO | engine | Rome

....

--The Object Database-- 4

A Data Structures Solution

Imagine a nested record structure

Variable-sized records are difficult to maintain How to select? No tuples, so what is the key? Pointers are memory-only, how to store?

Supplier Parts-list Parts

-------- --------- ------------------

|ACME | | part1 ------> | liquor | Paris |

| | | | ------------------

| parts-----------> | | ------------------

| | | part2 ------> | engine | Rome |

-------- ---------

--The Object Database-- 5

A Rectangle Data Type

Database stores rectangles as four points What does the following query do?

SELECT * FROM R, S

WHERE NOT(R.upperLeftX > S.lowerRightX OR S.upperLeftX > R.lowerRightX OR

R.upperLeftY < S.lowerRightY OR S.upperLeftY < R.lowerRightY);

What does the following query do?

SELECT * FROM R, S

WHERE rectangle.overlaps(R, S);

--The Object Database-- 6

Abstract Data Type (ADT)

SQL has limited data types New data types are useful

Polygons Images Sounds video

Data type needs specifications for Structure Operations Implementation Optimization, e.g., indexing

--The Object Database-- 7

O-O Concepts - Object

Object A uniquely identifiable entity that contains both the attributes

that describe the state of a ‘real world’ object and the actions that are associated with it.

Encapsulates state Instance variables or attributes Complete encapsulation – can’t look inside and access

variables (public vs. private) Encapsulates behavior

Operations Signature (specification) vs. method (implementation)

--The Object Database-- 8

O-O Concepts, cont.

Method Block of code Object performs method on self Constructor, destructor

Message Communicates request to an object Parameters can be passed

Class Blueprint for object An object is an instance of a class

Inheritance Superclasses, subclasses, overloading

--The Object Database-- 9

Definitions

OODMA logical data model that captures the semantics of objects

supported in object-oriented programming.

OODBA persistent, sharable collection of objects defined by an OODM.

OODBMSThe manager of an OODB

--The Object Database-- 10

Why OODB?

From programming language point of view: permanent storage of objects (languages just support objects

in memory) sharing of objects among programs fast, expressive queries for accessing data version control for evolving classes and multi-person projects

--The Object Database-- 11

Why OODB?

From database point of view: More expressive data types (traditional DBs provide limited predefined

types) e.g., a desktop publishing program might model a page as a series

of frames containing text, bitmaps, and charts need composite and aggregate data types (e.g., structures and

arrays) More expressive data relationships

many-to-one relationship (e.g., many students in one class) navigating across relationship links

More expressive data manipulation SQL is relationally complete but not computationally complete i.e.,

great for searching for lousy for anything else– leads to use of conventional programming language plus SQL-

interface– overhead of mapping from SQL to conventional languages

Better integration with programming languages (esp. OO languages)

Encapsulation of code with data

--The Object Database-- 12

Two Object-oriented Approaches

Object-oriented (OODBMS) Hellerstein - “to add DBMS capabilities to an O-O language” Persistence, object lives beyond program execution

PJava - persistent JavaSeveral commercial products

Object-relational (ORDBMS) Hellerstein - “extends a relational database with O-O features” Rich data types

InheritanceSeveral commercial vendors, SQL3

--The Object Database-- 13

OODBMS

Advantages Removes impedance mismatch Long-lived transactions Enriched modeling

Disadvanatages Lack of universal query language Lack of agreed upon standard Performance depends on class definition

--The Object Database-- 14

ODMG 2.

Object Database Management Group Consortium of Vendors: O2, ObjectStore, etc. Standard for OODBMS

PortabilityInteroperabilityComparisonOptimization

Object model ODL OQL

--The Object Database-- 15

Object Model

Atomic object Any user-defined object Class definition

Properties (attributes and structure)(Binary) Relationships (to other objects)Operations

Collection object Set, array, list, etc. Built-in

Interface (virtual object) Inheritance

Multiple inheritance only from interfaces

--The Object Database-- 16

Object Model, cont.

Extent – named, persistent collection of objects of the same class/type One predefined extent for each class

Key Unique for extent

Factory object Constructor

--The Object Database-- 17

Example

Class Person { extent persons key ssn } { attribute struct { string first, string last } name; attribute integer ssn relationship Factory worksIn inverse Factory::employeeOf relationship set<Person> parentOf inverse Person::childOf; relationship set<Person> childOf inverse Person::parentOf };

--The Object Database-- 18

Mapping EER to ODL

Entity type -> class definition Attribute -> attribute

Many-valued -> set attributeComposite -> struct attributeKey -> key

Weak entity type Composite, multi-valued attribute in owning entity type Alternative, map to class

Inheritance Simple, use class inheritance

--The Object Database-- 19

Mapping EER to ODL, cont.

Relationship types Binary (no attributes)

Add relationship attributes to each sideUse sets for many

Ternary or with attributesMap to separate class

--The Object Database-- 20

OQL

SQL-like SELECT-FROM-WHERE

FROM clause is only major difference Iterator variables

p in PersonPerson pPerson as p

Path expressions (can appear in any clause)“dot” notationp.ssnValue of attribute ssn in object denoted by iterator variable

pSame notation for following relationships (few joins!)p.parentOf.ssn

--The Object Database-- 21

Examples

What are the social security numbers of people?SELECT s

FROM person p,

p.ssn s;

What are the social security numbers of children? SELECT s

FROM person p,

p.childOf.ssn s;

AlternativelySELECT s

FROM person.childOf.ssn s;

--The Object Database-- 22

Examples

Create a structure for each social security number and last name of a grandchild whose first name is ‘Frank’.SELECT struct(last_name: g.name.last,

ssn: g.ssn)

FROM person p,

p.childOf c,

c.childOf g

WHERE g.name.first = ‘Frank’;

--The Object Database-- 23

ORDBMS: Third Generation Manifesto

Rich type system Inheritance is a good idea Use primary key when available Rules (triggers, constraints) are a major feature Database access via SQL, usually embedded SQL3

Parts have been released, Oracle supports some SQL3 features Collections Recursion

--The Object Database-- 24

SQL3 DDL

ExampleCREATE TABLE Student

(name VARCHAR(30),

image GIF,

phone setof{INTEGER},

);

Phone is a set GIF is a user-defined data type

--The Object Database-- 25

Multimedia databases

Types of multimedia data Images Audio Video Documents

Queries on multimedia data While the coding of multimedia data is a general problem, the

ability to query large amounts of multimedia data is a more specific problem of multimedia databases.

In general, it is possible to select a multimedia object only in probabilistic terms.

top related