[UFMS Digital] Banco de Dados - Módulo 3

[UFMS Digital] Banco de Dados - Módulo 3

Módulo 3: Estruturas de SGBDs Relacionais

Introdução aos Índices e Controle de Concorrência

  • O módulo aborda estruturas de SGBDs relacionais, focando em índices e controle de concorrência, com o objetivo de entender armazenamento e acesso a dados.

Estrutura do Índice

  • A estrutura do índice é comparada à busca em um livro, onde o índice facilita encontrar informações rapidamente.
  • Um índice ordenado no banco de dados permite buscas eficientes, recuperando registros rapidamente através de uma chave de pesquisa.
  • A chave de pesquisa pode ser qualquer subconjunto de campos da tabela, não necessariamente a chave primária.

Funcionamento dos Índices

  • O índice é um arquivo separado que contém uma chave de busca e um ponteiro para o registro correspondente no disco.
  • Ao consultar dados, o SGBD utiliza o índice para evitar carregar todo o conjunto de dados, melhorando a eficiência da busca.

Declaração e Tipos de Índices

  • Existem duas formas principais para declarar índices: implicitamente ao definir chaves primárias ou candidatas e explicitamente usando o comando CREATE INDEX.
  • É possível remover índices conforme necessário; os arquivos podem ser organizados sequencialmente ou em múltiplos níveis (ex.: árvores binárias).

Algoritmos e Vantagens dos Índices

  • Diferentes algoritmos como hash ou árvore são utilizados para otimizar buscas; cada tipo tem suas vantagens e desvantagens.

Transferências Financeiras e Propriedades ACID em SGBDs

Importância da Atomicidade nas Transações

  • A transferência de valores entre contas deve ser tratada como uma única transação para evitar inconsistências, caso ocorra um erro durante o processo.
  • Se a operação for dividida em duas transações distintas, pode haver falhas que resultem em valores incorretos nas contas envolvidas.
  • O processamento de transações é gerido por um módulo do SGBD que assegura acessos múltiplos de usuários de forma consistente.

Propriedades ACID

Definição e Significado

  • As propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) são fundamentais para garantir a integridade das transações em SGBDs relacionais.

Atomicidade

  • A atomicidade garante que cada transação seja executada completamente ou não seja executada. Não há execução parcial.
  • Em caso de falha durante a execução, todas as operações realizadas na transação são desfeitas para manter a consistência dos dados.

Consistência

  • A consistência assegura que se o banco de dados estiver inicialmente consistente, ele permanecerá consistente após a execução da transação.
  • O programador é responsável por garantir que as alterações feitas na transação mantenham essa consistência.

Isolamento

  • O isolamento permite que várias transações sejam executadas simultaneamente sem interferir umas nas outras. Cada uma deve operar como se fosse isolada.
  • O SGBD garante esse isolamento através do módulo de controle de concorrência.

Durabilidade

  • A durabilidade assegura que uma vez confirmada (committed), uma transação não pode ser perdida mesmo diante de falhas no sistema.

Controle de Concorrência e Problemas Associados

Importância do Controle de Concorrência

  • É crucial realizar o controle de concorrência para evitar problemas como atualizações perdidas quando duas ou mais transações acessam o mesmo item simultaneamente.

Exemplo do Problema da Atualização Perdida

Problemas de Atualização em Sistemas de Banco de Dados

Atualização Perdida e Seus Efeitos

  • A atualização perdida ocorre quando uma transação T2 sobrescreve um valor que outra transação T1 estava utilizando, resultando em dados incorretos.
  • Além da atualização perdida, existem outros problemas como leitura suja e atualização temporária, que afetam a integridade dos dados em sistemas de controle de concorrência.

Importância do Controle de Concorrência

  • O controle de concorrência é crucial para garantir a integridade das transações em bancos de dados, evitando conflitos entre operações simultâneas.
  • Embora o processamento sequencial (serial) elimine a concorrência, ele também reduz a eficiência. A concorrência permite um processamento mais ágil das transações.

Teorias e Práticas para Serealização

  • Existem várias teorias que buscam tornar planos de execução equivalentes a um plano serial, mas sua aplicação prática é desafiadora.
  • Sistemas modernos utilizam regras impostas por sistemas de controle de concorrência para garantir que os planos sejam serealizáveis durante as operações.

Técnicas para Garantir Serealização

  • Técnicas como bloqueio e deadlock são implementadas para assegurar comportamentos que garantem a serealização dos planos de execução.

Conclusão sobre Processamento Transacional

Video description

Banco de Dados Módulo 3 – SGBDs Relacionais Profa. Dra. Vanessa Borges