Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Motivacin
Limitaciones de tipos de datos Bases de Datos Relacionales extendidas Bases de Datos Orientadas a Objetos Bases de Datos Objeto-Relacionales
O.O., tipos complejos de datos y mtodos Relacionales, DDL y DML relacional
Modelo Objeto-Relacional
Object Type
Es un tipo de datos definido por el usuario Encapsula datos en una estructura y mtodos necesarios para manipularos Un objeto es una instancia de un object type Compuesto por: especificacin y cuerpo
Modelo Objeto-Relacional
Object Type
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Creacin de la especificacin
CREATE OR REPLACE TYPE name_typ AS OBJECT ( f_name VARCHAR2(25), l_name VARCHAR2(25), initials VARCHAR2(7),
MEMBER FUNCTION full_name RETURN VARCHAR2 ); /
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Mtodos
Fundamentales
Mtodos Static, son invocados en el tipo de objeto, no en instancias u objetos. Mtodos constructores Mtodos Member, son un medio por el cual una aplicacin obtiene acceso a los datos instanciados de un objeto.
Modelo Objeto-Relacional
Mtodos constructores
Cada tipo de objeto tiene un constructor Es una funcin definida por el sistema con el mismo nombre que el objeto El constructor se utiliza para inicializar y devolver una instancia de ese tipo de objeto Los parmetros del mtodo constructor coinciden con los atributos del tipo de objeto, esto es, el nmero de parmetros es igual al nmero de atributos del tipo de objeto, los parmetros se declaran en el mismo orden y tienen el mismo tipo de dato.
Modelo Objeto-Relacional
Mtodos Member
tiles en la comparacin de objetos, estos son:
map methods, y order methods.
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Objetos en Relaciones
Los Objetos pueden ser representados en Relaciones, de dos maneras: 1. Definir una relacin (tabla) de un tipo objeto, cada fila representa un objeto instanciado. 2. Definir una relacin (tabla), donde una o mas columnas son de un tipo objeto. Dada una fila y la columna definida, almacena un objeto instanciado.
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Algunos dominios de columnas podrn ser definidos del tipo coleccin Los tipos de datos coleccin son utilizados como los otros tipos de datos
Oracle soporta dos tipos de datos coleccin: varrays (array variables) y nested tables (tablas anidadas).
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Creacin de un VARRAY
En base de datos
CREATE [OR REPLACE] TYPE type_name AS VARRAY (max_elements) OF element datatype [NOT NULL];
En PL/SQL
TYPE type_name AS VARRAY (max_elements) OF element datatype [NOT NULL];
Ejemplo
CREATE TYPE List_Telefono_vartyp AS VARRAY(10) OF VARCHAR2(20); CREATE TYPE Cliente_objtyp AS OBJECT (, cli_tels List_Telefono_vartyp, );
Modelo Objeto-Relacional
En PL/SQL
TYPE type_name AS TABLE OF element datatype [NOT NULL];
Ejemplo
CREATE TYPE LineaItemLista_ntabtyp AS TABLE OF Det_Pedido_objtyp;
Modelo Objeto-Relacional
CREATE OR REPLACE TYPE Det_Pedido_objtyp AS OBJECT ( dpitem_no NUMBER, dpitem_prod REF Producto_objtyp, dpitem_cant NUMBER); CREATE TYPE LineaItemLista_ntabtyp AS TABLE OF Det_Pedido_objtyp;
Modelo Objeto-Relacional
COMPRESS NO COMPRESS
Modelo Objeto-Relacional
Tipos Heredados
Permite tipos que comparten caractersticas similares Consiste en supertipos y subtipos Los subtipos heredan las caractersticas (atributos y mtodos) del supertipo Los subtipos pueden especializarse, adicionando sus propios atributos Los subtipos pueden especializarse, adicionando sus propios mtodos sobreescribiendo los heredados(override,overload)
Modelo Objeto-Relacional
Declaracin de tipos
Las declaraciones de tipos pueden ser: FINAL: No puede tener subtipos NOT FINAL: Puede tener subtipos INSTANTIABLE: Tiene constructor NOT INSTANTIABLE: No tiene constructor
Modelo Objeto-Relacional
Ejemplos
1. Permite subtipos e instancias.
CREATE OR REPLACE TYPE cat_typ AS OBJECT( cat_name varchar2(50), cat_description varchar2(1000) , cat_id number(2)) NOT FINAL;
Herencia de mtodos
Sobrecarga(overloading) CREATE TYPE MyType_typ AS OBJECT (..., MEMBER PROCEDURE foo(x NUMBER), ...) NOT FINAL; CREATE TYPE MySubType_typ UNDER MyType_typ (..., MEMBER PROCEDURE foo(x DATE), );
Sobreescritura (overriding) CREATE TYPE MyType_typ AS OBJECT (..., MEMBER PROCEDURE Print(), ...) NOT FINAL; CREATE TYPE MySubType_typ UNDER MyType_typ (..., OVERRIDING MEMBER PROCEDURE Print(), ...);
Modelo Objeto-Relacional
Ahora un ejemplo
Breve descripcin
Un clsico sistema de control de pedidos e inventarios Los clientes realizan pedidos Cada pedido considera muchos productos y en cantidades distintas por cada producto
Modelo Objeto-Relacional
Diagrama de Clases
CLIENTE telefono -numero -tiene 0..10 1 -cli_no -cli_nom -cli_dir : direccion -cli_tels : telefono +compare_cliente() 1 -tiene direccion -dir_calle -dir_ciudad -dir_pais
* PEDIDO -ped_no -cli_ref : CLIENTE -ped_fecha -ped_fec_env -LineaItemLista_ntab : DET_PED -ped_dir_env : direccion -tiene DET_PED 1 1 * -dpitem_no -dpitem_prod : PRODUCTO -dpitem_cant PRODUCTO -pro_id -pro_nom -pro_stock -pro_cost
Modelo Objeto-Relacional
Los scripts
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Modelo Objeto-Relacional
Preguntas o comentarios
Gracias