taller de bd

22
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

Upload: guest912a886

Post on 14-Jun-2015

1.371 views

Category:

Documents


0 download

DESCRIPTION

Introducccion

TRANSCRIPT

Page 1: taller de bd

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

Page 2: taller de bd

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

Page 3: taller de bd

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

Page 4: taller de bd

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

Page 5: taller de bd

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

Page 6: taller de bd

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

Page 7: taller de bd

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

Page 8: taller de bd

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

Page 9: taller de bd

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

Page 10: taller de bd

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

Page 11: taller de bd

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

Page 12: taller de bd

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

Page 13: taller de bd

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

Page 14: taller de bd

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

Page 15: taller de bd

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

Page 16: taller de bd

¿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

Page 17: taller de bd

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

Page 18: taller de bd

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

Page 19: taller de bd

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

Page 20: taller de bd

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

Page 21: taller de bd

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

Page 22: taller de bd

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