Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

12

Click here to load reader

Transcript of Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

Page 1: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

HUEJUTLA DE REYES HIDALGO.

NOMBRE DEL ALUMNO: MATRÍCULA:

REYNALDO HERNÁNDEZ MORALES 2010055

CUATRIMESTRE: GRUPO:

“OCTAVO” “B”

FECHA DE ENTREGA: 05 DE FEBRERO DEL 2013.

MATERIA:

BASE DE DATOS PARA APLICACIONES.

DOCENTE:

ING. FLORENCIO HERNANDEZ LARA.

INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN

TEMA:

Investigación de concepto de transacción, tipos de transacciones, concurrencia, recuperación, protocolo basado en técnicas de bloqueo y copias de seguridad.

Page 2: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

INTRODUCCION.

En el presente trabajo se plantean conceptos básicos acerca de transacción y sus componentes, así como también se describirán a detalle los componentes necesarios que debe tener una transacción, se discutirán los tipos de transacciones y se definirán los casos en que podemos encontrar e implementar determinado tipo de transacción. Se abordara el tema de concurrencia y su importancia en el desarrollo de un sistema de información, también se incluirán los modos de recuperación de datos para salvaguardar la integridad de los datos en una base de datos y por ultimo se contemplaran los protocolos basados en técnicas de bloqueo y copias de seguridad

Page 3: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

TRANSACCIÓN.

Una Transacción es un unidad de la ejecución de un programa que accede y, posiblemente, actualiza varios elementos de datos. Una Transacción está delimitada por instrucciones de inicio transacción y fin transacción (la transacción consiste en todas las operaciones que se ejecutan entre inicio transacción y fin transacción). Propiedades de las transacciones que debe mantener el sistema de base de datos para garantizar la integridad de los datos.

Atomicidad: O se realizan adecuadamente, en la base de datos, todas las operaciones de la transacción o no se realiza ninguna de ellas.

Consistencia: La ejecución aislada de la transacción (es decir, sin otra transacción que se ejecute concurrentemente) conserva la consistencia de la base de datos.

Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza cada transacción ignora al resto de transacciones (para cada T, el resto de T, no ha comenzado o ya ha acabado)

Durabilidad: Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, incluso si hay fallos en el sistema.

TIPOS DE TRANSACCIONES

Transacciones Implícitas.

Este tipo de transacciones, se conocen como transacciones "de Confirmación automática" y es el comportamiento predeterminado de SQL Server, donde ejecuta (o hace efectivo los cambios en los ficheros de datos) por separado cada sentencia Transact-SQL justo después de que se termine dicha sentencia.

Por ejemplo, pensemos que tenemos dos INSERT, el primero de los cuales nos da error, y el segundo se ejecuta de forma exitosa, si trabajamos con Transacciones Implícitas, veremos como el segundo cambio se mantiene porque cada INSERT se incluye automáticamente en su propia transacción.

Las Transacciones implícitas, crean una nueva transacción, cuando en una sesión de SQL Server se ejecuta algún ALTER TABLE, FETCH, REVOKE, CREATE, GRANT, SELECT, DELETE, INSERT, TRUNCATE TABLE, DROP, OPEN, y UPDATE.

Una transacción no implícita, una vez creada, permanece abierta y no finaliza hasta que no se produce un ROLLBACK o se invoca al COMMIT. La transacciones Implícitas finalizan cuando se inicia una nueva transacción en la misma sesión.

Page 4: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

Trabajar con transacciones implícitas, puede ser problemático en un entorno de producción, ya que los desarrolladores o los usuarios finales se puede olvidar de cerrar las transacciones, y esto puede ser origen de bloqueos.

Transacciones explícitas

Por el contrario, las Transacciones explícitas son las que se define en el código T-SQL. Hay que indicar cuándo se inician (BEGIN TRANSACTION) y cuando finalizan (COMMIT TRANSACTION), y pueden albergar un conjunto de instrucciones dentro de la misma transacción.

Cuando se produce el COMMIT, se hacen efectivos los cambios en los ficheros de datos (.mdf y .ndf). Mientras no se realiza el COMMIT las sentencias de los cambios se guardan en el log de transacciones (.log), que gracias a este es posible revertir los cambios si fuese necesario...

Transacciones explícitas, es el modo de trabajo recomendado. y de esta forma se puede tener el control de un conjunto de operaciones, definidas dentro de la misma transacción. Si una operación fuese errónea, es posible hacer ROLLBACK del conjunto de operaciones que están dentro de la misma transacción. Esto nos permite establecer reglas de negocio de forma fácil, y mantener coherencia en los datos según lo que queramos realizar.

BEGIN TRANSACTION - Establece el punto de partida de una transacción explícita.

ROLLBACK TRANSACTION - Revierte la transacción y pone los datos al estado en que estaban justo antes del inicio de la transacción.(Los recursos usados por la transacción son liberados.)

