0% found this document useful (0 votes)
57 views11 pages

6) Object Relational Model: Component of The SQL Standard

SQL3 added object-oriented features to SQL including user-defined types, inheritance, and encapsulation of operations. User-defined types allow complex objects to be represented as rows or arrays. Inheritance is specified using the UNDER keyword. Encapsulation is achieved by creating types with their own methods in addition to attributes. Object identifiers can be specified using references. Nested relations allow non-normal forms by removing the first normal form restriction and allowing multi-valued attributes, leading to hierarchical structures.

Uploaded by

Joseph Velasquez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views11 pages

6) Object Relational Model: Component of The SQL Standard

SQL3 added object-oriented features to SQL including user-defined types, inheritance, and encapsulation of operations. User-defined types allow complex objects to be represented as rows or arrays. Inheritance is specified using the UNDER keyword. Encapsulation is achieved by creating types with their own methods in addition to attributes. Object identifiers can be specified using references. Nested relations allow non-normal forms by removing the first normal form restriction and allowing multi-valued attributes, leading to hierarchical structures.

Uploaded by

Joseph Velasquez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

6) OBJECT RELATIONAL MODEL

1) OVERVIEW OF SQL 3 :
SQL is a standard language for various RDBMS systems.
SQL was specified in 1970s
SQL was enhanced substantially in 1989 and 1992
A new standard called SQL3 added object-oriented features
A subset of SQL3 standard, now known as SQL-99 has been approved
.
COMPONENT OF THE SQL STANDARD:
SQL/Framework,
SQL/Foundation,
SQL/Bindings,
SQL/Object
New parts addressing temporal, transaction aspects of SQL
SQL/CLI (Call Level Interface)
SQL/PSM (Persistent Stored Modules)

SQL/FOUNDATION:This component explains


1)
2)
3)
4)
5)
6)
7)

New types
New predicates
Relational operators
Rules and triggers
User defined types
Transaction capabilities
Stored routines

SQL/ BINDINGS :
1) Includes embedded SQL in host language.
2) Direct Invocation
3) Embeded SQL has also included additional exceptions declarations in host
language.
SQL/CLI:
1) SQL/CLI stands for SQL Call Level Interface.
2) SQL/CLI provides rules that allow execution of application code without
providing source code .Avoids the need for preprocessing.
TASKS OF CLI :
1) Create connection with the oracle (database)
2) Allocating resources and deallocating resources
3) Obtaining diagnostic/analysis/performance reports.
4) Implementation details
5) Controlling transactions termination.

SQL/PSM:
1) PSM = Persistent Stored Modules.

2) Specifies facilities for partitioning an application between a client and a


server.
3) Enhances performance by minimizing network traffic.
SQL/TEMPORAL: Especially designed for
1) Temporal data
2) Historical data
3) Time series data

SQL/TRANSACTIONS : Formalizes some special interfaces to be used by


various SQL implementations.

2) SQL3 SPECIFICATIONS :

1) Type constructors to specify complex objects:


Used to represent complex types.As user defines this for a particular
system ,hence they are called UDT(USEE DEFINED DATATYPES)
Two Types: Row Type and Array Type.
2) Mechanism to specify object-identity:
Defined using reference type which is supported by SQL3.
3) Mechanism for encapsulation of operations:
Can be provided by creating own data types that may provide operations as
part of declarations
4) Mechanism to support inheritance:
I.e., specify specialization and generalization.
5) Mechanism to support recursion:
6) To support large objects such as BLOB and CLOB.

1) TYPE CONSTRUCTORS :
Used to represent complex types.As user defines this for a particular
system ,hence they are called UDT(USER DEFINED DATATYPES)

Two types: row and array .


Syntax for a row type:
CREATE TYPE row_type_name AS [ROW] (<component decln>)
An example:
CREATE TYPE Addr_type AS (
street VARCHAR (45),
city VARCHAR (25),
zip CHAR (5));
An array type is specified for an attribute whose value will be a collection
Example:
CREATE TYPE Comp_type AS (
comp_name VARCHAR (2).
location VARCHAR (20) ARRAY [10]
);
Dot notation is used to refer to components
E.g., comp1.comp_name is the comp_name part of comp1 (of type
Comp_type)

