Buscar

4 - SBDD

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
BANCO DE DADOS DISTRIBUÍDOS
*
Roteiro - BDDs
Introdução
Definição
Promessas
Problemas
*
Surgimento dos SBDDs
*
Computação Distribuída
Conceito de definição difícil por ser amplamente (mal) utilizado
Um grupo de elementos autônomos de processamento (não necessariamente homogêneos) que estão interconectados por uma rede de computadores e que cooperam na realização de tarefas a eles atribuídas
*
O que está distribuído?
Lógica de Processamento
Funções
Dados
Controle
*
O que é um SBDD?
Base de Dados Distribuída - BDD
É uma coleção de diversas bases de dados, interligadas logicamente através de uma rede de computadores
Sistema de Gerência de Base de Dados Distribuídas - SGBDD
É o sistema de software que possibilita a gerência da base de dados distribuída e torna a distribuição transparente para o usuário
Sistema de Banco de Dados Distribuídas - SBDD
É a combinação das bases com o sistema
*
O que não é um SBDD?
Sistema de Banco de Dados que reside em um dos nós da rede de computadores
*
Principais Características de um SBDD
Dados armazenados em diversos locais (ou nós)
Processadores dos nós interconectados através de uma rede de computadores
*
Um Ambiente de SBDD
*
Aplicações
Companhias Aéreas
Redes de Lojas
Cadeias de Hotéis
Qualquer organização que possua uma estrutura descentralizada
*
Promessas de SBDDs
1) Transparência na Gerência dos Dados Distribuídos, Fragmentados e Replicados
2) Confiabilidade através de Transações Distribuídas
3) Aumento de Desempenho
4) Facilidade de Expansão
*
1) Transparência
Transparência é a separação entre a semântica de alto nível de um sistema e seus detalhes de implementação
A questão fundamental é prover Independência de dados no ambiente distribuído
Desta forma, os usuários do banco de dados enxergariam uma única imagem da base de dados logicamente integrada, embora	ela estivesse fisicamente distribuída
*
Transparência - níveis
Transparência da rede
Transparência da replicação
Transparência da fragmentação
*
Exemplo
*
Acesso Transparente
*
Base Distribuída – visão do usuário
*
SBDD - realidade 
*
2) Confiabilidade
Espera-se que os SBDDs ofereçam confiabilidade por trabalharem com componentes replicados, eliminando assim pontos únicos de falha
*
3) Potencial aumento de desempenho
Proximidade dos dados de seus pontos de uso
Execução Paralela
Paralelismo entre consultas
*
Para tirar proveito do paralelismo
Ter os dados distribuídos pelos processadores envolvidos no processamento paralelo
Como tratar atualizações?
Atualizações sobre dados replicados implica na implementação de controle de concorrência distribuído e protocolos de finalização (commit)
*
4) Expansão do Sistema
Facilidade: aumentando-se a capacidade de processamento e armazenamento da rede
Custo: custa muito menos formar um sistema usando computadores menores com capacidade equivalente a uma única máquina de grande porte
*
Fatores de complicação
Complexidade: problemas não resolvidos
Custo: replicação da forca de trabalho
Distribuição de controle: sincronização e coordenação
Segurança: problemas de segurança em uma rede de computadores
*
Principais áreas de problemas
Projeto de banco de dados distribuídos
Separação do banco de dados em fragmentos e a distribuição ótima desses fragmentos – problema NP-difícil
Processamento distribuído de consultas
Decidir um estratégia para a execução das consultas através da rede da maneira mais econômica – problema NP-difícil
*
Principais áreas de problemas
Controle distribuído da concorrência
Sincronização de acessos para que a integridade do BD seja mantida
Gerenciamento distribuído de impasses (ou Deadlocks)
Competição entre usuários pelo acesso aos dadoa
*
12 Regras de SBDD
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.
*
12 Regras de SBDD
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 (backup incremental, por exemplo).
*
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.
	• A transparência de localização pode ser alcançada pela utilização de sinônimos estendidos e pelo extenso uso do dicionário de dados.
	• A transparência de localização permite que aplicações sejam portadas de um nó da rede para outro sem a necessidade de modificações.
