1. Tecnología de
Bases de Datos
Apreciación Global
Una apreciación global de los problemas, técnicas
y terminología usados en tecnología de bases de
datos
1
2. ¿Qué es un sistema de Base de Datos?
V Una colección muy grande, integrada de datos.
V Modelos ( = representa) una empresa del
mundo real.
W Entidades (como ser, estudiantes, cursos), y sus
W Relaciones (como ser, Nastasja toma CS564)
V Un Sistema de manejo de Base de Datos (DBMS) es un
paquete computacional diseñado para almacenar y
administrar sistemas de bases de datos.
2
3. ¿Porqué usar un DBMS?
V Independencia de datos y acceso eficiente.
V Tiempo reducido para el desarrollo de aplicaciones.
V Integridad de datos y Seguridad.
V Administración uniforme de datos.
V Acceso concurrente, recuperación de caídas del
sistema.
1
4. ¿Porqué estudiar Bases de Datos?
V Cambio de computación a información
W en el ‘extremo inferior’: esfuerzo para organizar
datos como para un sitio de internet (actualmente un
desorden!)
W en el ‘extremo superior’: aplicaciones científicas
V Los juegos de datos aumentan en diversidad y en
volumen.
W Bibliotecas digitales, video interactivo, proyecto de
Genoma Humano, proyecto EOS
W ... la necesidad de DBMS está explotando
V DBMS comprende la mayor parte de Ciencias de
Informática
W OS, idiomas, teoría, “A”I, multimedia, lógica
1
5. Modelos de Datos
V Un modelo es una colección de conceptos para
describir datos.
V Un esquema de base de datos es una descripción de una
colección particular de datos, usando el modelo de
datos dado.
V El modelo relacional de datos es el modelo de uso mas
difundido hoy en día.
W Concepto principal: relación, básicamente una
tabla con filas y columnas.
W Toda relación tiene un esquema, que describe las
columnas, o campos.
5
6. Modelos de Datos
V Un modelo de datos es un lenguaje formal que nos
permite definir el tipo de información y de
procesamiento de la información que ocurre en una
aplicación de base de datos. Soporta:
W Definición de estructuras de datos para
almacenamiento.
W Definición de reglas que los datos almacenados
deben obedecer.
W Definición de operaciones en los datos, de tal
manera que los cambios en el mundo real se
puedan contabilizar.
Julio de 2009
6
7. Diseño de Base de Datos
V El diseño de Bases de Datos tradicionalmente se
concentra en el primero de los puntos anteriormente
mencionados: el diseño de estructuras de
almacenamiento. Razón: reglas y operaciones se
definen en términos de la estructura elegida.
V ¡El diseño de reglas y operaciones es importante
también! Y afectará la elección de estructura de datos
también.
1
8. Diseño de Bases de Datos
V Es un proceso difícil, con tendencia a errores: los
errores cometidos temprano en el diseño se pagan en
etapas posteriores.
V Fases a acomodar separación de preocupaciones:
8
9. Niveles de Abstracción
V Varias vistas, el único esquema
conceptual (lógico) y esquema Vista 1 Vista 2 Vista 3
físico.
W Las vistas describen cómo
Esquema Conceptual
el usuario ve a los datos.
Esquema Físico
W El esquema conceptual
define la estructura
integrada, lógica Base de
W El esquema físico describe datos
los archivos e índices
usados.
Los esquemas se definen usando DDL; los datos se modifican/inspeccionan
usando DML.
9
10. El modelo de datos relacional
V Informalmente:
W relación: una tabla con filas y columnas; definida por un
esquema de relación.
W Cada columna tiene un encabezado, denominado
atributo
W una fila se denomina tupla; representa un hecho en el
mundo real que se desea registrar
W Como el mundo real cambia en el tiempo, se desea
agregar hechos (insertar tuplas), retirar hechos
(eliminar tuplas), o cambiar hechos (actualizar tuplas).
¡Varios ejemplos mas tarde!
1
11. Ejemplo de Base de Datos del Curso
V Esquema externo (Vista del Rector):
W Info_Curso ( cid:string, matriculación:integer )
V Esquema conceptual:
W Estudiante ( eid:string, nombre:string, login:string,
edad:integer, pgn:real )
W Curso ( cid: string, cnombre:string, créditos:integer )
W Matriculado ( eid:string, cid:string, nota:string )
V Esquema físico:
W Relaciones almacenadas como archivos sin orden
W Indice en la primera columna de Estudiante
11
12. Independencia de Datos
V Aplicaciones aisladas de cómo se estructuran y
almacenan los datos.
V Independencia de Datos lógicos:* Protección de cambios
en la estructura lógica de datos.
V Independencia Física de Datos:* Protección de cambios
en la estructura física de los datos.
¡Uno de los beneficios mas importantes de usar un DBMS
* Dos nociones de encapsulamiento que existen desde hace tiempo 12
13. Control de Concurrencia
V La ejecución concurrente de programas de usuarios es esencial
para un buen desempeño DBMS: ¡podemos esperar varios
usuarios simultáneos!
W Debido a que los accesos al disco son frecuentes, y
relativamente lentos, es importante mantener al CPU
zumbando al trabajar con varios programas de usuarios de
forma concurrente.
V Acciones entrelazadas de diferentes programas de usuarios
pueden llevar a la inconsistencia: como por ej., un cheque del
banco es anulado mientras que el balance de cuenta está siendo
calculado.
V El DBMS garantiza que tales problemas no ocurran: los usuarios
pueden pretender que están usando un sistema de un solo
usuario. 13
14. Ejecución de Programas de Bases de
Datos
V El concepto clave es transacción, lo que significa una secuencia
atómica de acciones de bases de datos (lee/escribe).
V Cada transacción, completamente ejecutada, debe dejar la base
de datos en un estado consistente si la base de datos es
consistente cuando comienza la transacción.
W Los usuarios pueden especificar algunas restricciones de integridad
simples en los datos, y el DBMS pondrá en vigor estas
restricciones.
W Más allá de esto, el DBMS no entiende en realidad la semántica
de los datos (es decir, por ej., no entiende cómo se calcula el
interés en una cuenta bancaria).
W ¡Así, se asegura de que el hecho de que una transacción (corre
exclusivamente) preserve consistencia sea la responsabilidad
final del usuario!
14
15. Transacciones Concurrentes
V El DBMS asegura que la ejecución de un juego de
transacciones concurrentes {T1, ... , Tn} es equivalente a
alguna ejecución en serie de las transacciones T1’ , …, Tn’.
V Principio: ya que a los usuarios se les permite estar activos
en forma simultánea, sus transacciones pueden ejecutarse
en cualquier orden. El DBMS encontrará algún orden
(silenciosamente): serialización.
V El truco principal es un data lock: una prohibición temporal
de leer (o escribir) algunos datos específicos, porque alguna
otra transacción los está usando.
15
16. ¿Cómo se logra la Concurrencia?
V Antes de leer/escribir un objeto, una transacción requiere
un bloqueo en el objeto, y espera hasta que el DBMS le de el
bloqueo. Todos los bloqueos obtenidos son soltados al
finalizar la transacción. (Strict 2PL protocolo.)
V Idea: Si una acción de Ti (digamos, escribiendo X) afecta Tk
(que talvez lee X), uno de ellos, digamos Ti, obtendrá el
bloqueo en X primero Tk tiene que esperar hasta que Ti se
complete; esto ordena efectivamente las transacciones.
V Que si Tk ya tiene un bloqueo en Y y Ti luego solicita un
bloqueo en Y? (Deadlock!) Ti o Tk es abortada y
16
recomenzada!
17. Atomicidad de Transacciones
V El DBMS garantiza atomicidad (propiedad total o nada) aún si
el sistema se cae en plena transacción.
V Idea: Mantener un registro (historial) de todas las
transacciones ejecutadas por el DBMS mientras que ejecuta un
juego de transacciones:
W Antes de realizar un cambio a la base de datos, el ingreso
del registro correspondiente es forzado hacia una
ubicación segura. (protocolo WAL*; el soporte del SO para
esto es a menudo inadecuado.)
W Después de una caida, los efectos de transacciones
parcialmente ejecutadas son deshechos usando el registro.
(Gracias a WAL, si el ingreso de registro no ha sido
salvado antes de la caída, ¡los cambios correspondientes
no se han aplicado a la base de datos!)
* Write-Ahead Logging
17
18. El Registro de la Base de Datos
V Las siguientes acciones se graban en el registro:
W Ti escribe un objeto: el valor antiguo y el valor nuevo.
T La tupla del registro debe grabarse al disco antes que la
página cambiada! (atomicidad!)
W Ti compromete/aborta: una tupla de registro indicando esta
acción.
T Se asegura de que todos las tuplas de registros de la
transacción sean escritos en el registro antes de perpetrar
(durabilidad!).
V Las tuplas de registros se ordenan, se ligan entre si por medio de
un identificador de transacción, de modo que es fácil deshacer
una transacción específica (por ej. resolver un bloqueo).
18
19. El Registro de la Base de Datos
V El registro es a menudo duplicado y archivado en
almacenamiento ‘estable’.
V Todas las actividades relacionadas al registro (y de hecho,
todas las actividades relacionadas con la concurrencia tales
como bloqueo/desbloqueo, que tienen que ver con
deadlocks, etc.) tienen un manejo transparente por el
DBMS. Los usuarios finales ni se dan cuenta …
19
20. Las Bases de Datos Alegra la Vida de
Estas Personas …
V Usuarios finales y vendedores de DBMS
V Programadores de aplicaciones de bases de datos
W Como ser, webmasters inteligentes
V Administradores de bases de datos (DBA)
W Diseña esquemas lógicos/físicos
W Maneja la seguridad y autorizaciones
W Asegura la disponibilidad de datos, recuperación de
efectivo
W Ejecuta ajustes de la base de datos a medida que
evolucionan los requerimientos
¡Debe entender cómo funciona un DBMS!
20
21. Estas capas
Arquitectura DBMS deben considerar
control de
concurrencia y
V Un DBMS típico tiene una recuperación
arquitectura por capas. Optimización de consultas
V La figura no muestra los y Ejecución
componentes de control de
concurrencia y de Operadores relacionales
recuperación. Archivos y Métodos de Acceso
V Esta es una de las muchas
arquitecturas posibles, cada Manejo de buffers
sistema tiene sus propias
Manejo de Espacio de Disco
variaciones.
DB
21
22. Resumen
V El DBMS se usa para mantener y consultar grandes juegos de
datos.
V Los beneficios incluyen recuperación de caídas del sistema,
acceso concurrente, desarrollo de aplicaciones veloz,
integridad y seguridad de datos.
V Los niveles de abstracción dan independencia de datos.
V Típicamente, un DBMS tiene una arquitectura por capas.
V Los DBAs tienen trabajos de responsabilidad y son bien
pagados!
V DBMS RD es uno de las áreas,
más amplias e interesantes en CS.
22