martes, 19 de febrero de 2008

1.1 Definición de Base de datos

Tema 1. Introducción a las bases de datos


1.1 Definición de Base de datos


En primer lugar, vamos a ver las razones que llevan a la existencia de los sistemas gestores de bases de datos. La Wikipedia define una base de datos de la siguiente manera:

Una base de datos o banco de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso.
Con esta definición, almacenar la información en un sistema de ficheros es una base de datos. Y, en realidad, lo es. Incluso un archivo compuesto por fichas de cartulina de una biblioteca tradicional constituyen una base de datos. Lo que pasa es que mantener esta información sin un sistema de gestión presenta una serie de problema, precisamente los que se intentan evitar con los sistemas gestores de bases de datos:
  • El problema de la redundancia e inconsistencia de datos. La información puede estar repetida, ya sea porque se almacena en lugares diferentes o porque se ha codificado de varias formas distintas. El problema más evidente de la redundancia es que ocasiona un mayor coste de almacenamiento y de acceso, al mantener información innecesaria. Más insidioso, pero potencialmente más grave, es el problema de que la información duplicada puede conducir (Algunos sostienen que conducirá inevitablemente) a inconsistencia en los datos.

  • El problema de la Dificultad en el acceso a los datos. Como no existe un método estandar de acceso, los programas que se hayan implantado hasta el momento pueden ser la única forma de acceder a los datos.

  • El problema del aislamiento de los datos. Al estar los datos repartidos en diferentes ficheros, a menudo representados en distintos formatos, es difícil establecer relaciones entre ellos.

  • El problema de la integridad de los datos. El único mecanismo que se puede usar para limitar los posibles valores de los datos es codificar estas reglas en los programas. Si hay varios programas implicados, todos deben compartir este código en común. Si se utilizan distintos lenguajes de programación, estas restricciones deben repetirse en diferentes librerías, una para cada lenguaje. Modificar estas reglas de integridad se convierte, en este entorno, en un trabajo nada trivial.

  • El problema de la atomicidad. El problema en realidad es la falta de atomicidad. En un sistema que no soporte el concepto de transacciones (Verémos más sobre las transacciones en el tema 4), garantizar que una serie de operaciones se comporten de forma atómica -en el sentido de invivisibles, es decir, que se trate a toda la secuencia como una sola operación- es muy complicado. En el caso de que se implemente, probablemente se trate de reinventar la rueda.

  • El problema del acceso concurrente. Hay que resolver de alguna manera los posibles problemas que pueden aparecer por el acceso concurrente a la misma información por parte de varios usuarios y/o máquinas.

  • El problema de la Seguridad. La seguridad y el control de los accesos no está centralizada.

Con esta lista en mente de los problemas más importantes a los que se tienen que enfrentar, definiremos un sistema de gestión de bases de datos -o, de forma menos precisa, pero más cómoda, una base de datos, a secas- como:
Una colección de archivos interrelacionados y un conjunto de programas que permiten a los usuarios acceder y modificar esos archivos, intentando resolver los problemas descritos anteriormente.

jueves, 14 de febrero de 2008

Programa del curso 2007/2008

1. Introducción



Definición de Base de datos. Visión de los datos. Modelos de datos. Lenguajes de bases de datos. Usuarios y administradores de la base de datos. Gestión de transacciones. Estructura de un sistema de bases de datos. Arquitecturas de aplicaciones.

2. El modelo Entidad-relación




Presenta el modelo entidad-relación. Visión de alto nivel de las cuestiones referentes a diseño de bases de datos y los problemas encontrados al intentar reflejar la semántica de aplicaciones reales dentro de los confines de un modelo de datos. Conceptos básicos. Restricciones. Claves. Cuestiones de diseño. Diagrama entidad-relación. Conjuntos de entidades débiles. Características del modelo E-R extendido. Diseño de un esquema de base de datos E-R. Reducción de un esquema E-R a tablas. El lenguaje de modelado unificado UML

