universidade federal da paraíbA DEPARTAMENTO DE CIÊNCIAS EXATAS dISCIPLINA: BANCO DE DADOS II GUILHERME CHAGAS, DIÊGO TEIXEIRA, MARCUS VINÍCIUS, GILMAR JUNIO
banco de dados distribuídos
banco de dados distribuídos
Agenda
Conceitos e Características
Arquitetura
Consultas
Segurança
banco de dados distribuídos
Um banco de dados distribuídos é uma coleção de vários bancos de dados coerentemente inter-relacionados, distribuídos por uma rede de computadores, ou seja, o banco de dados é armazenado em diversos locais. Os locais em um sistema distribuído comunicam-se uns com os outros por intermédio de vários meios de comunicação.
conceitos e características
Requisitos para um que BD seja distribuído:
Conexões de nós de banco de dados por uma rede de computadores
Retirada de: www.tiagodemelo.info
conceitos e características
Requisitos para que um BD seja distribuído:
Inter-relação lógica dos bancos de dados conectados
Ausência de restrição de homogeneidade entre os nós conectados.
conceitos e características
Homogêneos
Heterogêneos
conceitos e características
A principal diferença entre sistemas de banco de dados centralizados e distribuídos é que no centralizado os dados estão localizados em um único lugar, enquanto que no distribuído os dados residem em diversos locais.
conceitos e características
Retirada de: www.devmedia.com.br
conceitos e características
Fragmentação: Na fragmentação de dados, uma relação é dividida em diversos fragmentos, cada fragmento é armazenado em locais diferente, esses fragmentos contém informações suficientes para reconstruir a relação original.
Replicação: Na replicação de dados, um determinado objeto de dados lógicos podem possuir diversas cópias idênticas armazenadas em locais diferentes.
COnceitos e características
Tipos de fragmentação:
Horizontal
Vertical
Mista ou Híbrida.
conceitos e características
Tipos de replicação:
Transacional
Instantânea
Síncrona
Assíncrona
Mista
Vantagens e desvantagens
Vantagens:
Confiabilidade
Disponibilidade
Desempenho
Econômico
Facilidade em expansão
Vantagens e desvantagens
Desvantagens:
Complexidade
Implantação
Segurança
Integridade
Inexperiência
Padrões
Arquitetura de sgbdd
A arquitetura de um SGBDD define a sua estrutura.
• Identifica os componentes a serem utilizados
• Atribui as funções aos componentes
• Especifica os inter-relacionamentos e interações entre esses componentes.
ARQUITETURA DE SGBDD
“Para projetar um modelo arquitetônico de um SGBDD deve-se levar em consideração três características: a autonomia de sistemas locais, sua distribuição e sua heterogeneidade”. Ozsu e Valduriez (2001)
Muitos estudos são feitos para padronização dos SGBDD, mas as mais usadas são: sistemas cliente-servidor, não hierárquicos.
arquitetura sgbdd
Autonomia
"A autonomia se refere à distribuição de controle, não de dados. Ela indica até que grau SGBDs individuais podem operar independentemente" Özsu e Valduriez (2001, p.88)
Autonomia de projeto
SGBDs individuais são livres para usar o modelo de dados e as técnicas de gerenciamentos que preferirem.
arquitetura sgbdd
Autonomia de comunicação: cada SGBD é livre para tomar sua própria decisão quanto ao tipo de informação que deseja fornecer ou ao software que controla sua execução.
Autonomia de execução: cada SGBD executa as transações do modo que desejar.
O conceito de autonomia local se resume a visão que um departamento pode controlar seus dados ,já que é o mais familiarizado com estes.
arquitetura sgbdd
DISTRIBUIÇÃO
Autonomia trata de questões sobre distribuição de controle, e a distribuição refere-se aos dados, ou seja, a distribuição física dos dados. O armazenamento de dados distribuídos possuem diversos enfoques : replicação e fragmentação de dados.
arquitetura sgbdd
SGBD HOMOGÊNEO
• Múltiplas coleções de dados
• Integra múltiplos dados e recursos.
Um SGBD homogêneo se assemelha a um banco de dados centralizado, mas ao invés disso, é distribuído através de um número de sites de uma rede.
arquitetura sgbdd
Características:
• Todos os sites têm software idêntico;
• Estão conscientes uns dos outros e cooperam no processamento dos pedidos dos utilizadores;
• Cada site aceita perder parte da sua autonomia em termos de direitos de mudança esquema e software;
• O usuário tem a impressão de um sistema único.
arquitetura sgbdd
Arquitetura de um SGBDD homogêneo
arquitetura sgbdd
SGBD Heterogêneo
• Uso de diferentes bancos de dados.
Diferentes sistemas incluindo hardware e software diferentes em sites diferentes, diferentes sistemas operacionais e diferentes protocolos.
Características:
• Sites diferentes podem usar esquemas e software diferentes.
• Inconsistência dos sites.
arquitetura sgbdd
site 1 - matriz de uma transportadora
site 2 - filial
site 3 - filial
site 4 - filial
arquitetura sgbdd
Muitos estudos são feitos para a padronização de um SGBD distribuídos, veremos duas arquiteturas mais usadas: Cliente-Servidor e a hierárquica.
Sistema Cliente-Servidor: Uma arquitetura criada na década de 90, caracterizada por fornecer uma arquitetura em dois níveis, funções de servidor e funções de cliente.
Computação Cliente - Servidor vs SGBD Cliente - Servidor:
Computação Cliente - Servidor: Trata os processos de comunicação
SGBD Cliente - Servidor: Refere-se a máquinas reais em locais diferentes.
arquitetura sgbdd
Características:
A
maior parte do gerenciamento de dados é feita pelo servidor.
O
cliente fica apenas com a interface
Comum
em sistemas-relacionais.
arquitetura sgbdd
Existem vários tipos de arquitetura cliente/servidor, porém o mais simples e mais utilizado é o caso em que existe um único servidor e vários clientes.
Temos a visão que a arquitetura de um SGBDD é a de servidor/servidor.
arquitetura sgbdd
Sistemas distribuídos hierárquicos.
A grande diferença que é que não existe distinção entre máquinas clientes e servidoras. As maquinas são compostas de um processador de usuário e de dados.
Características:
• BD projetos em top-down.
• Adm de BD em cada site.
• Controle local da administração de dados.
arquitetura sgbdd
Processador do usuário.
• Tratador de interface- responsável pela interpretação dos comandos do usuário e pela formatação de dados do resultado conforme retornam.
• Controlador de dados semânticos- Utiliza as restrições de integridade e as autorizações definidas como parte do esquema conceitual global.
• Otimizador e decompositor de consultas globais: define a estratégia para executar as consultas globais e transformá-las em locais.
• Monitor de execução distribuída: faz a coordenação da execução distribuída da solicitação do usuário.
arquitetura sgbdd
Processador de dados:
• Otimizador de consulta local: atua como seletor de caminho de acesso.
• Gerenciador de recuperação local: consistência do bd local nas falhas.
• Processador de suporte runtime: gerencia o acesso aos dados, matem os buffers de memória principal, e gerencia os buffers do banco de dados.
arquitetura sgbdd
consultas distribuídas
Além do tempo de processamento e das operações de I/O (entrada e saída), é preciso considerar alguns fatores:
- Replicação
- Fragmentação
- Custo de transmissão
- Capacidade de processamento
Consultas distribuídas
Influência da replicação:
Devemos usar as réplicas que podem ser acessadas mais rapidamente
Pode ser vantajoso criar uma réplica de uma relação em um servidor que a acessa com frequência
consultas distribuídas
Influência da fragmentação:
Se a relação foi fragmentada horizontalmente usando o valor de um atributo, podemos considerar esta informação para processar a consulta.
Podemos desconsiderar os fragmentos que sabemos que não possuem tuplas que irão satisfazer um determinado predicado
Podemos ignorar os fragmentos verticais que possuem atributos que não nos interessam
consultas distribuídas
Influência da transmissão dos dados:
Devemos evitar transmitir uma grande quantidade de dados pela rede devido ao retardo de transmissão
Influência na capacidade de processamento:
Devemos procurar executar as operações em servidores com maior poder de processamento.
Também é necessário balancear a carga dos servidores.
consultas distribuídas
Otimização de Consultas Distribuídas
O termo refere-se ao processo de produção de um plano para o processamento de uma consulta a um sistema de banco de dados distribuído. O plano é chamado de plano de execução da consulta.
consultas distribuídas
Otimização em Consultas Distribuídas
Podemos separar o processo de otimização de consultas distribuídas em duas etapas:
Otimização Global e Otimização Local
consultas distribuídas
Otimização Global: consiste em otimizar a consulta global com base em informações e estatísticas sobre os fragmentos e réplicas existentes, a decompondo em consultas locais que determinam o que será feito por cada site envolvido na consulta
Otimização Local: cada site envolvido otimiza sua consulta local com base nos dados estatísticos referentes ao esquema local e no custo dos algoritmos existentes para execução das operações.
segurança
Falhas:
Falha de comunicação entre os bancos, perda de mensagem e particionamento da rede, podendo vir a acarretar problemas na segurança e integridade dos dados.
segurança
Um dos principais benefícios de dos bancos de dados é a fiscalização sobre o acesso aos dados.
Os fragmentos de BDD devem ser seguros, e como eles não são centralizados, então seus lugares de acesso também devem ser seguros
segurança
Segurança é um fator primordial
• Manter a segurança é uma tarefa muito séria, difícil e complexa;
• Tratar questões de rede ;
• Prevenção contra problemas, dentre eles: controle de acesso, tolerância a falhas, sincronização, e manutenção da integridade dos dados.
Segurança
Técnicas de segurança
• Autenticação, proteção contra ataques, criptografia, firewalls
• Integridade, confidencialidade e disponibilidade.
segurança
Problemas de Rede
Novas tecnologias trazem consigo novas vulnerabilidades;
Novas formas de ataques são criadas;
O aumento da conectividade resulta em novas possibilidades de ataques.
Aumento de crimes digitais
A defesa é mais complexa que o ataque
Existência de ataques direcionados e oportunísticos