Top Banner
FEN 16-09-2007 NOEA/IT - Databases/ORDB 1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models SQL3 – SQL:99
16

FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

Jan 29, 2016

Download

Documents

Doreen Sullivan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 1

Object-Relational Databases

The Evolutionary Approach to Closing the Gap between Relational Tables and

Object Models

SQL3 – SQL:99

Page 2: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 2

Or in a picture…

ORDB?

Page 3: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 3

Stonebraker’s Matrix

COMPLEX

QUERY

Relational DBMS

Object-Relational DBMS

NOT

COMPLEX

QUERY

File System Object-Oriented DBMS

SIMPLE DATA COMPLEX DATA

Page 4: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 4

The Problem

• 1NF:– All data as simple values in tables

• This means:– No structure allowed

Page 5: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 5

Approachs

• Not First Normal Form Databases (NFNF == NF2 databases):– Fields in tables may be tables– Not implemented in commercial DBMSs

• SQL:99:– The concept of domains is enhanced

allowing attributes to be defined over user defined domains (UDT: User Defined Data Type)

Page 6: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 6

SQL/Object (part of SQL:99)

• Additions to SQL-92:– Type constructors (User Defined Types: UDT) :

• ROW type (a tuple or a record)• Array type (fixed size, 1 dimensional)

– REF type (like OIDs)– Encapsulation (adding operations or methods

to types)– Inheritance

Page 7: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 7

Type Constructors

• Row type:CREATE TYPE <Row-Type-Name> AS [ ROW ]

(<ComponentDeclarations>);

• Ex:CREATE TYPE AddrType AS (

Street VARCHAR(45),City

VARCHAR(25),Zip CHAR(5)

);

Page 8: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 8

Type Constructors

• Array type:Fixed size arrays:

• Ex:CREATE TYPE CompanyType AS (

CompName VARCHAR(20),Locations VARCHAR(20)

ARRAY[10]

);

Page 9: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 9

Type Constructors

• A User Defined Type may be used to define new USDs:

CREATE TYPE EmployeeType AS (Name VARCHAR(35),Addr AddrType,Age INT

);

• or as type for attributes in definition of tables:CREATE TABLE COMPANY OF CompanyType (

PRIMARY KEY(CompName));

Page 10: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 10

OIDs and References

• OIDs are supported:

CREATE TABLE COMPANY OF CompanyType (

REF IS CompID SYSTEM GENERATED,

PRIMARY KEY(CompName)

);

CREATE TABLE EMPLOYEE OF EmployeeType REF IS EmpID SYSTEM

GENERATED;

Primary key could be

usedinstead

Page 11: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 11

OIDs and References

• References may used implementing relations (in the ER-sense of the word):

CREATE TYPE EmploymentType AS (

Employee REF(EmployeeeType) SCOPE(EMPLOYEE),

Company REF(CompanyType) SCOPE(COMPANY),

);

CREATE TABLE EMPLOYMENT OF EmploymentType;

SCOPE defines the table which may be referenced

by the reference attribute

Page 12: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 12

OIDs and References

• Using references in path expressions:

SELECT E.Employee -> Name

FROM EMPLOYMENT E

WHERE E.Company -> CompName = ‘NOEA’

Usually SQL uses the dot notation to build path expressions:

EMPLOYEE.AddrType.Street,but for reference types ‘->’ is

used

Actual, this is C++ notation

Page 13: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 13

Encapsulation

• One of three pillars of object-orientation is encapsulation, i.e.: hiding data behind operations or methods

• Encapsulation is supported by SQL3:CREATE TYPE <TypeName> (

<Component-list>,

<declaration of EQUAL and LESS THAN>,

<declaration of other methods>,

);

What are the two others?

USDs and references

may be used

Page 14: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 14

Encapsulation

• Ex:CREATE TYPE AddrType AS (

Street VARCHAR(45),City VARCHAR(25),Zip CHAR(5),

)

METHOD apartmentNo() RETURNS CHAR(8);

METHOD

CREATE FUNCTION apartmentNo() RETURNS CHAR(8) FOR AddrType AS

EXTERNAL NAME ‘/x/y/AppartmentNo.class’ LANGUAGE ‘java’

Given some algorithm to

retrieve apartment number from

address

Methods are implemented by FUNCTIONs

Page 15: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 15

Inheritance and Polymorphism

• Are also supported:– All attributes are inherited– An instance of a subtype can be used wherever an

instance of the supertype may be used.– Methods may be redefined in subtypes– Dynamic linking is used

Here they are:The two other pillars of OO

Page 16: FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to Closing the Gap between Relational Tables and Object Models.

FEN 16-09-2007 NOEA/IT - Databases/ORDB 16

Further Studies

• See for instance:– Elmasri chapter 22.4 and– http://www.oracle.com/technology/software/index.html