taller de bd
DESCRIPTION
IntroducccionTRANSCRIPT
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
Una colección muy grande, integrada de datos.
Modelos ( = representa) una empresa delmundo real. Entidades (como ser, estudiantes, cursos),
y sus Relaciones (como ser, Nastasja toma
CS564) Un Sistema de manejo de Base de Datos
(DBMS) es un paquete computacional diseñado para almacenar y administrar sistemas de bases de datos.
¿Qué es un sistema de Base de Datos?
2
Independencia de datos y acceso eficiente. Tiempo reducido para el desarrollo de
aplicaciones. Integridad de datos y Seguridad. Administración uniforme de datos. Acceso concurrente, recuperación de caídas
del sistema.
¿Porqué usar un DBMS?
1
Cambio de computación a información en el ‘extremo inferior’: esfuerzo para organizar
datos como para un sitio de internet (actualmente un desorden!)
en el ‘extremo superior’: aplicaciones científicas Los juegos de datos aumentan en diversidad y en volumen.
Bibliotecas digitales, video interactivo, proyecto de Genoma Humano, proyecto EOS
... la necesidad de DBMS está explotando DBMS comprende la mayor parte de Ciencias de Informática
OS, idiomas, teoría, “A”I, multimedia, lógica
¿Porqué estudiar Bases de Datos?
1
Un modelo es una colección de conceptos para describir datos.
Un esquema de base de datos es una descripción de una colección particular de datos, usando el modelo de datos dado.
El modelo relacional de datos es el modelo de uso mas difundido hoy en día. Concepto principal: relación, básicamente
una tabla con filas y columnas. Toda relación tiene un esquema, que
describe las columnas, o campos.
Modelos de Datos
5
Modelos de Datos
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: Definición de estructuras de datos para
almacenamiento. Definición de reglas que los datos
almacenados deben obedecer. Definición de operaciones en los datos, de
tal manera que los cambios en el mundo real se puedan contabilizar.
Julio de 20096
Diseño de Base de Datos
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.
¡El diseño de reglas y operaciones es importante también! Y afectará la elección de estructura de datos también.
1
Es un proceso difícil, con tendencia a errores: los errores cometidos temprano en el diseño se pagan en etapas posteriores.
Fases a acomodar separación de preocupaciones:
Diseño de Bases de Datos
8
Niveles de Abstracción
Varias vistas, el único esquema conceptual (lógico) y esquema físico.
Las vistas describen cómo el usuario ve a los datos.
El esquema conceptual define la estructura integrada, lógica
El esquema físico describe los archivos e índices usados. Los esquemas se definen usando DDL; los datos se
modifican/inspeccionan usando DML.
Vista 1 Vista 2 Vista 3
Esquema Conceptual
Esquema Físico
Base dedatos
9
El modelo de datos relacional
Informalmente: relación: una tabla con filas y columnas; definida
por un esquema de relación. Cada columna tiene un encabezado, denominado
atributo una fila se denomina tupla; representa un hecho
en el mundo real que se desea registrar 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
Ejemplo de Base de Datos del Curso
Esquema externo (Vista del Rector): Info_Curso ( cid:string, matriculación:integer )
Esquema conceptual: Estudiante ( eid:string, nombre:string, login:string,
edad:integer, pgn:real ) Curso ( cid: string, cnombre:string, créditos:integer ) Matriculado ( eid:string, cid:string, nota:string )
Esquema físico: Relaciones almacenadas como archivos sin
orden Indice en la primera columna de Estudiante
11
Independencia de Datos
Aplicaciones aisladas de cómo se estructuran y almacenan los datos.
Independencia de Datos lógicos:* Protección de cambios en la estructura lógica de datos.
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
Control de Concurrencia
La ejecución concurrente de programas de usuarios es esencial para un buen desempeño DBMS: ¡podemos esperar varios usuarios simultáneos! 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.
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.
El DBMS garantiza que tales problemas no ocurran: los usuarios pueden pretender que están usando un sistema de un solo usuario. 13
Ejecución de Programas de Bases de Datos
El concepto clave es transacción, lo que significa una secuencia atómica de acciones de bases de datos (lee/escribe).
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.
Los usuarios pueden especificar algunas restricciones de integridad simples en los datos, y el DBMS pondrá en vigor estas restricciones.
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).
¡Así, se asegura de que el hecho de que una transacción (corre exclusivamente) preserve consistencia sea la responsabilidad final del usuario!
14
Transacciones Concurrentes
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’.
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.
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
¿Cómo se logra la Concurrencia?
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.)
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.
Que si Tk ya tiene un bloqueo en Y y Ti luego solicita
un bloqueo en Y? (Deadlock!) Ti o Tk es abortada y
recomenzada!
16
Atomicidad de Transacciones El DBMS garantiza atomicidad (propiedad total o nada)
aún si el sistema se cae en plena transacción. Idea: Mantener un registro (historial) de todas las
transacciones ejecutadas por el DBMS mientras que ejecuta un juego de transacciones: 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.)
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 Logging17
El Registro de la Base de Datos
Las siguientes acciones se graban en el registro: Ti escribe un objeto: el valor antiguo y el valor
nuevo. La tupla del registro debe grabarse al disco antes
que la página cambiada! (atomicidad!) Ti compromete/aborta: una tupla de registro
indicando esta acción. Se asegura de que todos las tuplas de registros de
la transacción sean escritos en el registro antes de perpetrar (durabilidad!).
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
El Registro de la Base de Datos
El registro es a menudo duplicado y archivado en almacenamiento ‘estable’.
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
Las Bases de Datos Alegra la Vida de Estas Personas …
Usuarios finales y vendedores de DBMS Programadores de aplicaciones de bases de datos
Como ser, webmasters inteligentes Administradores de bases de datos (DBA)
Diseña esquemas lógicos/físicos Maneja la seguridad y autorizaciones Asegura la disponibilidad de datos, recuperación
de efectivo Ejecuta ajustes de la base de datos a medida
que evolucionan los requerimientos
¡Debe entender cómo funciona un DBMS!
20
Arquitectura DBMS
Un DBMS típico tiene una arquitectura por capas.
La figura no muestra los componentes de control de concurrencia y de recuperación.
Esta es una de las muchas arquitecturas posibles, cada sistema tiene sus propias variaciones.
Optimización de consultasy Ejecución
Operadores relacionales
Archivos y Métodos de Acceso
Manejo de buffers
Manejo de Espacio de Disco
DB
Estas capas deben considerarcontrol de concurrencia y recuperación
21
Resumen
El DBMS se usa para mantener y consultar grandes juegos de datos.
Los beneficios incluyen recuperación de caídas del sistema, acceso concurrente, desarrollo de aplicaciones veloz, integridad y seguridad de datos.
Los niveles de abstracción dan independencia de datos.
Típicamente, un DBMS tiene una arquitectura por capas.
Los DBAs tienen trabajos de responsabilidad y son bien pagados!
DBMS R&D es uno de las áreas, más amplias e interesantes en CS.
22