Evolución histórica escuela técnica superior de ingeniería informática (sistemas basados en archivos) ♦ Sistemas orientados a los procesos Tema 1 ♦ Los datos se almacenaban en ficheros diseñados para una determinada aplicación. ♦ Datos duplicados ♦ Se repiten los controles y operaciones. Origen y evolución de las BD Departamento de Lenguajes y Sistemas Informáticos ♦ Redundancias e inconsistencias. ♦ Dependencia de los datos respecto a los programas Dato 1 Fichero 1 Tratamiento 1 Dato 2 Fichero 2 Tratamiento 2 Dato D Fichero F Tratamiento T Bases de Datos 3 Índice ♦ Evolución histórica ♦ Características de los sistemas tradicionales ♦ Ventajas de las Bases de Datos ♦ Inconvenientes ♦ Conceptos de Bases de Datos ♦ Niveles de abstracción de una BD ♦ Tipos de usuarios de la Base de datos Evolución histórica. Primera Generación ♦ Partieron de los sistemas basados en archivos, empezando a desarrollarse para el proyecto lunar Apollo en la década de los 60’s desarrollándose GUAM (Generalized Update Access Method) ♦ A mediado de los 60 apareció IDS (Integrated Data Store) de General Electric y IMS (Integrated Management System) de IBM. ♦ En 1967 se creó la organización DBTG (Data Base Task Group) para la especificación de un estándar dando origen a CODASYL o DBTG. ♦ Problemas de programación compleja para acciones simples, mínima independencia de los datos y no existía una base teórica aceptada. 1 Evolución histórica. Evolución histórica Segunda Generación Segunda Generación ♦ Codd de IBM definió el modelo de datos relacional abriéndose el campo de las BD comerciales. Datos independientes de los tratamientos ♦ Proyecto System R de IBM que condujo a desarrollar SQL e implementación de productos como DB2, SQL/DB y Oracle. Redundancia controlada ♦ Todo ello dio paso a los SGBD relacionales. Datos interrelacionados ♦ Problemas de capacidad de modelado y falta de expresividad Estructura de datos integrada y centralizada Evolución histórica Evolución histórica. Segunda Generación Tercera Generación ♦ Sistemas orientados a los datos. ♦ Base de datos, finales 60’s: los datos se organizan y mantienen en un conjunto estructurado que no está diseñado para una aplicación concreta; satisface las necesidades de información de toda la organización. ♦ Creciente complejidad de los datos y las aplicaciones que los tratan ♦ OODBMS: bases de datos orientadas a objetos ♦ ORDBMS: bases de datos objeto-relacionales. Proceso 1 Proceso 2 BD ♦ Amplían la expresividad pero se alejan del modelo relacional original. Proceso N 2 Evolución histórica Inconvenientes de las BD’s ♦ Instalación costosa. Sistemas basados en Archivos (60’s) DBTG (finales 60’s) Modelo Relacional de Codd (70’s) Primera Generación Segunda Generación ♦ La implantación de un sistema de base de datos puede llevar consigo un coste elevado, tanto en equipo físico como lógico. ♦ Personal especializado. ♦ Los conocimientos que resultan imprescindibles para una utilización correcta, y sobre todo la administración correcta y eficaz, implican la necesidad de personal especializado. ♦ Implantación larga y difícil. Coste de conversión ♦ Falta de rentabilidad a corto plazo. Orientación a Objetos (80’s) Tercera Generación BBDD Objeto-Relacionales (90’s) Ventajas de las BD’s ♦ Ausencia real de estándares. ♦ Desfase entre teoría y práctica. ♦ Mayor impacto de fallos Concepto de BD ♦ Independencia de datos respecto a tratamientos y viceversa Colección o depósito de datos integrados con redundancia ♦ Coherencia: No existe redundancia incontrolada de datos controlada ♦ Disponibilidad: Los datos no son propiedad de los usuarios interrelaciones y restricciones existentes en el mundo real. y con una estructura que refleje las ♦ Mayor accesibilidad a los datos y capacidad de respuesta ♦ Mayor valor informativo Los datos, que han de ser compartidos por diferentes usuarios ♦ Mejor y más normalizada documentación de la información. y aplicaciones, deben mantenerse independientes de éstas, ♦ Mayor eficiencia en la recogida, validación y entrada de datos y su definición y descripción, únicas para cada tipo de datos, ♦ Reducción del espacio de almacenamiento han de estar almacenadas junto con los mismos. ♦ Mayor nivel de concurrencia Los procedimientos de actualización y recuperación comunes y ♦ Servicios de copia de seguridad y recuperación bien ♦ Integración en distintas aplicaciones integridad, seguridad y confidencialidad del conjunto de los datos. determinados, habrán de ser capaces de conservar la 3 Niveles de Abstracción de las BD Datos, relaciones, restricciones de uso (derecho a insertar, borrar..) de cada usuario Todos los datos, interrelaciones, restricciones de integridad y confidencialidad Independiente tanto del equipo como de cada usuario en particular Asignación de espacios de almacenamiento. Estrategia de almacenamiento y caminos de acceso. Forma en la que se encuentran los datos Tipos de usuarios en una BD Tipos de usuarios en una BD ♦ Administradores de Aplicaciones: Es el responsable de administrar una aplicación en particular y decidir los accesos a los objetos de la misma ♦ Usuarios de Bases de Datos: Interacciona con la BD utilizando las aplicaciones y las herramientas, pudiendo añadir, modificar, eliminar información y generar informes. ♦ Administrador de Red: Son responsables de conocer y administrar los productos Oracle para trabajar en red. Distintas formas de ver la BD (usuarios y administrador) ♦ Administrador (DBA) ♦ Encargado de la Seguridad: El encargado de dar de alta a los usuarios, controla y monitoriza el acceso de los usuarios y mantiene la seguridad del sistema. ♦ Desarrolladores de Aplicaciones: Diseña e implementa las aplicaciones que trabajan con la base de datos y entre sus responsabilidades están: SubEsquema (Vista) Esquema ♦ Diseñar y Desarrollar aplicaciones contra la base de datos ♦ Diseñar la estructura de la base de datos para las aplicaciones ♦ Estimar los requisitos de espacio necesarios para la aplicación ♦ Ajustar la aplicación durante el desarrollo (el optimizador) Aministrador 4 El SGBD como interfaz entre usuario y BD escuela técnica superior de ingeniería informática Nivel Estratégico Tema 2 Sistemas de Gestión de BD Elaboración de planes Objetivos Generales OLAP (on-line analytical processing) Nivel Táctico Control de Gestión Objetivos específicos S G B D BD Nivel Operacional Tareas administrativas Departamento de Lenguajes y Sistemas Informáticos Bases de Datos Índice ♦ El SGBD como interfaz entre el usuario y BD ♦ La arquitectura a tres niveles de ANSI-X3SPARC ♦ Funciones de un SGBD ♦ Lenguajes de las Bases de Datos ♦ Arquitecturas de SGBD multiusuarios ♦ Dos niveles ♦ Tres niveles En las organizaciones se suelen distinguir tres niveles de gestión. La desconexión entre ellos aumenta el coste global de creación y mantenimiento, produciendo redundancias e incoherencias. El SGBD debe integrar los distintos subsistemas. El SGBD es el SW que suministra medios a los usuarios, analistas, programadores o administradores para describir, recuperar y manipular los datos manteniendo la integridad, confidencialidad y seguridad Concepto de SGBD ♦ Conjunto de programas, procedimientos, lenguajes, etc. que suministra tanto a los usuarios no informáticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y manipular los datos almacenados en la BD, manteniendo su integridad, confidencialidad y seguridad. ♦ La finalidad del SGBD es, por tanto, establecer el interfaz necesario entre los diferentes tipos de usuarios y la BD. 5 Funciones de un SGBD La arquitectura a tres niveles de ANSI-X3-SPARC ♦ Definición: Permite a los usuarios especificar los elementos de datos que integran la base, su estructura y las relaciones que existen entre ellos, las reglas de integridad semántica, controles a efectuar antes de autorizar el acceso a la BD. Lenguaje de Definición de Datos (LDD). ♦ Manipulación: Permite a los usuarios buscar, añadir, suprimir o modificar los datos, siempre de acuerdo con las especificaciones y normas de seguridad especificadas. Lenguaje de Manipulación de datos (LMD). ♦ Todos los usuarios deben poder acceder a los mismos datos, pero con diferentes vistas ♦ Utilización: Esta función reúne todas las interfaces que necesitan los diferentes usuarios para utilizar la base, además de proporcionar un conjunto de procedimientos para el administrador. ♦ El DBA debe poder modificar la estructura conceptual de la BD sin afectar a los usuarios. La arquitectura a tres niveles de ANSI-X3-SPARC ♦ En 1971 el BBTG elaboró una de las primeras propuestas de terminología estándar y de arquitectura general para los sistemas de bases de datos. Se basó en la definición en dos niveles (esquemas y subesquemas) ♦ En 1975 ANSI-SPARC definió la arquitectura con tres niveles Cómo los usuarios perciben los datos (Vistas) Correspondencia/Independ encia entre niveles. Qué datos se almacenan y la relación entre ellos Cómo el SGBD y el SSOO perciben los datos ♦ Los usuarios no deben tener información de los detalles de almacenamiento físico de la bd ♦ El administrados de la BD debe poder cambiar las estructuras de almacenamiento de la bd sin afectar a las vistas de los usuarios ♦ La estructura interna de la BD no debería verse afectada por los cambios que se efectúen físicamente Niveles de abstracción ♦ Nivel interno. Describe cómo se almacenan los datos. Estarán los registros, longitud, campos, índices y las rutas de acceso a esos archivos. ♦ Nivel Conceptual. Describe los datos e interrelaciones. Corresponde a la estructura organizacional de los datos obtenida al reunir los requerimientos de todos los usuarios, sin preocuparse de su organización física ni de las vías de acceso. ♦ Nivel externo o vistas. Describe únicamente la parte de datos para un usuario o grupo de usuarios. 6 La independencia física permite… ♦ Independencia de las estructuras de almacenamiento y las estructuras del mundo real ♦ Poder modificar el esquema interno sin modificar el conceptual ♦ crea índices ♦ reagrupar ficheros ♦ tamaño de bloques ♦ desbordes, ♦ ubicación de datos ♦ SO ♦ distribución geográfica de datos La independencia Lógica permite… ♦ Capacidad de modificar el esquema conceptual sin tener que alterar las aplicaciones ni los esquemas externos (vistas). ♦ Independencia entre los distintos usuarios ♦ Cada grupo de trabajo puede reunir de modo diferente los datos para formar entidades, asociaciones.. ♦ Modificar atributos, asociaciones, entidades, propiedades de los atributos, propiedades de las entidades… Funcionamiento de un SGBD [1] El proceso lanzado por el usuario llama al SGBD indicando la porción de la base de datos que se desea tratar [2] El SGBD traduce la llamada a términos del esquema lógico de la base de datos. Accede al esquema lógico comprobando derechos de acceso y la traducción física [3] El SGBD obtiene el esquema físico [4] El SGBD traduce la llamada a los métodos de acceso del Sistema Operativo que permiten acceder a los datos requeridos [5] El Sistema Operativo accede a los datos tras traducir las órdenes dadas por el SGBD [6] Los datos pasan del disco a una memoria intermedia o buffer. En ese buffer se almacenarán los datos según se vayan recibiendo [7] Los datos pasan del buffer al área de trabajo del usuario (ATU) del proceso del usuario. [8] El SGBD devuelve indicadores en los que manifiesta si ha habido errores o advertencias a tener en cuenta. Esto se indica al área de comunicaciones del proceso de usuario. Si las indicaciones son satisfactorias, los datos de la ATU serán utilizables por el proceso de usuario. Interacción en un entorno concurrente entre el SGBD, el SO y los programas de aplicación (LMD embebido en un lenguaje anfitrión): Lenguajes de las Bases de Datos ♦ Lenguaje de Definición de Datos (DDL). Permite describir y nombrar entidades, atributos y restricciones. ♦ Lenguajes de Manipulación de Datos (DML). Permite manipular los datos contenidos en la BD (inserción, modificaciones extracción o borrado) ♦ Procedimentales: permite al usuario especificar qué datos necesita y la forma exacta de extraerlos. Extrae un registro, lo proceso y dependiendo de los resultados extrae otro registro para procesarlo de forma similar. Suele estar integrado en un lenguaje de alto nivel para facilitar la iteración y gestión de la lógica de navegación. ♦ No procedimentales: permite al usuario indicar qué datos necesita, en lugar de cómo extraerlos (lenguajes declarativos) 7 Lenguajes de las Bases de Datos Autocontenido No Procedimental (binding) ♦ Proceso por el que se asocia la representación interna de los datos al esquema externo. Huésped Procedimental Ligadura Los lenguajes tipo huésped son procedimentales, se explotan en diferido y actúan registro a registro Diferido (por lotes) Conversacional (interactivo) Registro a registro (navegacional) Conjunto de registros (especificación) ♦ Binding lógico. La mayor independencia de datos se consigue mientras más tarde se ♦ Binding físico. haga la ligadura y más baja sea la granularidad, aunque esto aumenta la complejidad del SGBD. ♦ Momentos en que se puede hacer el binding: ♦ Precompilación. ♦ Compilación. ♦ Generación del modulo ejecutable. ♦ Comienzo de la ejecución del programa. ♦ Acceso a la BD. Granularidad ♦ Nivel en que en una BD pueden definirse los datos para un esquema externo en relación al esquema interno. ♦ Niveles de granularidad son: Arquitecturas de SGBD multiusuarios Dos niveles Existe un proceso cliente que necesita algún recurso y un servidor que proporciona el recurso. No tienen que estar en la misma máquina. Existen diferentes topologías. ♦ Tipos de registro ♦ Campos o agregados ♦ Dato elemental BD Lógica de transacciones Gestión de datos Interfaz de usuario Lógica de negocio 8 Arquitecturas de SGBD multiusuarios Tres niveles Interfaz de usuario Lógica de negocio y procesamiento de datos (servidor de aplicaciones) SGBD que almacena los datos requeridos Por el nivel intermedio (servidor de bd) • Validación de datos • Acceso a base de datos 9