FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to...

16
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

Transcript of FEN 16-09-2007NOEA/IT - Databases/ORDB1 Object-Relational Databases The Evolutionary Approach to...

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