1 / 38

SGBDOR Y RELACIONALES EXTENDIDOS

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

aerona
Download Presentation

SGBDOR Y RELACIONALES EXTENDIDOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SGBDOR Y RELACIONALES EXTENDIDOS Nagore Tamayo

  2. Indice • Introducción • El servidor universal de Informix • Características objeto-relacionales de Oracle 8 • SQL 3

  3. Introducción

  4. Introducción • En el mundo comercial de hoy en dia, hay varias familias de productos de SGBD • Los SGBD predominantes: SGBDR y SGBDOO • SGBD heredados: • Basados en modelos jerárquico y de red, presentados en los 70 • A medida que la tecnología de BD’s evoluciona, son reemplazados por nuevas ofertas • Familia jerárquica: IMS de IBM • Familia de red: IMAGE (Hewlett Packard), IDMS (Computer Associates), IDS II (Honeywell) y TOTAL/SUPRA (Cincom)

  5. Introducción • ¿Por qué surgen los SGBDOR? • Necesidad de diseñar bases de datos que puedan desarrollar, manipular y mantener objetos complejos que surgen de nuevas aplicaciones • Incapacidad de los SGBD heredados y del modelo de datos relacional básico para afrontar los desafios de dichas aplicaciones

  6. El servidor universal de Informix

  7. El servidor universal Informix • Es un SGBDOR que combina las tecnologías de BD’s relacionales y orientadas a objetos de Informix e Illustra • Illustra se creó a partir del SGBD POSTGRES, se comercializó como el SGBD Montage y fue adquirido por Informix, integrado en su SGBDR y presentado como Universal Server de Informix, un SGBDOR

  8. El servidor universal Informix • Clasificación de las aplicaciones • Existen 4 formas de clasificar las aplicaciones según 2 dimensiones o ejes: la complejidad de los datos o dimensión X y la complejidad de las consultas o dimensión Y • Cuadrante 1 (X=0, Y=0): Datos simples, consultas simples • Cuadrante 2 (X=0, Y=1): Datos simples, consultas complejas • Cuadrante 3 (X=1, Y=0): Datos complejos, consultas simples • Cuadrante 4 (X=1, Y=1): Datos complejos, consultas complejas • Universal Server de Informix ha extendido su modelo relacional básico para incorporar recursos que lo convierten en objeto-relacional

  9. El servidor universal de Informix • ¿Cómo extiende el modelo relacional? • Las extensiones del modelo relacional que incorpora el Universal Server de Informix son: • Soporte para tipos de datos adicionales o extensibles • Soporte para rutinas definidas por el usuario • Soporte para extensiones de la indexación • Interfaces de Programación de Aplicaciones (API) para Data Blades

  10. El servidor universal Informix • Tipos de datos extensibles • La arquitectura del servidor universal de Informix comprende el SGBD básico más varios módulos de Data Blades • Los DataBlades son módulos de software estándar que permiten extender las capacidades de la base de datos, de esta forma el usuario puede desarrollar aplicaciones que involucren cualquier tipo de información. Los DataBlades brindan capacidades de almacenamiento y manipulación ajustada a las necesidades de una aplicación específica, y pueden ser utilizados independientemente o en conjunto.

  11. El servidor universal de Informix • Tipos de datos extensibles • Además de los tipos predefinidos incluye los siguientes constructores para declarar otros tipos: 1. Tipo opaco (opaque) • Tiene una representación interna oculta, por lo que se utiliza para encapsular un tipo y el usuario debe proporcionar funciones para realizar la conversión de un objeto entre su representación oculta en el servidor (base de datos) y su representación visible como la aprecia el cliente (programa que lo solicita). Para ello: funciones enviar/recibir Ejemplo: CREATE OPAQUE TYPE opaco (INTERNALLENGTH=variable, MAXLEN=1024, ALIGNMENT=8);

  12. El servidor universal de Informix • Tipos de datos extensibles 2. Tipo distinto (distinct) • Se usa para ampliar un tipo existente mediante herencia. • Ejemplo: CREATE DISTINCT TYPE fecha_alquiler AS DATE; 3. Tipo fila (row) • Representa un atributo compuesto, tiene uno o más campos y es análogo al tipo struct en C. También se usa para soportar herencia mediante UNDER. Ejemplo: CREATE ROW TYPE persona_t (nombre VARCHAR(60), seguridad_social NUMERIC(9), fecha_nac DATE); CREATE ROW TYPE empleado_t (slario NUMERIC(10,2), nss CHAR(9)) UNDER persona_t CREATE ROW TYPE alumno_t ( gpa NIMERIC(4,2), direccion VARCHAR(200)) UNDER persona_t

  13. El servidor universal Informix • Tipos de datos extensibles 4. Tipo colleción (collection) • Incluyen listas, conjuntos y multiconjuntos de tipos predefinidos, así como de tipos defincidos por el usuario: Listas (list): Puede contener elementos duplicados y el orden es significativo Conjunto (set): No puede contener valores duplicados y no tiene un orden específico Multiconjunto (multiset): Puede incluir duplicados y no tiene orden específico • Ejemplo: CREATE TABLE empleado (nombre VARCHAR(50), comision MULTISET(DINERO))

  14. El servidor universal Informix • Soporte de 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 implementarse en lenguajes como C o Java. Ejemplo: CREATE FUNCTION equal (arg1 opaco, arg2 opaco) RETURNING BOOLEAN; EXTERNAL NAME “/usr/lib/informix/libopaque.so (opaco_equal)”LANGUAJE C END FUNCTION; • También soporta cast. Hay 2 tipos de cast definidos por el usuario: implícitos y explicitos

  15. El servidor universal Informix • Soporte de herencia • La herencia se realiza en dos niveles: herencia de datos y herencia de funciones • Herencia de datos: CREATE ROW TYPE tipo_empleado( nombre VARCHAR(25), nss CHAR(9) salario INT); CREATE ROW TYPE tipo_ingeniero( grado VARCHAR (10) licencia VARCHAR(20)) UNDERtipo_empleado; CREATE ROW TYPE tipo_jefe_ing( fecha_comienzo_jefe VARCHAR(10) dpto_gest VARCHAR(20)) UNDERtipo_ingeniero;

  16. El servidor universal de Informix • Soporte de herencia • Herencia de funciones: CREATE FUNCTION sobrevalorado (tipo_empleado) SELECT e.nombre RETURN BOOLEAN AS FROM (ingeniero) g RETURN $1.salario>(SELECT salario WHERE sobrevalorado(g); FROM empleado WHERE nombre=‘Bill Brown’) CREATE FUNCTION sobrevalorado (tipo_jefe_ing) SELECT jg.nombre RETURN BOOLEAN AS FROM jefe_ing jg RETURN $1.salario>(SELECT salario WHERE sobrevalorado(jg); FROM empleado WHERE nombre=‘Jack Jones’)

  17. El servidor universal de Informix • Soporte de extensiones de indexación • Soporta indexación sobre rutinas definidas por el usuario tanto sobre una tabla única como sobre una jerarquía de tablas: CREATE INDEX ciudad_emp ON empleado(ciudad(direccion)); • Soporte de API’s con Data Blades • Proporciona nuevos tipos de datos y funciones para tipos específicos de aplicaciones • La idoneidad de los SGBDOR para trabajar con aplicaciones no convencionales se atribuye fundamentalmente a estos tipos de datos y a la funcionalidad a medida que provean.

  18. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipos de datos bidimensionales: Para aplicaciones bidimensionales, los tipos de datos relevantes deberían incluir lo siguiente: Un punto(point) definido por coordenadas (X,Y) Una línea (line) definida por sus puntos extremos Un polígono (polygon) definido por una lista ordenada de n puntos, que constituirían sus vértices Un camino (path) definido por una secuencia (lista ordenada) de puntos. Un círculo (circle) definido por su punto central y radio

  19. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipos de datos imagen (image): Las imágenes se almacenan en diferentes formatos estándar (TIFF, GIF, JPEG, photoCD, GROUP 4, FAX) Se debe definir un tipo de datos para cada formato y utilizar librerías de funciones adecuadas para 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: rotate (imagen, ángulo) returns imagen common (imagen1, imagen2) returns imagen crop (imagen, polígono) returns imagen union (imagen1, imagen2) returns imagen enhance (imagen) returns imagen similarity (imagen1, imagen2) returns numero

  20. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipos de datos de series temporales Simplifican la manipulación de datos de series temporales en vez de almacenarlos en múltiples tablas CREATE TABLE valores_acciones( CREATE TABLE coca-cola( nombre_empresa VARCHAR(30) fecha_registro DATE símbolo VARCHAR(5) valor FLOAT); valores TIME_SERIES OF FLOAT); SELECT VARIACION_PROMEDIO (valores, 30, ’01-06-1999’) FROM valores_aciones WHERE símbolo = ‘KO’

  21. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipo de datos texto Soporta almacenamiento, búsqueda y recuperación de objetos de texto. Define un tipo de datos único: doc cuyas instancias se almacenan como objetos grandes que pertenecen al tipo de datos predefinido large-text 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 pueda aplicar a los objetos large-text Formato de los parámetros del data blade de texto: por defecto ASCII, también admite postscript, dvipostscript, nroff, troff y text Para convertir documentos entre varios formatos: data blade de conversión de texto

  22. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipo de datos texto Para la manipulación de objetos doc se utilizan funcones como las siguientes: Import_doc (doc, text) returns doc; Assign (doc) reeturns doc; Destroy (doc) returns void; Las funciones Assign y Destroy ya existen para los objetos predefinidos large-object y large-text, el usuario debe redefinirlas para objetos de tipo doc

  23. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipo de datos texto Ejemplos: CREATE TABLE documentos_legales( titulo TEXT; documento DOC); INSERT INTO documentos_legales (titulo, documento) VALUES (‘arrendamiento.contrato’, ‘format {troff}: /user/local/docs/arrendamiento’); CREATE INDEX indice_legal ON documentos_legales USING dtree (documento texto_ops);

  24. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipo de datos texto Cuando un documento del tipo de datos doc se inserta en una tabla, se analiza cada una de las palabras del mismo. 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 diccionario WORDNET Se guarda un fichero de palabras vacías : stopword El servidor universal de Informix proporciona dos conjuntos de rutinas: las rutinas contains y las funciones text-string. Los datos se devuelven en orden descendente

  25. El servidor universal de Informix • Soporte de API’s con Data Blades • Tipo de datos texto Ejemplo: Obtener los títulos de los documentos legales que contienen los diez términos principales del documento titulado ‘contrato de arrendamiento’ SELECT d.titulo FROM documentos_legales d, documentos legales l WHERE contains (d.documento, AndTerms (TopTerms(l, documento, 10))) AND l.titulo= ‘arrendamiento.contrato’ AND d.titulo <> ‘arrendamiento.contrato’;

  26. Características objeto-relacionales de Oracle 8

  27. Características OR de Oracle 8 • Como todo SGBDOR, continúa proporcionando las capacidades de un SGBDR y además soporta conceptos de orientación a objetos • Se conserva la estructura relacional del modelo de datos, las características del esquema y la organización del almacenamiento • Se han añadido varios tipos de datos con sus recursos de manipulación denominados cartuchos (cartridges) • Se ha facilitado la gestión de los datos multimedia con nuevos tipos de datos

  28. Características OR de Oracle 8 • Ejemplos: • Representación de atributos multivaluados utilizando VARRAY En el modelo relacional, los atributos multivaluados se deberían manejar formando una nueva tabla. En el modelo orientado a objetos, todos los atributos de un objeto (incluyendo los multivaluados) están encapsulados dentro del objeto. Oracle 8 consigue esto mediante la utilización del tipo de datos VARRAY, que tiene las siguientes propiedades: 1. COUNT: número actual de elementos. 2. LIMIT: número máximo de elementos que puede contener el VARRAY. Debe definirlo el usuario.

  29. Características OR de Oracle 8 • Ejemplos: • Representación de atributos multivaluados utilizando VARRAY CREATE TYPE tipo_num_tfno AS OBJECT (numero_telefono CHAR(10)); CREATE TYPE tipo_lista_tfno as VARRAY (5) OF tipo_num_tfno CREATE TYPE tipo_cliente AS OBJECT (nombre_cliente VARCHAR (20) numeros_tfno tipo_lista_tfno); CREATE TABLE cliente OF tipo_cliente; SELECT nombre_cliente, numeros_telefono FROM clientes;

  30. Características OR de Oracle 8 • Ejemplos: • Utilización de tablas anidadas para representar objetos complejos Algunos atributos de un objeto pueden ser objetos en si mismos. Oracle 8 logra esto mediante tablas anidadas: las columnas pueden declararse como tablas: CREATE TYPE tipo_numero_tfno AS OBJECT (numero_telefono CHAR (10), descripcion CHAR(30)); CREATE TYPE tipo_lista_tfno AS TABLE OF tipo_numero_tfno; 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 campos, mientras que los VARRAY si tienen un límite. Pueden recuperarse campos individuales y construir índices adicionales para acelerar el acceso a los datos.

  31. Características OR de Oracle 8 • Ejemplos: • Vistas de objetos Pueden utilizarse para construir objetos virtuales a partir de datos relacionales, por lo que facilitan que los programadores puedan evolucionar los esquemas existentes para soportar objetos. Permiten que aplicaciones relacionales y orientadas a objetos coexistan en la misma base de datos. • Gestión de objetos grandes Oracle permite almacenar objetos grandes como vídeo, audio y documentos de texto. Para ello se han creado nuevos tipos de datos como: BLOB (objeto binario grande o binary large object) CLOB (objeto de caracteres grande o character large object) BFILE (fichero binario almacenado fuera de la base de datos) NCLOB (CLOB multibyte de anchura fija)

  32. SQL 3

  33. SQL 3 • El estándar SQL 3 y sus componentes • El estandar SQL 3 incluye los siguientes componentes: SQL/Framework (Marco de trabajo) SQL/Foundation (Fundamentos) SQL/Bindings (Ligaduras) SQL/Objects (Objetos) Nuevas partes dirigidas a aspectos temporales y de transacciones de SQL SQL/CLI (Call level interface o Interfaz de Nivel de Llamada) SQL/PSM (Persistent Stored Modules o Módulos de almacenamiento persistente)

  34. SQL 3 • Algunas operaciones y características nuevas de SQL 3 • Se han añadido nuevos tipos de operaciones: SIMILAR : Permite utilizar expresiones regulares para emparejar cadenas de caracteres Valores booleanos: UNKNOWN cuando una comparación no es ni verdadera ni falsa porque uno de los valores puede ser null RECURSION LINEAL para especificar consultas concurrentes Se introduce el concepto de rol en el tema de seguridad Incluye sintaxis para especificar y utilizar disparadores como reglas activas Concepto de modulo cliente para bases de datos distribuidas Se amplia con recursos de lenguajes de programación: rutinas SQL y rutinas externas

  35. SQL 3 • Soporte objeto-relacional en SQL 3 La especificación SQL/Object amplía SQL 92 para incluir capacidades de orientación a objetos Los nuevos tipos de datos incluyen los tipos de datos: · booleano (Boolean) · carácter (character) · objetos grandes binarios (LOB) · localizadores de objetos grandes

  36. SQL 3 • Soporte objeto-relacional en SQL 3 • Objetos en SQL 3 Los objetos en SQL 3 son de dos tipos: · Tipos fila o tupla (row) cuyas instancias son filas de tablas · TAD’s, que coinciden con cualquier tipo que se utilice como componente de una tupla CREATE ROW TYPE nombre_tipo_emp ( CREATE ROW TYPE tipo_fila_empleo( nombre VARCHAR (35), empleado REF (tipo_fila_emp), edad INTEGER); empesa REF (tipo_fila_empr)); CREATE ROW T`YPE tipo_fila_empr( CREATE TABLE Empleo OF TYPE tipo_fila_empleo; nombre_empr VARCHAR (20) localización VARCHAR (20)); SELECT Empleo..Empleado..nombre FROM Empleo CREATE TABLE Empleado OF TYPE tipo_fila_emp; WHERE Empleo..Empresa..localizacion=‘Australia’ CREATE TABLE Empresa OF TYPE tipo_fila_empr;

  37. SQL 3 • Soporte objeto-relacional en SQL 3 • TAD’s en SQL 3 · La forma general de una especificación de TAD es: CREATE TYPE <nombre_tipo>( lista de atributos componenetes con sus tipos individuales declaración de las funciones EQUAL y LESS THAN declaración de otras funciones (métodos)); SQL proporciona algunas funciones predefinidas para TAD · Un TAD tiene varias funciones definidas por el usuario asociadas con él: FUNCTION <nombre> (<lista_argumentos>) RETURNS tipo · Los TAD’s pueden utilizarse como tipos para los atributos en SQL 3 y para los tipos de parámetros en funciones o procedimientos · Los atributos y las funciones en TAD se dividen en tres categorías: public, private y protected

  38. SQL 3 • Soporte objeto-relacional en SQL 3 · Los recursos que hacen que SQL 3 esté orientado a objetos siguen de cerca de los que se han ido implementando en los SGBDOR comerciales · Se está proponiendo SQL/MM (multimedia) como un estandar separado para la gestión de bases de datos multimedia con múltiples partes: marco de trabajo, texto completo, espacial, recursos de propósito general e imagen fija

More Related