equipo 3 - fundamentosdebasededatos… · 3 equipo 3 fundamentos de base de datos 02/01/10 es la...

18
Equipo 3 FUNDAMENTOS DE BASE DE DATOS ÁLVAREZ ZARATE OMAR ENRIQUE GONZÁLEZ ORTIZ RAFAEL WONG TORRES ERICK ALLAN Fundamentos de Base de Datos Ing. Felipe de Jesús Hernández Pérez 12/02/2010

Upload: lekhuong

Post on 21-Jul-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Equipo 3 FUNDAMENTOS DE BASE DE DATOS ÁLVAREZ ZARATE OMAR ENRIQUE GONZÁLEZ ORTIZ RAFAEL WONG TORRES ERICK ALLAN

Fundamentos de Base de Datos Ing. Felipe de Jesús Hernández Pérez

12/02/2010

2

Equipo 3 Fundamentos de Base de Datos 02/01/10

1.6 USUARIOS Y ADMINISTRADORES DE LA BASE DE DATOS USUARIOS FINALES (TERMINALES) Son usuarios que, atreves de programas de aplicación interaccionan con la base de datos. No son especializados. USUARIOS TÉCNICOS Desarrollan los programas de aplicación que son utilizados por los usuarios terminales de la base de datos. Son profesionales informáticos, que hacen uso de lenguajes de programación para preparar procedimientos que son invocados desde una interfaz orientada al usuario para hacer las operaciones necesarias según sea el problema. USUARIOS ESPECIALIZADOS Estos utilizan el SGBD como una herramienta en el desarrollo de otros sistemas más o menos complejos. USUARIOS CRÍTICOS Estos pueden tener desde mucho, hasta ningún conocimiento técnico de la tecnología de la base de datos. Son usuarios gerenciales o pertenecientes al staff de las empresas en las cuales se ha instalado la base de datos, los cuales, en base a expectativas de gestión, administración, realizan consultas previstas sobre la información almacenada en la base de datos. ADMINISTRADORES DE LA BASE DE DATOS Es un componente muy importante para la resolución de un problema de bases de datos. DA: Administradores de datos Es la persona que toma las decisiones de estrategia y política con respecto a los datos de la empresa.

El administrador de datos es quien entiende los datos y las necesidades de la empresa con respecto a dichos datos. Su trabajo es decidir qué datos deben almacenarse en la base de datos y establecer políticas para mantener y gestionar los datos una vez haya sido almacenado. Un ejemplo de tal política sería una que estableciera quién puede realizar qué operaciones sobre qué datos y en qué circunstancias.

DBA: Administrador de la base de datos.

3

Equipo 3 Fundamentos de Base de Datos 02/01/10

Es la persona que proporciona el apoyo técnico necesario para implementar dichas decisiones. Es el responsable del control general del sistema al nivel técnico.

FUNCIONES DE UN DBA DEFINE EL SISTEMA CONCEPTUAL ( DISEÑO LÓGICO): El DA, decide exactamente qué información contendrá la base de datos, una vez que decide cual será el contenido de la base de datos a un nivel abstracto, el DBA creara el esquema conceptual utilizando el DDL (lenguaje de definición de datos) conceptual. DEFINE EL ESQUEMA INTERNO (DISEÑO FÍSICO): Aquí el DBA también debe decidir la forma en que van a ser representados los datos en la base de datos. Una vez hecho el diseño físico, el DBA debe crear la definición de la estructura de almacenamiento (esquema interno) utilizando el DDL interno. ESTABLECE UN ENLACE CON LOS USUARIOS

El DBA debe enlazarse con los usuarios para asegurarse que los datos necesarios estén disponibles y para escribir los esquemas internos necesarios con un DDL externo aplicable.

Esta función de enlace con los usuarios incluye:

� Asesorías sobre el diseño de aplicaciones.

� Capacitación técnica.

� Ayuda en la determinación y resolución de problemas.

DEFINE LAS RESTRICCIONES DE SEGURIDAD

Se conceden privilegios a los usuarios, para el acceso a la información almacenada en la base de datos. Esto se realiza en el esquema conceptual y solo se pueden realizar operaciones como:

4

Equipo 3 Fundamentos de Base de Datos 02/01/10