2) OBJECT IDENTIFIERS USING REFERENCES :


A user-defined type can also be used to specify the row types of a table:
CREATE TABLE Company OF Comp_type

(REF IS comp_id SYSTEM GENERATED,


PRIMARY KEY (comp_name));
Syntax to specify object identifiers:
REF IS <oid_attribute> <value_generation_method>
Options:
SYSTEM GENERATED
or DERIVED
ATTRIBUTES AS REFERENCES:
A component attribute of one tuple may be a reference:
CREATE TYPE Employment_type AS (
employee REF (Emp_type) SCOPE (Employee),
company REF (Comp_type) SCOPE (Company));
Keyword SCOPE specifies the table whose tuples can be referenced by a
reference attribute via the dereferencing notation ->
E.g., e.company->comp_name

3) ENCAPSULATION OF OPERATIONS IN SQL :


A construct similar to the class definition

Users can create a named user-defined type with its own methods in addition to
attributes:
CREATE TYPE <type-name> (
list of attributes
declaration of EQUAL and LESS THAN methods
declaration of other methods
);
Syntax:
METHOD <name> (<arg-list>) RETURNS <type>;
An example
CREATE TYPE Addr_type AS (
street VARCHAR (45),
city VARCHAR (25),
zip CHAR (5)
)
METHOD apt_no ( ) RETURNS CHAR(8);

4) INHERITANCE AND OVERLOADING OF FUNCTIONS :

Inheritance is specified via the UNDER keyword


Example
CREATE TYPE Manager_type UNDER Emp_type
(dept_managed CHAR (20));

AS

Manager_type inherits all features of Emp_type and it has an additional


attribute called dept_managed .

3) IMPLEMENTATION AND RELATED ISSUES:


a) The ORDBMS must dynamically link a user-defined function in its
address space
b) Client-server issues:
if a server needs to perform a function, it is best to do so in the
DBMS (server) address space
c) Queries should be possible to run inside functions
d) Efficient storage and access of data:
Especially given new types, is very important
e) Object-relational database design
Object-relational design is more complicated
f) Query processing and optimization
g) Interaction of rules with transactions

4) NESTED RELATIONS :
a) Non normal form relations:

Method that uses nested tables known as non normal formal


relations.No commercial DBMS has chosen to implement this
concept.
b) Nested relational model:
Removes the restriction of the first normal form (1NF),Hence
known as Non-1NF.No commercial database supports a nested
relational model.
c) Flat relational model:
In the basic relational model,attributes are need to be single
valued and to have atomic values,then such model is called as
flat relational model.
d) Hierarichal model:
The nested relational modelallows composite and
complexattributes,thus leading to complex tuples with a
hierarichal structure.

Example : DEPT schema is nested structure

ATTRIBUTES OF NESTED RELATIONS:


Simple value attributes
Multi-valued simple attributes
Multi-valued composite attributes
Single-valued composite attributes (self explainatory)

Two operations for converting between nested and flat relations:


1) NEST
2) UNNEST

Example of NEST:

To nest un-nested attributes:


EMP_PROJ_FLAT SSN, ENAME, PNUMBER, HOURS (EMP_PRO)
EMP_PROJ_NESTED NEST PROJ = (PNUMBER,HOURS) (EMP_PROJ_FLAT)
Nested relation PROJS within EMP_PROJ_NESTED groups together the tuples
with the same value for the attributes that are not specified in the NEST
operation

Example of UNNEST:
UNNEST operation is the inverse of NEST; thus we can recover
EMP_PROJ_FLAT:
EMP_PROJ_FLAT UNNEST PROJS = (PNUMBER,HOURS)
(EMP_PROJ_NESTED)

Storage methods and access methods (pls refer to ppts)

You might also like