TECNOLOGIA EM SISTEMAS PARA
INTERNET
Banco de dados em aplicativos WEB
Aula 11
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
1
Agenda
Linguagem SQL Consultas interativas –
continuação
Transações em banco de Dados
Exercícios.
Bibliografia
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
2
Linguagem SQL Consultas interativas –continuação
 Especificando Restrições como asserções e ações como
triggers – CREATE ASSERTION E CREATE TRIGGER
 CREATE ASSSERTION – Asserção declarativa usada para
especificar restrições adicionais fora do escopo de restrições
embutidas (Chave Primária e única, integridade de entidade
e integridade referencial)
Ex.: Salario de funcionario não pode
Ser maior que salario do gerente do
Departamento onde trabalha.
 Pode ser usada, alterada ou excluída
Mais tarde através do nome
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
3
Linguagem SQL Consultas interativas –continuação
 Especificando Restrições como asserções e ações como
triggers – CREATE ASSERTION E CREATE TRIGGER
 CREATE TRIGGER - Especifica ação a ser tomada em ocorrência de
eventos e condições específicos
 Ex. de ações, envio de mensagens pelo SGBD, executar stored
procedures ou disparar atualizações.
 Ex. de eventos, em geral operações de atualizações ao banco de
dados.
Ex.: Verificar se salário de funcionário > salário de supervisor e
informar o supervisor
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
4
Transações em banco de Dados
 Introdução ao processamentos de transações
 Transação é uma unidade lógica de trabalho envolvendo um conjunto de operações (Insert,
Update, Delete, etc.) que levará o banco de dados de um estado consistente para outro
estado consistente, mesmo que durante os passos intermediarios o sistema permanceça
temporariamente inconsistente.
 Usuario deve ser capaz de determinar quando começa uma transação (Begin transaction),
quando a transação deve ser executada (Commit), revertida (Rolback) e quando termina
(end transaction). Ou seja seus limites.
 Transações podem estar embutidas em um programa de aplicação ou especificadas
interativamente por linguagem de alto nivel como SQL.
 Uma transação pode ser :
 Somente de leitura – Não atualiza o banco de dados
 Leitura e gração - - Atualiza banco de dados.
 Não é peculiar a sistemas relacionais mas necessario para futuros estudos. (Date, p. 64)
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
5
Transações em banco de Dados
 No modelo de banco de dados utilizado para conceituar transações, o
tamanho do item de dados (granularidade) pode ser um bloco de disco
inteiro, um registro ou um atributo.
 Exemplo de transação de banco de dados no dia a dia
 Digamos que nossa agência tenha dois correntistas, A e B e, em um belo dia,
A resolve fazer uma transferência de R$ 50,00 para B . Essa transação será
feita pela Internet , por meio de um sistema de internet banking , então, A
acessará a sua conta e completará a operação. Do lado servidor, o banco de
dados recebe o valor e a conta de destino, tal valor é subtraído da conta de
origem e adicionado na conta de destino. Nesse momento, há uma
conferência por parte do SGBD – tudo correu bem , então a transação é
finalizada com sucesso.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
6
Transações em banco de Dados
 Importância das Transações.
 Funcionam como um mecanismo que garante que toda transação iniciada
termina com sucesso ou é desfeita
 Transações de diferentes usuários que envolvem dados compartilhados são
executadas em seqüência
 Transações controlam melhor a concorrência de operações e a reconstrução
dos dados em caso de falha.
 Proriedades ACID
 Para ser considerada uma transação deve ter as 4 propriedades ACID:
 Atomicidade
 Consistencia
 Isolamento
 Durabilidade
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
7
Transações em banco de Dados
 Atomicidade - Uma transação deve ser uma unidade atômica de trabalho:
ou todas as suas modificações de dados são executadas ou nenhuma
delas é executada, Ex. Atualização de diversas tabelas com dependencias.
 Consistencia - A execução de uma transação deve levar ao banco de
dados de um estado consistente a outro também consistente, ou seja,
quando concluída, uma transação deve deixar todos os dados em um
estado consistente. Uma transação é consistente se não violar a
integridade do banco de dados mesmo se falhar.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
8
Transações em banco de Dados
 Isolamento - Uma transação não deve tornar suas atualizações visíveis a
