UNDB
BANCO DE DADOS II
Prof. Alessandro Gonçalves
[email protected]
1
2
Integridade x confiabilidade
Update tbContas set SALDO = 1000 where Cliente = 1;
Select SALDO from tbContas where Cliente = 1;
Resultado:
Saldo
1000.00
3
Integridade x confiabilidade
Integridade física (hardware)
Integridade de regra de negócios
Integridade relacional
4
Integridade x confiabilidade
Integridade física (hardware)
- Problemas de disco, memória, portas,
cabos…
5
Integridade x confiabilidade
Integridade de negócio
Create table tbprofessor
(Codprofessor integer,
Nomeprofessor varchar(50) not null,
Apelido varchar(50) unique,
Sexo varchar(1) check (‘M’,’F’),
Primarykey Codprofessor);
6
Integridade x confiabilidade
Integridade relacional
Create table tbdisciplinas
(Coddisciplina integer,
Nomedisciplina varchar(50) not null,
Codprofessor integer not null,
Primary key coddisciplina,
Foreign
key
(coddprofessor)
tbprofessor.codprofessor
references
on delete restrict
on update cascade
7
Integridade x confiabilidade
O operador queria lançar um novo SALDO DE R$ 1.000,00
8
Transação
O problema da conta bancária
Select Saldo from tbContas where Cliente = 1
Update tbContas set Saldo = Saldo – 50 where Cliente = 1
?
Select Saldo from tbContas where Cliente = 2
Update tbConta set Saldo = Saldo + 50 where Cliente = 2
9
Transação
Coleção de operações, executado como uma só
operação
Executa tudo ou nada
Begin transaction
Comando 1
Comando 2…
Commit
10
Transação
A
-
Atomicidade
C
-
Consistência
I
-
Isolamento
D
-
Durabilidade
11
Estados da Transação
Parcialmente
confirmada
Confirmada
Ativa
Falha
Abortada
12
Implantação de atomicidade
e durabilidade
Visando garantir a consistência do banco de
dados
Técnica Cópia de sombra
13
Cópia de sombra - pressupostos
1) Uma transação ativa por vez
2) Banco de dados está gravado em um único arquivo
14
Cópia de sombra
DBPointer
Banco de dados
DBPointer
T
R
A
N
S
A
Ç
Ã
O
Banco de dados
antigo
Nova cópia do BD
15
Cópia de sombra - algoritmo
1) Recebe pedido de transação
2) Copia todo o banco de dados para um novo BD
3) Deixa a cópia de sombra intocável
4) Se a transação for concluída, aguarda confirmação
do S.O. de que todas as páginas foram gravadas ok.
5) Depois que o S.O. Confirma, o db pointer aponta
para a nova cópia
6) Cópia antiga é excluída
16
Cópia de sombra – falha de
transação/sistema
O que fazer ?
Desprezar a nova cópia do banco
Continuar apontando o DB Pointer para o antigo
17
Cópia de sombra – exemplo
Editor de texto
1) Cria um novo arquivo temporário
2) Executa as alterações neste arquivo
3) Ao gravar, renomeia o arquivo temporário->real
3.1) Apaga o arquivo antigo
18
Cópia de sombra –
vantagens/desvantagens
Simples de implantar
Lento
Não permite simultaneidade
19
Execuções simultâneas de
transações
Geram problemas ?
Por que usar ?
20
Execuções simultâneas de
transações
Melhor throughput e utilização de recursos
21
Execuções simultâneas de
transações
Tempo de espera reduzido
22
Execuções simultâneas de
transações
Esquemas de controle de concorrência
T1
read(A);
A := A -50;
Write (A);
Read (B);
B := B + 50;
Write (B);
T2
read(A);
Temp := A*0.1
A := A – temp;
Write (A);
Read (B);
B := B + temp;
Write (B);
23
Execuções simultâneas
T1
read(A);
A := A -50;
Write (A);
Read (B);
B := B + 50;
Write (B);
T2
read(A);
Temp := A*0.1
A := A – temp;
Write (A);
Read (B);
B := B + temp;
Write (B);
24
Execuções simultâneas
T2
T1
read(A);
A := A -50;
Write (A);
Read (B);
B := B + 50;
Write (B);
read(A);
Temp := A*0.1
A := A – temp;
Write (A);
Read (B);
B := B + temp;
Write (B);
25
Execuções simultâneas
T1
T2
read(A);
A := A -50;
Write (A);
read(A);
temp := A*0.1
A := A – temp;
Write (A);
Read (B);
B := B + 50;
Write (B);
Read (B);
B := B + temp;
Write (B);
26
Execuções simultâneas
T1
T2
read(A);
A := A -50;
read(A);
temp := A*0.1
A := A – temp;
Write (A);
Read (B);
Write (A);
Read (B);
B := B + 50;
Write (B);
B := B + temp;
Write (B);
27
Seriação
Como garantir a ordem correta de execução nos
schedules ?
28
RESUMO
Cópia de sombra – atomicidade/durabilidade
Vantagens e desvantagens
Execuções simultâneas de transações
Melhor utilização de recursos
O problema do schedule
29
UNDB
BANCO DE DADOS II
Prof. Alessandro Gonçalves
[email protected]
30
Download

Banco de Dados II – aulas bloco 1