� Consultar.

� Insertar.

� Borrar.

� Modificar.

DEFINE LAS POLÍTICAS DE VACIADO Y RECARGA

El DBA debe definir e implementar un esquema apropiado de control de daños.

� La descarga o vaciado periódico de la base de datos en un dispositivo de almacenamiento de respaldo.

� La recarga de la base de datos cuando sea necesario, a partir del vaciado mas reciente.

SUPERVISA EL RENDIMIENTO Y RESPONDE A LOS REQUERIMI ENTOS CAMBIANTES

El DBA es el responsable de organizar el sistema de tal manera que se obtenga el rendimiento ideal, y para hacer ajustes apropiados, es decir afinar conforme a las necesidades.

5

Equipo 3 Fundamentos de Base de Datos 02/01/10

1.7 COMPONENTES DE LOS SISTEMAS DE BASES DE DATOS

Un sistema de base de datos se divide en módulos que se encargan de cada una de las tareas

del sistema general. Algunas de la funciones del sistema de base de datos pueden ser

realizadas por el sistema operativo. En la mayor parte de los casos, el sistema operativo

proporciona únicamente los servicios más elementales y la base de datos debe partir de ese

fundamento. Así, el diseño de la base de datos debe incluir una consideración de la interfaz

entre el sistema de base de datos y el sistema operativo.

Un sistema de base de datos consiste en varios componentes funcionales, entre los que se

cuentan:

1.- El manejador de archivos, encargado de asignar espacio en el disco y de las estructuras de

datos que se van a emplear para representar la información almacenada en el disco.

2.- El manejador de base de datos, que constituye la interfaz entre los datos de bajo nivel

almacenados en la base de datos y los programas de aplicaciones y las consultas que se hacen

al sistema.

3.- El procesador de consultas, que traduce las proporciones en lenguaje de consulta a

instrucciones de bajo nivel que puede entender el manejador de la base de datos. Además, el

procesador de consultas trata de convertir la solicitud del usuario a una forma equivalente

pero más eficiente, encontrando una estrategia adecuada para ejecutar la consulta.

4.- El precompilador de DML (Data manipulation language, Lenguaje de manipulación de

datos), que convierte las proposiciones en DML incrustadas en un programa de aplicaciones en

llamadas normales a procedimientos en el lenguaje huésped. El precompilador debe

interactuar con el procesador de consultas para generar el código apropiado.

El precompilador extrae órdenes en DML de un programa de aplicación escrito en un lenguaje

de programación anfitrión. Estas órdenes se envían al compilador de DML para convertirlas en

código objeto para el acceso a la base de datos, y el resto del programa se envía al compilador

del lenguaje anfitrión. EL código objeto de las órdenes en DML y el del resto del programa se

enlazan, formando una transacción programada cuyo código ejecutable incluye llamadas al

procesador de la base de datos durante el tiempo de ejecución.

5.- El compilador de DDL (Data Definition language, Lenguaje de definicion de datos), que

convierte las proposiciones en DDL en un conjunto de tablas que contiene metadatos. Tales

tablas se almacenan después en el diccionario de datos.

El compilador de DDL procesa las definiciones de esquemas, especificaciones en el DDL, y

almacena las descripciones de los esquemas (metadatos) en el catalogo del SGBD. El catalogo

(diccionario de datos) contiene información, los detalles de almacenamiento de cada archivo,

la información de correspondencia entre los esquemas y las restricciones. Los módulos del

SGBD que necesiten conocer esta información deberían consultar el catalogo.

6

Equipo 3 Fundamentos de Base de Datos 02/01/10

Además, se requieren varias estructuras de datos como parte de la implantación del sistema

físico, incluyendo:

*Archivos de datos, que guardan la base de datos

*Diccionario de datos, que almacenan la información relativa a la estructura de la base de

datos. Se usa constantemente, por lo que se debe tenerse mucho cuidado de desarrollar un

diseño apropiado y una implementación eficiente.

*Índices, que permiten el acceso rápido a elementos de información que contienen valores

determinados.

La figura siguiente muestra los componentes y las conexiones entre ellos.

7

Equipo 3 Fundamentos de Base de Datos 02/01/10

Usuario

Administrador de base de datos

Usuario

Casuales

