13.08.2013 Views

Modelo objeto-relacional en Oracle ÍNDICE

Modelo objeto-relacional en Oracle ÍNDICE

Modelo objeto-relacional en Oracle ÍNDICE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TIPOS REF<br />

• Un tipo estructurado ti<strong>en</strong>e un tipo refer<strong>en</strong>cia<br />

correspondi<strong>en</strong>te.<br />

• Un tipo refer<strong>en</strong>cia puede ser usado <strong>en</strong> cualquier sitio<br />

donde pueda ser usado otro tipo de datos.<br />

• Aunque el tipo REF nos va a permitir implem<strong>en</strong>tar<br />

relaciones <strong>en</strong>tre tipos de <strong>objeto</strong>s, hay que t<strong>en</strong>er <strong>en</strong><br />

cu<strong>en</strong>ta que el tipo refer<strong>en</strong>cia no ti<strong>en</strong>e la misma semántica<br />

que la clave aj<strong>en</strong>a.<br />

• Mi<strong>en</strong>tras que la clave aj<strong>en</strong>a implica una dep<strong>en</strong>d<strong>en</strong>cia de<br />

inclusión, debido a la restricción de integridad refer<strong>en</strong>cial,<br />

el tipo REF no, permitiéndose la posibilidad de<br />

refer<strong>en</strong>cias que no apunt<strong>en</strong> a ninguna parte (son las<br />

d<strong>en</strong>ominadas “dangling refer<strong>en</strong>ces”).<br />

• Además, el tipo REF soporta la noción de tipado fuerte<br />

que no va ligada a una clave aj<strong>en</strong>a; de este modo, un<br />

atributo de tipo REF puede, por ejemplo, usarse como<br />

parámetro <strong>en</strong> la llamada de un método.<br />

TIPOS REF<br />

• Los tipos refer<strong>en</strong>cia permit<strong>en</strong> navegar de una tabla a<br />

otra, eliminando la necesidad de joins del modelo<br />

<strong>relacional</strong>.<br />

CREATE OR REPLACE TYPE tipoDepartam<strong>en</strong>to AS OBJECT<br />

( nombre_Dep VARCHAR2(30))<br />

/<br />

CREATE OR REPLACE TYPE tipoEmpleado AS OBJECT<br />

( DNI NUMBER,<br />

nombre VARCHAR2(30),<br />

fecha_nac DATE,<br />

pert<strong>en</strong>ece_a REF tipoDepartam<strong>en</strong>to)<br />

/<br />

CREATE TABLE Departam<strong>en</strong>to OF tipoDepartam<strong>en</strong>to;<br />

CREATE TABLE Empleado OF tipoEmpleado;<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!