COMMIT TRANSACTION - Finaliza la transacción si no se han encontrado errores. (Los recursos usados por la transacción son liberados.)BEGIN DISTRIBUTED TRANSACTION - Permite definir el comienzo de una transacción distribuida (MS-DTC).

SAVE TRANSACTION - permite definir una señal dentro de la misma transacción al que se puede volver si parte de la transacción se cancela. Solo se podrían revertir los cambios hasta la señal indicada.

@@TRANCOUNT - Devuelve el número de transacciones activas de la conexión. BEGIN TRANSACTION incrementa @@TRANCOUNT en 1. ROLLBACK TRANSACTION y COMMIT TRANSACTION disminuye @@TRANCOUNT en 1. ROLLBACK TRANSACTION no modifica el valor de @@TRANCOUNT.

Page 5: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

CONCURRENCIA

La Concurrencia en las bases de datos es de suprema importancia en los sistemas de información, ya que evita errores en el momento de ejecutar las diferentes transacciones.

En si la concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

El control de concurrencia se refiere a las diversas técnicas que se utilizan para preservar la integridad de la base de datos cuando varios usuarios actualizan filas al mismo tiempo. Concurrencia incorrecta puede conducir a problemas como las lecturas sucias, lecturas fantasmas, y lecturas no repetibles existen dos tipos de control de concurrencia.

Control de concurrencia pesimista

Un sistema de bloqueos impide que los usuarios modifiquen los datos de una manera que afecta a otros usuarios. Después de que un usuario realiza una acción que provoca un bloqueo que se aplica, otros usuarios no pueden realizar acciones que puedan entrar en conflicto con el bloqueo hasta que el propietario lo libere. Esto se llama control pesimista, ya que se utiliza principalmente en entornos donde hay una alta contención de datos, donde el costo de la protección de datos con bloqueos es menor que el costo de deshacer transacciones si se producen conflictos de concurrencia. 

Control de concurrencia optimista

En el control de concurrencia optimista, los usuarios no bloquean los datos cuando lo lean. Cuando un usuario actualiza los datos, el sistema comprueba si otro usuario ha modificado los datos después de que se leyó. Si otro usuario ha actualizado los datos, se genera un error. Normalmente, el usuario recibe el error deshace la transacción y vuelve a empezar. Esto se denomina optimista porque se utiliza principalmente en entornos donde hay contención de baja de los datos, y donde el costo de vez en cuando se revierte una transacción es menor que el costo de bloqueo de los datos cuando se leen.

RECUPERACIÓN

Las operaciones de copias de seguridad y restauración de SQL Server se producen en el contexto del modelo de recuperación de la base de datos. Los modelos de recuperación se han diseñado para controlar el mantenimiento del registro de transacciones.

Page 6: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

Un modelo de recuperación es una propiedad de base de datos que controla la forma en que se registran las transacciones, si el registro de transacciones requiere que se realice la copia de seguridad y si lo permite, y qué tipos de operaciones de restauración hay disponibles.

Existen tres modelos de recuperación: simple, completa y por medio de registros de operaciones masivas. Normalmente, en las bases de datos se usa el modelo de recuperación completa o el modelo de recuperación simple. Una base de datos se puede cambiar a otro modelo de recuperación en cualquier momento.

Simple

Sin copias de seguridad de registros.Recupera automáticamente el espacio de registro para mantener al mínimo los requisitos de espacio, eliminando, en esencia, la necesidad de administrar el espacio del registro de transacciones.

Completa

Requiere copias de seguridad de registros.No se pierde trabajo si un archivo de datos se pierde o resulta dañado.Se puede recuperar hasta cualquier momento, por ejemplo, antes del error de aplicación o usuario.

Por medio de registros de operaciones masivas

Requiere copias de seguridad de registros.Complemento del modelo de recuperación completa que permite operaciones de copia masiva de alto rendimiento.Reduce el uso del espacio de registro mediante el registro mínimo de la mayoría de las operaciones masivas.

PROTOCOLO BASADO EN TÉCNICAS DE BLOQUEO Y COPIAS DE SEGURIDAD.

Protocolo de bloqueo de dos fases

Requisito: todos los bloqueos preceden a los desbloqueos. Primera fase: bloqueos. Segunda: desbloqueos. Propiedad: según este requisito no existen planificaciones no secuenciales legales.

Teorema 9.2: Si S es cualquier planificación de transacciones de dos fases, S es secuenciadle. Demostración: Supongamos que no sea secuenciales. Entonces, por el teorema 9.1, el grafo de secuencialización de G para S tiene un ciclo:

Page 7: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

Ti1 → Ti2 →L→ Tip → Ti1

Por tanto, algún bloqueo de Ti2 sigue a un desbloqueo de Ti1; algún bloqueo de Ti3 sigue a un desbloqueo de Ti2, algún bloqueo de Ti1 sigue a un desbloqueo de Tip. Por tanto, algún bloqueo de Ti1 sigue a un desbloqueo de Ti1, contradiciendo la suposición de que Ti1 es una transacción de dos fases. El protocolo de dos fases no asegura ausencia de interbloqueos: T1= LOCK B; LOCK A; UNLOCK A; UNLOCK B; T2= LOCK A; LOCK B; UNLOCK B; UNLOCK A;

Protocolos basados en grafos

A menudo es útil observar el conjunto de elementos de datos de la base de datos como una estructura de grafo. Por ejemplo:

1. Organización lógica o física de los elementos. 2. Definición de elementos de varios tamaños, donde los grandes engloban a los pequeños. Ej.: relacional: tupla ⊆ bloque ⊆ relación ⊆ base de datos. 3. Control de concurrencia efectivo. Se pueden diseñar protocolos que no sean de dos fases pero que aseguren la secuencialidad. En general, sea { , , , } D = d1 d2 K dn el conjunto de todos los elementos de datos de la base de datos dotado de un orden parcial →. Si en el grafo existe un arco di → d j, entonces la transacción que acceda tanto a di como a d j debe acceder primero a di y después a d j.

Protocolo de árbol

Caso particular de protocolo basado en grafos, grafos que sean árboles con raíz. Reglas:

1. Cada transacción Ti bloquea al menos un elemento. 2. El primer bloqueo de Ti puede ser sobre cualquier elemento.

Page 8: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

3. Sucesivos bloqueos de Ti sólo pueden ser sobre elementos cuyo padre haya bloqueado Ti. 4. Los elementos se pueden desbloquear en cualquier momento. 5. Ti no puede bloquear de nuevo un elemento que haya bloqueado y desbloqueado anteriormente. Ej:

T1: LOCK B; LOCK E; LOCK D; UNLOCK B; UNLOCK E; LOCK G; UNLOCK D; UNLOCK G; T2: LOCK D; LOCK H; UNLOCK D; UNLOCK H; T3: LOCK B; LOCK E; UNLOCK E; UNLOCK B; T4: LOCK D; LOCK H; UNLOCK D; UNLOCK H;

Bibliografía

(2012, 09). Manejo De Transacciones Y Concurrencia En Sql. BuenasTareas.com. Recuperado 02, 2013, de http://www.buenastareas.com/ensayos/Manejo-De-Transacciones-y-Concurrencia-En/5439202.html

Rúbrica para evaluar Resumen (RU-10)Profesor:ing. Florencio Hernández Lara Materia: Base de Datos Para AplicacionesAlumno:TSU. Reynaldo Hernández morales Tema: Resumen de ConceptosGrado y Grupo : 8 “B” Fecha: 05/02/2013

CATEGORÍASCOMPETENTE AUTÓNOMO

( )

COMPETENTE DESTACADO

( )

COMPETENTE( )

NO COMPETENT

E( )

Portada. Cumple con todos los Cumple con todos los Cumple con algunos No presentó

Page 9: Conceptos Basicos05!02!2013 Reynaldo Hernandez Morales

(Título, nombre del alumno, matrícula,

asignatura, titular, grado,

grupo)

datos de la portada y define a través del título la idea principal sobre el tema que desarrollará el cuerpo del documento.

datos de la portada, hay relación del título con el documento, pero no se concreta por completo el tema a tratar.

datos de la portada, el titulo esta trazado de manera general y no se concreta al tema a tratar. No hay relación alguna del título y el tema.

portada y no hay relación alguna del título y el tema o no existe.

Introducción

Establece el objetivo del documento, situación problemática o interrogante. Se justifica y plantea la idea que quiere defender.

Se justifica y plantea la idea que quiere defender.

El objetivo y la justificación no tienen relación alguna.

No existe una introducción.

Contenido

Cumple con la estructura solicitada y el contenido es acorde a cada uno de los puntos.

Cumple con la mayor parte de la estructura solicitada y el contenido es acorde a cada uno de los puntos.

Cumple con algunos elementos de la estructura solicitada y el contenido es acorde a cada uno de los puntos.

No se respetó la estructura, pobre contenido del documento.

Ortografía y redacción.

Ortografía: Sin errores.Redacción: En tercera persona, Ideas claras, lógicas y secuenciadas en todos los párrafos.

Ortografía: con errores.Redacción: En tercera persona, Ideas claras, lógicas y secuenciadas en todos los párrafos

Ortografía: con errores.Redacción: No está redactado en tercera persona, Ideas poco claras, lógicas y secuenciadas.

Existen demasiados errores de ortografía y problemas de redacción.

Bibliografía

Inclusión apropiada de datos bibliográficos. Se manejan correctamente las citas y referencias bibliográficas de acuerdo al formato APA

Inclusión de datos bibliográficos pero no escritos de acuerdo al formato APA.

Contiene citas bibliográficas que no están relacionadas con las referencias y no tienen el formato adecuado.

No existen citas ni referencias bibliográficas.