Vous êtes sur la page 1sur 6

Universidade Estadual do Maranho Centro de Cincias Tecnolgicas CCT Curso de Engenharia da Computao EngeComp Disc.

c.: Modelagem de Banco de Dados Prof.: Fernando Demtrio

RELATRIO: Transaes em Banco de Dados

Alfredo Costa Oliveira Junior Cdigo: 09932014

So Lus MA Junho/2011

1. INTRODUO

Na gerncia de Banco de dados, Transao uma unidade de execuo de programa que acessa e, possivelmente, atualiza vrios itens de dados (Korthe Silberschatz, 2004). O ponto essencial da transao englobar vrios passos em uma nica operao de tudo ou nada. Os estados intermedirios entre os passos no so vistos pelas demais transaes simultneas e, se ocorrer alguma falha que impea a transao chegar at o fim, ento nenhum dos passos intermedirios ir afetar o banco de dados de forma alguma . Segundo (Korthe Silberschatz, 2004), para assegura a integridade dos dados, exige-se que os sistemas de banco de dados mantenham as seguintes propriedades das transaes: y Atomicidade: Ou todas as operaes da transao so refletidas corretamente no banco de dados (commit) ou nenhuma o ser (rollback). y Consistncia: A execuo de uma transao isolada (ou seja, sem a execuo concorrente de outra transao) preserva a consistncia do banco de dados. y Isolamento: Embora diversas transaes possam ser executadas de forma concorrente, o sistema garante que, para todo para de transaes Ti e Tj, Ti tem a sensao de que Tj terminou sua execuo antes de Ti comear, ou seja Tj comeou sua execuo aps Ti terminar. Assim, cada transao no toma conhecimento de outras transaes concorrentes no sistema. y Durabilidade: Depois da transao se completar com sucesso, as mudanas que ela faz no banco de dados persistem, at mesmo se houver falhas no sistema. Assim, para garantia de confiabilidade e segurana em SGBDs feito um controle de concorrnciaque um mtodo usado para garantir que as transaes sejam executadas de uma forma segura e sigam as regras ACID (Atomicidade, Consistncia, Isolamento e Durabilidade) . Nesse tocante, esse relatrio visa propor uma modelagem e implementao de uma base de dados para desenvolvimento de transaes a fim de verificar a aplicao e os mecanismos da Linguagem SQL para garantia de segurana e confiabilidade nos padres ACID.
2. MODELAGEM DE BANCO DE DADOS

A modelagem proposta consiste em uma base de dados denominada testeuema que possui as tabelas Cliente, Conta e Agncia. Abaixo pode ser visualizado os scripts de criao das tabelas e o modelo lgico (Figura 1).
CREATE TABLE agencia ( id_agencia INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT, nome_agencia VARCHAR(10) NULL, cidade_agencia VARCHAR(25) NULL, PRIMARY KEY(id_agencia) ) TYPE=InnoDB;

CREATE TABLE cliente ( id_cliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_cliente VARCHAR(20 NOT NULL, cidade_cliente VARCHAR(30 NULL, PRIMARY KEY(id_cliente ) TYPE=InnoDB

CREATE TABLE conta ( id_conta INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT, agencia_id_agencia INTEGER(11) UNSIGNED NOT NULL, cliente_id_cliente INTEGER UNSIGNED NOT NULL, nome_conta VARCHAR(10) NULL, valor_conta FLOAT NULL, PRIMARY KEY(id_conta), INDEX conta_FKIndex1(cliente_id_cliente), INDEX conta_FKIndex2(agencia_id_agencia) ) TYPE=InnoDB

Figura 1 Modelo Lgico do Banco de Dados testeuema.

3. DESENVOLVIMENTO DE TRANSAES NA BASE DE DADOS testeuema

Primeiro foi inserido alguns dados no Banco testeuema. Primeiro foi inserido 4 usurios na tabela Cliente (Figura 2). Em seguida, inseriu-se informaes referentes a agncia dos clientes na tabela agncia (Figura 3) . E finalmente, dados referentes a conta (cf. Figura 4).

Figura 2 Insero de 4 dados na tabe a C iente


Figura 3 Insero de 3 dados na tabe a Agncia.

Figura 4 Insero de 4 dados na tabe a Conta.

Como procedimento, para anlise e verificao dos mecanismos de transao SQL usados em SGBD MySQL, foi proposto uma transferncia de valores da conta 2 (do cliente Allas Jony) para a conta 3 (da cliente Josicleide Oliveira) no valor de R$ 200,00. Nessa primeira etapa ser feito uma confirmao de transao utilizando commit. Todo o procedimento mostrado na Figura 5, onde os saldos (valor_conta) atualizados passam a ser R$ 2000,00 para conta 2 e R$ 10.000,00 para conta 3 .

start transaction; updateconta set valor_conta = valor_conta - 200 where id_conta = 2; update conta set valor_conta = valor_conta + 200 whereid_conta = 3; commit;

Fi

t fi li l roll ck. A i , t l t i , t li t Froz) ra a onta o li nt Alfredo osta), f. ode ser isualizado na Fi ura 6, onde ostra ue o resultado ainda ontinua i ual ao ostrado da Fi ura , onde onta ontinua om . , e onta ontinua om . , mesmo aps a insero do omando update. N
setautocommit = 0; start transaction; update conta set valor_conta = valor_conta - 300 where id_conta = 4; update conta set valor_conta = valor_conta + 300 whereid_conta = 1; roll ack;

setautocommit = 0

fi

li

commit.

, f i i i i i t

i f

Figura

- Figura 7Transao finalizada com o comando rollback.

4. CONCLUSES

Nesse relatrio, foram abordados os conceitos bsicos de transaes em banco de dados. Viram-seas propriedades fundamentais de transaes e verificaram-se os principais comandos em MySQL. Alm disso, foi mostrada a modelagem lgica de um BD denominado testeuemao qual foi submetido a duas transaes onde foi verificado a aplicao dos comandos commit e rollback para garantia de confiabilidade nas transaes. Portanto, segurana uma questo fundamental em transaes em banco de dados e deve ser garantida atravs de regras baseadas no ACID.
5. REFERNCIAS

Korth, H.F. e Silberschatz, A.; Sistemas de Bancos de Dados, Makron Boo ks, 2a.edio revisada, 1994. Date, C.J.; Int. a Sistemas de Bancos de Dados, traduo da 4a.edio norte americana, Editora Campus, 1991. Rezende, Ricardo. Conceitos Fundamentais de Banco de Dados. Disponvel em: http://www.sqlmagazine.com.br/Colunistas/RicardoRezende/02_ConceitosBD.a sp. Em: Maro de 2011. Wikipdia. Banco de dados. Disponvel: http://pt.wikipedia.org/wiki/Banco_de_dados . Disponvel em: Junho de 2011. MySQL.Sintaxe de START TRANSACTION, COMMIT e ROLLBACK. Disponvel em: http://dev.mysql.com/doc/refman/4.1/pt/commit.html. Acessado em: Junho 2011.