PDF de programación - SQL Transactions

Imágen de pdf SQL Transactions

SQL Transactionsgráfica de visualizaciones

Publicado el 28 de Agosto del 2019
1.006 visualizaciones desde el 28 de Agosto del 2019
2,2 MB
72 paginas
Creado hace 5a (12/11/2014)
DBTechNet

DBTech VET

SQL
Transactions
Teoría y
ejercicios en la práctica

En español





Esta publicación se ha desarrollado en el context del proyecto DBTech VET Teachers (DBTech VET).
Código: 2012-1-FI1-LEO05-09365.

DBTech VET es un proyecto Leonardo da Vinci Multilateral Transfer of Innovation,
Financiado por la Comisión Europea y los socios del proyecto.



www.DBTechNet.org
DBTech VET



Descargo
responsabilidad
Este proyecto ha sido financiado por la Comisión Europea. Este documento refleja los puntos de vista
de los autores, y la Comisión no es responsable de la información contenida en él. Las marcas de
productos mencionados son marcas registradas por los proveedores del producto.


de



Traducción de SQL Transactions – Theory and Hands-on Exercises
Version 1.3 of the first edition 2013
Versión 1.0 en Español de 2014

Autores: Martti Laiho, Dimitris A. Dervos, Kari Silpiö
Producción: DBTech VET Teachers project
Traducción: José F. Aldana-Montes, Ismael Navas-Delgado y Maria del Mar Roldán-García,
Universidad de Málaga

ISBN TBD (paperback)
ISBN TBD (PDF)







Objetivos

Transacciones SQL

Guía del Alumno



El acceso fiable a los datos debe estar basado en el uso de transacciones correctamente
diseñadas con una TOLERANCIA CERO hacia los datos incorrectos en nuestra base de
datos. Un programador que no comprende la tecnología de transacciones puede violar
fácilmente la integridad de los contenidos de la base de datos y bloquear o ralentizar el
Sistema de producción. Al igual que con el tráfico de vehículos, las reglas de acceso a la base
de datos deben conocerse y obedecerse. El propósito de este tutorial es presentar los
conceptos básicos de la programación de las transacciones usando los principales SGBD. Se
presentan además algunos problemas típicos y cómo afinar las transacciones en esos casos.


Usuarios de este Documento

Los usuarios de este tutorial son profesores, formadores y estudiantes en centros de estudio
vocacionales e institutos de educación superior orientados a la industria. Igualmente los
desarrolladores de aplicaciones en la industria TIC pueden encontrarlo de utilidad para
comprender el funcionamiento de las transacciones en otros gestores distintos al usado en su
trabajo diario.


Prerrequisitos

Debe tenerse experiencia básica en el manejo de SQL en algún SGBD.


Nivel

Básico


Métodos de Aprendizaje

Los estudiantes deberían experimentar y verificar por si mismos los temas presentados en
este tutorial usando SGBD reales. Para este propósito, en este tutorial se presenta un
laboratorio virtual gratuito de bases de datos, junto con scripts de prueba proporcionados en
la sección de referencias.




1.1
1.2
1.3
1.4
1.5
1.6

Contenidos

Parte 1. Transacción SQL: La Unidad Lógica de Trabajo ............................................................... 4
Introducción a las transacciones .................................................................................... 4
Conceptos Cliente/Servidor en el Entorno SQL .......................................................... 4
Transacciones SQL ............................................................................................................. 6
Lógica de la Transacción ................................................................................................... 8
Diagnosticando errores SQL ............................................................................................ 8
Práctica de Laboratorio (Hands-on) .............................................................................. 10
Parte 2. Transacciones Concurrentes .............................................................................................. 21
2.1 Problemas de Concurrencia – Posibles Riesgos de Fiabilidad .................................. 21
2.1.1 Problema de la Actualización Perdida ......................................................................... 22
2.1.2 Problema de la Lectura Sucia (Dirty Read) ................................................................ 23
2.1.3 Problema de las No-Reproducibilidad ......................................................................... 23
2.1.4 Problema de la Aparición de Fantasmas .................................................................... 24
2.2 El principio ACID de la Transacción Ideal ......................................................................... 25
2.3 Niveles de Aislamiento ........................................................................................................... 25
2.4 Mecanismos de Control de la Concurrencia .................................................................... 27
2.4.1 Esquema de Control de la Concurrencia basado en la Reserva (LSCC) ........... 28
2.4.2 Control de la Concurrencia con Múltiples Versiones (MVCC) .............................. 30
2.4.3 Control de la Concurrencia Optimista (OCC) ............................................................ 32
Parte 3 Algunas Buenas Prácticas .................................................................................................... 46
Lecturas Recomendadas, Enlaces y Referencias .......................................................................... 48
Apéndice 1 Experimentando con las transacciones en SQL Server ........................................... 49
Apéndice 2 Transacciones en programación Java .................................................................... 63
Apéndice 3 Transacciones en la Recuperación de Bases de Datos ....................................... 69




