SGBDOR Y RELACIONALES EXTENDIDOS

38
SGBDOR Y SGBDOR Y RELACIONALES RELACIONALES EXTENDIDOS EXTENDIDOS Nagore Tamayo Nagore Tamayo

description

SGBDOR Y RELACIONALES EXTENDIDOS. Nagore Tamayo. Indice. Introducción El servidor universal de Informix Características objeto-relacionales de Oracle 8 SQL 3. Introducción. Introducción. En el mundo comercial de hoy en dia, hay varias familias de productos de SGBD - PowerPoint PPT Presentation

Transcript of SGBDOR Y RELACIONALES EXTENDIDOS

Page 1: SGBDOR Y RELACIONALES EXTENDIDOS

SGBDOR Y SGBDOR Y RELACIONALES RELACIONALES EXTENDIDOSEXTENDIDOS

Nagore TamayoNagore Tamayo

Page 2: SGBDOR Y RELACIONALES EXTENDIDOS

IndiceIndice

IntroducciónIntroducción El servidor universal de InformixEl servidor universal de Informix Características objeto-relacionales Características objeto-relacionales

de Oracle 8de Oracle 8 SQL 3SQL 3

Page 3: SGBDOR Y RELACIONALES EXTENDIDOS

IntroducciónIntroducción

Page 4: SGBDOR Y RELACIONALES EXTENDIDOS

IntroducciónIntroducción

En el mundo comercial de hoy en dia, hay varias En el mundo comercial de hoy en dia, hay varias familias de productos de SGBDfamilias de productos de SGBD

Los SGBD predominantes: SGBDR y SGBDOOLos SGBD predominantes: SGBDR y SGBDOO SGBD heredados:SGBD heredados:

Basados en modelos jerárquico y de red, presentados Basados en modelos jerárquico y de red, presentados en los 70en los 70A medida que la tecnología de BD’s evoluciona, son A medida que la tecnología de BD’s evoluciona, son reemplazados por nuevas ofertasreemplazados por nuevas ofertasFamilia jerárquica: IMS de IBMFamilia jerárquica: IMS de IBMFamilia de red: IMAGE (Hewlett Packard), IDMS Familia de red: IMAGE (Hewlett Packard), IDMS (Computer Associates), IDS II (Honeywell) y (Computer Associates), IDS II (Honeywell) y TOTAL/SUPRA (Cincom)TOTAL/SUPRA (Cincom)

Page 5: SGBDOR Y RELACIONALES EXTENDIDOS

IntroducciónIntroducción

¿Por qué surgen los SGBDOR?¿Por qué surgen los SGBDOR?

Necesidad de diseñar bases de datos Necesidad de diseñar bases de datos que puedan desarrollar, manipular y que puedan desarrollar, manipular y mantener objetos complejos que surgen mantener objetos complejos que surgen de nuevas aplicacionesde nuevas aplicaciones

Incapacidad de los SGBD heredados y Incapacidad de los SGBD heredados y del modelo de datos relacional básico del modelo de datos relacional básico para afrontar los desafios de dichas para afrontar los desafios de dichas aplicacionesaplicaciones

Page 6: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal de Informixde Informix

Page 7: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal InformixInformix

Es un SGBDOR que combina las Es un SGBDOR que combina las tecnologías de BD’s relacionales y tecnologías de BD’s relacionales y orientadas a objetos de Informix e orientadas a objetos de Informix e IllustraIllustra

Illustra se creó a partir del SGBD Illustra se creó a partir del SGBD POSTGRES, se comercializó como el POSTGRES, se comercializó como el SGBD Montage y fue adquirido por SGBD Montage y fue adquirido por Informix, integrado en su SGBDR y Informix, integrado en su SGBDR y presentado como Universal Server de presentado como Universal Server de Informix, un SGBDORInformix, un SGBDOR

Page 8: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal InformixInformix

Clasificación de las aplicacionesClasificación de las aplicacionesExisten 4 formas de clasificar las aplicaciones según 2 Existen 4 formas de clasificar las aplicaciones según 2 dimensiones o ejes: la dimensiones o ejes: la complejidad de los datoscomplejidad de los datos o o dimensión X y la dimensión X y la complejidad de las consultascomplejidad de las consultas o o dimensión Ydimensión Y

Cuadrante 1Cuadrante 1 (X=0, Y=0): Datos simples, consultas (X=0, Y=0): Datos simples, consultas simplessimplesCuadrante 2Cuadrante 2 (X=0, Y=1): Datos simples, consultas (X=0, Y=1): Datos simples, consultas complejascomplejasCuadrante 3Cuadrante 3 (X=1, Y=0): Datos complejos, consultas (X=1, Y=0): Datos complejos, consultas simplessimplesCuadrante 4Cuadrante 4 (X=1, Y=1): Datos complejos, consultas (X=1, Y=1): Datos complejos, consultas complejascomplejasUniversal Server de Informix ha extendido su modelo Universal Server de Informix ha extendido su modelo relacional básico para incorporar recursos que lo relacional básico para incorporar recursos que lo convierten en objeto-relacionalconvierten en objeto-relacional

Page 9: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

¿Cómo extiende el modelo ¿Cómo extiende el modelo relacional?relacional?

Las extensiones del modelo relacional Las extensiones del modelo relacional que incorpora el Universal Server de que incorpora el Universal Server de Informix son:Informix son:

Soporte para tipos de datos adicionales o Soporte para tipos de datos adicionales o extensiblesextensibles

Soporte para rutinas definidas por el usuario Soporte para rutinas definidas por el usuario Soporte para extensiones de la indexaciónSoporte para extensiones de la indexación Interfaces de Programación de Aplicaciones (API) Interfaces de Programación de Aplicaciones (API)

para Data Bladespara Data Blades

Page 10: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal InformixInformix

Tipos de datos extensiblesTipos de datos extensibles La arquitectura del servidor universal de La arquitectura del servidor universal de

Informix comprende el SGBD básico más Informix comprende el SGBD básico más varios módulos de varios módulos de Data BladesData Blades Los DataBlades son módulos de software estándar Los DataBlades son módulos de software estándar

que permiten extender las capacidades de la base que permiten extender las capacidades de la base de datos, de esta forma el usuario puede de datos, de esta forma el usuario puede desarrollar aplicaciones que involucren cualquier desarrollar aplicaciones que involucren cualquier tipo de información. Los DataBlades brindan tipo de información. Los DataBlades brindan capacidades de almacenamiento y manipulación capacidades de almacenamiento y manipulación ajustada a las necesidades de una aplicación ajustada a las necesidades de una aplicación específica, y pueden ser utilizados específica, y pueden ser utilizados independientemente o en conjunto. independientemente o en conjunto.

Page 11: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Tipos de datos extensiblesTipos de datos extensiblesAdemás de los tipos predefinidos incluye los Además de los tipos predefinidos incluye los siguientes constructores para declarar otros tipos:siguientes constructores para declarar otros tipos:

1. Tipo opaco (opaque)1. Tipo opaco (opaque)Tiene una representación interna oculta, por lo que se Tiene una representación interna oculta, por lo que se utiliza para encapsular un tipo y el usuario debe utiliza para encapsular un tipo y el usuario debe proporcionar funciones para realizar la conversión de un proporcionar funciones para realizar la conversión de un objeto entre su representación oculta en el servidor (base de objeto entre su representación oculta en el servidor (base de datos) y su representación visible como la aprecia el cliente datos) y su representación visible como la aprecia el cliente (programa que lo solicita). Para ello: funciones (programa que lo solicita). Para ello: funciones enviar/recibirenviar/recibirEjemplo: Ejemplo: CREATE OPAQUE TYPE CREATE OPAQUE TYPE opacoopaco ( (INTERNALLENGTH=variable, MAXLEN=1024INTERNALLENGTH=variable, MAXLEN=1024, , ALIGNMENT=8);ALIGNMENT=8);

Page 12: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Tipos de datos extensiblesTipos de datos extensibles

2. Tipo distinto (distinct)2. Tipo distinto (distinct)Se usa para ampliar un tipo existente mediante herencia.Se usa para ampliar un tipo existente mediante herencia.Ejemplo:Ejemplo:

CREATE DISTINCT TYPECREATE DISTINCT TYPE fecha_alquiler fecha_alquiler AS AS DATE; DATE;

3. Tipo fila (row)3. Tipo fila (row)Representa un atributo compuesto, tiene uno o más Representa un atributo compuesto, tiene uno o más campos y es análogo al tipo struct en C. También se usa campos y es análogo al tipo struct en C. También se usa para soportar herencia mediante UNDER. Ejemplo:para soportar herencia mediante UNDER. Ejemplo:

CREATE ROW TYPECREATE ROW TYPE persona_t (nombre VARCHAR(60), seguridad_social NUMERIC(9), fecha_nac persona_t (nombre VARCHAR(60), seguridad_social NUMERIC(9), fecha_nac DATE);DATE);

