presentación de powerpoint · transacciones y control de la concurrencia los sgbds son sistemas...

23
Catedra de Base de Datos Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Ciclo Lectivo 2016

Upload: others

Post on 01-Apr-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Catedra de Base de Datos

Facultad de Ciencias Exactas y Tecnología

Universidad Nacional de Tucumán

Ciclo Lectivo 2016

Page 2: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de venta de billetes de avión.

Conceptos - Transacción: es una unidad de la ejecución de un programa. Puede consistir en varias

operaciones de acceso a la DB. Se encuentra delimitada por los constructores BEGIN y END. - Todas las operaciones deben de ser “acidas“ (ACID), es decir cumplan con:

- Atomicity (Atomicidad): que las transacciones sean atómicas, se vean como una sola unidad.

- Consistency (Consistencia): que los datos realmente estén bien relacionados y que no existan problemas de falta de información o falta de confiabilidad en los datos

- Isolation (Aislamiento): aislamiento, separar las operaciones de distintas conexiones/usuarios unos de otros.

- Durability (Durabilidad): que se garantice la persistencia de los datos.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 3: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Estados de una Transacción - Activa: Durante su ejecución. - Parcialmente comprometida: Después de ejecutar su última instrucción. - Fallida: Imposible de continuar su ejecución normal. - Abortada: Transacción retrocedida y base de datos restaurada al estado anterior a su

ejecución. Se puede reiniciar o cancelar. - Retroceso de transacciones: Automáticos y programados.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Abortar

Abortar

Page 4: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Crear Conexion Abrir Conexión (Openconnection) Iniciar Transacción (Begin Transaction) setAutoCommit(0/false) Queries... (Insert, Select, Update, Delete...) -Error (Abort Transaction) rollback Procesar resultados (Print, a= , b= ) Asegurar Transacción (End Transaction) commit Cerrar Conexión (Closeconnection)

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

• Por default toda

transacción tiene el

autocommit =1

• El rollback generalmente se

usa en el catch de los

programas, aunque puede ir

en cualquier parte.

• Una transacción que no

llega al commit

automáticamente hace el

rollback

Page 5: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia Ejemplo: Incremento de un 1% de las comisiones 15% y 16% de la tabla de comisiones roysched. Si no existen estos porcentajes entonces no se ejecutará la instrucción de actualización. En este ejemplo se deben incrementar ambos; si uno de ellos no existe, se debe dejar sin modificar. BEGIN TRAN actualiza_comisiones -- Inicio de la transacción USE pubs IF EXISTS (SELECT titles.title, roysched.royalty FROM titles, roysched WHERE titles.title_id=roysched.title_id AND roysched.royalty=16) UPDATE roysched SET royalty=17 WHERE royalty=16 ELSE ROLLBACK TRAN actualiza_comisiones IF EXISTS (SELECT titles.title, roysched.royalty FROM titles, roysched WHERE titles.title_id=roysched.title_id AND roysched.royalty=15) BEGIN UPDATE roysched SET royalty=16 WHERE royalty=15 COMMIT TRAN actualiza_comisiones END ELSE ROLLBACK TRAN actualiza_comisiones

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 6: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Transacciones anidadas Una transacción anidada o multinivel T consiste en un conjunto T = {t1, t2, . . ., tn} de subtransacciones y en un orden parcial P sobre T. Cada ti de T puede abortar sin obligar a que T aborte. Puede que T reinicie ti o simplemente no ejecute ti. Si se compromete ti, esa acción no hace que ti sea permanente, sino que ti se compromete con T, y puede que aborte si T aborta. La ejecución de T no debe violar el orden parcial P. Es decir, si aparece un arco ti → tj en el grafo de precedencia, tj → ti no debe estar en el cierre transitivo de P. USE MyDB GO CREATE PROCEDURE Formular_pedido AS --Crea un procedimiento almacenado BEGIN TRAN Tran_formular_pedido -- Instrucciones SQL para la formulación del pedido COMMIT TRAN Tran_formular_pedido GO BEGIN TRAN Tran_pedidos -- Formular un pedido EXEC Formular_pedido COMMIT TRAN Tran_pedidos GO

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 7: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Bloqueos Un bloqueo es una información del tipo de acceso que se permite a un elemento. El SGBD impone los bloqueos necesarios en cada momento. El gestor de acceso a los datos implementa las restricciones de acceso. En algunos sistemas se permite que el usuario pueda indicar el bloqueo más adecuado (locking hints). Tipos de bloqueo read-locks: sólo permite lectura write-locks: permite lectura y escritura El gestor de bloqueos almacena los bloqueos en una tabla de bloqueos: (<elemento>, <tipo de bloqueo>, <transacción>)=(E,B,T) La transacción T tiene un tipo de bloqueo B sobre el elemento E.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 8: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Modos de bloqueo Especifica el modo en que se bloquea un elemento • Compartido: para operaciones sólo de lectura. Se permiten lecturas concurrentes, pero

ninguna actualización. • Actualización: para operaciones que pueden escribir. Sólo se permite que una transacción

adquiera este bloqueo. Si la transacción modifica datos, se convierte en exclusivo, en caso contrario en compartido.

• Exclusivo. para operaciones que escriben datos. Sólo se permite que una transacción adquiera este bloqueo.

• Intención: se usan para establecer una jerarquía de bloqueo. Por ejemplo, si una transacción necesita bloqueo exclusivo y varias transacciones tienen bloqueo de intención, no se concede el exclusivo. Estos puede ser Intención compartido o Intención exclusivo.

• Esquema. para operaciones del DDL. • Actualización masiva. En operaciones de actualización masiva

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 9: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Control de concurrencia - El control de accesos concurrentes y específicamente de transacciones concurrentes es

manejado por un módulo del dbms llamado "scheduler".

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 10: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Ejemplo: 2 transacciones cuya única característica de consistencia es que A=B ya que ambas operaciones son iguales para ambos elementos. Por otro lado sabemos que si las transacciones son ejecutadas aisladamente la consistencia se preservará.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 11: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Serial: Un schedule se considera "serial" si sus acciones consisten de todas las acciones de una transacción, seguidas de todas las de otra transacción y así sucesivamente sin mezclas de ningún tipo.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 12: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Serializable: Otra manera de mantener la consistencia, es que un schedule puede ser serializable siempre y cuando se mantenga el mismo estado que si se tratase de un serial.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 13: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Conflicto-Seriabilidad: Al tratar de asegurar que un schedule es serializable, se debe entender aquellos casos que representan conflictos, es decir, los pares de acciones cuyo orden no pueden ser intercambiado. Los casos que NO representan conflictos: Cuando Ti y Tj son transacciones diferentes: 1. ri(X); rj(Y) : nunca es conflicto 2. ri(X); wj(Y) : no es un conflicto, X != Y 3. wi(X); rj(Y) : no es un conflicto, por lo mismo que la anterior 4. wi(X); wj(Y) : no es un conflicto, por lo mismo que la anterior Por otro lado existen 3 situaciones en donde NO se pueden intercambiar el orden de las acciones. 1. 2 acciones de la misma transacción, ej ri(X); wi(Y) 2. 2 escrituras del mismo elemento por diferentes transacciones, wi(X); wj(X). 3. Una lectura y escritura del mismo elemento por diferentes transacciones, ri(X); wj(X) y

wi(X); rj(X).

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 14: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Conflicto-Seriabilidad: Se dice que dos operación es Ii e Ij de un plan S están en conflicto si operan sobre el mismo dato, pertenecen a transacciones distintas y al menos una de ellas es Escribir. Si dos operaciones NO están en conflicto entonces es posible intercambiar el orden en que se ejecutan sin generar ningún tipo de anomalía. Es posible llevar una planificación paralela a un plan en serie equivalente. Para esto, es necesario analizar las transacciones y las posibles operaciones en conflicto que pueden aparecer.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 15: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 16: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

Conflicto-Seriabilidad: Se dice que dos operación es Ii e Ij de un plan S están en conflicto si operan sobre el mismo dato, pertenecen a transacciones distintas y al menos una de ellas es Escribir. Si dos operaciones NO están en conflicto entonces es posible intercambiar el orden en que se ejecutan sin generar ningún tipo de anomalía. Es posible llevar una planificación paralela a un plan en serie equivalente. Para esto, es necesario analizar las transacciones y las posibles operaciones en conflicto que pueden aparecer. si se verifica la seriabilidad de los planes, entonces no se producirá ninguna de las anomalías mostradas anteriormente. Sin embargo, en la práctica, comprobar la seriabilidad de los planes no es posible por razones de rendimiento y porque usualmente no se conocen de antemano todas las operaciones (y la secuencia de estas) que realizará una transacción (o si esta abortará o terminará satisfactoriamente)

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 17: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

los SGBD en lugar de verificar la seriabilidad implementan “protocolos” que “garantizan” que los planes resultantes son “serializables”: • Protocolos Basados en Bloqueos: Exigen que el acceso a los datos se haga de forma

mutuamente excluyente. • Protocolos Basados en Marcas de Tiempo: Utilizan marcas de tiempo para determinar el

orden de serializabilidad

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

T0->R1 T0<-R1 T1<-R1

Lectura T1->R1 T2->R1

Lectura Escritura

Page 18: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 19: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 20: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Transacciones y Control de la Concurrencia

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

FASE DE CRECIMIENTO

FASE DE ENCOGIMIENTO

Page 21: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Fundamentos de bases de datos / Abraham Silberschatz, Henry F. Korth /y/ S. Sudarshan.—(Tra. Fernándo Sáenz Pérez, Antonio García Cordero /y/ Jesús Correas Fernández.-- Rev. Tca. Luis Grau Fernández). McGraw Hill. Madrid /c.2008/5a. Edic.

Introducción al SQL para Usuarios y Programadores / Cornelio et al / THOMSON / 2003 / 2da. Edic

Fundamentos de sistemas de bases de datos / Ramez Elmasri /y/ Shamkant B. Navathe.—(Tra. Verónica Canivell Castillo, Beatriz Galán Espiga /y/ Gloria Zaballa Pérez.--Rev. Tca. Alfredo Goñi Sarriguren , Arturo Jaime Elizondo /y/ Tomás A. Pérez Fernández) Pearson Educación. Madrid /c.2002/3a. ed.

Bibliográficas Principal

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 22: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Bibliografía

• Paper “A relational model for a large shared data banks”, E. F. Codd. ” – ACM – 1970.

• “Procesamiento de bases de datos. fundamentos, diseño e implementación” - David M. Kroenke — (Tra.

Ana Elizabeth García Hernández.--Rev. Tca. Juan Raúl Esparza Martínez). Pearson Educación – México -

c.2003 – 8ª Edic.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 23: Presentación de PowerPoint · Transacciones y Control de la Concurrencia Los SGBDs son sistemas concurrentes, admiten la ejecución concurrente de consultas. Ejemplo: Sistema de

Sitio Web de la Cátedra http://catedras.facet.unt.edu.ar/bd

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez