SQL Transactions Teacher s Guide



Documentos relacionados
Arquitectura de sistema de alta disponibilidad

10776 Developing Microsoft SQL Server 2012 Databases

Guía de Laboratorio Base de Datos I.

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Transacciones y bloqueos en SQL-Server

DBTechNet. DBTech VET. SQL Transactions. Teoría y ejercicios en la práctica. En español

Base de datos relacional

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

Introducción a las redes de computadores

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Introducción. Componentes de un SI. Sistema de Información:

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

Oracle 12c DISEÑO Y PROGRAMACIÓN

Respuestas a consultas

Guía Rápida de Inicio

GUIA DE LABORATORIO Nro. 4

Ingeniería de Software. Pruebas

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Nivel Básico/Intermedio. Instalar y Configurar SQL Server Diseñar una Base de Datos. Optimización de consultas

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

Soporte Técnico de Software HP

rg.o El l c i c c i l c o l o de d vi v d i a d a cm a l@ rza e de d u n u n si s s i t s e t ma m a de d in i f n or o ma m c a i c ó i n ó b

Módulo 7 Transacciones Distribuidas

1

1.- DATOS DE LA ASIGNATURA. Sistemas Gestores de Base de Datos. Nombre de la asignatura. Ingeniería en Sistemas Computacionales.

GESTIÓN DE CAPACIDAD DE SERVICIOS TI: UNA SOLUCIÓN DESDE ITIL

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

SQL Los fundamentos del lenguaje

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

Sistemas Distribuidos Sincronización, Concurrencia y Transacciones

10775 Administering Microsoft SQL Server 2012 Databases

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

CURSOS Y DESCRIPCIÓN / ADMINISTRACIÓN DE BASE DE DATOS

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

FORMACIÓN E-LEARNING. Curso de Gestión y Desarrollo de Nuevos Productos Industriales

Introducción a Moodle

Microsoft SQL Server 2005

Tutorial: Primeros Pasos con Subversion

Toda base de datos relacional se basa en dos objetos

CI Politécnico Estella

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Programación páginas web con ASP.NET 3.5 (C#)

Modelos y Bases de Datos

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Manual de Usuario del Sistema RECIBOS DE HABERES UNLu Contacto:

Opciones de replicación y distribución de datos en Oracle RDBMS 9iR2, 10gR2 y 11gR1

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs.

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Informàtica i Comunicacions Plaça Prnt. Tarradellas, FIGUERES (Girona) Tel Fax

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Configuracion Escritorio Remoto Windows 2003

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

MÓDULO OPTATIVO e Bussines

Seis Sigma. Nueva filosofía Administrativa.

Manejo de Transacciones

DIPLOMA EN IMPLEMENTACIÓN Y AUDITORIA DE UN SISTEMA DE GESTIÓN DE LA CALIDAD ISO 9001

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores

ADMINISTRACIÓN DE BASE DE DATOS

Guía para Desarrollo de Sitios Web - Gobierno de Chile

III. ADMINISTRACIÓN DE ORACLE.

Sub consultas avanzadas

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

LOG SHIPPING AND DATABASE MIRROR

<Generador de exámenes> Visión preliminar

El proceso de Instalación de Microsoft SQL Server 2008

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

Curso Online de Microsoft

Programación páginas web. Servidor (PHP)

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

CAPÍTULO 3 VISUAL BASIC

Agenda Única. guía rápida de configuración y uso para PC

Descripción. Este Software cumple los siguientes hitos:

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa

BASES DE DATOS curso 2002/3

Bases de Datos 2. Teórico

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

ISO 14001:2015 ISO 14001:2004 GUÍA. 0. Introducción 0. Introducción

Conexión ODBC Visual Basic - MSQL. Cristian Vidal Silva

Capítulo 5. Cliente-Servidor.

Acronis License Server. Guía del usuario

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

1 EL SISTEMA R/3 DE SAP AG

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14

OpenProdoc. ECM Open Source

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Transcripción:

Transacciones SQL Guía del Profesor página 1 www.dbtechnet.org DBTech VET SQL Transactions Teacher s Guide Autores Martti Laiho y Dimitris Dervos Traducción Ismael Navas Delgado y José F. Aldana Montes Descargo de Responsabilidad Este proyecto ha sido financiado por la Comisión Europea. Esta publicación [comunicación] refleja los puntos de vista de los autores, y la Comisión no es responsable de la información contenida en este documento. Las marcas de productos mencionados son marcas registradas de proveedores del producto. Objetivos 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 Este documento está dirigido a profesores, docentes en ciclos de formación e instituciones docentes con orientación industrial. Pre-requisitos Los profesores deberían (a) haber asistido a un curso de formación impartido por el Proyecto DBTech VET, (b) tener práctica en el uso del laboratorio virtual DebianDB y (c) haber realizados los experimentos propuestos al menos en el SGBD usado en el curso a impartir, aunque sería deseable haberlo probado en la menos 2 SGBD, uno que implemente el control de la concurrencia usando MGL (por ejemplo DB2 o SQL Server), y uno que use MVCC (MySQL/InnoDB u Oracle).

Transacciones SQL Guía del Profesor página 2 Materiales Plan del curso Transacciones SQL Guía del profesor (este documdento) Transacciones SQL Teoría y Ejercicios Prácticos Intro a Transacciones SQL Powerpoint Principios de Transacciones SQL PDF DBTechLab (OVA + documentos de DebianDB) Inicio Rápido a DebianDB (PDF) Preguntas de respuestas múltiples en tecnologías de concurrencia en SQL (DBTech EXT) Formularios de evaluación Metodología Pedagógica El principal tema debe presentarse en la sesión de orientación usando las transparencias y demostraciones en el uso del laboratorio virtual en el SGBD seleccionado. Las sesiones de orientación deben ser cortas (máximo 60 minutos) y los alumnos deben tener la oportunidad de realizar después experimentos prácticos con el SGBD seleccionado. La metodología básica es la de permitir la experimentación en las que los estudiantes puedan ver el comportamiento del SGBD y sus soluciones a través de una serie de pasos: Orientación/teoría experimentos nuevos problemas necesidad de conocimiento adicional -. El acceso libre a SGBD reales que aparecen en los listados de ofertas de empleo incrementa la motivación del alumnado y justifica la necesidad de invertir tiempo en un curso de este tipo. Aunque el estándar SQL ofrece un marco de referencia para los diferentes dialectos de los SGBD, estos se comportan de forma diferente al estándar e incluso entre ellos. El principal resultado de estos cursos es que el alumno aprenda a experimentar con los SGBD y verificar sus funcionalidades de forma práctica. Este conocimiento tiene un efecto directo en las capacidades de programación transaccional. Hitos de enseñanza Necesita comprender lo que enseña para poder responder preguntas. No trate de enseñarlo todo si no tiene suficiente tiempo. No corra. Asegúrese que los alumnos entienden COMMIT y ROLLBACK. Céntrese en los elementos marcados en negrita anteriormente. Recuerde que los estudiantes también saben leer.

Transacciones SQL Guía del Profesor página 3 Temas y Objetivos de Aprendizaje Los temas y objeticvos de aprendizaje del curso de Transacciones SQL se enmarcan el Information Management / Transaction Processing en el Computer Science Curricula 2013 de ACM e IEEE (http://ai.stanford.edu/users/sahami/cs2013//strawman-draft/cs2013- strawman.pdf, page 91) siendo por tanto un curso elegible en procesamiento de transacciones para la educación de grado. El mejor test para el curso básico de DBTech VET es que sigue los temas de CS2013. IM/TransactionProcessing [elective] Topics: Transactions Failure and recovery Concurrency control Learning Objectives: 1. Create a transaction by embedding SQL into an application program. 2. Explain the concept of implicit commits. 3. Describe the issues specific to efficient transaction execution. 4. Explain when and why rollback is needed and how logging assures proper rollback. 5. Explain the effect of different isolation levels on the concurrency control mechanisms. 6. Choose the proper isolation level for implementing a specified transaction protocol. Figura 1 CS2013 Information Management (IM) / Transaction Processing Los objetivos de aprendizaje listados en la Figura 1 son: 1. Para el objetivo de transacciones SQL inmersas en programas, proporcionamos listados de programas Java/JDBC en el Apéndice 2, que debería ser explicado por el profesor. Sin embargo este tema no está incluido como tale n el curso de Transacciones SQL. 2. Con respecto al concepto de confirmaciones implícitas, se asume que CS2013 hace referencia a los modos AUTOCOMMIT. En el curso de DBTech VET se hace uso de otro tipo de confirmación implícita: el de las sentencias DDL (en Oracle y MySQL/InnoDB). 3. La ejecución eficiente de transacciones se trata en el Apéndice 3 << Big Picture of Database Server and Transaction processing>>, que el profesor debería explicar a los estudiantes, y en el Capítulo 3 Algunas Buenas Prácticas. 4. El uso de ROLLBACK se explica en el Capítulo 1 y en los ejercicios prácticos. El Apéndice 3 explica el rol del log de transacciones para el rollback y las operaciones de recuperación. 5. El Capítulo 2 presenta el problema de control de la concurrencia, lo niveles de aislamiento del estándar ISO SQL y las implementaciones de los distintos SGBD. Adicionalmente se explican controles de control de la concurrencia como Multi-Granular Locking (MGL, LSCC) y Multi-Versioning (MVCC).

Transacciones SQL Guía del Profesor página 4 6. La elección del nivel de aislamiento correcto para resolver los problemas de control de la concurrencia se explica en una serie de ejercicios prácticos. La siguiente cita de Recent Trends en el capítulo 3.1 del informe CC2008 (predecesor del informe CS2013), puede aplicarse también a las transacciones en bases de datos u tecnologías de acceso a datos: The growing relevance of concurrency The development of multi-core processors has been a significant recent architectural development. To exploit this fully, software needs to exhibit concurrent behavior; this places greater emphasis on the principles, techniques and technologies of concurrency. Some have expressed the view that all major future processor developments will include concurrent features, and with even greater emphasis on the concurrency elements. Such a view implies the increased emphasis on currency will not be a passing fashion but rather it represents a fundamental shift towards greater attention to concurrency matters. (http://www.acm.org/education/curricula/computerscience2008.pdf) En este curso básico de Transacciones SQL el objetivo son los estudiantes de Nivel 2 ( Understand ), y parcialmente Nivel 3 ( Apply ) de la variante de la taxonomía de Bloom del CC2008 (ver capítulo 4.1.1 del CC2008).

Transacciones SQL Guía del Profesor página 5 Indicadores de los Temas Notas del Instructor Parte 1 Transacciones SQL Transaction una Unidad Lógica de Trabajo (ULT) La Parte 1 introduce las transacciones en un entorno mono-usuario. Hito: debe comenzar introduciendo el DBTechLab (ver 1.6). 1.1 Problemas y necesidades para las transacciones (motivación) Datos perdidos Datos incorrectos en la base de datos Resultados incorrectos de la base de datos 1.2 Concepto Cliente/Servidor [teoría] Conceptos relacionados con el estándar ISO SQL standard: SQL-server, Cliente SQL, Sesión SQL, diagnostico Cliente: driver, dialogo: petición, resultado Servidor: hebras, caches 1.3 Introducción a las Transacciones SQL [teoría] Transacciones como ULT, unidad de recuperación, unidad de consistencia. Transacciones como elemento base para aplicaciones fiables, transferencia de la base de datos de un estado estable al siguiente. Inicio de transacciones implícito y explícito, dependiente del SGBD Modo AUTOCOMMIT: Autocommit => cada sentencia es una transacción => no rollback, más I/O Las transacciones explícitas pueden comenzar en modo AUTOCOMMIT. Modo transaccional: Inicio explícito de la transacción. El éxito o fallo debe probars después de cada commando. La ejecución puede ser correcta en términos SQL pero no de la aplicación. Fin de transacción (éxito: COMMIT, fallo: ROLLBACK). Nota: Algunos sistemas generan COMMITs en las sentancias DDL. La mayor parte de los sistemas generan ROLLBACK ante deadlocks. Explicar la vision global de un servidor de base de datos ( Big Picture ) Figura A3.1 de Apéndice 3, y magical service de implementaciones de ROLLBACK de Basics of SQL Transactions. Explicar el principio ACID: (A) atomicity mediante ROLLBACK,

Transacciones SQL Guía del Profesor página 6 (C) consistency mediante CONSTRAINTS 1, (D) durability mediante COMMIT. Los niveles de aislamiento están explicados en la Parte 2. 1.5 Diagnosticando errores/excepciones SQL [teoría] SQLcode, SQLSTATE, GET DIAGNOSTICS [ver Apéndice 2] 1.6 Laboratorio Práctico Introducción a DBTechLab (DebianDB) Importación guiada de DebianDB OVA a VirtualBox Sesión guiada con los alumnus mostrando el uso de la Guía de Inicio Rápido de DebianDB, y el uso del SGBD seleccionado.: MySQL/InnoDB, Oracle XE, DB2 Express-C, PostgreSQL, o Pyrrho. Los ejercicios de la Guía usan MySQL, pero se puede usar cualquiera de los otros SGBD para los que se dispone de los correspondientes Scripts en la carpeta /home/student/transactions de la máquina virtual. Ejercicios 1.1-1.7: Modo Autocommit / Modo Transactional Rollback ante errores Recuperación de la base de datos a la última transacción confirmada Parte 2 Transacciones en un Entorno Multi-Usuario Un programa probado en un entorno mono-usuario puede fallar fácilmente en un entorno multi-usuario por lo que es necesario comprender las anomalías debidas a la concurrencia, los niveles de aislamiento y los mecanismos de control de la concurrencia que implementan los distintos SGBD. 1 Además de las restricciones PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK, [NOT] NULL y otras propias de los SGBD es posible que existan otras definidas en forma de disparadores que no están cubiertas por este curso.

Transacciones SQL Guía del Profesor página 7 2.1 Problemas de la Concurrencia Anomalías de escritura: 2.1.1 Lost Update - posible en sistemas de ficheros no posible en SGBD durante la transacción Sobre-escritura ciega - después del commit de la transacción, una concurrente puede sobre-escribir sus resultaos. (solución: actualizaciones sensible o bloqueo mediante RVV) Experimento: 2.1 Anomalías de lectura: 2.1.2 Dirty Read 2.1.3 Non-Repeatable Read 2.1.3 Phantoms Phantom Read 2.2 El principio ACID Este es un buen concepto para un curso básico. Sin embargo, en niveles avanzados Isolation (I) es el component realmente interesante de ACID. La mayor parte de los SGB son "ACID compatible", pero esto no es cierto en los casos en los que se proporciona un nivel de aislamiento por debajo de REPEATABLE READ. El aislamiento total está disponible solo en OCC, especialmente en Pyrrho (incluido en DBTechLab). 2.3 Niveles de Aislamiento del Estándar ISO SQL para resolver las anomalías de control de la concurrencia (CC) Read Uncommitted Read Committed Repeatable Read Serializable 2.4 Mecanismos de Control de la Concurrencia 2.4.1 Multi-Granular Locking (MGL) X-locks / S-locks - pueden dar lugar a deadlocks - bloqueo explícito (SELECT..FOR UPDATE) 2.4.2 Multi-Versioning (MVCC): Latest Committed (Currently Committed, Read Committed Snapshot) Snapshot: Nota: MVCC elimina bloqueos de lectura, pero el bloque es usado para escritura puede dar lugar a deadlocks 2.4.3 Optimistic Concurrency Control (OCC) Todas las escrituras se aplican a una cache privada que se sincroniza con la base de datos con un commit. La primera transacción en hacer commit gana. Puede ser probado en DBTechLab con Pyrrho

Transacciones SQL Guía del Profesor página 8 2.4.4 Summary see table 2.4 in the textbook. 2.5 Ejercicios de Concurrencia Ejercicio 2.1 Lost Update Ejercicio 2.2 SELECT-UPDATE Ejercicio 2.3 UPDATE UPDATE => deadlock Ejercicio 2.4 Dirty Read Ejercicio 2.5 Non-Repeatable Read Ejercicio 2.6 Insert-Phantom Problem Ejercicio 2.7 SNAPSHOT 3 Buenas Prácticas No usar diálogos con usuarios durante las transacciones Transacciones cortas Elegir el nivel de aislamiento correcto Probar los errores después de cada comando Conocer el comportamiento de nuestro SGBD Conocer el dialecto de nuestro SGBD Intentar ceñirse al estándar ISO/SQL Apéndice 1 Ejercicios de Parte 1 y Parte 2 en Microsoft SQL Server Express incluyendo los resultados para comparación con otros SGBD. Apéndice 2 Introducción a Java y la API JDBC. Ejemplos con el programa BankTransfer. Try catch para SQLExceptions Conexión con el servidor de base de datos Patrón de Reintento Cada transacción comienza quitando el modo Autocommit Paso de parámetros Sentencias parametrizadas Recuperando tuplas COMMIT y ROLLBACK en el objeto de conexión. Aunque hay una única API JDBC los gestores se comportan de forma distinta. Apéndice 3 Recuperación de base de datos usando el log de transacciones. Big Picture de un servidor de bases de datos. Checkpoint en relación con rollback/recovery. [Temas Opcionales] Procesamiento de Cursores.

Transacciones SQL Guía del Profesor página 9 Temas no cubiertos por este curso Estos temas están en el ámbito de cursos avanzadosde DBTech VET: Savepoints Detalles de bloqueo, timeouts Nested transactions Transacciones distribuidas Procedimientos Almacenados Para más información www.dbtechnet.org/papers/ SQL_StoredRoutines.pdf SQL_ConcurrencyTechnologies.pdf RVV_Paper.pdf DistributedTransactions.pdf (disponible en 2015?) Teoría de la serialidad, 2PL, etc. Evaluación Los estudiantes rellenan el formulario de evaluación de DBTech VET lab para la elaboración del WP3 (no para obtener calificación) Los estudiantes rellenan el formulario de preguntas de opción múltiple y envían la respuesta a su profesor para comprobar el aprendizaje del alumno. El professor rellena el resumen DBTech VET Lab y lo envía al coordinador local de DBTech VET/DBTechNet.