Modelo objeto-relacional en Oracle ÍNDICE
Modelo objeto-relacional en Oracle ÍNDICE
Modelo objeto-relacional en Oracle ÍNDICE
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