Saltar la navegación

3.- Definición de tipos de objeto.

Caso práctico

Fotografía de Ana.
Ministerio de Educación ( Uso Educativo nc)



Ya conoce Ana el concepto de las bases de datos orientadas a objetos y que los tipos de datos objeto son la base para ellas. Así que para asentar esos conocimientos se plantea modificar, con la ayuda de Juan, la base de datos de la plataforma de juegos on-line que hasta ahora era relacional para convertirla en una base de datos orientada a objetos.

Para ello, se plantea crear el tipo de objeto Usuario, pero necesita conocer cómo se declaran los tipos de datos objeto en Oracle.

Esquema con dos secciones: Interfaz público (especificación) e implementación privada (cuerpo). El primero incluye dos secciones con los textos: declaraciones de atributos y especificación de métodos. El segundo incluye: Cuerpo de los métodos.
Ministerio de Educación. (Uso Educativo nc)

La estructura de la definición o declaración de un tipo de objeto está dividida en una especificación y un cuerpo. La especificación define el interfaz de programación, donde se declaran los atributos así como las operaciones (métodos) para manipular los datos. En el cuerpo se implementa el código fuente de los métodos.

Toda la información que un programa necesita para usar los métodos lo encuentra en la especificación. Se puede modificar el cuerpo sin cambiar la especificación, sin que ello afecte a los programas cliente.

En la especificación de un tipo de objeto, todos los atributos debes declararlos antes que los métodos. Si la especificación de un tipo de objeto sólo declara atributos, no es necesario que declares el cuerpo. Debes tener en cuenta también que no puedes declarar atributos en el cuerpo. Además, todas las declaraciones realizadas en la especificación del tipo de objeto son públicas, es decir, visibles fuera del tipo de objeto.

Por tanto, un tipo de objeto contiene (encapsula) datos y operaciones. Puedes declarar atributos y métodos en la especificación, pero no constantes (CONSTANTS), excepciones (EXCEPTIONS), cursores (CURSORS) o tipos (TYPES). Al menos debe tener un atributo declarado, y un máximo de 1000. En cambio los métodos son opcionales, por lo que se puede crear un tipo de objeto sin métodos.

Para definir un objeto en Oracle debes utilizar la sentencia CREATE TYPE que tiene el siguiente formato:

CREATE TYPE nombre_tipo AS OBJECT (
Declaración_atributos
Declaración_métodos
);

Siendo nombre_tipo el nombre deseado para el nuevo tipo de objeto. La forma de declarar los atributos y los métodos se verá en los siguientes apartados de esta unidad didáctica.

En caso de que el nombre del tipo de objeto ya estuviera siendo usado para otro tipo de objeto se obtendría un error. Si se desea reemplazar el tipo anteriormente creado, por el nuevo que se va a declarar, se puede añadir la cláusula OR REPLACE en la declaración del tipo de objeto:

CREATE OR REPLACE TYPE nombre_tipo AS OBJECT

Por ejemplo, para crear el tipo de objeto Usuario, reemplazando la declaración que tuviera anteriormente se podría hacer algo similar a los siguiente:

CREATE OR REPLACE TYPE Usuario AS OBJECT (
Declaración_atributos
Declaración_métodos
);

Si en algún momento deseas eliminar el tipo de objeto que has creado puedes utilizar la sentencia DROP TYPE:

DROP TYPE nombre_tipo;

Donde nombre_tipo debe ser el nombre del tipo de dato objeto que deseas eliminar. Por ejemplo, para el tipo de objetos anterior, deberías indicar:

DROP TYPE Usuario;

Instrucción o sección de una instrucción en un lenguaje informático.