1. Introducción 1.1. Información y datos 1.2. Ficheros vs. Bases de datos 1.3. Sistemas gestores de bases de datos 1.4. Visión de los datos 1.5. Esquema de la BD y ejemplares de la BD 1.6. Modelos de datos 1.7. Lenguajes 1.8. Arquitectura de un SGBD 1.8.1. Componentes del sistema 1.8.2. Usuarios 1.9. Orígenes Bibliografía 1. Introducción En esta asignatura se estudia la gestión de datos mediante el uso de ficheros y bases de datos. Se estudiarán conceptos para representar información, lenguajes para manejarla y las arquitecturas para la gestión de datos. 1.1. Información y datos La información se registra mediante datos. Los datos se pueden mecanizar. Los datos se interpretan para obtener una información. La interpretación depende del hombre, no se “puede” mecanizar. [ACPT00] Es necesario un almacenamiento persistente. 1.2. Ficheros vs. Bases de datos Fichero: almacenamiento persistente de datos usado para representar información. Base de datos: colección de datos relacionados usada para representar información. También es persistente. Problemas de las organizaciones de ficheros previas a las bases de datos • Redundancia e inconsistencia de datos • Costes de mantenimiento de los programas: 1-1 - Dificultad en el acceso. Cada consulta de datos implica generalmente escribir un nuevo programa - Aislamiento de datos. Formatos diferentes y en medios diferentes - Integridad. Para implementar restricciones de integridad es necesario modificar todos los programas que accedan a los datos • Atomicidad. Cuando hay un fallo informático (corte de corriente, error de disco, ...) se puede producir una inconsistencia en una transferencia bancaria. La transferencia debe ser una operación atómica (ocurre totalmente o no ocurre). • Acceso concurrente. Dos clientes retiran fondos de la misma cuenta simultáneamente. Valor leído X, fondos retirados Y, Z. Uno escribe X-Y y el otro X-Z. Al final, no queda el valor correcto X-Y-Z. • Seguridad. Las bases de datos solucionan los problemas de los ficheros. Sin embargo, no sustituyen a los ficheros en todas las aplicaciones. Por ejemplo: ficheros temporales, datos no relacionados. Además, las bases de datos se implementan con ficheros. Costos asociados al uso de un SGBD: • Coste inicial elevado de hardware, software y formación. • Coste de la provisión de seguridad, control de concurrencia, recuperación e integridad. • Degradación del rendimiento. Los ficheros se prefieren a los SGBD cuando: • BD y aplicaciones simples, bien definidas y sin visos de cambio. • Requisitos de tiempo real que no pueden cubrir los SGBD. • No se requiere acceso concurrente. 1.3. Sistemas gestores de bases de datos Usuario 1 ... Usuario n Aplicación 1 ... Aplicación m SGBD BD 1 ... BD k Un SGBD es un sistema software capaz de manejar grandes colecciones de datos relacionados que son compartidos y persistentes. Aseguran su fiabilidad y privacidad. Una BD es la colección de datos relacionados que implementa la información y que es gestionado por un SGBD. Las aplicaciones de acceso a BD son el conjunto de programas que permite acceder a las BD (a través del SGBD) sin pasar por la interfaz de usuario del SGBD. Características de las BD y los SGBD: 1-2 • Los SGBD permiten controlar la redundancia. A veces, por cuestiones de rendimiento, se puede implementar datos redundantes (redundancia controlada por el propio SGBD) • Control de acceso (seguridad) a usuarios y grupos de usuarios a subconjuntos de la BD. • Representación de relaciones complejas entre datos. • Imposición de restricciones de integridad. Ej: Tipo de datos, definición de tipos de datos dinámicos. Estas restricciones dependen de la semántica de los datos y es responsabilidad del diseñador de la BD. • Almacenamiento persistente. Datos simples y complejos. Con la POO, aparece la necesidad del almacenamiento de objetos -> SGBD orientados a objetos. • Pueden ser muy grandes. Terabytes. • Las BD son compartidas por usuarios y aplicaciones. • Reactivas. BD activas. • Copias de seguridad y recuperaciones. A veces es necesario “en caliente”, i.e., sin parar el sistema (sistemas non-stop). • Provisión de varias interfaces de usuario: gráficas, lenguaje de consulta, biblioteca de funciones para desarrollo de aplicaciones. • Eficientes. SGBD especiales: • Permiten la inferencia. BD deductivas. • Permiten la representación del tiempo. BD temporales. • Permiten el almacenamiento de objetos. BD orientadas a objetos. • BD geográficas y espaciales • BD multimedia • BD distribuidos. WWW • Data mining. Recopilación de datos • Data warehousing. Grandes almacenes de datos Como consecuencia de estas características se obtienen las siguientes ventajas: • Normalización. Permite a los DBA definir e imponer estándares (aunque no lo obliga). • Tiempo de desarrollo de aplicaciones reducido. • Flexibilidad. Facilidad para añadir o eliminar datos necesarios. • Disponibilidad inmediata de las actualizaciones de datos para todos los usuarios. • Economía de dimensionabilidad. Grandes sistemas centralizados. 1.4. Visión de los datos Objetivo de un SGBD: Proporcionar una visión abstracta de los datos (se ocultan los detalles de cómo se almacenan y mantienen los datos). • Nivel físico: Cómo se almacenan los datos. • Nivel lógico: Qué datos y qué relaciones se almacenan. • Nivel de vistas: Subconjunto del nivel lógico. 1-3 Nivel de vistas ... Vista 1 Vista n Nivel lógico Nivel físico 1.5. Esquema de la BD y ejemplares de la BD El esquema es el diseño de la BD (estructura de los datos y sus relaciones) Ejemplar: una instancia de la BD en un momento dado. 1.6. Modelos de datos Los modelos de datos se usan para abstraer los datos Def: Colección de conceptos que se usan para describir la estructura de una BD. La estructura son los tipos de datos, las relaciones y las restricciones. Llevan asociados operaciones básicas. • Modelos lógicos basados en objetos - Entidad-relación Consta de objetos básicos (entidades) y de relaciones entre ellos Las entidades se describen por un conjunto de atributos. Se dice que un elemento de datos pertenece a una entidad (conjunto). Los elementos de datos son únicos. Restricciones: correspondencia de cardinalidades entre entidades (uno a uno, uno a muchos, muchos a muchos) dni número-cuenta nombre-cliente cliente impositor cuenta calle-cliente saldo ciudad-cliente - Orientado a objetos Consta de objetos básicos. Los objetos contienen valores y código (métodos) que se puede aplicar sobre ellos. Las clases son la definición de los tipos de valores y los métodos que se pueden aplicar sobre ellos. Los elementos de datos no están unívocamente determinados por sus valores, sino por el objeto en si mismo (se identifican a nivel físico) cliente(dni,nombre-cliente,calle-cliente,ciudad-cliente,número-cuenta) cuenta(número-cuenta,saldo) 1-4 • Modelos lógicos basados en registros - Relacional Se usa una colección de tablas para representar los datos y sus relaciones. nombre-cliente dni calle-cliente número-cuenta dni 192837465 019283746 677899011 182736091 192837465 321123123 336669999 019283746 número-cuenta C-101 C-215 C-102 C-305 C-201 C-217 C-222 - nombre-cliente González Gómez López Abril González Santos Rupérez Gómez ciudad-cliente número-cuenta saldo calle-cliente Arenal Carretas Mayor Preciados Arenal Mayor Ramblas Carretas ciudad-cliente La Granja Cerceda Peguerinos Valsaín La Granja Peguerinos León Cerceda número-cuenta C-101 C-215 C-102 C-305 C-201 C-217 C-222 C-201 saldo 100.000 140.000 80.000 70.000 180.000 150.000 140.000 Red Consta de registros (Pascal) y relaciones entre ellos (punteros). Los registros se organizan como colecciones de grafos dirigidos. González Gómez López Abril Santos Rupérez - 192837465 019283746 677899011 182736091 321123123 336669999 Arenal Carretas Mayor Preciados Mayor Ramblas La Granja Cerceda Peguerinos Valsaín Peguerinos León C-101 C-215 C-102 C-305 C-201 C-217 C-222 100.000 140.000 80.000 70.000 180.000 150.000 140.000 Jerárquico Consta de registros (Pascal) y relaciones entre ellos (punteros), al igual que el de red. Los registros se organizan como colecciones de árboles. 1-5 González Gómez López Abril Santos Rupérez 192837465 019283746 677899011 182736091 321123123 336669999 Arenal Carretas Mayor Preciados Mayor Ramblas C-101 C-201 C-215 C-201 C-102 C-305 C-217 C-222 La Granja Cerceda Peguerinos Valsaín Peguerinos León 100.000 180.000 140.000 180.000 80.000 70.000 150.000 140.000 Hay redundancia de información con respecto al de red 1.7. Lenguajes • Lenguaje de definición de datos (DDL, Data Definition Language). Para definir la estructura o esquema de la BD. Lo usa generalmente el DBA (Data Base Administrator) en la creación de una BD o en su modificación (por tanto, se usa poco). • Lenguaje de manipulación de datos (DML, Data Manipulation Language). Lo usan los usuarios finales, los programas de aplicación y cualquiera que lo necesite. - Procedimentales: Cobol, C++, Visual Basic - No procedimentales: SQL, Datalog - Lenguajes de cuarta generación: Natural, combina procedimental con no procedimental Por generaciones: Cobol (3ª), Natural (4ª), Datalog (5ª) • Lenguaje de acceso a datos (ADL, Access Data Language). Lo usan los DBA para imponer la seguridad de acceso a datos restringiendo el acceso a usuarios y grupos. 1.8. Arquitectura de un SGBD 1.8.1. Componentes del sistema • Concurrencia. Gestor de transacciones Para asegurar la propiedad de atomicidad de operaciones se usan las transacciones. Las transacciones permiten además el procesamiento concurrente. • Gestor de almacenamiento El almacenamiento persistente se lleva a cabo por el gestor de almacenamiento. Políticas de almacenamiento de datos en disco. • - Gestor de autorización e integridad - Gestor de archivos - Gestor de almacenamiento intermedio Procesamiento de consultas - Compilador del DML - Precompilador del DML para lenguajes de consulta incorporados 1-6 • - Intérprete del DDL - Motor de evaluación de consultas Estructuras de datos - Archivos de datos - Diccionario de datos - Índices - Datos estadísticos 1.8.2. Usuarios • • Administrador de la base de datos. - Definición del esquema, se almacena en el diccionario de datos. - Definición de la estructura de almacenamiento y del método de acceso. - Modificación del esquema y la organización física. - Concesión de derechos de acceso. - Especificación de las restricciones de integridad. Usuarios de la base de datos. - Programadores de aplicaciones. - Usuarios avanzados. Lenguaje de consulta. - Usuarios especializados en problemas que necesitan del apoyo de las bases de datos. - Usuarios normales. 1-7 Administrador de base de datos Interfaces de aplicaciones Programas de aplicación Consulta Esquema de base de datos Precompilador del DML incorporado Compilador del DML Intérprete del DDL Motor de evaluación de consultas Gestor de memoria intermedia Gestor de almacenamiento Gestor de transacciones Gestor de ficheros Índices Datos estadísticos Diccionario de datos Ficheros de datos Arquitectura de un sistema gestor de bases de datos 1-8 Almacenamiento en disco Código objeto de los programas de aplicación Sistema de gestión de bases de datos Usuarios avanzados Usuarios Programadores de aplicaciones Procesador de consultas Usuarios normales (administrativos, cajeros automáticos, ...) 1.9. Orígenes Década Sistemas Orientación Declarativo DML/host 1960 Red Objeto (soportan la identidad de objeto, pero no tipos abstractos de datos) No Separado Sí Separado Jerárquico 1970 Relacional Valor 1980 Orientado a objeto No Objeto (soporta la identidad de objeto y los tipos abstractos de datos) Integrado 1990 Basados en conocimiento Valor Integrado • Sí 1960, IMS (modelo jerárquico), primer SGBD comercial: - IMS/DB – Base de datos (Data Base) - IMS/DC- Monitor de teleprocesamiento (Data Communication) • 1968, Comité DBTG (Data Base Task Group), Modelo de datos de red • 1969, Modelo relacional, Codd70. - - • Prototipos: • INGRES, Universidad de Berkeley (1973-75) • SYSTEM R, IBM (1974-77) • System 2000, Universidad de Austin en Texas • Sócrates, Universidad de Grenoble en Francia • ADABAS, Universidad técnica de Darmstadt Sistemas comerciales: • INGRES de RTI, 1980 • SQL/DS de IBM, 1981 • ORACLE de RSI, 1981 • DB2 de IBM, 1983 • RDB de Digital, 1983 • ... 1990, Estándar SQL Bibliografía [ACPT00] P. Atzeni, S. Ceri, S. Paraboschi y R. Torlone, “Database Systems. Concepts, Languages and Architectures”, McGraw-Hill, 2000. [EN00] R. Elmasri y S.B. Navathe, "Fundamentals of Data Base Systems", AddisonWesley, 2000. 1-9 [SKS98] A. Silberschatz, H.F. Korth y S. Sudarshan, "Fundamentos de Bases de Datos", 3ª edición, McGraw-Hill, 1998. [Ull98] J.D. Ullman, "Principles of Database and Knowledge Base Systems", Vol. I y II, Computer Science Press, 1998. 1-10