1 Transacción SQL: La Unidad Lógica de Trabajo


1.1 Introducción a las transacciones

En la vida diaria la gente realiza distintos tipos de transacciones de negocios, comprando productos,
reservando viajes, cambiando o cancelando pedidos, comprando entradas de conciertos, pagando
alquileres, recibos de electricidad, recibos de seguros, etc. Las transacciones no hacen referencia
únicamente a temas relacionados con los ordenadores. Cualquier tipo de actividad humana que
conlleve una unidad lógica de trabajo que tenga que ser realizado en su completitud o ser cancelada
implica una transacción.

Casi todos los sistemas de información utilizan los servicios de algún Sistema Gestor de Bases de
Datos (SGBD) para el almacenamiento y recuperación de los datos. Los SGBD actuales son muy
sofisticados tecnológicamente en relación a la seguridad de la integridad de los datos, proporcionando
acceso rápido a los datos incluso con múltiples usuarios accediendo de forma concurrente a los
mismos. Estos SGBD proporcionan a las aplicaciones servicios fiables para la gestión de la
persistencia de los datos sólo en el caso de que estas aplicaciones usen estos servicios fiables de forma
correcta. Esto se consigue desarrollando componentes de acceso a datos de la aplicación que hagan
uso de las transacciones de bases de datos.

El uso inapropiado de las transacciones en las aplicaciones puede producir:





la pérdida de pedidos de clientes y órdenes de envío de pedidos,
fallos en el registro de una reserva de asientos realizada por pasajeros de trenes o aviones o la
incluso la realización de una reserva duplicada.
la pérdida del registro de llamadas de emergencia en un centro de respuesta de emergencias,


 etc.


Estos incidentes suceden frecuentemente en la vida real, pero las personas a cargo prefieren no revelar
estas historias al público. La misión del Proyecto DBTech VET es establecer un marco de trabajo de
buenas prácticas y una metodología para evitar este tipo de incidentes desafortunados.

Las transacciones son unidades recuperables de tareas de acceso a datos para la manipulación del
contenido de las bases de datos. Estas incluyen también unidades de recuperación de la base de datos
(completa) en caso de fallo del sistema, como se muestra en el Apéndice 3. Además proporcionan
también las bases para la gestión de la concurrencia en entornos multi-usuario.


1.2 Conceptos Cliente/Servidor en el Entorno SQL



En este tutorial nos centramos en el acceso a datos usando transacciones SQL cuando se ejecuta código
SQL de forma interactiva, pero teniendo en mente que el correspondiente acceso a los datos a través de
una aplicación usa un paradigma ligeramente distinto (que se presenta en el Apéndice 2).






Figura 1.1 Las transacciones SQL respecto a las capas de
aplicación


La Figura 1.1 presenta una vista simplificada de la arquitectura típica de una aplicación de bases de
datos en la que las transacciones se encuentran localizadas en una capa software diferente a la capa de
interfaz de usuario. Desde el punto de vista del usuario final, la aplicación proporciona casos de uso
materializándolos como transacciones de usuario. Una transacción de usuario puede incluir múltiples
transacciones SQL, algunas de las cuales incluyen recuperación de datos, y usualmente la transacción
final actualiza el contenido de la base de datos. Los envoltorios de reintento implementan acciones de
reintento programadas en caso de fallos de concurrencia en las transacciones SQL.

Para comprender el funcionamiento de las transacciones SQL tenemos que introducir algunos
conceptos básicos relativos al diálogo cliente-servidor (ver Figuras 2 y 3). Para acceder a una base de
datos la aplicación tiene que iniciar una conexión con la base de datos que establece el contexto de
una sesión SQL. Por simplicidad, una sesión SQL se consi
  • Links de descarga
http://lwp-l.com/pdf16508

Comentarios de: SQL Transactions (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad