0% encontró este documento útil (0 votos)
38 vistas8 páginas

Tópicos Avanzados en MySQL: Concurrencia y Más

Este documento presenta conceptos clave sobre el diseño de bases de datos y la explotación de la información, incluyendo concurrencia, disparadores, procedimientos almacenados, vistas y transacciones. Explica cómo estos temas permiten controlar el acceso a la información, actualizar datos automáticamente y presentar datos de manera virtual para satisfacer las necesidades de los usuarios.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
38 vistas8 páginas

Tópicos Avanzados en MySQL: Concurrencia y Más

Este documento presenta conceptos clave sobre el diseño de bases de datos y la explotación de la información, incluyendo concurrencia, disparadores, procedimientos almacenados, vistas y transacciones. Explica cómo estos temas permiten controlar el acceso a la información, actualizar datos automáticamente y presentar datos de manera virtual para satisfacer las necesidades de los usuarios.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

06/11/2023

Tópicos complementarios:
Explotación de la información

Diseño de base de datos y explotación de la información


Ingeniería Industrial y
de Sistemas

Objetivo
▪ Conocer y aplicar tópicos especiales de MySQL

Contenido:
▪ Concurrencia
▪ Disparadores
▪ Procedimientos
▪ Vistas
▪ Transacciones

NOMBRE DEL CURSO 1


06/11/2023

Concurrencia
• Se denomina concurrencia, cuando se produce las ejecuciones de más de una acción sobre una base de
datos. Por ejemplo: reservar un asiento para un vuelo (miles de personas lo están haciendo), cobro de dos
cheques de una cuenta que sólo tiene saldo para uno de los cheques, etc..
• Si no existe control de la concurrencia se podría incurrir en inconsistencias de la información de una Base de
Datos.
A1 A3

A2 BD A4

• La “seriabilidad” es la propiedad consiste en que las transacciones concurrentes se ejecuten en serie y que
cada transacción se independiente de las otras.

A3 A4
A2
A1

Enfoque optimista de concurrencia


• Se basa en la suposición de que los conflictos entre las acciones de los usuarios son
escasos.
• Se da normalmente cuando la BD es grande, los usuarios son disjuntos (uso diferentes
de datos), se usan más para consultas y pocas actualizaciones.
• Solución: Validar al final.

Enfoque pesimista de concurrencia


• Se asume que lo más probable es que existan conflictos entre las transacciones de los
usuarios.
• Típicamente las BD son pequeñas, muchos usuarios, continuas actualizaciones y las
transacciones son muy grandes.
• Solución: Impedir las situaciones de conflictos.

NOMBRE DEL CURSO 2


06/11/2023

Trigger (Disparador, desencadenante, gatillo)

• Es una función (instrucciones de código)


que se activa cuando hay un evento
(cambio) en un cierto momento sobre una
tabla.
• Se puede insertar, actualizar o borrar
datos de un registro de la tabla o registros
de otras tablas u otras base de datos,
cuando se hacen cambios en la tabla que
se está trabajando.
• Ejemplos:
• Insertar un valor en un campo calculado.
• Actualizar un campo ante algún cambio:
modificar el Stock ante el ingreso o salida de un
producto.
• Borrar los registros de una tabla ante la
eliminación del registro del cual se tiene
relación.

Ejemplo de Trigger:
Drop database if exists Control;
Create database Control;
• Campo calculado del Use Control;
promedio del ingreso de tres
notas de controles: Create table Control(
• Cálculo del promedio de forma IdControl Int not null, C1 int, C2 int, C3 int, Prom double,
automática, ante el ingreso de
notas de controles. primary key (IdControl));
• Proteger a la base de datos de
ingresos erróneos, por ejemplo si Create trigger CalProm
se ingresa el promedio. Before insert on Control
For each row
Set new.prom = (new.c1+new.c2+new.c3)/3;

Create trigger SegProm


Before update on Control
For each row
Set new.prom = (new.c1+new.c2+new.c3)/3;

NOMBRE DEL CURSO 3


06/11/2023

Procedimientos almacenados
• Es una función (instrucciones de
código) que se pueden guardar y
reusar.
• Permite recibir datos
(parámetros) para usar en las
instrucciones.
• Hay que usar un delimitador:
delimiter// … //
• Ejemplos:
• Procedimientos para consultar
tablas.
• Procedimiento para consultas en
base a un parámetro especificado.

Ejemplo de procedimientos: delimiter //


Create procedure ConsPromId (in Id Int)
Begin
• Consultar registros de una
tabla: Select * From Control
• Procedimiento para consulta Where IdControl=Id;
de un registro por medio de su End //
“Id”.
• Procedimiento para consulta
de toda una tabla. delimiter /
Create procedure ConsPromTodo ()
Begin
Select * From Control;
End /

Llamada a procedimientos:
Call conspromid(3);

Call ConsPromTodo;

NOMBRE DEL CURSO 4


06/11/2023

Vistas

• Es una consulta almacenada (tabla


virtual) que se presenta a partir de
las tablas de una base de datos
relacional.
• Solo se almacena la definición de la
consulta, no los datos.
• Ejemplos:
• Vista de una consulta parcial (en
campos) de una tabla.
• Vista de varias tablas bajo condiciones
especiales.

Ejemplo de vistas:
Create view View_Control As
• Vista de campos específicos Select IdControl, Prom
de una tabla:
From Control;
• Vista de solo el Id y el
Promedio de controles.

Ver una vista:

Select * From View_Control;

NOMBRE DEL CURSO 5


06/11/2023

Transacción

• Una colección de operaciones que forman una


única unidad lógica de trabajo.
• Una transacción típicamente accede y
actualiza varios elementos de datos.
• Un DBMS debe asegurarse de que se ejecute
toda la transacción o no se ejecute en
absoluto: todo o nada.
• También se debe controlar la concurrencia de
las transacciones en un entorno multiusuario
para mantener la integridad de la BD.
• Instrucciones:
• Start Transaction;
• Select, Insert, Update, Delete
• Commit p Rollback

Propiedades ACID de una transacción

• Atomicidad (Atomicity): todas las operaciones de


la transacción se realicen o ninguna de ellas.
• Consistencia (Consistency): cada transacción debe
conservar el estado correcto de la base de datos.
• Aislamiento (Isolation): aunque exista
transacciones ejecutándose concurrentemente, el
DBMS debe garantizar que una transacción se
ejecute por completo aisladamente antes de que
empiece otra.
• Durabilidad (Durability): si una transacción a
finalizado con éxito, sus cambios permanecen,
incluso si hay fallos en el sistema.

NOMBRE DEL CURSO 6


06/11/2023

Estados de una transacción

• Activa: durante la ejecución de la transacción.


• Parcialmente comprometida: después de ejecutarse la última
instrucción pero aun sigue en memoria principal o intermedia. Aun aquí
puede ser abortada.
• Fallida: no puede continuar la ejecución de la transacción y debe
retroceder. Luego se dan dos opciones: reiniciar o cancelar la
transacción.
• Abortada: después de retroceder la transacción y haber vuelto al estado
inicial de la base de datos.
• Comprometida: luego de completarse con éxito.

Estados de una transacción

NOMBRE DEL CURSO 7


06/11/2023

Ejemplo de transacciones:
Start transaction;
• Llenar dos registros dentro de Insert into Control (IdControl, C1, C2, C3)
una transacción. values (4, 4, 12, 1);
Insert into Control (IdControl, C1, C2, C3)
values (5, 3, 5, 7);
Rollback;
Commit;

NOMBRE DEL CURSO 8

También podría gustarte