Está en la página 1de 24

MANEJO OBJETOS EN

ORACLE
PRESENTADO POR:

JENIFFER MELISSA RUSSI


FABIAN MORENO
KAREN ESTUPIÑAN
INTRODUCCIÓN

En PL/SQL la programación orientada a objetos se basa en


tipos de objetos. Estos tipos de datos permiten modelar
objetos del mundo real, separar interfaces y detalles de
implementación, almacenar datos orientados a objetos
persistentemente en la base de datos
¿QUÉ SON LOS TIPOS OBJETO EN ORACLE?

Los tipos objeto de Oracle, son tipos de datos definidos


por el usuario haciendo posible el modelo entidad-
relación. Representando la estructura del dato y los
procedimientos y funciones para manipular el dato.
En una especie de tipo de datos , se puede utilizar de la
misma manera que los tipos de datos conocidos: NUMBER
ó VARCHAR.

Por ejemplo:

Puede especificarse un tipo objeto como el tipo de dato


de una columna , de una tabla relacional y se pueden
crear variables de un tipo objeto
VENTAJAS DE LOS TIPOS OBJETOS EN ORACLE

•Facilitan el desarrollo de modelos complejos.


•Permiten la reutilización ,haciendo posible desarrollar
aplicaciones de base de datos mas rápidas y eficientes.
•Soporta los tipos nativos.
VENTAJAS DE LOS TIPOS OBJETOS EN ORACLE

•Permite a los desarrolladores acceder directamente a


la estructura de datos utilizada en sus aplicaciones.
•La abstracción y encapsulamiento hacen que las
aplicaciones sean fáciles de entender y mantenerlo.
•Los tipos objeto pueden encapsular las operaciones
junto con los datos.
ESTRUCTURA BÁSICA DE
TIPOS OBJETO

Un tipo objeto tiene una


especificación y un cuerpo. La
especificación define el
interfaz de programa; esto
declara unos atributos y las
operaciones (métodos) para
manipular los datos. El cuerpo
define el código para los
métodos.
Las variables que dan la estructura al dato son llamadas
ATRIBUTOS.

Y las funciones y procedimientos del tipo objeto son llamados


METODOS.
ATRIBUTOS

Como una variable, un atributo es declarado con un nombre y


tipo de dato. El nombre debe ser único dentro del tipo objeto
(pero puede ser reutilizado en otros tipos objeto). El tipo de
dato del atributo puede ser cualquier tipo de Oracle excepto:
LONG y LONG RAW
ROWID y UROWID
Los tipos especificos de PL/SQL BINARY_INTEGER (y sus
subtipos), BOOLEAN, PLS_INTEGER, RECORD, REF CURSOR,
%TYPE, y %ROWTYPE
Tipos definidos dentro un paquete PL/SQL.
No se puede inicializar un ATRIBUTO en su declaración usando
el operador de asignación o la cláusula DEFAULT. Tampoco se
puede imponer el constraint NOT NULL sobre un atributo. Sin
embargo, los objetos pueden ser almacenados en tablas de
base de datos a las cuales se puede imponer constraints.
MÉTODOS

En general, un método es un subprograma declarado en


una especificación de tipo objeto usando la palabra clave
MEMBER o STATIC. El método no puede tener el mismo
nombre que el tipo objeto o cualquiera de sus atributos.
Los métodos MEMBER son invocados en instancias, así:
instance_expression.method ()

Sin embargo, métodos STATIC son invocados sobre el tipo


objeto, no sobre las instancias, asi:

object_type_name.method ()
TIPO OBJETO Y OBJETOS DEL TIPO
CREACION DE UN TIPO OBJETO

Estructura SQL

CREATE OR REPLACE TYPE typename AS OBJECT


(lista_atributos, [lista_métodos]);
CREATE TYPE Departamento AS OBJECT (
dptonum NUMBER(2),
dptonombre VARCHAR(14),
loc VARCHAR(13)
);
Ahora se debe crear la tabla del objeto llamada dptos,
que contendrá los objetos de tipo Departamento. La
tabla del objeto se llena seleccionando datos desde la
tabla relacional dpto y pasándolo al constructor, que es
una función definida por el sistema con el mismo nombre
que el tipo objeto. Se usa el constructor para inicializar y
devolver una instancia de aquel tipo objeto.
CREATE TABLE dptos OF Departamento AS
SELECT Departamento(dptonum, dptonombre, loc) FROM
dpto;
CREACIÓN DE TIPOS OBJETOS CON MÉTODOS.

Especificación

CREATE TYPE Customer AS OBJECT


( id NUMBER, name VARCHAR(20),
addr VARCHAR(30),
ORDER MEMBER FUNCTION match (c Customer) RETURN
INTEGER );
Body o cuerpo

CREATE TYPE BODY Customer AS ORDER MEMBER FUNCTION


match (c Customer) RETURN INTEGER IS
BEGIN
IF id < c.id THEN RETURN -1; -- any negative number will do
ELSIF id > c.id THEN RETURN 1; -- any positive number will
do
ELSE
RETURN 0;
END IF;
END;
END;
MODIFICACION DE TIPOS OBJETOS

ALTER TYPE mytype ADD ATTRIBUTE (attr3 NUMBER), DROP


ATTRIBUTE attr2, ADD ATTRIBUTE attr4 NUMBER CASCADE;
ELIMINACION DE TIPOS OBJETOS

Se usa la cláusula DELETE para remover o eliminar objetos


(filas) de una tabla de objeto. Para remover objetos
selectivamente, se deben poner las condiciones de la selección
en el WHERE.

DELETE FROM persons p WHERE p.home_address = '108 Palm


Dr'; END;
ELIMINACION DE UN TIPO OBEJTO

DELETE OR REPLACE TYPE typename AS OBJECT


(lista_atributos, [lista_métodos]);
GRACIAS

También podría gustarte