Saltar para o conteúdo

Sistemas de Informação Distribuídos/Aspectos Organizacionais/OLTP - Online Transaction Processing

Fonte: Wikiversidade

OLTP - Online Transaction Processing

[editar | editar código-fonte]

Sistemas Transacionais

A execução de comandos SQL como transações é importante para assegurar a confiabilidade das operações e a consistência dos dados dos bancos. Mecanismos de OLTP (On-line Transaction Processing) asseguram aos bancos de dados individuais diversos requisitos relacionados a manutenção da consistência dos dados armazenados. Um sistema de banco de dados distribuídos necessita de mecanismos que garantam para o sistema distribuídos os mesmos requisitos de segurança assegurado pelos bancos de dados individuais.

Essa tarefa se torna mais crítica quando os dados estão, de fato, distribuídos em vários bancos. O componente chave desse processo é o global transaction monitor.

Propriedades das Transações

[editar | editar código-fonte]

As transações garantem propriedades fundamentais para manutenção da consistência dos dados denominadas ACID:

  • Atomicidade: O conjunto de operações agrupados numa transação é executado integralmente ou não é executado. O mundo externo não vê as fases intermediárias.
  • Consistência: Em caso de falha, os bancos de dados são colocados em seu estado original.
  • Isolamento: Os efeitos de uma transação devem ser transparentes para as demais transações, enquanto ela estiver sendo executada.
  • Durabilidade: Após o commit, o feito sobre os objetos alterados deverão ser permanentes (persistidos).

Implementação das Transações

[editar | editar código-fonte]

A técnica mais comumente utilizada para implementar transações é a utilização de arquivos de logs conhecidos como Writeahead. Nessa técnica cada operação a ser efetuada no banco é primeiro escrita num arquivo de log e depois efetuada

Monitores de Transação

[editar | editar código-fonte]

Os monitores de transação desacoplam a conexão dos usuários com o banco de dados

Módulo de Requisições de Transações Globais (GTR)

[editar | editar código-fonte]

Recebe as solicitações de transações distribuídas feitas pelos usuários e as deposita numa fila para processamento.

Módulo de Análise da Semântica Global

[editar | editar código-fonte]

Valida as requisições depositadas na fila para verificar erros de semântica e todos os objetos que são referenciados na transação para ver se eles existem no catálogo. se a verificação for positiva, a requisição prossegue para o próximo módulo. se houver um erro na requisição a requisição é retirada da fila e o usuário é notificado (através do GTR).

Módulo de Decomposição de Consultas Globais (QDM)

[editar | editar código-fonte]

Quebra uma consulta em subconsultas, de maneira que elas possam ser enviadas individualmente para os sites remotos onde os fragmentos das tabelas estão localizados.

Módulo de Localização de Objetos

[editar | editar código-fonte]

Substitui os nomes de campos e tabelas globais que aparecem nas subconsultas pelos nomes utilizados localmente pelos bancos locais. Adiciona informações de endereçamentos que serão utiilzadas pelo dispatcher.

Módulo de Otimização de Consultas

[editar | editar código-fonte]

Elimina as possíveis redundâncias introduzidas pela decomposição das consultas.

Módulo de Escalonamento de Transações

[editar | editar código-fonte]

Gerencia a execução de várias transações concorrentes, bloqueia os objetos envolvidos nas transações (lock) e implementa as operações de controle de transação global através de técnicas como two-phase commit (recovery).

Módulo de Encaminhamento de Transações (DISPATCHER)

[editar | editar código-fonte]

Módulo de comunicação que envia os fragmentos de consulta (subconsultas) para os sites distribuídos. Coleta as respostas vindas dos sites distribuídos e as deposita em filas, gerenciadas pelo módulo de escalonamento.

Monitores de Transação Comerciais

[editar | editar código-fonte]
  • Tuxedo

Produzido pela Unix Systems Lab (USL), adquirido pela Novell em 1993. Realiza tranparência de localização, balanceamento de carga, processamento de prioridades, etc.

  • Top End

Produzido pela NCR Corporation, com base no modelo Distributed Transaction Processing da X/Open.

  • Encina

Produzido pela empresa americana Transarc Corporation, . Baseado no X/Open e no DCE da OSF .