Oracle Comandos para Processamento de Transações

Documentos relacionados
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.

Tratamento de Exceções

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

Processamento de Transações

SQL CREATE MATERIALIZED VIEW. Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. OLAP: Modelagem Multidimensional

Lista de Exercícios 12 Transações

Controle de transações em SQL

SQL (Tópicos) Structured Query Language

BDII SQL TRANSAÇÃO Revisão 2

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

SQL Uma Visão mais Ampla

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

Controle de Transação

Controle de Transações. Banco de Dados André Luiz do Vale Soares

Banco de Dados I 6 Transações e Controle de Concorrência

Triggers(Gatilhos) Tiago Alves de Oliveira

Funções Definidas pelo Usuário

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

BANCO DE DADOS WEB AULA 12. manipulação de dados atualização e exclusão de registros. professor Luciano Roberto Rocha.

Banco de Dados. Prof. Antonio

EXEMPLO DE FLASHBACK VERSIONS QUERY E FLASHBACK TRANSACTION QUERY

IMPLEMENTAÇÃO DE BANCO DE DADOS

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SGBD. Funções Básicas de um SGBD

Lock. Administração de Banco de Dados

ANÁLISE E PROJETO DE BANCO DE DADOS

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SGBD. Definição. Funções básicas

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Page 1. Prof. Constantino Jacob

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02

Manipulação de Dados com SQL

Banco de Dados. Maurício Edgar Stivanello

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

SQL-99: Esquema de BD EMPRESA

Bases de Dados 2005/2006. Aula 5

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Leonardo Gresta Paulino Murta

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Sistemas de Banco de Dados

PHP INTEGRAÇÃO COM MYSQL PARTE 1

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Prof. Josenildo Silva

Linguagem SQL. Comandos Básicos

PSI Linguagem de Definição de dados. Módulo 15

EXAME DE 1ª ÉPOCA Semestre de Verão 2004/ Junho 2005 duração: 2h30m

Oracle PL/SQL Overview

Banco de Dados I Introdução SQL

SQL Gatilhos (Triggers)

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

Administração de Banco de Dados

Prova de Tecnologia da Informação

EXEMPLOS DE COMANDOS NO SQL SERVER

Introdução à linguagem SQL

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

BD II (SI 587) Procedimentos Armazenados

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

Histórico de revisões

Administração de Banco de Dados

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Transcrição:

Oracle Comandos para Processamento de Transações Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Transação Unidade lógica de trabalho contém um ou mais comandos SQL para manipulação dos dados executados por um único usuário Início da transação primeiro comando SQL executável Fim da transação execução de commit ou rollback pelo usuário

Esquema Início de conexão com o Oracle (CONNECT) início da transação 1 (SET TRANSACTION) operações de escrita/leitura da transação 1... fim da transação 1 (COMMIT/ROLLBACK) início da transação 2 (SET TRANSACTION) operações de escrita/leitura da transação 2... fim da transação 2 (COMMIT/ROLLBACK) Fim de conexão com o Oracle (DISCONNECT)

CONNECT / DISCONNECT CONN[ECT] usuário/senha; Abre uma conexão com o Oracle DISC[ONNECT]; Finaliza a conexão com o Oracle Torna persistente (i.e., commit) as alterações pendentes no banco de dados

COMMIT COMMIT; Finaliza uma transação com sucesso Atualiza os dados do banco de dados torna persistente as alterações da transação Apaga os savepoints da transação Libera todas as travas utilizadas pela transação

Exemplo aluno (NUSP, nome, sexo, idade) cursa (NUSP, cod_disc, nt1, nt2, nt3, nt4, nt5) disciplina (cod_disc, nome, créditos) DECLARE... BEGIN... UPDATE cursa SET nt2 = 0.0 WHERE NUSP = 2; UPDATE cursa SET nt2 = 0.0 WHERE NUSP = 5; COMMIT; END; torna as atualizações permanentes

ROLLBACK ROLLBACK; Finaliza uma transação sem sucesso Desfaz os efeitos das operações da transação Apaga os savepoints da transação Libera todas as travas utilizadas pela transação

Exemplo DECLARE... BEGIN... INSERT INTO aluno VALUES (1, Alexandra, f ); INSERT INTO cursa VALUES (1, 1, 7.0, 8.0, 7.5, 9.0, NULL);... EXCEPTION... END; WHEN DUP_VAL_ON_INDEX THEN ROLLBACK; desfaz todas as inserções

SAVEPOINT SAVEPOINT nome_savepoint ; Identifica um ponto em uma transação para o qual é possível desfazer as operações da transação permite desfazer partes de uma transação, ao invés da transação como um todo Geralmente usado com o comando ROLLBACK TO

DECLARE Exemplo aluno_id aluno.nusp%type; BEGIN UPDATE aluno SET... WHERE NUSP = aluno_id; DELETE FROM aluno WHERE...... SAVEPOINT do_insert; INSERT INTO aluno VALUES (...); EXCEPTION WHEN DUP_VAL_ON_INDEX THEN ROLLBACK TO do_insert; END; desfaz os comandos depois do savepoint

Considerações Podem existir vários savepoints em uma transação commit ou rollback: remove todos savepoints rollback to: remove savepoints marcados depois do savepoint de retorno Nomes de savepoints não precisam ser declarados podem ser usados novamente em uma transação savepoint ativo: último

SET TRANSACTION SET TRANSACTION { { READ ONLY READ WRITE } ISOLATION LEVEL { SERIALIZABLE READ COMMITTED} USE ROLLBACK SEGMENT rollback_segment } NAME nome_transação }; Inicia uma transação itálico: opções default Define características da transação

Exemplos: SET TRANSACTION SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION READ ONLY NAME teste ;

READ ONLY Comportamento identifica uma transação de leitura permite somente consultas (i.e., SELECT) especifica que as consultas da transação somente enxergam alterações realizadas com sucesso (i.e., committed) antes do início da transação indicada para transações que executem consultas em várias tabelas do BD ao mesmo tempo que estas tabelas estão sendo alteradas por outros usuários

Exemplo COMMIT; finaliza transações anteriores SET TRANSACTION READ ONLY; SELECT empresa.emp_codigo, emp_nome, count(filial_nro) as quantidade FROM empresa LEFT JOIN filial ON filial.emp_codigo = empresa.emp_codigo GROUP BY empresa.emp_codigo, emp_nome ORDER BY empresa.emp_codigo; SELECT... COMMIT; finaliza a transação READ ONLY

READ WRITE Comportamento identifica uma transação de leitura e escrita permite a especificação de consultas (i.e., SELECT) operações (i.e., INSERT, UPDATE, DELETE)

Exemplo COMMIT; SET TRANSACTION READ WRITE; Pode apresentar o problema de leitura não repetida! SELECT empresa.emp_codigo, emp_nome, count(filial_nro) as quantidade FROM empresa LEFT JOIN filial ON filial.emp_codigo = empresa.emp_codigo GROUP BY empresa.emp_codigo, emp_nome ORDER BY empresa.emp_codigo; UPDATE empresa SET emp_codigo = 5 WHERE emp_codigo = 4; COMMIT; finaliza a transação READ WRITE

Grau de Isolação ISOLATION LEVEL especifica como transações que contêm modificações no BD são manipuladas SERIALIZABLE transação somente vê as alterações que foram finalizadas com sucesso no momento que a transação começou, além das alterações feitas pela própria transação READ COMMITTED cada consulta executada por uma transação vê apenas dados que foram finalizados com sucesso antes da consulta (e não da transação)