Programadores de aplicaciones

Usuario

Ingenuos

Precompilador de lenguaje de manejo de datos

Llamadas al sistema

Consulta

Esquema de la base de datos

Programas de aplicaciones

Código objeto de los programas de aplicaciones

Procesador de consultas

Precompilador de lenguaje de definición de datos

Manejador de base de datos

Sistema de manejo de base datos

Manejador de archivos

Diccionario de datos

Archivos de datos

Almacena-miento de datos

8

Equipo 3 Fundamentos de Base de Datos 02/01/10

Los componentes de un sistema de base de datos serán: - Datos. - Programas. - Personas. - Procesos.

Dato : Los datos o el conjunto de datos es lo que se conoce como la Base de Datos.

La palabra datos cubre la colección de hechos guardada en el banco de datos. Procesador de consultas: Es otro modulo encargado de traducir consultas a lenguaje de bajo nivel entendible por el sistema de base de datos. Se diferencia del precompilador DLL porque este nos servirá para programas de aplicación y este procesador de consultas lo que hace es traducir DML a bajo nivel. Manejador de la base de datos: Es la parte intermediaria entre los programas de aplicación y consulta con los datos de bajo nivel almacenados en la base de datos. Esto lo hace consultando el diccionario de datos para ver la estructura de la base de datos y una vez localizado el “dato” pide al sistema operativo que le ceda el dato del medio físico donde se habla. Dentro de aquí tendremos:

• Datos (Ficheros de datos) • Índices. • Diccionarios de datos. • Ficheros con estadísticas de uso de la base de datos.

Programas : Los Programas son lo que conoceremos como DBMS (Data Base Management System) o SGBD (Sistema Gestor de Base de Datos). Dentro de este manejo nos van a permitir hacer dos funciones principalmente:

1.- Definición de las estructuras para almacenar los datos. 2.- Manejo de los datos. Además de estas dos cosas el DBMS se ocupara de muchas más cosas como control de acceso, control de inconsistencias, etc.

• EL HARDWARE

9

Equipo 3 Fundamentos de Base de Datos 02/01/10

Se refiere a todos los sistemas de dispositivos físicos (computadora) dispositivos de almacenamiento (copiadora).

• EL SOFTWARE

Se divide en tres partes:

1. Software de sistema operativo: es el que maneja todos los componentes del hardware. Ejemplo: Microsoft windows, Linux, Mac os, Unix, MUS. 2. Software de DBMS: es el que maneja el banco de datos dentro del sistema del banco de datos. Ejemplo: Microsoft SQL servidor. 3. Programas de aplicación y software de utilidad: se usan para accede y manipular datos en el DBMS y maneja el ambiente de la computadora en el que acceso. • LAS PERSONAS Este componente incluye a todos los tipos de usuarios del sistema de base de datos así como los administradores.

10

Equipo 3 Fundamentos de Base de Datos 02/01/10

1.8 ARQUITECTURA DE LOS SISTEMAS DE BASE DE DATOS

La Arquitectura de un sistema de base de datos esta influenciada en gran medida por

el sistema informatico subyacente en el que se ejecuta, en particular por aspectos de

la arquitectura de la computadora como la conexion de red, el paralelismo y la

distribucion:

• La conexion de red de varias compiutadoras permiten que algunas tareas se

ejecuten en un sistema servidor y que otras se ejecuten en los sistemas

clientes. Esta division de trabajo ha conducido al desarrollo de sistemas de

base de datos cliente-servidor.

• El procesamiento paralelo dentro de una computadora permite acelerar las

actividades del sistema de base de datos, proporcionando a las transacciones

unas respuestas mas rapidas asi como la capacidad de ejecutar mas

transacciones por segundo. Las consultas pueden procesarce de manera que

se explote el paralelismo ofrecido por el sistema informatico subyacente. La

necesidad del procesamiento paralelo de consultas han conducido al

desarrollo de los sistemas de bases de datos paralelos.

• Las distribuciones de datos atraves de las distintas sedes o departamentos de

una organizacion permite que estos datos residan donde han sido generados o

donde son mas necesario, pero continuar siendo accesibles desde otros

lugares o departamentos diferentes. El hecho de guardar varias copias de la

