Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

26
Fundamentals of Database Processing Hugo Feitosa de Figueirêdo

Transcript of Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Page 1: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Fundamentals of Database Processing

Hugo Feitosa de Figueirêdo

Page 2: 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

Page 3: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Arquitetura convencional de Banco de Dados Definição SGBD Consultas Tipos de SGBD:

Centralizado; Distribuído;

Page 4: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Arquitetura convencional de Banco de Dados

Page 5: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

SGBD Distribuído

Page 6: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

SGBD Distribuído

Existem 2 categorias: Sistemas de Banco de Dados Federativos Sistemas com Múltiplos Banco de Dados

Page 7: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 8: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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.

Page 9: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 10: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 11: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 12: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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.

Page 13: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Particionamento e Distribuição do Banco de Dados

Page 14: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 15: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 16: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Flat Transactions

Mecanismo mais simples para operação de um nível Durante suas execuções elas não disparam

outra transação dependente.

Page 17: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 18: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Serialização de Transações

Anomalias de Sincronização: Perda de Consistência no Banco Acesso a dados inconsistentes Perda de Atualizações

Page 19: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Perda de Atualização

Page 20: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Recuperação Inconsistente

Page 21: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Serialização de Transações

Page 22: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 23: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 24: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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

Page 25: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

Modelos Avançados de Transação

Modelo de Transação Aninhada SAGA Transação Cooperativa Contrato Transação Flexível

Page 26: Fundamentals of Database Processing Hugo Feitosa de Figueirêdo.

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.