CREATE ROW TYPECREATE ROW TYPE empleado_t (slario NUMERIC(10,2), nss CHAR(9)) empleado_t (slario NUMERIC(10,2), nss CHAR(9)) UNDERUNDER persona_t persona_tCREATE ROW TYPECREATE ROW TYPE alumno_t ( gpa NIMERIC(4,2), direccion VARCHAR(200)) alumno_t ( gpa NIMERIC(4,2), direccion VARCHAR(200)) UNDERUNDER persona_t persona_t

Page 13: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal InformixInformix

Tipos de datos extensiblesTipos de datos extensibles

4. Tipo colleción (collection)4. Tipo colleción (collection)Incluyen listas, conjuntos y multiconjuntos de tipos Incluyen listas, conjuntos y multiconjuntos de tipos predefinidos, así como de tipos defincidos por el usuario:predefinidos, así como de tipos defincidos por el usuario:

Listas (list):Listas (list): Puede contener elementos duplicados y el Puede contener elementos duplicados y el orden orden es significativoes significativo

Conjunto (set):Conjunto (set): No puede contener valores duplicados y No puede contener valores duplicados y no tiene un no tiene un orden específicoorden específico

Multiconjunto (multiset): Multiconjunto (multiset): Puede incluir duplicados y no Puede incluir duplicados y no tiene orden tiene orden específicoespecíficoEjemplo: Ejemplo: CREATE TABLE CREATE TABLE empleado (nombre VARCHAR(50), comision empleado (nombre VARCHAR(50), comision MULTISETMULTISET(DINERO))(DINERO))

Page 14: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal InformixInformix

Soporte de rutinas definidas por el Soporte de rutinas definidas por el usuariousuario

El servidor universal de Informix soporta rutinas definidas por el usuario El servidor universal de Informix soporta rutinas definidas por el usuario para manipular datos definidos por el usuario. Estas rutinas pueden para manipular datos definidos por el usuario. Estas rutinas pueden implementarse en lenguajes como C o Java.implementarse en lenguajes como C o Java.

Ejemplo:Ejemplo:

CREATE FUNCTIONCREATE FUNCTION equal (arg1 opaco, arg2 opaco) equal (arg1 opaco, arg2 opaco) RETURNINGRETURNING BOOLEAN;BOOLEAN;

EXTERNAL NAMEEXTERNAL NAME “/usr/lib/informix/libopaque.so “/usr/lib/informix/libopaque.so (opaco_equal)”(opaco_equal)”LANGUAJELANGUAJE C C

END FUNCTION;END FUNCTION;

También soportaTambién soporta cast cast. Hay 2 tipos de cast definidos por el usuario: . Hay 2 tipos de cast definidos por el usuario: implícitos y explicitosimplícitos y explicitos

Page 15: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal El servidor universal InformixInformix

Soporte de herenciaSoporte de herencia

La herencia se realiza en dos niveles: herencia de datos y La herencia se realiza en dos niveles: herencia de datos y herencia de funcionesherencia de funciones

Herencia de datos:Herencia de datos:

CREATE ROW TYPE CREATE ROW TYPE tipo_empleado(tipo_empleado(nombre VARCHAR(25),nombre VARCHAR(25),nss CHAR(9)nss CHAR(9)salario INT);salario INT);

CREATE ROW TYPE CREATE ROW TYPE tipo_ingeniero(tipo_ingeniero(grado VARCHAR (10)grado VARCHAR (10)licencia VARCHAR(20))licencia VARCHAR(20))UNDERUNDER tipo_empleado;tipo_empleado;

CREATE ROW TYPE CREATE ROW TYPE tipo_jefe_ing(tipo_jefe_ing(fecha_comienzo_jefe VARCHAR(10)fecha_comienzo_jefe VARCHAR(10)dpto_gest VARCHAR(20))dpto_gest VARCHAR(20))UNDERUNDER tipo_ingenierotipo_ingeniero;;

Page 16: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de herenciaSoporte de herencia Herencia de funciones:Herencia de funciones:

CREATE FUNCTION CREATE FUNCTION sobrevalorado (tipo_empleado)sobrevalorado (tipo_empleado) SELECT SELECT e.nombree.nombreRETURN RETURN BOOLEANBOOLEAN AS AS FROM FROM (ingeniero) g(ingeniero) gRETURN RETURN $1.salario>($1.salario>(SELECTSELECT salario salario WHERE WHERE sobrevalorado(g);sobrevalorado(g);

FROM FROM empleadoempleado WHERE WHERE nombre=‘Bill Brown’)nombre=‘Bill Brown’)

CREATE FUNCTION CREATE FUNCTION sobrevalorado (tipo_jefe_ing)sobrevalorado (tipo_jefe_ing) SELECT SELECT jg.nombrejg.nombre RETURNRETURN BOOLEAN BOOLEAN AS AS FROM FROM jefe_ing jgjefe_ing jgRETURN RETURN $1.salario>($1.salario>(SELECTSELECT salario salario WHERE WHERE sobrevalorado(jg);sobrevalorado(jg);

FROM FROM empleadoempleado WHERE WHERE nombre=‘Jack Jones’)nombre=‘Jack Jones’)

Page 17: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de extensiones de indexaciónSoporte de extensiones de indexaciónSoporta indexación sobre rutinas definidas por el usuario tanto Soporta indexación sobre rutinas definidas por el usuario tanto sobre una tabla única como sobre una jerarquía de tablas:sobre una tabla única como sobre una jerarquía de tablas:

CREATE INDEXCREATE INDEX ciudad_emp ciudad_emp ONON empleado(ciudad(direccion));empleado(ciudad(direccion));

Soporte de API’s con Data BladesSoporte de API’s con Data BladesProporciona nuevos tipos de datos y funciones para tipos Proporciona nuevos tipos de datos y funciones para tipos específicos de aplicacionesespecíficos de aplicaciones

La idoneidad de los SGBDOR para trabajar con aplicaciones no La idoneidad de los SGBDOR para trabajar con aplicaciones no convencionales se atribuye fundamentalmente a estos tipos de convencionales se atribuye fundamentalmente a estos tipos de datos y a la funcionalidad a medida que provean.datos y a la funcionalidad a medida que provean.

Page 18: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data BladesTipos de datos bidimensionales:Tipos de datos bidimensionales:Para aplicaciones bidimensionales, los tipos de datos relevantes Para aplicaciones bidimensionales, los tipos de datos relevantes deberían incluir lo siguiente:deberían incluir lo siguiente:

Un Un puntopunto (point) definido por coordenadas (X,Y)(point) definido por coordenadas (X,Y)

Una Una línealínea (line) definida por sus puntos extremos (line) definida por sus puntos extremos

UnUn polígono polígono (polygon) definido por una lista ordenada de n (polygon) definido por una lista ordenada de n puntos, que constituirían sus vérticespuntos, que constituirían sus vértices

Un Un caminocamino (path) definido por una secuencia (lista ordenada) de (path) definido por una secuencia (lista ordenada) de puntos.puntos.

Un Un círculocírculo (circle) definido por su punto central y radio (circle) definido por su punto central y radio

Page 19: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data BladesTipos de datos imagen (Tipos de datos imagen (imageimage):):Las imágenes se almacenan en diferentes formatos estándar (TIFF, GIF, JPEG, photoCD, Las imágenes se almacenan en diferentes formatos estándar (TIFF, GIF, JPEG, photoCD,

GROUP 4, FAX)GROUP 4, FAX)

Se debe definir un tipo de datos para cada formato y utilizar librerías de funciones Se debe definir un tipo de datos para cada formato y utilizar librerías de funciones adecuadas adecuadas para extraer imágenes de otros medios o representar imágenes para su visualizaciónpara extraer imágenes de otros medios o representar imágenes para su visualización

Algunas de las posibles funciones (u operaciones) para imágenes son:Algunas de las posibles funciones (u operaciones) para imágenes son:

rotate (imagen, ángulo) returns imagen common (imagen1, imagen2) returns rotate (imagen, ángulo) returns imagen common (imagen1, imagen2) returns imagenimagencrop (imagen, polígono) returns imagen union (imagen1, imagen2) returns crop (imagen, polígono) returns imagen union (imagen1, imagen2) returns imagen imagen enhance (imagen) returns imagen similarity (imagen1, imagen2) enhance (imagen) returns imagen similarity (imagen1, imagen2) returns numeroreturns numero

Page 20: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data Blades Tipos de datos de series temporalesTipos de datos de series temporales

Simplifican la manipulación de datos de series temporales en vez Simplifican la manipulación de datos de series temporales en vez de almacenarlos en múltiples tablasde almacenarlos en múltiples tablas

CREATE TABLECREATE TABLE valores_acciones( valores_acciones( CREATE TABLECREATE TABLE coca-cola(coca-cola(nombre_empresa VARCHAR(30)nombre_empresa VARCHAR(30) fecha_registro DATEfecha_registro DATEsímbolo VARCHAR(5)símbolo VARCHAR(5) valor FLOAT);valor FLOAT);valores TIME_SERIES valores TIME_SERIES OFOF FLOAT); FLOAT);

SELECTSELECT VARIACION_PROMEDIO (valores, 30, ’01-06-1999’) VARIACION_PROMEDIO (valores, 30, ’01-06-1999’)FROMFROM valores_aciones valores_acionesWHEREWHERE símbolo = ‘KO’ símbolo = ‘KO’

Page 21: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data Blades Tipo de datos textoTipo de datos texto

Soporta almacenamiento, búsqueda y recuperación de objetos de Soporta almacenamiento, búsqueda y recuperación de objetos de texto. Define un tipo de datos único: texto. Define un tipo de datos único: docdoc cuyas instancias se cuyas instancias se almacenan como objetos grandes que pertenecen al tipo de datos almacenan como objetos grandes que pertenecen al tipo de datos predefinido large-textpredefinido large-text

La conversión automática entre un tipo de datos large-text y uno La conversión automática entre un tipo de datos large-text y uno text permite que cualquier función con argumentos de texto se text permite que cualquier función con argumentos de texto se pueda aplicar a los objetos large-textpueda aplicar a los objetos large-text

Formato de los parámetros del data blade de texto: por defecto Formato de los parámetros del data blade de texto: por defecto ASCII, también admite postscript, dvipostscript, nroff, troff y textASCII, también admite postscript, dvipostscript, nroff, troff y text

Para convertir documentos entre varios formatos: data blade de Para convertir documentos entre varios formatos: data blade de conversión de textoconversión de texto

Page 22: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data Blades Tipo de datos textoTipo de datos texto

Para la manipulación de objetos doc se utilizan funcones como las Para la manipulación de objetos doc se utilizan funcones como las siguientes:siguientes:

Import_doc (doc, text) returns doc;Import_doc (doc, text) returns doc;

Assign (doc) reeturns doc;Assign (doc) reeturns doc;

Destroy (doc) returns void;Destroy (doc) returns void;

Las funciones Assign y Destroy ya existen para los objetos Las funciones Assign y Destroy ya existen para los objetos predefinidos large-object y large-text, el usuario debe redefinirlas predefinidos large-object y large-text, el usuario debe redefinirlas para objetos de tipo docpara objetos de tipo doc

Page 23: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data Blades Tipo de datos textoTipo de datos textoEjemplos:Ejemplos:

CREATE TABLE CREATE TABLE documentos_legales(documentos_legales(titulo TEXT;titulo TEXT;documento DOC);documento DOC);

INSERT INTO INSERT INTO documentos_legales (titulo, documento)documentos_legales (titulo, documento)VALUES VALUES (‘arrendamiento.contrato’, ‘format {troff}:(‘arrendamiento.contrato’, ‘format {troff}:

/user/local/docs/arrendamiento’);/user/local/docs/arrendamiento’);

CREATE INDEX CREATE INDEX indice_legalindice_legalON ON documentos_legalesdocumentos_legalesUSING USING dtree (documento texto_ops);dtree (documento texto_ops);

Page 24: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data Blades Tipo de datos textoTipo de datos texto

Cuando un documento del tipo de datos doc se inserta en Cuando un documento del tipo de datos doc se inserta en una tabla, se analiza cada una de las palabras del mismo.una tabla, se analiza cada una de las palabras del mismo.

El data blade de Texto no es sensible a las mayúsculas y El data blade de Texto no es sensible a las mayúsculas y minúsculas y las palabras se agrupan por lexemas según el minúsculas y las palabras se agrupan por lexemas según el diccionario WORDNETdiccionario WORDNET

Se guarda un fichero de palabras vacías : stopwordSe guarda un fichero de palabras vacías : stopword

El servidor universal de Informix proporciona dos El servidor universal de Informix proporciona dos conjuntos de rutinas: las rutinas contains y las funciones conjuntos de rutinas: las rutinas contains y las funciones text-string. Los datos se devuelven en orden descendentetext-string. Los datos se devuelven en orden descendente

Page 25: SGBDOR Y RELACIONALES EXTENDIDOS

El servidor universal de El servidor universal de InformixInformix

Soporte de API’s con Data BladesSoporte de API’s con Data Blades Tipo de datos textoTipo de datos texto

Ejemplo:Ejemplo:Obtener los títulos de los documentos legales que contienen los diez Obtener los títulos de los documentos legales que contienen los diez términos principales del documento titulado ‘contrato de términos principales del documento titulado ‘contrato de arrendamiento’arrendamiento’

SELECTSELECT d.titulo d.titulo

FROMFROM documentos_legales d, documentos legales l documentos_legales d, documentos legales l

WHEREWHERE contains (d.documento, AndTerms (TopTerms(l, contains (d.documento, AndTerms (TopTerms(l, documento, 10))) documento, 10))) ANDAND

l.titulo= ‘arrendamiento.contrato’ l.titulo= ‘arrendamiento.contrato’ ANDAND d.titulo <> d.titulo <> ‘arrendamiento.contrato’;‘arrendamiento.contrato’;

Page 26: SGBDOR Y RELACIONALES EXTENDIDOS

Características objeto-relacionalesCaracterísticas objeto-relacionalesde Oracle 8de Oracle 8

Page 27: SGBDOR Y RELACIONALES EXTENDIDOS

Características OR de Características OR de Oracle 8Oracle 8

Como todo SGBDOR, continúa proporcionando las Como todo SGBDOR, continúa proporcionando las capacidades de un SGBDR y además soporta capacidades de un SGBDR y además soporta conceptos de orientación a objetosconceptos de orientación a objetos

Se conserva la estructura relacional del modelo de Se conserva la estructura relacional del modelo de datos, las características del esquema y la datos, las características del esquema y la organización del almacenamientoorganización del almacenamiento

Se han añadido varios tipos de datos con sus Se han añadido varios tipos de datos con sus recursos de manipulación denominados recursos de manipulación denominados cartuchos (cartridges)cartuchos (cartridges)

Se ha facilitado la gestión de los datos multimedia Se ha facilitado la gestión de los datos multimedia con nuevos tipos de datoscon nuevos tipos de datos

Page 28: SGBDOR Y RELACIONALES EXTENDIDOS

Características OR de Características OR de Oracle 8Oracle 8

Ejemplos:Ejemplos: Representación de atributos multivaluados utilizando Representación de atributos multivaluados utilizando

VARRAYVARRAY

En el modelo relacional, los atributos multivaluados se deberían En el modelo relacional, los atributos multivaluados se deberían manejar formando una nueva tabla.manejar formando una nueva tabla.

En el modelo orientado a objetos, todos los atributos de un En el modelo orientado a objetos, todos los atributos de un objeto (incluyendo los multivaluados) están encapsulados dentro objeto (incluyendo los multivaluados) están encapsulados dentro del objeto. Oracle 8 consigue esto mediante la utilización del tipo del objeto. Oracle 8 consigue esto mediante la utilización del tipo de datos de datos VARRAY, VARRAY, que tiene las siguientes propiedades:que tiene las siguientes propiedades:

1. COUNT: número actual de elementos.1. COUNT: número actual de elementos.

2. LIMIT: número máximo de elementos que puede 2. LIMIT: número máximo de elementos que puede contener el contener el VARRAY. Debe definirlo el usuario. VARRAY. Debe definirlo el usuario.

Page 29: SGBDOR Y RELACIONALES EXTENDIDOS

Características OR de Características OR de Oracle 8Oracle 8

Ejemplos:Ejemplos: Representación de atributos multivaluados utilizando Representación de atributos multivaluados utilizando

VARRAYVARRAY

CREATE TYPE tipo_num_tfno AS OBJECT (numero_telefono CREATE TYPE tipo_num_tfno AS OBJECT (numero_telefono CHAR(10));CHAR(10));CREATE TYPE tipo_lista_tfno as CREATE TYPE tipo_lista_tfno as VARRAY (5)VARRAY (5) OF tipo_num_tfno OF tipo_num_tfnoCREATE TYPE tipo_cliente ASCREATE TYPE tipo_cliente ASOBJECT (nombre_cliente VARCHAR (20)OBJECT (nombre_cliente VARCHAR (20)

numeros_tfno tipo_lista_tfno);numeros_tfno tipo_lista_tfno);

CREATE TABLE cliente OF tipo_cliente;CREATE TABLE cliente OF tipo_cliente;

SELECT nombre_cliente, numeros_telefonoSELECT nombre_cliente, numeros_telefonoFROM clientes;FROM clientes;

Page 30: SGBDOR Y RELACIONALES EXTENDIDOS

Características OR de Características OR de Oracle 8Oracle 8

Ejemplos:Ejemplos: Utilización de tablas anidadas para representar objetos Utilización de tablas anidadas para representar objetos

complejoscomplejos

Algunos atributos de un objeto pueden ser objetos en si mismos.Algunos atributos de un objeto pueden ser objetos en si mismos.

Oracle 8 logra esto mediante tablas anidadas: las columnas pueden Oracle 8 logra esto mediante tablas anidadas: las columnas pueden declararse como tablas:declararse como tablas:

CREATE TYPECREATE TYPE tipo_numero_tfno tipo_numero_tfno ASAS

OBJECTOBJECT (numero_telefono CHAR (10), descripcion CHAR(30)); (numero_telefono CHAR (10), descripcion CHAR(30));

CREATE TYPECREATE TYPE tipo_lista_tfno tipo_lista_tfno AS TABLE OFAS TABLE OF tipo_numero_tfno; tipo_numero_tfno;

tipo_lista_tfno es ahora una tabla anidada en lugar de un VARRAY.tipo_lista_tfno es ahora una tabla anidada en lugar de un VARRAY.

Las tablas anidadas no tienen límite superior sobre el número de Las tablas anidadas no tienen límite superior sobre el número de campos, mientras que los VARRAY si tienen un límite. Pueden campos, mientras que los VARRAY si tienen un límite. Pueden recuperarse campos individuales y construir índices adicionales recuperarse campos individuales y construir índices adicionales para acelerar el acceso a los datos.para acelerar el acceso a los datos.

Page 31: SGBDOR Y RELACIONALES EXTENDIDOS

Características OR de Características OR de Oracle 8Oracle 8

EjemplosEjemplos::

Vistas de objetosVistas de objetosPueden utilizarse para construir objetos virtuales a partir de datos Pueden utilizarse para construir objetos virtuales a partir de datos relacionales, por lo que facilitan que los programadores puedan relacionales, por lo que facilitan que los programadores puedan evolucionar los esquemas existentes para soportar objetos.evolucionar los esquemas existentes para soportar objetos.Permiten que aplicaciones relacionales y orientadas a objetos Permiten que aplicaciones relacionales y orientadas a objetos coexistan en la misma base de datos.coexistan en la misma base de datos.

Gestión de objetos grandesGestión de objetos grandesOracle permite almacenar objetos grandes como vídeo, audio y Oracle permite almacenar objetos grandes como vídeo, audio y documentos de texto. Para ello se han creado nuevos tipos de datos documentos de texto. Para ello se han creado nuevos tipos de datos como:como:BLOBBLOB (objeto binario grande o binary large object) (objeto binario grande o binary large object)CLOB CLOB (objeto de caracteres grande o character large object)(objeto de caracteres grande o character large object)BFILEBFILE (fichero binario almacenado fuera de la base de datos) (fichero binario almacenado fuera de la base de datos)NCLOBNCLOB (CLOB multibyte de anchura fija) (CLOB multibyte de anchura fija)

Page 32: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3

Page 33: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3 El estándar SQL 3 y sus componentesEl estándar SQL 3 y sus componentes El estandar SQL 3 incluye los siguientes componentes:El estandar SQL 3 incluye los siguientes componentes:

SQL/Framework (Marco de trabajo)SQL/Framework (Marco de trabajo)SQL/Foundation (Fundamentos)SQL/Foundation (Fundamentos)SQL/Bindings (Ligaduras)SQL/Bindings (Ligaduras)SQL/Objects (Objetos)SQL/Objects (Objetos)Nuevas partes dirigidas a aspectos temporales y de Nuevas partes dirigidas a aspectos temporales y de transacciones de SQLtransacciones de SQLSQL/CLI (Call level interface o Interfaz de Nivel de SQL/CLI (Call level interface o Interfaz de Nivel de Llamada)Llamada)SQL/PSM (Persistent Stored Modules o Módulos de SQL/PSM (Persistent Stored Modules o Módulos de almacenamiento persistente)almacenamiento persistente)

Page 34: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3 Algunas operaciones y características Algunas operaciones y características

nuevas de SQL 3nuevas de SQL 3 Se han añadido nuevos tipos de operaciones:Se han añadido nuevos tipos de operaciones:

SIMILAR : SIMILAR : Permite utilizar expresiones regulares para Permite utilizar expresiones regulares para emparejar cadenas de caracteresemparejar cadenas de caracteresValores booleanos: Valores booleanos: UNKNOWN UNKNOWN cuando una comparación no es cuando una comparación no es ni verdadera ni falsa porque uno de los valores puede ser ni verdadera ni falsa porque uno de los valores puede ser nullnullRECURSION LINEALRECURSION LINEAL para especificar consultas concurrentes para especificar consultas concurrentesSe introduce el concepto de Se introduce el concepto de rol rol en el tema de seguridad en el tema de seguridadIncluye sintaxis para especificar y utilizar disparadores como Incluye sintaxis para especificar y utilizar disparadores como reglas activasreglas activasConcepto de Concepto de modulo clientemodulo cliente para bases de datos distribuidas para bases de datos distribuidasSe amplia con recursos de lenguajes de programación: Se amplia con recursos de lenguajes de programación: rutinas rutinas SQL y rutinas externasSQL y rutinas externas

Page 35: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3

Soporte objeto-relacional en SQL 3Soporte objeto-relacional en SQL 3

La especificación SQL/Object amplía SQL 92 para La especificación SQL/Object amplía SQL 92 para incluir capacidades de orientación a objetosincluir capacidades de orientación a objetos

Los nuevos tipos de datos incluyen los tipos de Los nuevos tipos de datos incluyen los tipos de datos:datos:

· booleano (Boolean)· booleano (Boolean)

· carácter (character)· carácter (character)

· objetos grandes binarios (LOB)· objetos grandes binarios (LOB)

· localizadores de objetos grandes· localizadores de objetos grandes

Page 36: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3 Soporte objeto-relacional en SQL 3Soporte objeto-relacional en SQL 3 Objetos en SQL 3Objetos en SQL 3

Los objetos en SQL 3 son de dos tipos:Los objetos en SQL 3 son de dos tipos:· Tipos fila o tupla (· Tipos fila o tupla (rowrow) cuyas instancias son filas de tablas) cuyas instancias son filas de tablas· TAD’s, que coinciden con cualquier tipo que se utilice como · TAD’s, que coinciden con cualquier tipo que se utilice como componente de una tuplacomponente de una tupla

CREATE ROW TYPE nombre_tipo_emp ( CREATE ROW TYPE tipo_fila_empleo(CREATE ROW TYPE nombre_tipo_emp ( CREATE ROW TYPE tipo_fila_empleo(nombre VARCHAR (35),nombre VARCHAR (35), empleado REF (tipo_fila_emp), empleado REF (tipo_fila_emp),edad INTEGER);edad INTEGER); empesa REF (tipo_fila_empr)); empesa REF (tipo_fila_empr));

CREATE ROW T`YPE tipo_fila_empr(CREATE ROW T`YPE tipo_fila_empr( CREATE TABLE Empleo OF TYPE CREATE TABLE Empleo OF TYPE tipo_fila_empleo;tipo_fila_empleo;nombre_empr VARCHAR (20)nombre_empr VARCHAR (20)localización VARCHAR (20));localización VARCHAR (20)); SELECT Empleo..Empleado..nombre SELECT Empleo..Empleado..nombre

FROM EmpleoFROM EmpleoCREATE TABLE Empleado OF TYPE tipo_fila_emp; WHERE CREATE TABLE Empleado OF TYPE tipo_fila_emp; WHERE

Empleo..Empresa..localizacion=‘Australia’Empleo..Empresa..localizacion=‘Australia’CREATE TABLE Empresa OF TYPE tipo_fila_empr;CREATE TABLE Empresa OF TYPE tipo_fila_empr;

Page 37: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3 Soporte objeto-relacional en SQL 3Soporte objeto-relacional en SQL 3 TAD’s en SQL 3TAD’s en SQL 3

· La forma general de una especificación de TAD es:· La forma general de una especificación de TAD es:

CREATE TYPE <nombre_tipo>(CREATE TYPE <nombre_tipo>(lista de atributos componenetes con sus tipos individualeslista de atributos componenetes con sus tipos individualesdeclaración de las funciones EQUAL y LESS THANdeclaración de las funciones EQUAL y LESS THANdeclaración de otras funciones (métodos));declaración de otras funciones (métodos));SQL proporciona algunas funciones predefinidas para TADSQL proporciona algunas funciones predefinidas para TAD

· Un TAD tiene varias funciones definidas por el usuario asociadas · Un TAD tiene varias funciones definidas por el usuario asociadas con él:con él:

FUNCTIONFUNCTION <nombre> (<lista_argumentos>) <nombre> (<lista_argumentos>) RETURNSRETURNS tipotipo· Los TAD’s pueden utilizarse como tipos para los atributos en SQL 3 · Los TAD’s pueden utilizarse como tipos para los atributos en SQL 3 y para los tipos de parámetros en funciones o procedimientosy para los tipos de parámetros en funciones o procedimientos · Los atributos y las funciones en TAD se dividen en tres categorías: · Los atributos y las funciones en TAD se dividen en tres categorías: public, private y protectedpublic, private y protected

Page 38: SGBDOR Y RELACIONALES EXTENDIDOS

SQL 3SQL 3

Soporte objeto-relacional en SQL 3Soporte objeto-relacional en SQL 3· · Los recursos que hacen que SQL 3 esté orientado a Los recursos que hacen que SQL 3 esté orientado a objetos siguen de cerca de los que se han ido objetos siguen de cerca de los que se han ido implementando en los SGBDOR comercialesimplementando en los SGBDOR comerciales

· · Se está proponiendo SQL/MM (multimedia) como Se está proponiendo SQL/MM (multimedia) como un estandar separado para la gestión de bases de un estandar separado para la gestión de bases de datos multimedia con múltiples partes: marco de datos multimedia con múltiples partes: marco de trabajo, texto completo, espacial, recursos de trabajo, texto completo, espacial, recursos de propósito general e imagen fijapropósito general e imagen fija