3. El cálculo y el álgebra relacional.



Presenta los fundamentos del modelo relacional y se centra en el propio modelo, el álgebra relacional y el cálculo relacional. Estructura de las bases de datos relacionales. El álgebra relacional. Operaciones del álgebra relacional extendida. Modificación de la base de datos. Vistas. El cálculo relacional de tuplas. El cálculo relacional de dominios.

4. SQL



Este tema se centra exclusivamente en el estudio del lenguaje de consultas SQL (Structured Query Language). Funciones de agregación. Valores nulos. Subconsultas anidadas. Relaciones derivadas. Vistas. Modificación de la base de datos. Reunión de relaciones. Lenguaje de definición de datos. SQL incorporado. SQL dinámico. Otras
características de SQL.

5. Otros lenguajes de consulta relacionales



Estudio de otros lenguajes relacionales de consulta orientados a usuarios. QED (Query by example). QUEL. (Libro de problemas). Datalog. Interfaces de usuario y herramientas

6. Restricciones a la Base de Datos: Integridad y seguridad



Las restricciones desde el punto de vista de integridad de bases de datos. Dependencias funcionales e integridad referencial, como son mecanismos para mantenimiento de integridad, tales como disparadores y afirmaciones. El objetivo es la protección de la base de datos de accidentes. Restricciones de los dominios. Integridad referencial. Asertos (asserts). Disparadores (triggers). Seguridad y autorización. Autorización en SQL. Cifrado y autenticación

7. Diseño de bases de datos relacionales



Cómo utilizar las restricciones en el diseño de una base de datos relacional. Se tratan cuestiones tales como normalización y dependencias de datos incidiendo en la motivación de cada forma normal y el significado intuitivo de cada tipo de dependencia de datos. Primera forma normal. Dificultades en el diseño de bases de datos relacionales. Dependencias funcionales. Descomposición. Propiedades deseables de la descomposición. Forma normal de Boyce-Codd. Tercera forma normal. Cuarta forma normal. Otras formas normales. Proceso general del diseño de bases de datos.

8. Bases de datos orientadas a objetos



Necesidad de tipos complejos de datos. El modelo de datos orientado a objetos. Lenguajes orientados a objetos. Lenguajes de programación persistentes, sistemas C++ persistentes, sistemas Java persistentes.

9. Almacenamiento y estructura de archivos



Visión general de los medios físicos de almacenamiento. Discos magnéticos. RAID. Almacenamiento terciario. Acceso al almacenamiento. Organización de los archivos. Organización de los registros en archivos. Almacenamiento con diccionarios de datos. Almacenamiento para las bases de datos orientadas a objetos.

10. Indexación y asociación



Conceptos básicos. Índices ordenados. Archivos de índices de árbol B+. Archivos de índices de árbol B. Asociación estática. Asociación dinámica. Comparación entre la indexación ordenada y la asociación. Definición de índices en SQL. Accesos multiclave.

11. Modelo en red



Conceptos básicos. Diagramas de estructura de datos. El modelo CODASYL DBTG

12. Modelo Jerárquico



Conceptos básicos. Diagramas de estructura de árbol. El sistema de bases de datos IMS

Bienvenida

Este blog está pensado como ayuda para las tutorias de la asignatura Bases de Datos del segundo Curso de las carreras de Ingenieria Técnica Informática. Aunque está especialmente dirigido a los alumnos del Centro Asociado de la UNED en Tenerife, es totalmente abierto y están invitados a participar cualquiera que tenga interes en estos temas.

Mi idea es utilizar este soporte para publicar apuntes, ejercicios resueltos, resolver dudas y, en general, ayudar al alumno a aprobar la asignatura con un máximo aprovechamiento.

En el próximo post pondré la guía del curso 2007/2008, cuyas tutorias empiezan hoy, 14 de febrero de 2008.