Вы находитесь на странице: 1из 11

Object-Relational Database

Relational Strengths and Weaknesses


Strengths
Data independence Powerful query language Well-developed backup and recovery, concurrency control, etc.

Weaknesses
Support for complex data types Support for generalization/specialization Encapsulation

Object-Relational DBMS (ORDBMS)


Supports relational and objectoriented features Query relations and objects through a single query language Extended Relational DBMS Universal DBMS

Features of an ORDBMS
Enhanced SQL to work with both relations and objects Support for:
Generalization/specialization Inheritance Polymorphism Additional, defined data types, e.g. BLOBs User-defined or abstract data types Storage of code in the database Aggregation Object identifiers (OIDs) Multivalued attributes
4

User-Defined Data Type


CREATE NAME_TYPE AS OBJECT( LASTNAME VARCHAR2(25) FIRSTNAME VARCHAR2(25) MIDDLEINIT CHAR(1));

User-Defined Data Type


CREATE PERSON_TYPE AS OBJECT( NAME NAME_TYPE, ADDRESS ADDRESS_TYPE, DATEBIRTH DATE, PHONE VARCHAR2(12));

User-Defined Data Type


CREATE TABLE EMPLOYEE( EMPID NUMBER(8) NOT NULL PRIMARY KEY EMP PERSON_TYPE);

Generalization/Specialization
CREATE TYPE EMP_TYPE AS OBJECT( EMPNO NUMBER, EMPNAME VARCHAR2(50) EMPADDRESS VARCHAR2(100)) NOT FINAL; CREATE TYPE HOURLY_EMP_TYPE UNDER EMP_TYPE (HOURLYRATE NUMBER); CREATE TABLE HOURLY_EMP OF HOURLY_EMP_TYPE;
8

Content Addressing
Consider an employee table with a field for each employees photo, defined as EMP_PHOTO IMAGE SELECT * FROM EMPLOYEE WHERE MY_PHOTO LIKE EMP_PHOTO;

Encapsulation
CREATE TYPE ADDR_TYPE AS( STREET VARCHAR(45), CITY VARCHAR(25), ZIP CHAR(5)) METHOD APT_NO() RETURNS CHAR(8); METHOD CREATE FUNCTION APT_NO() RETURNS CHAR(8) FOR ADDR_TYPE AS EXTERNAL NAME /X/Y/APTNO.CLASS LANGUAGE JAVA;
10

ORDBMS Vendors and Products


IBM DB2 Universal Database Informix Dynamic Server Oracle Oracle 10g PostgreSQL Inc. PostgreSQL

11

Вам также может понравиться