*
12 Regras de SBDD
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
*
12 Regras de SBDD
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.
*
12 Regras de SBDD
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.
*
12 Regras de SBDD
9. Independência de hardware: Um SGBDD deve poder operar e acessar dados em uma variedade de plataformas de hardware. Um SGBDD verdadeiro não deve depender de uma determinada
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.
*
12 Regras de SBDD
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
*
Bem, primeiramente meu nome é Pedro, esse é o Henrique e esse é o Fernando.
Nós vamos apresentar sobre Banco de dados distribuídos.
Esse é um assunto bem complexo e ainda em fase de pesquisa, por isso a nossa idéia aqui é somente dar um introdução ao assunto.
*
A apresentação está dividida basicamente em 4 partes:
Introdução
Definição
Promessas dos Bancos de Dados Distribuídos 
E ao final, seus Problemas
*
A tecnologia de sistemas de bancos de dados distribuídos é a união daquilo que consideramos duas abordagens opostas para processamento de dados: as tecnologias de sistemas de bancos de dados e redes de computadores.
*
O termo processamento distribuído
(ou computação distribuída) talvez seja o termo mais excessivamente utilizado em informática nos últimos anos. Ele foi empregado para se referir a sistemas diversos, como por exemplo: sistemas de multiprocessamento.
A definição funcional que usamos para um sistema de computação distribuída estabelece que ele consiste em diversos elementos autônomos de processamento (não necessariamente homogêneos) que estão interconectados por uma rede de computadores e que cooperam entre si na execução de uma tarefa.
*
A pergunta fundamental que precisa ser feita é: o que está sendo distribuído?
Lógica de Processamento?
Funções? Onde cada parte tem uma função especifica?
Dados?
Controle?
Do ponto de vista de sistemas de banco de dados distribuídos, esses modos de distribuição são todos necessários e importantes.
*
O que é um Sistema de Banco de Dados Distribuído?
Podemos definir um banco de dados distribuído como uma coleção de vários banco de dados logicamente inter-relacionados, distribuídos por uma rede de computadores.
Já um sistema de gerenciamento de banco de dados distribuído é definido como um sistema de software que permite o gerenciamento do banco de dados distribuídos e que torna a distribuição transparente ao usuário.
Ao fim, a expressão sistema de banco de dados distribuídos é empregada para se referir ao conjunto dos dois últimos.
*
Um sistema de banco de dados distribuído não é um sistema no qual, apesar da existência de uma rede, o banco de dados reside em apenas um nó da rede.
Nesse caso, os problemas de gerenciamento de bancos de dados não são muito diferentes dos problemas encontrados em um ambiente de banco de dados centralizado. Tendo os atrasos de transmissão como única consideração adicional.
*
Estamos interessados em um ambiente no qual os dados estão distribuídos entre vários locais (ou nós).
E esses nós são interconectados através de uma rede de computadores.
*
Como vocês pode ver nessa figura.
*
Como possíveis aplicações pode-se citar:
Companhias Aéreas
Redes de Lojas
Cadeias de Hotéis
E qualquer organização que possua uma estrutura descentralizada.
*
Nos próximos slides nós vamos ver as promessas dos banco de dados distribuídos, que são:
Transparência na Gerencia dos Dados Distribuídos, Fragmentados e Replicados
Confiabilidade através de Transações Distribuídas
Aumento de Desempenho
Facilidade de Expansão
*
A transparência se refere à separação entre a semântica de nível mais alto de um sistema e questões de implementação de nível mais baixo.
Em outras palavras, um sistema transparente “oculta” dos usuários os detalhes de implementação.
*
Existem vários níveis de transparência, sendo eles:
Transparência da rede
Transparência da replicação
Transparência da fragmentação
O objetivo de todos esses níveis é que ao final, deseja-se que não haja diferença entre aplicativos de bancos de dos que fossem executados em um banco de dados centralizado e aqueles que fossem executados em um banco de dados distribuído. Ocultando, por exemplo, a presença da rede, ou a organização dos dados, que podem estar replicados e/ou fragmentados em vários nós.
*
Para exemplificar tudo isso: considere uma empresa de engenharia com escritórios em Boston, Tókio, Paris, Nova Iorque e Montreal.
Ela desenvolve projetos em cada um desses locais e gostaria de manter um banco de dados de seus funcionários (mostrar tabela), dos projetos e de outros dados inter-relacionados (mostrar tabela ASG).
*
Dada a natureza distribuída dos negócios da empresa, é preferível, sob essas circunstâncias, localizar cada um grupo de dados de tal forma que os dados sobre os funcionários do escritório de Boston estejam armazenados em Boston, os dados sobre o escritório de Paris estejam armazenados em Paris, e assim por diante.
O mesmo se aplica ás informações sobre projetos e salários.
Desse modo, estamos engajados em um processo no qual particionamos cada uma das relações e armazenamos cada partição em um local diferente. Isso é conhecido como fragmentação.
Além disso, talvez seja preferível duplicar alguns desse dados em outros locais (mostrar: projetos de Boston também em Nova Iorque) por razoes de desempenho e confiabilidade.
O resultado é um banco de dados distribuído que é fragmentado e replicado.
O acesso totalmente transparente significa que os usuários ainda podem formular a consulta da maneira já conhecida, sem qualquer preocupação com a fragmentação, a localização ou a replicação de dados, e deixar a cargo do sistema a resolução dessas questões.
*
Para o usuário fica um visão como se fosse um banco de dados centralizado.
*
Na realidade os dados estão distribuídos pela rede.
*
Os sistemas distribuídos são planejados para melhorar a confiabilidade, pois têm componentes replicados e, portanto, eliminam pontos únicos de falha.
A falha de um único nó da rede ou a falha de um link de comunicação que torne um ou mais nós inacessíveis não é suficiente para deixar inativo o sistema inteiro
*
Um sistema gerenciador de banco de dados distribuído fragmenta o banco de dados conceitual, permitindo que os dados fiquem armazenados próximo a seus pontos de utilização.
Isso reduz os atrasos de transmissão.
O sistema distribuído também permite que seja possível explorar uma execução paralela.
Podendo executar várias consultas ao mesmo tempo, cada uma sendo executada em um nó diferente.
*
Se o acesso do usuário ao banco de dados distribuído consistisse apenas em consultas (isto é, acesso somente de leitura), então a maior parte do banco de dados deveria ser replicada.
Porém, como a maioria dos acessos ao banco de dados não é somente de leitura, a mistura de operações de leitura e atualização exige a implementação de protocolos elaborados de controle de concorrência e de finalização (commit)
*
Em um ambiente distribuído, é muito fácil acomodar tamanhos crescentes de banco de dados. Raramente, são necessárias revisões importantes do sistema. Em geral, a expansão pode ser manipulada aumentando-se a capacidade de processamento e armazenamento da rede.
Um aspecto de maior facilidade de expansão do sistema é o aspecto econômico. Normalmente, custa muito menos formar um sistema usando vários computadores menores com capacidade equivalente a uma única máquina de grande porte.
*
Agora vamos falar dos problemas relacionados ao projeto de banco de dados distribuídos.
Complexidade: os problemas de gerenciamento dos BDD são muito mais complexos que os problema de gerenciamento dos BD centralizados, pois eles incluem um novo conjunto de problemas ainda não resolvidos (como veremos em seguida).
Custo: o componente de custo mais importante é a replicação do esforço de trabalho. Quando as instalações de computadores são configuradas em diferentes locais, torna-se necessário empregar mais pessoas para manter essas instalações.
Distribuição de controle: esse ponto já foi enunciado como uma vantagem. Infelizmente, a distribuição cria problemas de sincronização e coordenação.
Segurança: um dos benefícios mais importantes dos banco de dados centralizados é o controle que eles oferecem sobre o acesso aos dados. É possível controlar a segurança com facilidade em uma localização central. No entanto, em um sistema de banco de dados distribuído, há uma rede envolvida, e essa rede é um meio que tem seus próprios requisitos de segurança. E sabemos, que existem sérios problemas para se manter uma segurança adequada sobre rede de computadores.
*
Principais áreas de problemas.
Projeto de banco de dados distribuído: separação do banco de dados em fragmentos e a distribuição ótima desses fragmentos – problema NP-difícil.
Processamento distribuído de consulta: Decidir um estratégia para a execução das consultas através da rede da maneira mais econômica – problema NP-difícil.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks):
O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.
*
Controle distribuído da concorrência: sincronização de acessos para que a integridade do BD seja mantida.
Gerenciamento distribuído de impasses (ou Deadlocks): O problema de impasses em banco de dados distribuídos é semelhante ao que encontramos em sistemas operacionais. A competição entre usuários pelo acesso a um conjunto de recursos pode resultar em um impasse, se o mecanismo de sincronização se basear em bloqueios.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais