Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

download Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

of 60

Transcript of Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    1/60

    Unidad 1 Modelos emergentes de

    bases de datos

    Tpicos avanzados de base de datos

    1

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    2/60

    Objetivo

    El estudiante investigar y conocer las tecnologasemergentes de bases de datos.

    Identificar la aplicacin de las distintas tecnologas

    emergentes de base de datos.

    2

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    3/60

    Contenido

    1.1 Bases de datos orientadas a objetos. 1.1.1 Definicin y conceptos de las BDOO.

    1.1.2 El modelo de datos orientado a objetos.

    1.1.3 El estndar ODMG.

    1.1.4 Encapsulamiento, herencia y polimorfismo enBDOO.

    1.1.5 Persistencia, concurrencia y recuperacin enBDOO.

    3

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    4/60

    1.1 Base de datos orientadas a

    objetos

    Tpicos selectos de base de datos

    4

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    5/60

    1.1.1 Introduccin

    A medida que los sistemas de bases de datos se fueronaplicando a un rango mas amplio de aplicaciones, como eldiseo asistido por computadora (CAD) y los sistemas deinformacin geogrfica, las limitaciones impuestas por el

    modelo relacional se convirtieron en un obstculo.

    5

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    6/60

    Debilidades de modelos anteriores

    Pobre representacin de las entidades del mundo real.

    Sobrecarga y poca riqueza semnticas.

    Estructura de datos homognea

    Operaciones limitadas Dificultades para gestionar las consultas recursivas

    Problemas asociados a la concurrencia, cambios en los

    esquemas y el inadecuado acceso navegacional. No ofrecen soporte para tipos definidos por el usuario

    6

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    7/60

    Necesidades de las aplicaciones

    actuales

    Soporte para objetos complejos y datos multimedia Identificadores nicos Soporte a referencias e interrelaciones Manipulacin navegacional y de conjunto de registros

    Jerarquas de objetos o tipos y herencia Integracin de los datos con sus procedimientos

    asociados Modelos extensibles mediante tipos de datos definidos

    por el usuario Facilidades de evolucin Interconexin e interoperabilidad

    7

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    8/60

    Ejemplo

    Considrense, un conjunto de direcciones. Mientras una direccin completa puede ser vista como un

    elemento de datos atmico de tipo cadena de caracteres,esta forma de verlo escondera detalles como la:

    Calle, nmero, ciudad y cdigo postal que podran serinteresantes para las consultas.

    idCliente Nombre Direccion

    C123 Mario Cortez Dom. Particular: Jurez #35Oficina: Hidalgo #56

    C124 Celia Vazques Dom. Particular: Madero #156Oficina: Morelos # 89

    8

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    9/60

    Ejemplo cont

    La solucin fue la introduccin de bases de datos basadasen objetos, que permiten trabajar con tipos de datoscomplejos.

    create type Persona as (

    identificacion varchar(20),

    apellido varchar(30),

    nombre varchar(20)

    ) not final

    9

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    10/60

    1.1.2.1 Base de datos orientadas a

    objetos (BDOO)

    Las BDOO son aquellas cuyo modelo de datos estorientado a objetos, almacenan y recuperan objetos enlos que se almacena estado y comportamiento.

    10

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    11/60

    1.1.2.1 Base de datos orientadas a

    objetos (BDOO)

    Las BDOO se han diseado para que se puedan integrardirectamente con aplicaciones desarrolladas con lenguajesorientados a objetos, habiendo adoptado muchos de losconceptos de estos lenguajes.

    Objetos

    11

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    12/60

    1.1.2.2 Origen de las BDOO

    Las bases de datos orientadas a objetos surgenpara

    Evitar los problemas de representacin de cierta

    informacin.

    Aprovechar las ventajas del paradigma orientado aobjetos en el campo de las bases de datos.

    Evitar transformaciones entre modelos de datos(usar el mismo modelo de objetos).

    12

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    13/60

    Utilidad de las BDOO

    El uso de BDOO es ms ventajoso si se presentaen alguno de los siguientes escenarios:

    Un gran nmero de tipos de datos diferentes

    Un gran nmero de relaciones entre los objetos

    Objetos con comportamientos complejos

    13

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    14/60

    Caractersticas de las BDOO Los caractersticas asociadas a las BDOO son:

    En una BDOO los datos se almacenan como objetos. La potencia que proporcionan al diseador al permitirle

    especificar tanto la estructura de objetos complejos, comolas operaciones que se pueden aplicar sobre dichos objetos.

    La forma de identificar objetos es mediante un identificadorde objetos (OID)

    Encapsulamiento Tipos y clases

    Herencia Polimorfismo, sobrecarga y ligadura tarda Objetos complejos

    14

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    15/60

    Sistema Gestor de Base de Datos

    Orientado a Objetos (SGBDOO) Un SGBDOO es un sistema de objetos y un sistema de

    bases de datos. Se puede entonces decir que unSGBDOO es un SGBD que almacena objetos,permitiendo concurrencia, persistencia ,recuperacin eintegridad, ...

    Los SGBDOO se clasifican en:

    SGBDOO puros: son SGBD basados completamente en elmodelo orientado a objetos.

    SGBD hbridos u objetorelacionales: son SGBD relacionalesque permiten almacenar objetos en sus relaciones (tablas).

    15

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    16/60

    Ventajas de los SGBDOO

    Las ventajas de un SGBDOO son:

    Mayor capacidad de modelado. El modelado de datosorientado a objetos permite modelar la realidad de una manera

    mucho ms fiel.

    Ampliacin de tipos: Se pueden construir nuevos tipos dedatos a partir de los ya existentes.

    Lenguaje de consulta ms expresivo. El acceso navegacionaldesde un objeto al siguiente es la forma ms comn de acceso a

    datos en un SGBDOO.

    16

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    17/60

    Ventajas de los SGBDOO (cont..) Adecuacin a las aplicaciones avanzadas de base de

    datos: Hay muchas reas en las que los SGBD tradicionalesno han tenido excesivo xito como:

    Diseo y fabricacin en ingeniera(CASE, CAD/ CAM)

    Bases de datos grficas y de imgenes. Bases de datos cientficas. Sistemas de informacin geogrfica. Bases de datos multimedia.

    Mayores prestaciones. Los SGBDOO proporcionanmejoras significativas de rendimiento con respecto a losSGBD relacionales.

    17

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    18/60

    Desventajas de los SGBDOO

    Los inconvenientes de un SGBDOO son: Carencia de experiencia: Todava no se dispone del nivel de

    experiencia del que se dispone para los sistemas tradicionales (BDRelacionales).

    Carencia de estndares. Existe una carencia de estndares

    general para los SGBDOO. Competencia.Con respecto a los SGBDR y los SGBDOO. Estos

    productos tienen una experiencia de uso considerable. SQL es unestndar aprobado y ODBC es un estndar de facto.

    La optimizacin de consultas compromete la encapsulacin:

    La optimizacin de consultas requiere una compresin de laimplementacin de los objetos, para poder acceder a la base dedatos de manera eficiente. Sin embargo, esto compromete elconcepto de encapsulacin

    18

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    19/60

    SGBDR vs SGBDOO

    19

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    20/60

    1.1.2 El modelo de datos orientado a

    objetos

    El modelos de datos orientado a objetos es unaadaptacin para los sistemas de bases de datos delparadigma de la programacin orientada a objetos.

    El paradigma orientado a objetos est basado en el

    encapsulamiento de los datosy del cdigo relacionadoscon cada objeto en una sola unidad cuyo contenido no esvisible desde el exterior

    20

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    21/60

    Modelo de datos orientado a

    objetos (OODM)

    Cuando menos un OODM debe: Soportar la representacin de objetos complejos. Ser extensible, es decir, debe ser capaz de definir tipos de

    datos nuevos, as como las operaciones a ser realizadas conellos.

    Soportar encapsulado, es decir, la representacin de datos yla ejecucin del mtodo debe ser ocultado a las entidadesexternas.

    Exhibir herencia, es decir, un objeto debe ser capaz de

    heredar la propiedades (datos y mtodos) de otros objetos. Soportar la nocin de identidad de objeto

    21

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    22/60

    Modelo de datos orientado a

    objetos (OODM)

    El OODM modela entidades reales como objetos.

    Cada objeto se compone de atributos y un conjunto demtodos.

    Cada atributo puede hacer referencia a otro objeto oconjunto de objetos.

    Los atributos y la ejecucin del mtodo se ocultan,encapsulan, de otros objetos.

    22

    Comparacin de los componentes

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    23/60

    Comparacin de los componentes

    de los modelos OO y ER

    MODELO DE DATOS OO MODELO E-RTipo Definicin de entidadObjeto EntidadClase Conjunto de entidadesVariable de instancia AtributoN/A Clave principalOID

    N/A

    Mtodo N/A

    Jerarqua de clase Diagrama E-R23

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    24/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    25/60

    Objetos

    Un objeto es una representacin conceptual de unaentidad real que incorpora una representacin de losdatos (atributos) y un comportamiento (mtodos)

    Los objetos pueden ser simples o complejos

    Los objetos pueden ser reales o imaginarios

    25

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    26/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    27/60

    Identidad del objeto Oid (Object Identifier)

    Cada objeto posee un oid. El oid establece la identidaddel objeto y tiene las siguientes caractersticas:

    Constituye un identificador nico y global para cada objeto

    dentro del sistema La OID es asignada por el sistema al momento de la

    creacin del objeto, y no puede ser cambiada.

    Es independiente de la localizacin fsica del objeto, es

    decir, provee completa independencia de localizacin La OID puede ser eliminada solo si el objeto es

    eliminado

    27

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    28/60

    Atributos

    Valores o caractersticas de los objetos Permiten definir el estado del objeto u otras cualidades

    28

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    29/60

    Estado de un objeto

    El estado de un objeto es el conjunto de valoresque los atributos del objeto tienen en un momentodado.

    Aunque el estado del objeto puede cambiar, su OIDpermanece igual.

    Si desea cambiarse el estado de un objeto deben

    cambiarse los valores de sus atributos, paracambiarlos deben enviarse mensajes al objeto. stemensaje invocar un mtodo

    29

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    30/60

    Mtodos (u operaciones)

    Un objeto puede realizar una serie de acciones

    30

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    31/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    32/60

    Clases

    Una clase es la plantilla que usamos para crear los

    objetos, es decir se pueden definir muchos objetos apartir de una clase.

    Una clase contiene la descripcin de la estructura de

    los datos y los detalles de ejecucin del mtodopara los objetos en esa clase.

    32

    123

    245

    12

    245

    Objeto

    Objeto

    Clase

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    33/60

    Protocolo

    El conjunto de mensajes de clase, cada uno identificadopor un nombre de mensaje.

    El protocolo representa el aspecto publico de un objeto,es decir, es conocido por otros objetos lo mismo que porotros usuarios.

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    34/60

    Resumen de conceptos de OO

    Aspecto privado

    Aspecto publico

    La clase define

    Variables de

    instanciaMtodos

    Protocolo

    Conjunto de

    Mensajes

    Que activa un

    Son los

    nombres de

    Ejecutado por

    un conjunto de

    Pertenece

    a una

    Define un

    conjunto de

    valores de su

    tiene

    Objeto

    Estado Compor-tamiento

    OID

    (nica)

    34

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    35/60

    Modelo de datos relacional

    orientados a objetos

    El modelo de datos relacional orientado a objetosextiende al modelo de datos relacional ofreciendo unsistema de tipos mas rico que incluye tipos de datos mascomplejos y orientacin a objetos.

    35

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    36/60

    Relaciones anidadas

    36

    El modelo relacional anidado es una extensin delmodelo relacional en la que los dominios pueden seratmicos o de relacin.

    Por tanto, el valor de las tuplas de los atributos puede seruna relacin, y las relaciones pueden guardarse en otrasrelaciones.

    De este modo, se genera la posibilidad de guardar objetos

    ms complejos en una sola tabla con referencias a otrasrelaciones, con lo que se acerca ms al paradigma deprogramacin orientada a objetos.

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    37/60

    Ejemplo de una relacin anidada

    37

    El ejemplo es extrado de una biblioteca.

    Considrese que para cada libro se almacena lainformacin siguiente: Ttulo del libro

    Lista de autores Editorial

    Lista de palabras clave

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    38/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    39/60

    Especificaciones del tipo de objeto

    39

    Las especificacin de un objeto se define con lainstruccin CREATE TYPE, cuya sintaxis es la siguiente:CREATE [OR REPLACE] TYPEnombre_objeto AS OBJECT (

    Variables_instancia tipo_dato ,

    [CONSTRUCTOR FUNCTION nombre_constructor[( parametros )] RETURN RESULT AS SELF]

    , [{MEMBER | STATIC} FUNCTIONnombre_funcion

    [( parametros )] RETURN { tipo_dato }]

    , [{MEMBER | STATIC} PROCEDUREnombre_procedimiento [( parametros)]],

    )[NOT] INSTANTIABLE [NOT] FINAL;

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    40/60

    Cuerpo del tipo del objeto

    40

    El cuerpo del tipo se crea con la orden CREATE TYPE BODY, cuya sintaxis es la siguiente:

    CREATE [OR REPLACE]TYPE BODY nombre_objeto {IS|AS}[ CONSTRUCTOR FUNCTION nombre_constructor[( parametros )] RETURN RESULT AS SELF ISBEGINsentencias;

    END [nombre_constructor]];{MEMBER | STATIC} FUNCTIONnombre_funcion[(parametros )] RETURN { tipoDato } ISBEGINsentencias;

    END [nombre_funcion];{MEMBER | STATIC} PROCEDUREnombre_proc[(parametros)]IS

    BEGINsentencias;

    END [nombre_proc];END;

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    41/60

    Modificacin de objetos

    41

    Es posible modificar un tipo de objeto existenteutilizando la orden ALTER TYPE.

    Esta orden se puede utilizar para compilar el cuerpo oespecificacin del tipo o para aadir mtodos a un tipo.

    La sintaxis para compilacin es la siguiente: ALTER TYPE nombre_objeto COMPILE [ESPECIFICATION| BODY];

    Si no aparecen ESPECIFICATION o BODY, se volver a compilar

    tanto la especificacin como el cuerpo del objeto Ejemplo:

    ALTER TYPE cliente_t COMPILE BODY;

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    42/60

    Modificacin de objetos (cont..)

    42

    La sintaxis resumida para aadir mtodos es la siguiente: ALTER TYPE nombre_objeto REPLACE AS OBJECT (

    especificacion_tipo_objeto);

    El tipo que hay que modificar es nombre_objetoy

    especificacion_tipo_objeto es una definicin completa del estilode la establecida en CREATE TYPE.

    La nueva definicin debe ser igual a la original excepto por laadicin de los nuevos mtodos y deben incluirse los tipos yatributos originales.

    Si existe un cuerpo del tipo, quedar invalidado, puesto que nodefine los nuevos mtodos.

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    43/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    44/60

    Eliminacin de tipos

    44

    Si se quiere borrar nicamente el cuerpo de un tipo deobjeto dejando intactas la especificacin y cualquierobjeto dependiente se debe utilizar la orden DROP TYPEBODY cuya sintaxis es la siguiente:

    DROP TYPE BODY nombre_objeto;

    Ejemplo:

    DROP TYPE BODY cliente_t;

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    45/60

    Mas conceptos de OO

    45

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    46/60

    Persistencia

    Es persistente aquel objeto que esta almacenado en la base dedatos, mientras que son transitorios los objetos locales a unbloque de instrucciones que se destruyen cuando caen fuerade su mbito o termina la ejecucin del bloque de

    instrucciones.

    Los objetos persistentes estn disponibles hasta que se borranexplcitamente y se almacenan en tablas de la base de datos.

    46

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    47/60

    Persistencia

    47

    Se pueden almacenar los objetos en una tabla de dosformas:

    Objetos de fila: ocupan una fila completa de una tabla de labase de datos, de modo que la fila contiene slo un objeto yno tiene ninguna otra columna.

    Objetos de columna: son una nica columna de la tabla. Paracrear una tabla con un objeto de columna, sencillamente se usael tipo de objeto para el tipo de una columna en la orden decreacin de la tabla.

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    48/60

    Tablas de objetos

    48

    Para definir una tabla de objetos se hace con lainstruccin CREATE TABLE y la sintaxis es la siguiente: CREATE TABLE nombre_tabla OF nombre_objeto;

    Para definir una tabla en la cual se va a almacenar objetos

    de columna se utiliza la instruccin CREATE TABLE consu sintaxis estndar: CREATE TABLE nombre_tabla(

    columna tipodato,

    objetoColumna nombreObjeto,);

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    49/60

    Ejemplos de Tablas de objetos

    49

    CREATE TABLE clientes_tab OF cliente_t; CREATE TYPE ordenes_t AS OBJECT (

    ordnum NUMBER,cliente REF clientes_t,

    fechpedido DATE,direcentrega direccion_t); CREATE TABLE ordenes_tab (

    orden ordenes_t,

    total float,SCOPE FOR (cliente) IS clientes_tab););

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    50/60

    Manipulacin de objetos

    50

    Todas las operaciones DML en tablas que contienenobjetos de fila o de columna funcionan de la misma formaque las operaciones relacionales.

    Para insertar objetos en una tabla se utiliza la instruccin:

    Insert: Se puede usar el constructor de objetos o unavariable de objeto que contenga el objeto que se va ainsertar. Sintaxis:

    Insert into nombre_tabla[(lista_col)] values(lista_valores) Ejemplo:

    insert into cliente values(cliente_t(1,'Juan Preez',direccion_t('5 demayo','Zamora',2,'59780'),'123-123-1234',sysdate));

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    51/60

    Manipulacin de objetos (cont..)

    51

    Para modificar los atributos de un objeto en una tabla deobjetos se utiliza la instruccin Update :

    Update: Los objetos pueden usar variables de instanciaen las clusulas WHERE y SET

    Sintaxis: UPDATEnombre_tabla alias_tabla SET

    objeto.var_instancia=expresion [WHERE condicion]

    Ejemplo:

    UPDATE cliente c SET c.clinomb='Juan Perez'WHERE c.clinum=1

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    52/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    53/60

    Manipulacin de objetos (cont..)

    53

    Para consultar objetos de una tabla se utiliza lainstruccin SELECT dependiendo de la forma en como seguardaron los objetos en la tabla:

    Objetos de columna en SELECT: Si el objeto esalmacenado como objeto de columna se recupera utilizando lasintaxis estndar de la instruccin SELECT siempre y cuandose cualifique el objeto por completo.

    Objetos de fila en SELECT: Para recuperar el objeto o unareferencia al objeto hay que usar los operadores VALUE o REF

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    54/60

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    55/60

    Referencia entre objetos

    55

    La sintaxis para declarar una referencia de objeto en unaseccin declarativa o una definicin de tabla es lasiguiente:

    nombre_variableREF tipo_objeto;

    El nombre de la referencia es nombre_variable y el tipo deobjeto es tipo_objeto

    Las referencias de objeto se usan slo en bloques PL/SQLy en rdenes SQL con los operadores VALUE y REF

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    56/60

    Operador REF

    56

    El operador REF se utiliza para obtener una referencia a un

    objeto. Toma como argumento una variable de correlacin(una fila o alias de tabla asociado a una fila en una tabla deobjetos).

    Sintaxis:

    REF(var_correlacion) Ejemplo:

    declarerefcliente ref Cliente_t;

    begin

    SELECT REF(c)into refCliente FROM cliente c WHEREc.clinum=1;

    end;

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    57/60

    Operador VALUE

    57

    Como es de esperar, el operador VALUE devuelve el valorde un objeto.

    VALUE requiere como argumento una variable de

    correlacin.

    Sintaxis: VALUE(var_correlacion)

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    58/60

    Operador DEREF

    58

    No es posible navegar a travs de referencias enprocedimientos SQL. Para esto es necesario utilizar eloperador DEREF.

    DEREF toma como argumento una referencia a un objetoy devuelve el valor de dicho objeto.

    Sintaxis: DEREF(variable_referencia);

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    59/60

    Soporte de herencia en Oracle

    59

    Oracle solo soporta la herencia simple y para llevarla acabo lo hace a travs de las siguientes instruciones: UNDER: Crea un subtipo de un tipo existente.

    FINAL: Indica que no se pueden crear subtipos del tipo.

    INSTANTIABLE: Indica que pueden ser construidas instanciasdel tipo

    Ejemplo: Create type persona as object

    () not final instantiable; Create type empleado under persona

    ()final instantiable;

  • 7/29/2019 Unidad 1 Modelos emergentes de bases de datos_feb_jul_2013.pdf

    60/60

    Soporte de polimorfismo en Oracle Oracle soporta el polimorfismo con la sobrecarga de

    mtodos y la sobreescritura de mtodos (OVERRIDING). Ejemplo:

    CREATE TYPE ellipse_typ AS OBJECT (...,MEMBER PROCEDURE calculate(x NUMBER, x NUMBER),

    MEMBER PROCEDURE calculate(),) NOT FINAL;

    CREATE TYPE circle_typ UNDER ellipse_typ (,

    MEMBER PROCEDURE calculate(x NUMBER),OVERRIDING MEMBER PROCEDURE calculate(),

    );