Modelo objeto-relacional en Oracle ÍNDICE
Modelo objeto-relacional en Oracle ÍNDICE
Modelo objeto-relacional en Oracle ÍNDICE
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
EVOLUCIÓN DE TIPOS<br />
A continuación, modificamos el tipo tipoPersona sustituy<strong>en</strong>do el<br />
atributo edad por f_nacimi<strong>en</strong>to. En este punto, la redefinición del tipo<br />
tipoPersona, ha cambiado también la definición de la tabla Persona,<br />
pero los datos de la tabla no han sido modificados aún, para ajustarse<br />
a la nueva definición.<br />
ALTER TYPE tipoPersona<br />
ADD ATTRIBUTE (f_nacimi<strong>en</strong>to DATE),<br />
DROP ATTRIBUTE edad CASCADE NOT INCLUDING TABLE DATA;<br />
Cuando consultamos ahora el valor de los <strong>objeto</strong>s de la tabla Persona<br />
obt<strong>en</strong>emos lo sigui<strong>en</strong>te:<br />
SELECT value(p) FROM TablaPersona p;<br />
VALUE(P)(NOMBRE, APELLIDOS, F_NACIMIENTO)<br />
----------------------------------------------<br />
TIPOPERSONA(’Pepe', ’Sánchez', NULL)<br />
EVOLUCIÓN DE TIPOS<br />
• Cuando la consulta anterior recupera los datos<br />
de la tabla Persona, <strong>Oracle</strong> los modifica para<br />
que concuerd<strong>en</strong> con la nueva definición del tipo.<br />
• En este caso, como se ha añadido un nuevo<br />
atributo, se limita a inicializarlo con valor nulo,<br />
NULL.<br />
• Para borrar tipos con tablas u otros tipos<br />
dep<strong>en</strong>di<strong>en</strong>tes, es necesario borrar antes todos<br />
los <strong>objeto</strong>s dep<strong>en</strong>di<strong>en</strong>tes o bi<strong>en</strong> incluir la<br />
cláusula FORCE.<br />
• Así, por ejemplo, para borrar el tipo tipoPersona,<br />
t<strong>en</strong>dríamos que especificar:<br />
DROP TYPE tipoPersona FORCE;<br />
31