Cenário da classe de laboratório Operação da base de dados
Seminário: Cenário da classe de laboratório Operação da base de dados. Pesquise 862.000+ trabalhos acadêmicosPor: bruno_lindria • 29/11/2013 • Seminário • 716 Palavras (3 Páginas) • 422 Visualizações
Roteiro aula laboratório sobre Transações em Banco de Dados
1. Comece verificando como está ajustada a variável Autocommit = Quando igual a 1, está marcada como verdadeiro, ou seja, o SGDB fará os commits (encerramento e gravação no BD) automaticamente. Toda transação que incluir UPDATE ou INSERT não precedidas por um BEGIN estarão imediatamente visíveis para todas as conexões (ou seja comitadas).
MySQLWorkbench 5.2 , server administration, variables, System Variables – na box do search escreva a palavra commit.
2. Use o SQL editor do MYSQL do MySQLWorkbench ( comandos para utilizar referido programa já foram tratados nas aulas anteriores)
3. Crie novo schema de banco de dados , chamado BANCO,
create schema if not exists banco;
USE banco;
create table if not exists t
(`f` int) ENGINE = InnoDB;
4. Abra duas conexões diferentes para acessar seu banco de dados
use banco;
5. Na PRIMEIRA conexões aberta, atualize o valor de f da tabela t criada no passo 3 e veja seu valor (usando select)
begin;
insert into t(f) values(1);
select * from t;
resultado deve ser uma linha contendo o valor 1
6. Na SEGUNDA conexão aberta, verifique o valor de f
select * from t;
O resultado NÃO deve APRESENTAR nenhuma linha.
Pois a instrução 5 é iniciada explicitamente com begin e não foi comitada.
________________________________________
7. Na PRIMEIRA conexão (da instrução 5) faça um rollback e veja o resultado
rollback;
Select * from T;
O resultado NÃO deve APRESENTAR nenhuma linha.
Percebeu que a durabilidade (aciD) da transação 5 não foi confirmada pelo COMMIT e desta forma não se refletiu pelo banco
________________________________________
8. Repita agora os passos 5 (mude o valor de 1 para 2) SEM UTILIZAR O BEGIN na PRIMEIRA CONEXÃO
insert into t(f) values(2);
select * from t;
Qual é o resultado?
9. Agora veja o conteúdo da mesma tabela USANDO A SEGUNDA CONEXÃO.
select * from t;
Qual é o resultado? Por quê?
________________________________________
10. Na PRIMEIRA CONEXÃO Agora faça o passo 5 USANDO O BEGIN (mude o valor para 3) e faça o COMMIT ao final da transação
begin;
insert into t(f) values(3);
commit;
select * from t;
11. Agora veja o conteúdo da mesma tabela USANDO A SEGUNDA CONEXÃO.
select * from t;
Qual é o resultado? Por quê?
________________________________________
12. Na PRIMEIRA CONEXÃO DESLIGUE o AUTOCOMMIT
SET AUTOCOMMIT=0;
13. Na PRIMEIRA CONEXÃO Agora INSIRA novo valor (mude o valor para 4) - NÃO USE BEGIN
insert into t(f) values(4);
select * from t;
Qual é o resultado? Por quê?
14. Agora veja o conteúdo da mesma tabela USANDO A SEGUNDA CONEXÃO.
select * from t;
Qual
...