Post on 17-Apr-2015
Fundamentals of Database Processing
Hugo Feitosa de Figueirêdo
Sumário
Arquitetura Convencional de Banco de Dados Processamento do Banco de Dados Serialização de transações Modelos Avançados de Transação
Arquitetura convencional de Banco de Dados Definição SGBD Consultas Tipos de SGBD:
Centralizado; Distribuído;
Arquitetura convencional de Banco de Dados
SGBD Distribuído
SGBD Distribuído
Existem 2 categorias: Sistemas de Banco de Dados Federativos Sistemas com Múltiplos Banco de Dados
SGBD Distribuído
Arquitetura Federativa Sub-conjunto de servidores que são parcialmente
autônomos no gerenciamento de suas atividades. Cada membro coopera e participa com outros
servidores Pode ser:
homogêneo heterogêneo
SGBD Distribuído
Arquitetura com Múltiplos Banco de Dados Todos os servidores do sistema de banco de
dados distribuído possuem total autonomia. Cada servidor fica responsável de cooperar
ou não com outro servidor na arquitetura.
Particionamento e Distribuição do Banco de Dados Em Sistemas Distribuídos os Banco de
Dados são distribuídos de três formas: Particionado Replicado Parcialmente Replicado Totalmente
Banco de Dados Particionado
Critérios para o particionamento: A partição deve possuir a maior base de dados local. A partição deve ajudar a minimizar o custo de
comunicação de dados. A partição deve ajudar a minimizar o custo da
manutenção da consistência global. A partição deve ajudar na serialização das transações
correntes. A partição deve diminuir o custo de recuperação.
Problemas: Partição fora do ar
Replicação Parcial
Banco é particionado e um subconjunto de partições que são replicadas em mais de um servidor.
A replicação parcial possui todas as propriedades do esquema particionado
Vantagens: Provê confiabilidade e localidade. A recuperação se torna bem mais rápida.
Problemas Tempo consumido para manter a consistência global
Replicação Total
Neste esquema o banco de dados é replicado inteiramente em todos os servidores.
Vantagens: Localidade dos dados minimiza o custo de comunicação de dados durante o
processamento de uma consulta. Maior confiabilidade e disponibilidade
Problemas: Alto custo de manter a consistência global. Alto custo de armazenamento.
Particionamento e Distribuição do Banco de Dados
Processamento do Banco de Dados
Transação Mantêm a consistência Transação = < Conjunto de Restrições, Banco
de Dados, Programa de Aplicação> O conjunto de restrições pode ser
implementado de duas formas: Programando na aplicação Incluindo como parte da estrutura de
transação
Estrutura de Transação
ACID Atomicidade Consistência Isolação Durabilidade
Ações Desprotegidos ou Ação livre Protegidos ou Ação restrita
Operação com sucesso completo ou Nunca iniciada (rollback)
Ação Real
Flat Transactions
Mecanismo mais simples para operação de um nível Durante suas execuções elas não disparam
outra transação dependente.
Serialização de Transações
Concorrência e Paralelismo Operações básicas são confrontadas Execução em série
Não permite compartilhamento de dados Prejudica vazão e o tempo de resposta
Execução concorrente Não garante consistência Precisa de um controle de dados compartilhados Serialização das transações concorrentes
Serialização de Transações
Anomalias de Sincronização: Perda de Consistência no Banco Acesso a dados inconsistentes Perda de Atualizações
Perda de Atualização
Recuperação Inconsistente
Serialização de Transações
Teoria da Serialização
Critérios de Correção Para transações
Quando executada sozinha, sempre termina Quando executada sozinha, preserva a consistência do Banco
de Dados Para o sistema
Deve funcionar corretamente para qualquer conjunto de transações acessando qualquer Banco de Dados
A resposta do Sistema deve ser independente do significado das transações e dos valores dos próprios dados armazenados
Para controle de concorrência Cada transação deve eventualmente terminar Cada transação deve ser executada atomicamente, sem
interferência de outras
Teoria da Serialização
Duas operações p e q conflitam em um estado s, denotado de conflito(p,q), se: estado(estado(s,p),q ) <> estado(estado(s,q),p) retorno(s,q) <> retorno(estado(s,p),q) retorno(s,p) <> retorno(estado(s,q),p)
Duas operações que não conflitam são compatíveis e comutam.
Operações Ler(x) Escrever(x)
Ler(x) Sim Não
Escrever(x) Não Não
Grau de Isolação Grau 0
Um transação não sobrescreve dados não confirmados de outra transação. Uma transação confirma sua escrita antes de ser finalizada.
Grau 1 Uma transação não sobrescreve dados não confirmados de outra transação. Uma transação não confirma sua escrita antes de finalizar.
Grau 2 Uma transação não sobrescreve dados não confirmados de outra transação. Uma transação não confirma sua escrita antes de finalizar. Uma transação não lê dados não confirmados de outra transação
Grau 3 Uma transação não sobrescreve dados não confirmados de outra transação. Uma transação não confirma sua escrita antes de finalizar. Uma transação não lê dados não confirmados de outra transação Uma transação não lê dados não confirmados de outra transação antes deste
finalizar
Modelos Avançados de Transação
Modelo de Transação Aninhada SAGA Transação Cooperativa Contrato Transação Flexível
Referências Bibliográficas
ELMASRI, R. A. and NAVATHE, S. B. Fundamentals of Database Systems. 2nd. Addison-Wesley Longman Publishing Co., Inc. 1998.
KUMAR, V. Mobile Database Systems. Wiley-Interscience. 2006.