outras transações antes do seu fim, ou seja, modificações feitas por
transações simultâneas devem ser isoladas das modificações feitas por
qualquer outra transação simultânea. Ex. Consulta de saldo durante
atualização de CC so deve restornar o saldo após atualização.
 Durabilidade - Depois que uma transação tiver sido concluída, seus
efeitos ficam permanentemente no sistema, ou seja, após o término de
uma transação, suas atualizações não podem ser perdidas por causa de
falhas futuras. As modificações persistem até mesmo no caso de uma
queda do sistema. Se todas as ações forem realizadas com sucesso, não
significa que houve sucesso na transação, pois ela precisa gravar os dados
de volta ao disco. Em caso de falha no disco, a transação não é válida, por
isso antes de ser completada transação deve verificar se alterações foram
gravadas.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
9
Transações em banco de Dados
 Estados de uma transação - Os estados de uma transação podem ser:
ativa, em processo de efetivação,efetivada, em processo de aborto e
concluída.Uma transação pode se encontrar em diferentes estados.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
10
Transações em banco de Dados
 Ativa - É o estado inicial de toda transação selecionada para execução.Ela
permanece nesse estado enquanto estiver em execução
 Efetivação - Entra nesse estado após executar sua última operação
(solicitação de COMMIT). Neste momento, o SGBD precisagarantir que as
suas atualizações sejam efetivadas com sucesso (não sofram falhas).
 Processo de aborto - Entra nesse estado se não puder prosseguir sua
execução. Pode ainda passar para esse estado enquanto ativa ou em
processo de efetivação. Suas ações já realizadas devem ser desfeitas
(ROLLBACK)
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
11
Transações em banco de Dados
 Concluída - estado final de uma transação, ele indica uma transação que
deixa o sistema. As informações das transações mantidas em catálogo e
podem ser excluídas (operações feitas, dados manipulados, buffers
utilizados, entre outros). Caso a transação não tenha sido concluída com
sucesso, ela pode ser reiniciada automaticamente.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
12
Transações em banco de Dados

1.
2.
Exercicios :
A partir do exposto na aula, como você define transação?
Leia e analise atentamente as seguintes afirmativas sobre as
propriedadesde uma transação
I.
II.
III.
O princípio de atomicidade é o princípio de tudo ou nada, ou seja, ou
todas as operações são efetivadas com sucesso em um banco de dados
ou nenhuma delas se efetiva. Isso é realizado para preservar a integridade do banco de dados
A propriedade de isolamento define que cada transação deve ser isolada
dos efeitos da execução concorrente de outras transações
A propriedade que define que toda transação que for finalizada de forma
bem-sucedida deve persistir seus resultados em banco mesmo na
presença de falhas no sistema é a propriedade de consistência.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
13
Transações em banco de Dados

Exercicios :
Assinale a alternativa correta.
A)
Somente a afirmativa I está incorreta.
B)
Somente as afirmativas I e II estão corretas.
C)
Somente as afirmativas II e III estão incorretas.
D)
Todas as afirmativas estão corretas.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
14
Transações em banco de Dados

Leia atentamente as afirmativas a seguir sobre os estados de uma
transação
I.
Ativo é o estado inicial da transação. Ela permanece nesse estado enquanto
estiver em execução
II.
Concluída é o estado em que o SGBD confirma que todas as modificações da
transação estão garantidas no banco de dados
III.
Efetivada é o estado final de uma transação, ele indica uma transação que deixa o
sistema. Caso a transação não tenha sido concluída com sucesso, ela pode ser
reiniciada automaticamente.
IV.
O estado processo de aborto é o estado em que a transação não pode prosseguir
sua execução.
Assinale a alternativa correta.
a)
As afirmativas II e III estão incorretas.
b)
As afirmativas I e III estão incorretas.
c)
Somente a afirmativa IV está correta.
d)
As afirmativas I e IV estão incorretas
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
15
Bibliografia
BIBLIOGRAFIA BÁSICA
DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004.
1
2
NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison
Wesley, 2005.
SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005.
3
BIBLIOGRAFIA COMPLEMENTAR
COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus.
4
5
KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron
Books, 1999.
MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001.
6
7
SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher,
1999.
01/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
16
Download

Transações em Bancos de Dados - professorleomir