A Otimização de Consultas
Por: Rinaldo Demetrio • 20/1/2018 • Trabalho acadêmico • 903 Palavras (4 Páginas) • 177 Visualizações
Otimização de Consultas
1) Explique o conceito de Transação em SGBD.
Trata-se de uma coleção de procedimentos (leitura, adição, escrita, etc.) que são executados em um banco de dados, que aos olhos do usuário é visto como uma única ação. A integridade de uma transação depende de 4 propriedades, conhecidas como ACID(acrônimo de Atomicidade, Consistência, Isolamento e Durabilidade).
2) Descreva o processo envolvido no processamento de uma consulta. Exemplifique este processo criando uma consulta e executando os passos envolvidos em seu processamento.
Segundo Silberschatz (1999) os passos envolvidos no processamento de uma consulta são:
- Análise sintática
Select saldo
From conta
Where saldo < 2500
- Otimização
δ saldo < 2500 (π saldo (conta))
π saldo (δ saldo < 2500 (conta))
- Avaliação
π saldo ---------- saldo < 2500; use índice ---------- conta
Antes de o processamento da consulta iniciar o sistema deve efetuar a tradução para uma linguagem interna que possa ser compreendida. Assim enquanto o SQL está mais próximo da compreensão humana, o uso de álgebra relacional é mais útil na representação interna da consulta.
Antes que a tradução para a álgebra relacional ocorra, a consulta terá sua sintaxe conferida pelo analisador sintático que vai verificar se os nomes de relações, identificadores, etc., fazem parte do BD.
Na otimização da consulta será escolhido o plano de avaliação mais eficiente. Note a sugestão de um índice na árvore.
Na questão 4 acrescentei mais informações sobre a otimização de consultas, o que complementa este tópico
3) Explique o que são as propriedades ACID e dê exemplos.
De acordo com Beighley (2008) ACID:
ACID – Atomicidade - Todas as partes de uma transação devem ser completadas ou nenhuma delas será completada.
ACID – Consistência - Uma transação completa deixa o banco de dados consistente ao final da transação.
ACID – Isolamento - Cada transação deve ter uma visão constante do banco de dados sem levar em consideração qualquer outra transação.
ACID – Durabilidade - Depois da transação o banco de dados precisa salvar os dados corretamente e protegê-lo da falta de energia ou outras ameaças. Isto geralmente é gerenciado através dos registros de transações salvas em local diverso do que o banco de dados principal.
Satisfazendo: Para um pseudocódigo que envolva uma transferência simples de valor de uma conta-poupança para uma conta-corrente Guimarães (2003). A saber:
- Leia saldo da conta poupança em X;
- X := X – valor;
- Escreva X na conta-poupança;
- Leia saldo da conta-corrente em Y;
- Y := Y + valor;
- Escreva Y na conta-corrente;
Atomicidade – A seqüência de operações de 1 a 6 corresponde à intenção do cliente de transferir um determinado valor de sua conta-poupança para sua conta-corrente. Esta ação deve ser executada de forma indivisível ou atômica. Ou todas as operações sobre o BD são executadas completamente ou nenhuma delas o é. Observe que se a seqüência de operações for interrompida, após o passo 3 e antes do passo 6, o BD ficará em um estado inconsistente, resultado no desaparecimento do valor da poupança do cliente.
Consistência – A seqüência de operações vai de um estado consistente para outro.
Isolamento – Neste caso durante o processamento da transferência esta não deve afetar o resultado de outra que esteja ocorrendo simultaneamente e tampouco enxergar os resultados parciais entre si.
Durabilidade – O resultado da transação (transferência) deve ser permanente e uma vez completa o SGBD deve garantir que o novo estado do banco seja o mesmo para qualquer outra transação que vier na seqüência.
4) Qual e o significado de otimização de consulta baseada em custo?
...