Otimização de consultas
Unidade IV
1) Explique o conceito de Transação em SGBD.
R: É operação de escrita em uma tabela de um banco de dados. Executar uma instrução UPDATE é uma transação, assim como executar um DELETE ou um INSERT.
2) Descreva o processo envolvido no processamento de uma consulta. Exemplifique este processo criando uma consulta e executando os passos envolvidos em seu processamento.
R: Diferentes técnicas podem ser usadas para processar, otimizar e executar consultas de alto nível, como as consultas feitas usando SQL. Uma consulta deve ser examinada (por meio de um scanner), analisada (por meio de um parser) e validada.
Suponhamos que um banco de dados apresente as seguintes tabelas:
• Fornecedores: codfo, nomefo, cidade (150 tuplas)
• Peças: codpe, nomepe, peso (100 tuplas)
• Embarques: codfo, codpe, qtde (1000 tuplas)
Suponhamos agora que se deseja executar uma consulta que busque o nome de todos os fornecedores que fornecem a peça cujo código é “P1”. A expressão para executar a consulta pode ser: SELECT nomefo FROM fornecedores, embarques WHERE codfo = codfo and codpe = “P1”.
3) Explique o que são as propriedades ACID e de exemplos.
R: São propriedades que caracterizam uma transação segura nos bancos de dados relacionais, garantindo a confiabilidade e sucesso das operações.
• Atomicidade: Trata o trabalho como parte indivisível (atômico). Em uma transferência de valores entre contas bancárias, é necessário que, da conta origem seja retirado um valor X e na conta destino seja somado o mesmo valor X. As duas operações devem ser completadas sem que qualquer erro aconteça, caso contrário todas as alterações feitas nessa operação de transferência devem ser desfeitas;
• Consistência: A execução de uma transição deve levar o banco de dados de um estado consistente a um outro estado consistente, por exemplo, considere um banco de dados que guarde informações de clientes e que use o CPF como chave primária. Então, qualquer inserção