Documento

Solo disponible en BuenasTareas
  • Páginas : 18 (4427 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de septiembre de 2010
Leer documento completo
Vista previa del texto
Tema 9
Bases de Datos Objeto-Relacionales en Oracle 8

1. Introducción
Debido a los requerimientos de las nuevas aplicaciones, en su octava versión, el sistema gestión de bases de datos relacionales Oracle ha sido significativamente extendido con conceptos del modelo de bases de datos orientadas a objetos. De esta manera, aunque las estructuras de datos que se utilizan para almacenar lainformación siguen siendo tablas, los usuarios pueden utilizar muchos de los mecanismos de orientación a objetos para definir y acceder a los datos. Por esta razón, se dice que se trata de un modelo de datos objetorelacional. Oracle 8 proporciona mecanismos para que el usuario pueda definir sus propios tipos de datos, cuya estructura puede ser compleja, y que se pueden aplicar para asignar un tipo auna columna de una tabla. También reconoce el concepto de objetos, de tal manera que un objeto tiene un tipo, se almacena en cierta fila de cierta tabla y tiene un identificador único (OID). Estos identificadores se pueden utilizar para referenciar a otros objetos y así representar relaciones de asociación y de agregación. Oracle 8 también proporciona mecanismos para asociar métodos a tipos, yconstructores para diseñar tipos de datos multivaluados (colecciones) y tablas anidadas. La mayor deficiencia de este sistema es la imposibilidad de definir jerarquías de especialización y herencia, lo cual es una importante desventaja con respecto a las bases de datos orientadas a objetos.

2. Tipos de Datos Definidos por el Usuario
Los usuarios de Oracle 8 pueden definir sus propios tipos dedatos, pudiendo ser de dos categorías: tipos de objetos (object types) y tipos para colecciones (collection types). Para construir los tipos de usuario se utilizan los tipos básicos provistos por el sistema y otros tipos de usuario previamente definidos. Un tipo define una estructura y un comportamiento común para un conjunto de datos de las aplicaciones.

139

UNIVERSITAT JAUME I

2.1 Tipos deobjetos Un tipo de objetos representa a una entidad del mundo real. Un tipo de objetos se compone de los siguientes elementos: • Un nombre que sirve para identificar el tipo de los objetos. • Unos atributos que modelan la estructura y los valores de los datos de ese tipo. Cada atributo puede ser de un tipo de datos básico o de un tipo de usuario. • Unos métodos que son procedimientos o funcionesescritos en el lenguaje PL/SQL (almacenados en la base de datos), o escritos en C (almacenados externamente). Los tipos de objetos pueden interpretarse como plantillas a las que se adaptan los objetos de ese tipo. A continuación se da un ejemplo de cómo definir el tipo de datos Direccion_T en el lenguaje de definición de datos de Oracle 8, y como utilizar este tipo de datos para definir el tipo dedatos de los objetos de la clase de Clientes_T.
DEFINICIÓN ORIENTADA A OBJETOS DEFINICIÓN EN ORACLE

define type Direccion_T: tuple [calle:string, ciudad:string, prov:string, codpos:string]

CREATE TYPE direccion_t AS OBJECT ( calle VARCHAR2(200), ciudad VARCHAR2(200), prov CHAR(2), codpos VARCHAR2(20) ) ;

define class Clientes_T type tuple [clinum: integer, clinomb:string,direccion:Direccion_T, telefono: string, fecha-nac:date] operations edad():integer

CREATE TYPE clientes_t AS OBJECT ( clinum NUMBER, clinomb VARCHAR2(200), direccion direccion_t, telefono VARCHAR2(20), fecha_nac DATE, MEMBER FUNCTION edad RETURN NUMBER, PRAGMA RESTRICT_REFERENCES(edad,WNDS) ) ;

2.2 Métodos La especificación de un método se hace junto con la creación de su tipo, y debe llevar siempreasociada una directiva de compilación (PRAGMA RESTRICT_REFERENCES), para evitar que los métodos manipulen la base de datos o las variables del paquete PL/SQL. Tienen el siguiente
significado:

• • • •

WNDS: no se permite al método modificar las tablas de la base de datos WNPS: no se permite al método modificar las variables del paquete PL/SQL RNDS: no se permite al método leer las tablas de la...
tracking img