Revista Electrónica Granma Ciencia. Vol.10, No.2, Mayo - Agosto de 2006 ISSN 1027-975X



Documentos relacionados
CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

ADMINISTRACIÓN DE BASE DE DATOS

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

Oracle 12c DISEÑO Y PROGRAMACIÓN

SQL Los fundamentos del lenguaje

1

BASES DE DATOS curso 2002/3

SQL (Structured Query Language)

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

Transacciones y bloqueos en SQL-Server

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Enlaces relacionados:

III. ADMINISTRACIÓN DE ORACLE.

LABORATORIO 10. Concurrencia y bloqueos en el SMBD Oracle

Base de datos relacional

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

Lenguaje de manipulación de datos

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

Manipulando Datos. y Transacciones

Manejo de Transacciones

FORMACIÓN Modelo de programación web y bases de datos

Tema 33. El lenguaje SQL

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

MANUALITO MS-SQL SERVER

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Tema 6. Transacciones y seguridad

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

Repaso de Conceptos Básicos de Bases de Datos

Carrera: SCS Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Tema: Disparadores Parte I.

A.1. Definiciones de datos en SQL

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Componentes de una BD

Sub consultas avanzadas

Decimocuartas Jornadas en Estadística e Informática. Ricardo Vergara Argudo ricardo.vergara@sasf.net

Bases de datos relacionales y el modelo entidad-relación

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

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Ejercicios: Administración de Bases de Datos en ORACLE

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

Oracle Database 10g: Taller de Administración I 1-2

Bases de Datos 3º Informática de Sistemas

Carrera: SCS Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

8 SQL SERVER 2008 RA-MA

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

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

Formato para prácticas de laboratorio

Introducción a los sistemas de bases de datos

2. ESTUDIO DE INDICES

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Arquitectura de sistema de alta disponibilidad

FORMACIÓN E-LEARNING. Curso de Lenguaje SQL para Oracle

Consultas con combinaciones

Microsoft SQL Server 2005

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

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.

ÍNDICE PRIMERA PARTE... 17

Sintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;

BROWSERSQL VERSIÓN 3.1 TUTORIAL

Escrito por Beatriz Hernández Jueves, 13 de Octubre de :47 - Actualizado Jueves, 13 de Octubre de :04

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

3. El catálogo 26. Laboratorio de Bases de Datos

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

7. Manejo de Archivos en C.

Tema 4. Manipulación de datos con SQL

CONSULTAS BASICAS EN SQL SERVER

Patrones para persistencia (I) Ingeniería del Software II

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

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

T12 Vistas y tablas temporales

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1

Sistema de Recuperación. Carlos A. Olarte BDII

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

MANUAL BÁSICO DE ORACLE

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Select table data Insert table data Update table data Delete table data Create table

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

Gestión de la Configuración

Manual de Procedimiento. CREACION-ADMINISTRACION, RESPALDO DE DATOS Y CONTINUIDAD DEL NEGOCIO Procesos y Responsabilidades ECR Evaluadora Prefin S.A.

Tema 1. Conceptos básicos

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

PRÁCTICA B2. Definición y modificación de datos en SQL

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Universidad Nacional de Costa Rica Administración de Bases de Datos

CURSORES EN SQL SERVER

SISTEMAS DE RECUPERACIÓN

Oracle básico (IV): Programación en PL/SQL

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Tema: Auditoria de Base de datos. Parte I

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

Tema: Auditoria de Base de datos. Objetivo Especifico

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

1. DML. Las subconsultas

Transcripción:

Revista Electrónica Granma Ciencia. Vol.10, No.2, Mayo - Agosto de 2006 ISSN 1027-975X TÍTULO: El Control de Transacciones como mecanismo de seguridad en Bases de Datos Oracle. AUTORES: Osmani Miranda Escalona Javier Miranda Escalona INSTIUCIÓN: Universidad de Granma. Carretera de Granma, Cuba Manzanillo, km 17½. Bayamo, E-MAIL: miranda@udg.co.cu RESUMEN Todos los Sistemas de Gestión de Bases de Datos, tienen una alta responsabilidad en la seguridad de la información que almacenan y procesan. En muchas ocasiones son datos sensibles con un impacto importante en el desempeño de las entidades. El control de transacciones juega un papel importante en los mecanismos de seguridad que garantizan la disponibilidad de la información. Oracle posee estructuras tales como los REDOLOG y sentencias SQL orientadas al control de transacciones que garantizan el buen funcionamiento de este necesario mecanismo. INTRODUCCIÓN Todos los Sistemas de Gestión de Bases de Datos, tienen una alta responsabilidad en la disponibilidad y seguridad de la información que almacenan y procesan. En muchas ocasiones son datos sensibles con un impacto importante en el desempeño de las entidades. El diseño de la seguridad de una Base de Datos tiene dos objetivos fundamentales: garantizar el acceso compartimentado según niveles de autorización y lograr una alta disponibilidad de la información, es decir, que no se pierdan los datos. Para alcanzar el primer objetivo se crean usuarios, roles, contraseñas, permisos y privilegios; un eficaz control de transacciones permite garantizar el segundo. Para adentrarnos en sus mecanismos, es necesario conocer de antemano los siguientes conceptos. TRANSACCIÓN: Conjunto de programas destinados a la ejecución de una tarea, en general en tiempo real, destinada a producir una acción concreta so bre un fichero o una Base de Datos. Una transacción produce o bien una consulta o bien una actualización del fichero o Base de Datos. Se denomina también transacción al hecho de efectuar la tarea de actualización o consulta a la Base de Datos. Puede definirse también como una unidad

lógica de trabajo que contiene uno o más sentencias SQL. La agrupación de sentencias en una transacción indica que todas deben realizarse para que la Base de Datos permanezca consistente. OPERACIÓN TRANSACCIONAL: Tarea ejecutada en tiempo real, resultante de la ejecución de una transacción sobre una Base de Datos. Puede suponer una actualiza ción o una consulta a la Base de Datos. REDOLOG FILE (REDOLOG): Es un fichero físico con un formato binario, en el que ORACLE va registrando todos los cambios de manera ordenada que sufren los datos, preparándose para una posible reconstrucción ante cualquier fallo. DDL: (Lenguaje de Definición de datos) CREATE, ALTER, DROP... DML: (Lenguaje de Manipulación de datos) INSERT, UPDATE, DELETE COMMIT: Ejecutar los cambios producto de las sentencias SQL. ROLL BACK: Deshacer los cambios no ejecutados por COMMIT. Transacciones Una transacción comienza con la primera sentencia SQL ejecutable. Una transacción finaliza con un COMMIT o un ROLL BACK explícitamente o implícitamente con una sentencia DDL. Un usuario tiene que expresar explícitamente que ha concluido la transacción o implícitamente ante la ocurrencia de una DDL. En este se ejecuta un COMMIT antes de la ejecución de la DDL y luego otro. Si durante la ejecución de cualquier sentencia SQL causa un error por sintaxis, todos los efectos de la sentencia son ROLL BACK. Además una simple sentencia SQL puede ROLLBACK para resolver DEADLOCKS (competencia por el mismo dato). Por eso, una sentencia SQL que falla causa solamente la pérdida del trabajo ejecutado por la propia sentencia, esto no causa la pérdida de algún trabajo que preceda a la transacción actual.

Las sentencias SQL COMMIT y ROLLBACK tienen las siguientes sintaxis: Algunos ejemplos de sentencias COMMIT: INSERT INTO dept VALUES (50, 'MARKETING', 'TAMPA'); COMMIT WORK; COMMIT FORCE '22.57.53'; Ejemplos de ROLLBACK ROLLBACK; ROLLBACK TO SAVEPOINT sp5; ROLLBACK WORK FORCE '25.32.87'; La sentencia SAVEPOINT permite fijar un punto dentro de un conjunto de sentencias SQL, de manera que se puede hacer ROLLBACK para uno o varios intermedios de una transacción previamente marcados con SAVEPOINT. Ejemplo: UPDATE emp SET sal = 2000 WHERE ename = 'BLAKE'; SAVEPOINT blake_sal; UPDATE emp SET sal = 1500 WHERE ename = 'CLARK'; SAVEPOINT clark_sal; SELECT SUM(sal) FROM emp; ROLLBACK TO SAVEPOINT blake_sal; UPDATE emp SET sal = 1200 WHERE ename = 'CLARK';

Existe la sentencia SET TRANSACTION que permite personalizar el control de transacciones de acuerdo a la situación específica. Su sintaxis es como sigue: Ejemplo # 1: Ejemplo # 2: SET TRANSACTION READ ONLY; SELECT COUNT(*) FROM ship; SELECT COUNT(*) FROM container; SET TRANSACTION USE ROLLBACK SEGMENT oltp_5; Control de transacciones en Oracle Una transacción se inicia o finaliza en los siguientes casos: Cuando se ejecuta una sentencia COMMIT o ROLLBACK explícitamente. Cuando se ejecuta una sentencia DDL.(COMMIT) Cuando se desconecta un usuario de Oracle (COMMIT) Cuando finaliza un proceso anormalmente (ROLLBACK) Cuando una transacción finaliza la próxima sentencia SQL ejecutable inicializa una nueva. Las aplicaciones deben finalizar explícitamente las transacciones antes de concluir su ejecución. Antes que una transacción que haya modificado datos finalice debe ocurrir lo siguiente: Oracle genera registros del segmento de ROLLBACK en los buffers de ROLLBACK de la SGA. El segmento de ROLLBACK contiene los valores viejos de los datos modificados en la transacción. Oracle genera entradas de REDOLOG en los buffers de REDOLOG de la SGA. Después de ejecutar una transacción ocurre lo siguiente. Las tablas de transición interna de los registros del segmento de ROLLBACK registran que la transición ha sido ejecutada y el correspondiente número único de cambio de sistema (SCN) es asignado y registrado en la tabla.

LGWR escribe las entradas del buffer de REDOLOG en el ON LINE REDOLOG FILE (OLRF). Escribe además el SCN en el OLRF. Este es el evento atómico que constituye la ejecución de la transición. Oracle libera el bloqueo aplicado a filas y tablas, y marca la transición como completada. CONCLUSIONES Oracle, como Sistema de Gestión de Base de Datos relacional, posee sentencias SQL que garantizan una personalización apropiada del control de transacciones lo que permite afirmar que no solo es una herramienta eficiente sino también segura. En este trabajo solo tenemos espacio para introducir el tema por lo que invitamos a todos los que opten por diseñar una Base de Datos Oracle a estudiar más detenidamente el control de transacciones como parte del diseño de la seguridad de su Base de Datos. Es necesario aclarar que para otros SGBDR tales como SQLServer y MySQL, que implementan igualmente SQL como lenguaje estándar, son en general válidas las sintaxis presentadas para las sentencias orientadas al control de transacciones. BIBLIOGRAFÍA Greenwald, Rick. Robert Stackowiack y Jonathan Stern. Oracle esentials: Oracle 9i, Oracle 8i y Oracle 8, Second Edition. O Reilly and Associates, Inc. Sebastopol, 2001. 364p. Loney, Kevin. George Koch: Oracle 9i: The Complete Reference. KcGraw-Hill/Osborne. 2003. 1214 p. Oracle 9i Online Documentation, Oracle Corporation 2001.