Banco de Dados Banco de Dados Distribuídos Fundamentos Sílvia Cristina de Matos Soares [email protected] Ambiente de Banco de Dados Centralizado 2 Abstração de Dados Visão 1 Nível de Visão Visão 2 .......... Nível Lógico Nível Físico Visão n Nível médio que descreve quais dados estão armazenados e quais os inter-relacionamentos Nível baixo que descreve como os dados estão armazenados 3 Banco de Dados Centralizado Esquema Externo Esquema Externo Nível Visão Visão p/ cada grupo usuário Facilitar desenvolvimento de aplicações Restringir acesso a dados Esquema Conceitual Nível Físico Como os dados estão armazenados Métodos de acesso Estruturas de arquivos Sistema de gerência do BD Esquema Interno Nível Lógico Independe da forma de armazenamento Conjunto de estruturas descrevendo a organização dos dados e as restrições de integridade Modelo de dados 4 Ambiente de Banco de Dados Distribuído (BDD) 5 O Que é um Sistema de Banco de Dados Distribuído (SBDD) Base de Dados Distribuída (BDD) Coleção de diversas bases de dados, interligadas logicamente por meio de uma rede de computadores Sistema de Gerência de Bases de Dados Distribuídas (SGBDD) Sistema de software que possibilita a gerência da BDD e trata da distribuição transparente para o usuário Sistema de Banco de Dados Distribuído (SBDD) SBDD = BDD + SGBDD 6 O Que é um Sistema de Banco de Dados Distribuído (SBDD) Grupo de elementos autônomos de processamento (não necessariamente homogêneos) Interconectados por uma rede de computadores Cooperam na realização de tarefas 7 O Que Está Distribuído? Lógica do processamento Funções Dados Controle 8 Principais Características de um SBDD Dados armazenados em diversos locais (nós) Processadores dos nós interconectados por meio de rde de computadores A base de dados distribuída não é uma coleção de arquivos O SGBDD possui toda a funcionalidade de um SGBD Tecnologia atual: multiprocessadores e cliente/servidor 9 O Que NÃO é um Sistema de Banco de Dados Distribuído (SBDD) Sistema de Timesharing (Tempo compartilhado) Sistema de Multiprocessamento Memória compartilhada Disco compartilhado Sistema de banco de dados que reside em um nó da rede Sistema de banco de dados centralizado 10 Ambiente de Banco de Dados Distribuído (BDD) 11 Banco de Dados Distribuídos Esquema Externo Global Esquema Externo Global Esquema Conceitual Global Esquema Conceitual Local Esquema Conceitual Local Esquema Interno Local Esquema Interno Local 12 Banco de Dados Local Esquema Externo Local Esquema Externo Global Esquema Conceitual Local Esquema Interno Local 13 Projeto de Banco de Dados Distribuídos Esquema Externo Global Esquema Externo Global Esquema Conceitual Global Projeto semelhante ao BD Centralizado Esquema Conceitual Local Esquema Conceitual Local Projeto dos esquemas conceituais locais Esquema Interno Local Esquema Interno Local Projeto semelhante ao BD Centralizado Considerar a carga imposta por acessos remotos aos dados locais 14 Projeto de Banco de Dados Distribuídos Projeto dos esquemas conceituais locais Reflete Estratégia de distribuição do banco Particionamento Replicação 15 Estratégia de distribuição do banco Seja D uma estrutura (lógica) de dados do esquema conceitual global Esquema conceitual global FORNECEDORES (NUMERO, NOME, SEDE) PECAS (CODIGO, NOME, COR, PESO) FORNECIMENTO (NUMERO, CODIGO, QUANTIDADE) Esquema externo global A Esquema de relação: FORN_PECA (NUMERO, CODIGO, NOME) Definição: FORN_PECA = (FORNECIMENTO * PECAS) (NUMERO, CODIGO, NOME) Esquema externo global B Esquema de relação: FORN_PECA (NUMERO, CODIGO) Definição: FORN_PECA = FORNECIMENTO (NUMERO, CODIGO) 16 Estratégia de distribuição do banco Esquemas conceituais locais Primeiro nó: FORNECEDORES1 (NUMERO, NOME, SEDE) PECAS1 (CODIGO, NOME) FORNECIMENTO1 (NUMERO, CODIGO, QUANTIDADE) Segundo nó: FORNECEDORES2 (NUMERO, NOME, SEDE) PECAS2 (CODIGO, COR, PESO) FORNECIMENTO2 (NUMERO, CODIGO, QUANTIDADE) Mapeamentos definindo o critério de distribuição Primeiro nó: FORNECEDORES1 = FORNECEDORES (SEDE = ‘PASSA TRES’) PECAS1 = PECAS (CODIGO, NOME) FORNECIMENTO1 = FORNECIMENTO * (FORNECEDORES1 (NUMERO)) Segundo nó: FORNECEDORES2 = FORNECEDORES (SEDE ≠ ‘PASSA TRES’) PECAS2 = PECAS (CODIGO, COR, PESO) FORNECIMENTO2 = FORNECIMENTO * (FORNECEDORES2 (NUMERO)) 17 Estratégia de distribuição do banco Particionamento Seja D uma estrutura (lógica) de dados do esquema conceitual global Particionamento Vertical D é mapeada em duas ou mais estruturas (lógicas) de dados que não são idênticas a D e que pertencem a diferentes esquemas conceituais locais PECAS foi particionada em PECAS1 e PECAS2 18 Estratégia de distribuição do banco Particionamento Seja D uma estrutura (lógica) de dados do esquema conceitual global Particionamento Horizontal (ou por ocorrência) D é mapeada em estruturas idênticas a D e que pertencem a dois ou mais esquemas conceituais locais de tal forma que o mapeamento define um particionamento do conjunto de dados associados a D FORNECEDORES foi particionada em FORNECEDORES1 e FORNECEDORES2 19 Estratégia de distribuição do banco Replicação Replicação D é replicada quando D é mapeada em duas ou mais estruturas (lógicas) de dados idênticas a D e que pertencem a diferentes esquemas conceituais locais de tal forma que o mapeamento de D em cada uma destas estruturas é sempre a identidade. Existirão cópias idênticas do conjunto de dados associado a D armazenadas em dois ou mais nós. 20 Estratégia de distribuição do banco Replicação Replicação Total Cada banco de dados local contém uma cópia completa do banco Replicação Parcial Cada banco de dados local contém uma cópia de parte do banco 21 Estratégia de distribuição do banco Resumo % de Exceções Tamanho do Arquivo Método de distribuição ---- Pequeno Replicação Pequena Grande Particionamento Alta Grande Centralizado 22 12 Regras para SGBDD 1. Autonomia local: Cada nó participante de um sistema distribuído deve ser independente dos outros nós. Cada nó deve prover mecanismos de segurança, bloqueio, acesso, integridade e recuperação após falha. 2. Não dependência de um nó central: Um sistema de banco de dados distribuído não deve depender de um nó central, pois isso acarretaria um único ponto de falha, afetando todos os outros nós. Um nó central também poderia ficar sobrecarregado resultando em perda de desempenho do sistema 3. Operação contínua: Um sistema de banco de dados distribuído nunca deve precisar ser desativado. As operações de backup e recuperação devem ser suportadas on-line. Essas operações devem ainda ser rápidas o bastante para não afetarem o funcionamento do sistema 23 12 Regras para SGBDD 4. Transparência/independência de localização: Os usuários do sistema não devem precisar saber o local onde estão localizados os dados; devem se comportar como se os dados estivessem armazenados localmente. 5. Independência de fragmentação: As tabelas que fazem parte de um sistema de banco de dados distribuído podem estar divididas em fragmentos, localizados fisicamente em diferentes nós, de forma transparente para o usuário. 6. Independência de replicação: Dados podem estar replicados em vários nós da rede, de forma transparente. As réplicas de dados devem ser mantidas sincronizadas automaticamente pelo SGBDD 24 12 Regras para SGBDD 7. Processamento de consultas distribuído: O desempenho de uma consulta deve ser independente do local onde a mesma é submetida. Um SGBDD deve possuir um otimizador capaz de selecionar não apenas o melhor caminho para o acesso a um determinado nó da rede, mas também otimizar o desempenho de uma consulta distribuída, levando em conta a localização dos dados, utilização de CPU, I/O e o tráfego na rede. 8. Gerenciamento de transações distribuídas: Um SGBDD deve suportar transações atômicas. As propriedades ACID (Atomicidade, Consistência, Independência e Durabilidade) das transações e a serialização devem ser suportadas não apenas para transações locais, mas para transações distribuídas também. 9. Independência de hardware: Um SGBDD deve poder operar e acessar dados em uma variedade de plataformas de hardware. 25 12 Regras para SGBDD 10.Independência de sistema operacional: Um SGBDD deve poder executar em sistemas operacionais diferentes. Assim como na regra anterior, um SGBDD não deve depender de um sistema operacional em especial. 11.Independência de rede: Um SGBDD deve ser projetado para executar independentemente do protocolo de comunicação e da topologia de rede usada para interligar os vários nós que fazem parte da rede. 12.Independência de SGBD: Um SGBDD ideal deve possuir capacidades para se comunicar com outros sistemas de gerenciamento de banco de dados executando em nós diferentes, mesmo se estes sistemas de bancos de dados são diferentes (heterogêneos). Todos estes sistemas devem usar APIs 26