13
Unimep/Pronatec 3° Semestre AULA 11 - Prof. André Bertoletti - [email protected] Banco de Dados II

Banco de Dados II - Unimep/Pronatec - Aula 11

Embed Size (px)

Citation preview

Page 1: Banco de Dados II - Unimep/Pronatec - Aula 11

Unimep/Pronatec

3° Semestre

AULA 11

- Prof. André Bertoletti -

[email protected]

Banco de Dados II

Page 2: Banco de Dados II - Unimep/Pronatec - Aula 11

Agenda de hoje

Transações de Banco de Dados

Page 3: Banco de Dados II - Unimep/Pronatec - Aula 11

Transação de BD:

“tudo ou nada”

Permite manipular diversas

tabelas e/ou comandos ao

mesmo tempo, garantido a

integridade de que todo o

serviço será executado por

completo;

Page 4: Banco de Dados II - Unimep/Pronatec - Aula 11

Fluxograma de uma transação

Inicia a transação

Grava toda a transação

(COMMIT)

Desfaz toda a transação

(ROLLBACK)

Conseguiu

executar tudo

sem erros?

Sim Não

Executa comando 1

Executa comando 2

Executa comando N

Page 5: Banco de Dados II - Unimep/Pronatec - Aula 11

Propriedade ACID

Atomicidade: todas as atualizações feitas

por uma transação são efetivadas no BD ou

nenhuma delas (tudo ou nada);

Consistência: ao final de uma transação o

BD continua consistente

Isolamento: a execução de uma transação

não deve sofrer interferência de outras

transações concorrentes

Durabilidade: Após o ponto de confirmação,

as atualizações dever ser persistidas no BD.

Page 6: Banco de Dados II - Unimep/Pronatec - Aula 11

Exemplo de manipulação de diversos

comandos ao mesmo tempo

Transferir 250,00 do correntista

Jonatas Cerrado para o José da Silva

Remover 250,00 do

correntista de origem

Acrescentar 250,00

para o correntista de

destino

1

2

Page 8: Banco de Dados II - Unimep/Pronatec - Aula 11

Exemplo de manipulação de diversas

tabelas ao mesmo tempo

Incluir um novo cliente juntamente

com os seus telefones e endereços

Incluir o cliente na

tabela principal 1

Incluir dois telefones

(residencial e celular)

na tabela de telefones 2

Incluir um endereço

(principal) na tabela de

endereços 3

Page 10: Banco de Dados II - Unimep/Pronatec - Aula 11

Vamos treinar um pouco?!

Page 11: Banco de Dados II - Unimep/Pronatec - Aula 11

Exercício:

Criar um script transacional

que simule a inclusão de uma nova

venda no BDLoja, prevenindo dos

erros mais comuns

Inclui um registro na tabela

Venda contendo os dados

do cliente estabelecimento 1

Inclui um registro na tabela

VendaProduto contendo os

registros do(s) produto(s)

vendido(s). Quantidade não

pode ser menor ou igual

zero

2

Baixa o estoque do(s)

produto(s) vendido(s). Não

pode ficar com estoque

negativo

3

Inclui um novo registro na

tabela de Boleto referente

ao valor total desta venda 4

Page 12: Banco de Dados II - Unimep/Pronatec - Aula 11

Scripts completos utilizados nesta aula

disponíveis na URL abaixo:

https://github.com/apbertoletti/Pronatec-BD2

Page 13: Banco de Dados II - Unimep/Pronatec - Aula 11

Por hoje é só...

Bora estudar

e praticar!