base de datos en diferentes sitios permiten que puedan continuar las

operacines sobre la base de datos aunque algun sitio se vea afectado por

algun desastre natural como una inundacion, un incendio o un terremoto. Se

ha desarrollado los sistemas distribuidos de base de datos para manejar datos

distribuidos geografica o administrativamente a lo largo de multiples sistemas

de base de datos.

Sistemas centralizados

Se distinguen dos formas de utilizar las computadoras: como sistemas monousuarios o

multiusurios. En la primera categoria estan las computadoras personales y las

estaciones de trabajo. Un sistema monousuario tipico es unidad de sobremesa

utilizada por una unica persona que dispone de una sola UCP, de uno o dos discos fijos

y que trabaja con un sistema operativo que solo permite un unico usuario . Por el

contrario, un sistema multiusurio tipico tiene mas discos y mas memoria, puede

disponer de varias UCP y trabajan con un sistema operativo multiusuario. Se encargade

dar servicio a un gran numero de ususrios que estan conectados a un sistema atraves

de terminales.

11

Equipo 3 Fundamentos de Base de Datos 02/01/10

Normalmente, los sistemas de bases de datos diseñados para funcionar sobre sistemas

monousuarios no suelen proporcionar muchas de las facilidades que ofrecen los

funciones multiusuarios. En particular no tienen control de concurrencia, que no es

necesario cuando solamente un usuario puede generar modificaciones. Las facilidades

de recuperacion de estos sistemas o no existen o son primitivas; por ejemplo, realizar

una copia de seguridad de las bases de datos antes de cualquier modificacion. La

mayoria de estos sistemas no admiten SQL y proporcionan un leguaje de consulta muy

simple que, en algunos casos, es una variante de QBE.

Aunque hoy en dia las computadoras de proposito general tienen varios procesadores,

utilizan paralelismo de grano grueso disponiendo unos pocos procesadores (disponen

de unos pocos procesadores (normalmente dos o cuatro) que comparten la misma

memoria principal. Las bases de datos que se ejecutan en tales maquinas

habitualmente no intentan dividir una consulta simple entre los distintos

procesadores, sino que ejecutan cada consulta en un unico procesador posibilitado la

concurrencia de varias consultas. Asi, estos sistemas soportan una mayor

productividad, es decir, permiten ejecutar un mayor numero de transacciones por

segundo, a pesar de que cada transaccion individualmente no se ejecute mas rapido.

Las bases de datos diseñadas para las maquinas monoprocesador ya disponen de

multitarea permirtiendo que varios procesos se ejecuten a la vez en el mismo

procesador, usando tiempo compartido, mientras que de cara al ususario parece que

los procesos se estan ejecutando en paralelo. De esta manera, desde un punto de vista

logico, las maquinas paralelas de grano grueso parecen ser identicas a las maquinas

monoprocesador, y pueden adaptarse facilmente a los sistemas de bases de datos

diseñados para maquinas de tiempo compartido para que puedan ejecutarse sobre

maquinas paralelas de grano grueso.

Por el contrario, las maquinas paralelas de grano fino tienen un gran numero de

procesadores y los sistemas de bases de datos que se ejecutan sobre ellas mientras

hacer paralelas las tareas simples (consultas, por ejemplo) que solicitan los usuarions.

12

Equipo 3 Fundamentos de Base de Datos 02/01/10

Sistemas Cliente Servidor

Como las computadoras personales son ahora mas rapidas, mas potentes y mas

baratas, los sistemas se han ido distanciando de la arquitectura centralizada. Los

termiales conectados a un sistema central han sido suplantados por computadoras

personales. De igual forma, la interfaz del usuario, que solia estar gestionada

directamente por el sistema central, esta pasando a ser gestionada, cada vez mas, por

las computadoras personales. Como consecuencia, los sistemas servidores que

satisfacen las peticiones generadas por los sistemas clientes. En la siguiente figura se

representa la estructura de un sistema cliente-servidor.

13

Equipo 3 Fundamentos de Base de Datos 02/01/10

Como se muestra en la figura la funcionalidad de la base de datos se puede dividir a grandes rasgos en dos partes: la parte visible al usuario y la parte subyacente. El sistema subyacente gestiona el acceso a las estructuras, la evaluacion y la optimizacion de consultas el control de concurrencia y la recuperación. La parte visible al usuario de un sistema de base de datos está formado por herramientas como formularios, diseñadores de informes y facilidades gráficas de interfaz de usuario. La interfaz entre la parte visible al usuario y el sistema subyacente puede ser SQL o una aplicación. Las normas como ODBC y JDBC, se desarrollaron para hacer de interfaz entre clientes y servidores. Cualquier cliente que utilice interfaces ODBC o JDBC puede conectarse a cualquier servidor que proporcione esta interfaz. En las primeras generaciones de sistemas de bases de datos, la carencia de tales normas hacía que fuera necesario que la interfaz visible y el sistema subyacente fueran proporcionados por el mismo distribuidor de software. Con el aumento de las interfaces estándares, a menudo diferentes distribuidores proporcionan la interfaz visible al usuario y el servidor del sistema subyacente. Las herramientas de desarrollo de aplicaciones se utilizan para construir interfaces de usuario; proporcionan herramientas gráficas que se pueden utilizar para construir interfaces sin programar. Algunas de las herramientas de desarrollo de aplicaciones más famosas son PowerBuilder, Magic y Borland Delphi; Visual Basic también se utiliza bastante en el desarrollo de aplicaciones. Además, ciertas aplicaciones como las hojas de cálculo y los paquetes de análisis estadístico utilizan la interfaz cliente-servidor directamente para acceder a los datos del servidor subyacente. De hecho, proporcionan interfaces visibles especiales para diferentes tareas. Algunos sistemas de procesamiento de transacciones proporcionan una interfaz de llamada a procedimientos remotos para transacciones para conectar los clientes con el servidor. Estas llamadas aparecen para el programador como llamadas normales a procedimientos, pero todas las llamadas a procedimientos remotos hechas desde un cliente se engloban en una única transacción al servidor final. De este modo, si la transacción se cancela, el servidor puede deshacer los efectos de las llamadas a procedimientos remotos individuales.

14

Equipo 3 Fundamentos de Base de Datos 02/01/10

Arquitecturas de sistemas servidores

Los sistemas servidores pueden dividirse en servidores de transacciones y servidores de datos. • Los sistemas servidores de transacciones, también llamados sistemas servidores de consultas, proporcionan una interfaz a través de la cual los clientes pueden enviar peticiones para realizar una acción que el servidor ejecutará y cuyos resultados se devolverán al cliente. Normalmente, las máquinas cliente envían las transacciones a los sistemas servidores, lugar en el que estas transacciones se ejecutan, y los resultados se devuelven a los clientes que son los encargados de visualizar los datos. Las peticiones se pueden especificar utilizando SQL o mediante la interfaz de una aplicación especializada. • Los sistemas servidores de datos permiten a los clientes interaccionar con los servidores realizando peticiones de lectura o modificación de datos en unidades tales como archivos o páginas. Por ejemplo, los servidores de archivos proporcionan una interfaz de sistema de archivos a través de la cual los clientes pueden crear, modificar, leer y borrar archivos. Los servidores de datos de los sistemas de bases de datos ofrecen muchas más funcionalidades; soportan unidades de datos de menor tamaño que los archivos, como páginas, tuplas u objetos. Proporcionan facilidades de indexación de los datos, así como facilidades de transacción de modo que los datos nunca se quedan en un estado inconsistente si falla una máquina cliente o un proceso. De éstas, la arquitectura del servidor de transacciones es, con mucho, la arquitectura más ampliamente utilizada. Hoy en día, un sistema servidor de transacciones típico consiste en múltiples procesos accediendo a los datos en una memoria compartida, como en la Figura que se muestra abajo. Los procesos que forman parte del sistema de bases de datos incluyen: • Procesos servidor: son procesos que reciben consultas del usuario (transacciones), las ejecutan, y devuelven los resultados. Las consultas deben enviarse a los procesos servidor desde la interfaz de usuario, o desde un proceso de usuario que ejecuta SQL incorporado, o a través de JDBC, ODBC o protocolos similares. Algunos sistemas de bases de datos utilizan un proceso distinto para cada sesión de usuario, y algunas utilizan un único proceso de la base de datos para todas las sesiones del usuario, pero con múltiples hebras de forma que se pueden ejecutar concurrentemente múltiples consultas. (Una hebra es como un proceso, pero varias hebras se ejecutan como parte del mismo proceso, y todas las hebras dentro de un proceso se ejecutan en el mismo espacio de memoria virtual. Dentro de un proceso se pueden ejecutar concurrentemente múltiples hebras.) Algunos sistemas de bases de datos utilizan una arquitectura híbrida, con procesos múltiples, cada uno de ellos con varias hebras. • Proceso gestor de bloqueos: este proceso implementa una función de gestión de bloqueos que incluye concesión de bloqueos, liberación de bloqueos y detección de interbloqueos.

15

Equipo 3 Fundamentos de Base de Datos 02/01/10

• Proceso escritor de bases de datos: hay uno o más procesos que vuelcan al disco los bloques de memoria intermedia modificados de forma continua. • Proceso escritor del registro: este proceso genera entradas del registro en el almacenamiento estable a partir de la memoria intermedia del registro. Los procesos servidor simplifican la adición de entradas a la memoria intermedia del registro en memoria compartida y, si es necesario forzar la escritura del registro, le piden al proceso escritor del registro que vuelque las entradas del registro. • Proceso punto de revisión: este proceso realiza periódicamente puntos de revisión. • Proceso monitor de proceso: este proceso observa otros procesos y, si cualquiera de ellos falla, realiza acciones de recuperación para el proceso, tales como cancelar cualquier transacción que estuviera ejecutando el proceso fallido, y reinicia el proceso. La memoria compartida contiene todos los datos compartidos, como: • Grupo de memorias intermedias • Tabla de bloqueos • Memoria intermedia del registro, que contiene las entradas del registro que esperan a ser volcadas en el almacenamiento estable • Planes de consulta en caché, que se pueden reutilizar si se envía de nuevo la misma consulta. Todos los procesos de la base de datos pueden acceder a los datos de la memoria compartida. Ya que múltiples procesos pueden leer o realizar actualizaciones en las estructuras de datos en memoria compartida, debe haber un mecanismo que asegure que sólo uno de ellos está modificando una estructura de datos en un momento dado, y que ningún proceso está leyendo una estructura de datos mientras otros la escriben.

Tal exclusión mutua se puede implementar por medio de funciones del sistema operativo llamadas semáforos.

16

Equipo 3 Fundamentos de Base de Datos 02/01/10

Implementaciones alternativas, con menos sobrecargas, utilizan instrucciones atómicas especiales soportadas por el hardware de la computadora; un tipo de instrucción atómica comprueba una posición de la memoria y la establece a uno automáticamente. Se pueden encontrar más detalles sobre la exclusión mutua en cualquier libro de texto de un sistema operativo estándar. Los mecanismos de exclusión mutua también se utilizan para implementar pestillos. Para evitar la sobrecarga del paso de mensajes, en muchos sistemas de bases de datos los procesos servidor implementan el bloqueo actualizando directamente la tabla de bloqueos (que está en memoria compartida), en lugar de enviar mensajes de solicitud de bloqueo a un proceso administrador de bloqueos. El procedimiento de solicitud de bloqueos ejecuta las acciones que realizaría el proceso administrador de bloqueos para procesar una solicitud de bloqueo. Las acciones de la solicitud y la liberación de bloqueos son como las del Apartado 16.1.4, pero con dos diferencias significativas: • Dado que varios procesos servidor pueden acceder a la memoria compartida, se asegurará la exclusión mutua en la tabla de bloqueos. • Si no se puede obtener un bloqueo inmediatamente a causa de un conflicto de bloqueos, el código de la solicitud de bloqueo sigue observando la tablade bloqueos hasta percatarse de que se ha concedido el bloqueo. El código de liberación de bloqueo actualiza la tabla de bloqueos para indicar a qué proceso se le ha concedido el bloqueo. Para evitar repetidas comprobaciones de la tabla de bloqueos, el código de solicitud de bloqueo puede utilizar los semáforos del sistema operativo para esperar una notificación de una concesión de bloqueo. El código de liberación de bloqueo debe utilizar entonces el mecanismo de semáforos para notificar a las transacciones que están esperando que sus bloqueos hayan sido concedidos. Incluso si el sistema gestiona las solicitudes de bloqueo por medio de memoria compartida, aún utiliza el proceso administrador de bloqueos para la detección de interbloqueos.

Sistemas Distribuidos

En un sistema distribuido de bases de datos se almacena la base de datos en varias computadoras. Varios medios de comunicación, como las redes de alta velocidad o las líneas telefónicas, son los que pueden poner en contacto las distintas computadoras de un sistema distribuido. No comparten ni memoria ni discos. Las computadoras de un sistema distribuido pueden variar en tamaño y función pudiendo abarcar desde las estaciones de trabajo a los grandes sistemas. Dependiendo del contexto en el que se mencionen existen diferentes nombres para referirse a las computadoras que forman parte de un sistema distribuido, tales como sitios o nodos. Para enfatizar la distribución física de estos sistemas se usa principalmente el término sitio. En la Figura 18.9 se muestra la estructura general de un sistema distribuido. Las principales diferencias entre las bases de datos paralelas sin compartimientos y las bases de datos distribuidas son que las bases de datos distribuidas normalmente se encuentran en varios lugares geográficos distintos, se administran de forma separada y poseen una interconexión más lenta. Otra gran diferencia es que en un sistema

17

Equipo 3 Fundamentos de Base de Datos 02/01/10

distribuido se dan dos tipos de transacciones, las locales y las globales. Una transacción local es aquella que accede a los datos del único sitio en el cual se inició la transacción. Por otra parte, una transacción global es aquella que, o bien accede a los datos situados en un sitio diferente de aquel en el que se inició la transacción, o bien accede a datos de varios sitios distintos. Hay varias razones para construir sistemas distribuidos de bases de datos, incluyendo el compartimiento de los datos, la autonomía y la disponibilidad. • Datos compartidos. La principal ventaja de construir un sistema distribuido de bases de datos es poder disponer de un entorno donde los usuarios puedan acceder desde una única ubicación a los datos que residen en otras ubicaciones. Por ejemplo, en un sistema de banca distribuida, donde cada sucursal almacena datos relacionados con dicha sucursal, es posible que un usuario de una de las sucursales acceda a los datos de otra sucursal. Sin esta capacidad, un usuario que quisiera transferir fondos de una sucursal a otra tendría que recurrir a algún mecanismo externo que pudiera enlazar los sistemas existentes. • Autonomía. La principal ventaja de compartir datos por medio de distribución de datos es que cada ubicación es capaz de mantener un grado de control sobre los datos que se almacenan localmente. En un sistema centralizado, el administrador de bases de datos de la ubicación central controla la base de datos. En un sistema distribuido, existe un administrador de bases de datos global responsable de todo el sistema. Una parte de estas responsabilidades se delegan al administrador de bases de datos local de cada sitio. Dependiendo del diseño del sistema distribuido de bases de datos, cada administrador puede tener un grado diferente de autonomía local. La posibilidad de autonomía local es a menudo una de las randes ventajas de las bases de datos distribuidas. • Disponibilidad. Si un sitio de un sistema distribuido falla, los sitios restantes pueden seguir trabajando. En particular, si los elementos de datos están replicados en varios sitios, una transacción que necesite un elemento de datos en particular puede encontrarlo en varios sitios. De este modo, el fallo de un sitio no implica necesariamente la caída del sistema. El sistema puede detectar el fallo de un sitio, y pueden ser necesarias acciones apropiadas para recuperarse del fallo. El sistema no debe seguir utilizando los servicios del sitio que falló. Finalmente, cuando el sitio que falló se recupera o se repara, debe haber mecanismos disponibles para integrarlo sin problemas de nuevo en el sistema. Aunque la recuperación ante un fallo es más compleja en los sistemas distribuidos que en los sistemas centralizados, la capacidad que tienen muchos sistemas de continuar trabajando a pesar del fallo en uno de los sitios produce una mayor disponibilidad. La disponibilidad es crucial para los sistemas de bases de datos que se utilizan en aplicaciones de tiempo real. Que, por ejemplo, una línea aérea pierda el acceso a los datos puede provocar la pérdida de potenciales compradores de billetes en favor de la competencia.

18

Equipo 3 Fundamentos de Base de Datos 02/01/10