DEJA TUS COMENTARIOS

................................................AQUÍ.......................................................

mayo 30, 2007

PARCIAL BDD

Desarrollo de Conocimientos

1. Sobre la mecánica del uso de una base de datos centralizada en red.

Plantee y presente como resolver problemas del control de la concurrencia de una base de datos.

Una de las estrategias de control consiste en asociar un bloqueo con cada copia del item de datos, y en otorgar o negar los bloqueos a cada transacción que requiera un RLOCK o WLOCK desde cada sitio de la copia. Debido a que el DBMS distribuido deberá ver los bloqueos sobre los items de datos en una forma global y no sobre las copias, se ha definido una regla para convertir los bloqueos sobre las copias en bloqueos sobre los items de datos, así:

  • Una transacción tiene un RLOCK sobre un item A, cuando ella tiene otorgado un RLOCK sobre cualquiera de las copias de A.
  • Una transacción tiene un WLOCK sobre un item A, cuando ella tiene otorgado un WLOCK sobre todas las copias de A.

Las reglas para otorgar o negar bloqueos son las mismas que para bases de datos centralizadas; se puede otorgar un RLOCK si ninguna otra transacción tiene un WLOCK en la copia, y se puede otorgar un WLOCK si ninguna otra transacción tiene un RLOCK o WLOCK. El efecto de esto es que dos (2) transacciones no pueden obtener un bloqueo de escritura y de lectura sobre el mismo item en el mismo momento. Este método garantiza que si el número de nodos n=1, entonces el sistema se comporta como si fuera el único sitio existente -DB centralizada-.

Si uno o más sitios niegan un requerimiento de bloqueo, entonces el bloque sobre el item es negado. Para evitar abrazos mortales, las transacciones deben informar los desbloqueos a cada uno de los sitios que otorgaron un bloqueo, en caso contrario dos transacciones podrían estar indefinidamente esperando por la liberación de un item que la otra tiene bloqueado.

3. Enúmere y enuncie algunos de los conceptos básicos sobre bases de datos distribuidas

Sistemas de Bases de Datos Distribuidas.

La tecnología de Bases de Datos Distribuidas es la unión de dos aproximaciones para el procesamiento de datos que parecen ser diametralmente opuestas: Las tecnologías de Sistemas de Bases de Datos y las redes de computador.

Los sistemas de Bases de Datos han marcado un cambio de orientación en el procesamiento de datos, en el cual cada aplicación definía y mantenía sus propios datos, a uno en el cual el dato es definido y administrado centralizadamente, con lo cual los programas de aplicación son inmunes a cambios en la organización lógica o física de los datos, y viceversa. Una de las mayores motivaciones que ha impulsado el uso de sistemas de Bases de Datos es el deseo de integrar los datos para ofrecer un acceso centralizado y controlado a los datos.

La tecnología de redes de computador promueve un modo de trabajo que va contra todos los esfuerzos de centralización.

Podría ser difícil entender cómo estas dos aproximaciones que contrastan entre sí, puedan ser sintetizadas para producir una tecnología mucho más poderosa y promisoria que cualquiera de las dos consideradas por separado. La clave para este entendimiento es la realización del objetivo más importante de la tecnología de Bases de Datos cual es el de la integración y no el de la centralización. Es importante darse cuenta que uno de estos términos no necesariamente implica el otro. Es posible alcanzar la integración sin la centralización y esto es lo que la tecnología de BDD intenta alcanzar.

Podemos definir una Base de Datos Distribuida (BDD) como “una colección de múltiples Bases de Datos lógicamente interrelacionadas, distribuidas sobre una red de computadoras. Un Sistema de Gestión de Bases de Datos Distribuidas (SGBDD) es definido como el Sistema de Software que permite la administración de los Sistemas de Bases de Datos Distribuidas y que hace la distribución transparente a los usuarios” [Ozsu92 ].

También podemos afirmar, [ Date90] , que un SBDD se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual:

Cada sitio es una BD en sí mismo, pero
  • Los sitios han convenido en trabajar juntos (sí es necesario) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.
  • El principio fundamental de las BDD es: Desde el punto de vista del usuario, un sistema distribuido debe ser idéntico a uno no distribuido, [ Date92 ].Segun C.J. Date [ Date90 ], las doce reglas u objetivos que debe cumplir un SBDD son las siguientes:
  1. Autonomía local.
  2. No dependencia de un sitio central.
  3. Operación continua.
  4. Independencia respecto a la localización.
  5. Independencia con respecto a la fragmentación.
  6. Independencia de réplica.
  7. Procesamiento distribuido de consulta.
  8. Manejo distribuido de transacciones.
  9. Independencia con respecto al hardware.
  10. Independencia con respecto al Sistema Operativo.
  11. Independencia con respecto a la red.
  12. Independencia con respecto al SGBD.

Concluyendo, "... un apoyo completo para BDD implica que una sóla aplicación deberá ser capaz de trabajar en forma "transparente" con datos dispersos en varias BD diferentes, administradas por varios SGBD distintos, ejecutadas por varias máquinas.

4. Enuncie las reglas para el diseño de bases de datos distribuidas, proponga un diseño.

Diseño de BDD: replicación y asignación

  • La replicación mejora la disponibilidad de los datos
  • Caso extremo: tener una réplica de la BD completa en

cada sitio (ordenador):

– Ventajas: mejora el rendimiento local y global

además de la disponibilidad (con un sitio activo se

accede a toda la BD)

– Inconvenientes: actualizaciones más costosas (se

deben realizar en todas las réplicas para mantener la

coherencia). El control de concurrencia y

recuperación es también más costoso.

  • El otro extremo es no tener ninguna replicación (salvolas claves primarias en fragmentos verticales).
  • Entre ambos extremos: replicación parcial. Hay muchas posibilidades.
  • Esquema de replicación: describe qué se replica
  • Asignación: dónde se sitúan los fragmentos y réplicas

– La elección del lugar y el grado de replicación depende de los objetivos de rendimiento y disponibilidad.También del tipo de transacciones y su frecuencia.

– Encontrar una solución óptima o incluso una buenaes un problema complejo.

5. Plantee las estrategias para optimizar consultas en un sistema distribuido de bases de datos.

Procesamiento de consultas en BDD:

coste de transferir datos (2)

  • La misma consulta se solicita en Sitio 2. Dos estrategias:

– Transferir Empleado a Sitio 2 y hacer allí la reunión:

10.000*100 = 1.000.000 bytes transferidos

– Transferir Departamento a Sitio 1. Hacer allí la reunión y

enviar el resultado a Sitio 2: 10.000*40 + 100*35 =

403.500 bytes transferidos 􀃆 mejor opción

  • Operación de semirreunión ( |X ):

– Es otra estrategia que a veces mejora los resultados

– Se basa en transferir solamente las tuplas y atributos

estrictamente necesarios

  • En el caso de la consulta anterior, solicitada en Sitio 2, una estrategia con semirreunión puede ser:

– Transferir R1=πNumeroD (Departamento) a Sitio 1:

4*100=400 bytes

– R1 se reúne con Empleado en Sitio 1. Transferir a Sitio 2

R2=πNombre, Apellido, ND (R1|X| Empleado): 34*10.000 =

340.000 bytes

– R2 se reúne con Departamento en Sitio 2 para obtener el

resultado de la consulta.

– Con esta estrategia se transfieren 340.400 bytes 􀃆 mejor

opción que las anteriores

  • Ejercicio. Hacer el mismo estudio para la siguiente consulta:

SELECT Nombre, Apellido, NombreD

FROM Empleado inner join Departamento on NSS=NSS_Jefe

Descomposición de actualizaciones y consultas

  • SGBD sin transparencia de distribución: hay que

indicar el sitio y la tabla sobre la que se realiza la consulta.

  • SGBD sin transparencia de replicación: hay que mantener a mano la consistencia de los datos
  • SGBD con transparencia de distribución, replicación y fragmentación:

– La consulta o actualización se expresan como sise tratase de un SGBD centralizado.

– El SGBD se encarga de descomponer y dirigir alos fragmentos adecuados.

6. Sobre la mecánica del uso de una base de datos distribuida, enuncie las técnicas para el control de la concurrencia y la recuperación de fallos, y compararela con las de un sistema centralizado.

Control de concurrencia

Aunque hay muchos esquemas para garantizar la serializabilidad de las transacciones concurrentes un SGBD, la inmensa mayoría usan téncias basadas en bloqueos.

Un bloquo consisteen garantizar que el aceso a los datos se realice de forma mútuamente excluyente: mientras una transacción accede a un dato ninguna otra puede modificarlo. Es transparte al usuaro.

Hay dos enfoques de control de concurrencia:

  • Optimista:

se presume que los conflictos entre múltiples usuarios son improbables y se permite a las transacciones ejecutarse sin encesidad de bloquear recursos. Solo cuando la transacción termina y va a cometerse se comprueban los recursos utilizados para determinar si ha habido algún conflicto.Si ha ocurrido, la transacción empieza de nuevo y vuelve a intentarlo.

  • Pesimienta:

se bloquean los recursos cuando se desa acceder a ellos durante todo el tiempo que dure la trnsacción. A menos que ocurra un interbloqueo, esta técnia garantiza la finalización con éxito de la transacción.

Cuando una transacción intenta acceder a un recurso bloqueado se queda a la espera de que se libere.

Recuperacion

Parte integral del SGBD, esquema de recuperación responsable de la eliminación de fallos y de la restauración de la BBDD a un estado conssitente anterior al fallo.

PREVENCION: acciones tomadas durante el procesamiento normal de la transacción que aseguran que existe suficiente información apra permitir la recuperación de fallos.

RECUPERACIÓN: acciones tomadas a continuación de un fallo para asegurar la consistencia de la base de datos y la atomicidad de las transacciones.

JERARQUIA DE ALAMACENAMIENTO: La BBDD reside en disco dividida en bloques. Las transacciones meten información el disco en memoria principal y vuelven a guardarlo en disco (las transferencias se realizan en bloques). Bloques de disco: bloques físicos Bloques en memoria: buffers

Operaciones:

input(x): traer a la memoria el bloque que contiene el dato X

output(x): escribir en el disco el bloque que contiene el dato X.

Leer (x, xi): si es necesario se ejecuta input(x)

escribir(x,xi): si es necesario ejecuta input(x)

El bloque se graba en el disco ya sea porque el gestor necesite espacio o porque desea reflejar el cambio hecho a X.

Output(x) no necesita ejecutarse despuçes de escribir ya que X está en un bloque contiene más datos que se pueden estar utilizando. Si el sistema se cae entre escribir y output el nuevo valorde X se pierde.

tras abortar una transacción hay dos opciones: volver a ejecutar T o no. Ninguna de las dos opciones garantizar dejar la BBDD en un estado consistente.

Esquemas de recuperacion

A) Recuperación basada en bitácora.

Si una transacción requiere de múltiples operaciones de salida y falla entre medias, la BBDDla BBDD. Esto nos permitirá sacar todas las modificaciones que hizo la trasacción a pesar de los fallos. queda inconsistente. Para lograr la atomicidad primero hay que obtener información describiendo las modificaciones del almacenamiento estable sin modificar

La bitácora es la estructura que guarda las modificaciones a la base de datos. Cada registro describe una única escritura. Contiene los datos: nombre de la transacción, nombre del dato, valor antiguo y el valor nuevo.

Registros especiales.

Ti starts -> Transacción activa.

Ti commits -> transacción parcialmente cometida (terminada).

El registro de bitácora debe crearse antes de modificar la BBDD. Los registros de bitácora deben residir en memoria estable. Existen dos técnicas para garantizar la atomicidad usando bitácora:

  • Modificacion diferida de la base de datos.
  • Modificación inmediata de la base de datos.
TEST DE SQL

  1. Structured Query Language
  2. SELECT
  3. UPDATE
  4. DELETE
  5. INSERT INTO
  6. SELECT FirstName FROM Persons
  7. SELECT * FROM Persons
  8. SELECT * FROM Persons WHERE FirstName='Peter'
  9. SELECT * FROM Persons WHERE FirstName LIKE 'a%'
  10. True
  11. SELECT FirstName='Peter', LastName='Jackson' FROM Persons
  12. SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen'
  13. SELECT DISTINCT
  14. ORDER BY
  15. SELECT * FROM Persons ORDER BY FirstName DESC
  16. INSERT INTO Persons VALUES ('Jimmy', 'Jackson')
  17. INSERT INTO Persons (LastName) VALUES ('Olsen')
  18. UPDATE Persons SET LastName='Hansen' INTO LastName='Nilsen'
  19. DELETE FROM Persons WHERE FirstName = 'Peter'
  20. SELECT COUNT(*) FROM Persons