Guia Completo: Índices, Views, Transações (ACID) e Triggers em SGBD

Classificado em Computação

Escrito em em português com um tamanho de 8,97 KB

Sumário de Conteúdo

  1. Índices: O que são, para que servem, vantagens e desvantagens.
  2. Visões (Views): Para que servem, utilização, vantagens e desvantagens.
  3. Transações: Como as propriedades ACID auxiliam o SGBD.
  4. Triggers (Gatilhos): Qual a opção ativará o trigger do código.
  5. Permissões: Qual a opção irá ceder ou revogar as permissões da questão proposta.

Resumo ACID

As propriedades ACID garantem a integridade e confiabilidade das transações em um Banco de Dados (BD):

  • Atomicidade: Todas as operações da transação são executadas corretamente no BD ou nenhuma será.
  • Consistência: A execução de uma transação isolada preserva a consistência do banco de dados.
  • Isolamento: Cada transação não toma conhecimento de outras transações concorrentes.
  • Durabilidade: Depois da transação completar-se com sucesso, as mudanças que ela faz no banco de dados persistem.

Índices

O que são Índices?

Os registros de uma tabela podem ser acessados mais rapidamente utilizando um índice, que serve como um atalho para um registro.

Para que Servem?

Índices permitem o uso de buscas mais elaboradas e otimizadas.

Vantagens dos Índices

  • Aceleram a recuperação de registros em resposta a determinadas condições de pesquisa.
  • Oferecem caminhos de acesso secundário que fornecem meios alternativos para acessar os registros sem afetar o seu posicionamento físico no disco.
  • Possibilitam acesso eficiente a registros, com base nos campos de indexação que são utilizados para construir índices.
  • O arquivo de índice apresenta menor tamanho que o arquivo físico de dados armazenado.

Desvantagens dos Índices

  • Para cada índice criado, é gerada uma tabela adicional na memória para armazenar os valores dos índices e um apontador para o registro no disco.
  • Sempre que um registro é inserido, atualizado ou removido em uma tabela que possui um índice, essa informação deve ser atualizada na tabela e na tabela do índice. Isso se torna um problema ainda maior quando existem mais de um índice na tabela.
  • Portanto, índices demais em um banco de dados podem fazer o efeito contrário e comprometer a eficiência do sistema.

Visões (Views)

O que são Views?

Uma view é uma maneira alternativa de observação de dados de uma ou mais entidades (tabelas) que compõem uma base de dados. Pode ser considerada como uma tabela virtual ou uma consulta armazenada.

Geralmente, é recomendável que uma view seja implementada encapsulando uma instrução SELECT (busca de dados para exposição). Ela guarda os dados em uma tabela virtual, armazenando-os também em cache, pois todas as consultas ao banco, encapsuladas ou não, ao serem executadas, são armazenadas em cache. Por este motivo, pode ser mais rápido ter uma consulta armazenada em forma de view, em vez de ter que retrabalhar uma instrução.

Para que Servem?

  • Simplificar a interface com o usuário.
  • Criar um mecanismo eficiente de segurança.
  • Aumentar a eficiência do banco de dados.

Utilização das Views

A utilização pode depender do SGBD utilizado. Os principais benefícios incluem:

  • Segurança: Aumento da segurança por propiciar uma visão limitada e controlada dos dados que podem ser obtidos da base.
  • Performance: Utilização de uma consulta previamente otimizada, tornando desnecessário este processo de otimização quando a consulta for realizada.

Vantagens das Views

  • Podemos controlar o acesso de alguns usuários a dados, o que é chamado de Restrição Usuário vs. Dados.
  • É possível combinar dados de múltiplas tabelas e devolver aos usuários uma única tabela com todos os registros que ele deseja consultar, utilizando operações do tipo JOIN aninhadas à view.
  • Visualizar dados gerais e omitir detalhes, ou seja, dados agregados sem que precisemos ter acesso a detalhes de um determinado atributo.
  • Podemos economizar tempo com retrabalho. Ao invés de digitarmos operações já digitadas anteriormente, podemos armazená-las, tornando as operações mais rápidas.
  • Otimizar o tempo de acesso ao conjunto de dados.
  • É possível simplificar o gerenciamento de permissões dos usuários, para que os mesmos possam ter acesso a todas as tabelas somente através de uma view, evitando assim, possíveis alterações feitas por qualquer um que não seja o administrador do BD, que esteja usando as aplicações do BD.
  • Podemos organizar dados a serem exportados a outros aplicativos, para que possam passar por alguma análise ou simplesmente ser manipulado como uma instância do BD original. Para isso, podemos fazer um dump, que é um programa usado para fazer backups.

Desvantagens das Views

  • Performance: Se uma view é definida como complexa, usando consultas a múltiplas tabelas, até mesmo uma simples consulta à view pode tornar-se complicada, correndo o risco de tomar uma grande quantidade de tempo para ser executada.
  • Restrições de Atualização: Quando um usuário tenta atualizar tuplas de uma view, o SGBD traduz o pedido para atualizar os dados das tabelas de origem. Isso é possível para algumas views, porém outras não podem ser atualizadas.

Transações e Propriedades ACID

O que são Transações?

Uma transação é um conjunto de procedimentos que é executado em um banco de dados, e que para o usuário é visto como uma única ação. Na área de banco de dados, uma transação é uma sequência de operações em um Sistema de Gerenciamento de Banco de Dados (SGBD) que são tratadas como um bloco único e indivisível (atômico) durante uma recuperação de falhas, e também para prover isolamento entre acessos concorrentes na mesma massa de dados.

A integridade de uma transação depende de quatro propriedades, conhecidas como ACID.

Propriedades ACID Detalhadas

Atomicidade
Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso para que seja efetivada. Se, durante a transação, qualquer ação que constitui a unidade de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada e persistida no banco (commit).
Consistência
Todas as regras e restrições definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou únicos devem ser obedecidos para que uma transação possa ser completada com sucesso.
Isolamento
Cada transação funciona completamente à parte de outras transações concorrentes. Todas as operações são parte de uma transação única. O princípio é que nenhuma outra transação, operando no mesmo sistema, possa interferir no funcionamento da transação corrente (é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento (ainda em respeito à propriedade da atomicidade).
Durabilidade
Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subsequente. Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados em um repositório permanente, não sendo passíveis de falha por uma falha de hardware.

Nota: Na prática, alguns SGBDs relaxam na implementação destas propriedades buscando desempenho.

Triggers (Gatilhos)

Triggers, ou gatilhos, são recursos de programação que são executados automaticamente sempre que um evento associado ocorrer em uma tabela.

  • Quando há uma tentativa de inserir, atualizar ou excluir dados em uma tabela, e um trigger tiver sido definido para essa ação específica, ele será executado automaticamente, não podendo nunca ser ignorado.
  • Ao contrário dos procedimentos armazenados do sistema, os disparadores não podem ser chamados diretamente e não passam nem aceitam parâmetros.
  • O trigger e a instrução que o aciona são tratados como uma única transação, que poderá ser revertida em qualquer ponto do procedimento, caso ocorra um ROLLBACK.

Entradas relacionadas: