Banco de dados distribuídos

Slides:



Advertisements
Apresentações semelhantes
09/05/2011 Professor Leomir J. Borba- –
Advertisements

Sistemas Distribuídos
Sistemas Operacionais
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
Sistemas operacionais
Arquitetura de Sistemas Operacionais
Aula 21/09/2011 Courouris, Dollimore, cap 10
BANCO DE DADOS Transparências baseadas no capítulo 1 do livro de KORTH e SILBERCHATZ e 1 e 2 do livro de ELMASRI e NAVATHE. Juliana Amaral e Rodrigo Baroni.
Sistemas Distribuídos:Definições e Caracteristicas
Introdução a Banco de Dados
Introdução a Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Sistemas Distribuídos
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO - UFES CENTRO DE CIÊNCIAS AGRÁRIAS - CCA DISCIPLINA DE INFORMÁTICA - ENG05207 Aula 09 –a Banco de dados Profs: Dr.
Computação Distribuída
SISTEMAS DISTRIBUÍDOS
Professora: Aline Vasconcelos
Sistemas Distribuídos e Redes de Computadores
Avaliação de Desempenho Planejamento de Experimentos 2 Aula 2 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Fundamentals of Database Processing
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Questões Resolvidas - A.C.-10/08/05
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Agrupamento de Atividades ou Departamentalização
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Sistemas Operacionais de Rede
Sistema Bibliocoop Casos de Uso Pedro Sol Pegorini Henrique Sawada
Sistemas Distribuídos
Middleware e Sistemas Distribuídos
REDUNDÂNCIA POR SOFTWARE
Processamento Distribuído de Consultas
Tópicos em redes e sistemas distribuídos
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Sistemas Distribuídos
Exercícios SGBD - CESPE
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
BD Distribuído Conceitos Iniciais.
Contexto da disciplina
SGBD Distribuído Lílian Simão Oliveira.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Sistemas Distribuídos
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Introdução a Banco de Dados Aula 04
Bancos de Dados Estrutura e Funcionamento de um SGBD
Introdução O que se espera de um sistema de computação?
Sistemas Distribuídos Prof. Marcus Rodrigues
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Arquitetura P2P (Integração de Dados) Luciana Pereira Oliveira Professora: Valéria Times Professora: Valéria Times.
Introdução aos Sistemas Distribuídos Anos 50 - Sistemas Operacionais tipo Lote –Aumentar a capacidade de processamento de programas –Usuário ia ao computador.
Sistemas Distribuídos
Bancos de Dados Distribuídos
Sistemas Operacionais Aula 2 Danielle Costa
Capítulo 1 Sistemas de Banco de Dados
Estrutura de Interconexão
Programação para Internet
Sistemas Operacionais Distribuídos
Sistemas Distribuídos Nadilma Nunes Aula Inicial – Apresentação da disciplina.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Modelos de dados.
Banco de Dados Parte 1 Profa. Ana Karina Barbosa Fevereiro/2008.
Alunas: Ana Paula/ Beatriz / Gracielle / Márci Alunas: Ana Paula/ Beatriz / Gracielle / Márci a Professor Antônio.
Cluster Claudio Cavalcante. Cluster Nome dado a um sistema que relaciona dois ou mais computadores para que estes trabalhem de maneira conjunta no intuito.
Transcrição da apresentação:

Banco de dados distribuídos Fernando Governatore Henrique Sawada Pedro Sol Pegorini 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.

Roteiro - BDDs Introdução Definição Promessas Problemas 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

Sistema de Arquivos Inicialmente no modelo de processamento de dados, cada aplicativo definia e mantinha seus próprios dados.

Sistema de Banco de Dados Já com o advento dos Banco de Dados, os dados são agora definidos e administrados de forma centralizada, como vocês podem ver figura. Essa nova orientação resulta em independência de dados, por meio da qual os programas ficam imunes a mudanças na organização lógica ou física dos dados.

Motivação Estrutura organizacional Dividir para conquistar Um pergunta razoável que devemos formular nesse momento é: por que distribuir? As respostar clássicas a essa pergunta indicam que o processamento distribuído corresponde melhor à estrutura organizacional das empresas amplamente distribuídas de hoje, e que tal sistema é mais confiável. E a motivação fundamental por trás do processamento distribuído é ser capaz de resolver da melhor maneira os grandes e complexos problemas, usando uma variação da famosa regra de dividir para conquistar.

Surgimento dos SBDDs 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.

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 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.

O que está distribuído? Lógica de Processamento Funções Dados Controle 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 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 é 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.

O que não é um SBDD? Sistema de Banco de Dados que reside em um dos nós da rede de computadores 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.

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 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.

Um Ambiente de SBDD Como vocês pode ver nessa figura.

Aplicações Companhias Aéreas Redes de Lojas Cadeias de Hotéis Qualquer organização que possua uma estrutura descentralizada 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.

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 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

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 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.

Transparência - níveis Transparência da rede Transparência da replicação Transparência da fragmentaçã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.

Exemplo 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).

Acesso Transparente 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.

Base Distribuída – visão do usuário Para o usuário fica um visão como se fosse um banco de dados centralizado.

SBDD - realidade Na realidade os dados estão distribuídos pela rede.

2) Confiabilidade Espera-se que os SBDDs ofereçam confiabilidade por trabalharem com componentes replicados, eliminando assim pontos únicos de falha 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

3) Potencial aumento de desempenho Proximidade dos dados de seus pontos de uso Execução Paralela Paralelismo entre consultas 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.

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) 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)

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 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.

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 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í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. 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.

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 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.

Bibliografia utilizada Özsu, M.T. Valduriez, P. "Principles of Distributed Database Systems", Prentice Hall, 1999, 2ª edição Mattoso, M.L.Q. " Introdução a Banco de Dados Distribuídos", 2003 A bibliografia utilizada nessa apresentação foi, principalmente, o livro “Principles of Distributed Database Systems” do Önzu. Quem tiver mais interesse no assunto pode encontrar o livro na biblioteca da Engenharia Mecânica.

FIM Obrigado pela atenção Perguntas?