O documento discute os 12 objetivos de bancos de dados distribuídos, incluindo a autonomia local, a não dependência de um banco central, e a operação contínua. Ele também cobre a independência de localização, fragmentação, replicação e hardware, além do gerenciamento de transações distribuídas e da independência de sistemas operacionais e redes.
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
12 objetivos de banco de dados distribuídos
1. Os 12 objetivos de
Banco de Dados
Distribuídos
Por: Bruno Felipe
brunofelipefr@gmail.com
2. Este material foi elaborado a partir dos 12 objetivos mostrados
por C.J Date em seu livro Introdução a Sistemas de Banco de
Dados (An Introduction to Database Systens).
O propósito deste material é voltado principalmente as
questões sobre banco de dados distribuídos existentes nos
concursos para administrador de banco de dados realizados no
Brasil.
3. Introdução
Normalmente as empresas hoje estão distribuídas em setores e
fisicamente, precisamos de uma maneira de consolidar os dados
existentes nestas empresas e seus determinados setores. Como temos as
redes de comunicações para interligar computadores entre si em
distancias geográficas, podemos tirar proveito das mesmas para
interconectar nossos banco de dados e assim fazer fluir mais facilmente
nossos dados.
Para atingir essa eficiência é preciso muita disciplina na construção
desses bancos de dados distribuídos, até mesmo as vezes não podemos
colocar em prática todos os 12 objetivos dito por Date pois, depende muito
do tipo de usuário e suas necessidades. Contudo esses conhecimentos
são importantes para uma compreensão da tecnologia distribuída.
4.
5. Os 12 objetivos
1. Autonomia local:
Os bancos de dados em um sistema devem ser autônomos. Essa
autonomia local significa que nenhum BD conectado a outro precisa do
mesmo para funcionar ou executar qualquer tarefa ou seja um BD X não
precisa de um BD Y para realizar qualquer função. De outra maneira se o
BD Y estiver inoperante consequentemente o BD Y não irá realizar suas
tarefas bem sucedidas.
6. Os 12 objetivos
2. Não dependência de um BD central:
Como dito anteriormente nenhum BD precisa de outro BD para realizar suas
funções. Em várias redes de comunicação existe uma máquina especial
para servir outras máquinas com n recursos, essas máquinas são
chamadas servidores. No que diz respeito a BD distribuídos não
desejaríamos essa arquitetura(uma figura central) pois todos os outros Bds
iriam necessitar deste e se o mesmo vier a falhar os outros não irão
funcionar corretamente.
Então se o primeiro objetivo é realizado este segundo vem sem esforços.
7. Os 12 objetivos
3. Operação contínua:
As principais vantagens de um sistema distribuído é que devem oferecer
confiabilidade e disponibilidade:
Confiabilidade → É a probabilidade de confiança transmitida por um
sistema de ficar operante sem queda a qualquer momento dado. A
confiabilidade é maior principalmente em sistemas distribuídos pois, eles
não operam da maneira tudo ou nada eles podem continuar a funcionar(em
menor desemprenho) mesmo diante da falha de um componente individual.
Disponibilidade → É a probabilidade de um sistema estar pronto e
funcionando continuamente sem quedas durante um período especificado.
Assim como a confiabilidade, a disponibilidade é melhor atendida e
sistemas distribuídos principalmente pela replicação de dados.
8. Os 12 objetivos
4. Independência de localização:
A ideia básica da independência de localização(ou transparência) é, os
usuários não devem ser obrigados a saber onde estão fisicamente
armazenados os dados isto deve ser transparente para ele. Os usuários
devem se comportar como se todos os dados estivessem no BD que ele
esta acessando, pelo menos de um ponto de vista lógico. Este recurso é
bem vindo porque simplifica os programas de aplicação e as atividades de
usuários finais ou seja permite que dados sejam migrados de um BD para
outro sem invalidar qualquer um desses programas ou atividades.
9. Os 12 objetivos
5. Independência de fragmentação:
Uma fragmentação é uma determinada relação(tabela) pode ser dividida em
pequenos fragmentos para fins de armazenamento físico e os fragmentos
distintos podem ser armazenados em BDs diferentes . Podemos necessitar
da fragmentação principalmente por questões de desempenho: os dados
podem ser divididos e guardados em BDs que são mais utilizados para
melhorar o desempenho da rede de comunicação.
10. 5. Independência de fragmentação:
Então como na independência de localização a independência de
fragmentação deve proporcionar para o usuário uma divisão de dados de
forma transparente sem o usuário estar ciente que os dados estão sendo
fragmentados. Isto é desejável porque simplifica programas do usuário e
atividades de terminal, permite que dados sejam refragmentados a qualquer
momento em repostas a qualquer mudança nas exigências de desempenho.
11. Os 12 objetivos
6. Independência de replicação:
Um sistema admiti replicação, se uma determinada relação ou parte dela
pode ser representada por muitas cópias ou réplicas distintas armazenadas
em diferentes lugares.
12. 6. Independência de replicação:
Existem dois motivos principais para a replicação: desempenho, pois os
sistemas podem operar em réplicas locais ao invés de ir buscar dados em
máquinas remotas e disponibilidade, sempre que houver um mínimo
disponível de réplica esse sistema estará sempre disponível para eventuais
consultas.
Mais uma vez para realizar a independência de replicação deve-se
proporcionar para o usuário de forma transparente uma replicação de dados
sem o usuário estar ciente que os dados estão sendo replicados. Isto é
desejável porque simplifica os programas de aplicações e as atividades do
usuário final, permitindo assim a criação e destruição de réplicas em qualquer
momento em repostas a mudanças de requisitos, sem invalidar nenhum
desses programas ou atividades.
13. Os 12 objetivos
7. Processamento de consultas distribuído:
Este objetivo diz que a otimização é crucial em sistemas distribuídos onde o
menor tempo para uma tarefa ser executada com sucesso atinge um bom
processamento de consultas distribuídas. Se um sistema for
completamente relacional as requisições podem ser otimizadas enquanto
que em um modelo não relacional isto não é possível.
14. Os 12 objetivos
8. Gerenciamento de transações distribuídas:
Existem dois aspectos que precisam ser bem tratados em um sistema
distribuído em relação a transações: concorrência e recuperação. Para
explicar esse tratamento irá ser introduzido um termo chamado agente. Em
um sistema distribuído, uma única transação pode envolver código de
diversos BDs em particular pode envolver atualizações em diversos BDs.
Dizemos então que cada atualização consistem em vários agentes, onde
um agente é um processo executado em favor a uma determinada
transação em um BD específico. E o sistema deve saber quando dois
agente fazem partes de uma mesma transação para evitar
impasse(deadlock) entre eles.
Na parte de recuperação, em um ambiente distribuído para garantir que
uma transação é atômica(tudo ou nada), o sistema deve assegurar um
commit em uníssono ou o rollback em uníssono. Então todas as
atualizações devem ser feitas no exato momento ou desfeitas no mesmo.
Sobre o controle da concorrência a maioria dos sistemas distribuídos o
implementa através de bloqueios, exatamente como em um sistema não
distribuído.
15. Os 12 objetivos
9. Independência de Hardware:
Atualmente existe diversas arquiteturas de hardware de computadores,
máquinas IBM, HP, PC, Mac... e existe uma necessidade de integrar esses
dados em diferentes tipos de máquinas e mostrar ao usuário uma visão de
um único sistema. É desejável poder executar o mesmo SGBD em
diferentes plataformas de hardware e ter todas as máquinas diferentes
atuando como parceiras em um sistema distribuído.
16. Os 12 objetivos
10. Independência de sistema operacional:
Assim como o objetivo anterior, temos que manter os mesmos SGBDs
trabalhando bem nos SO diversos: Unix, Windows, OS/390. E fazer esses
diferente SGBDs trabalharem em parceria em um sistema distribuído com
diferentes tipos de sistemas operacionais.
17. Os 12 objetivos
11. Independência da rede:
Se um sistema deve admitir diferentes tipos de hardware e sistemas
operacionais é indispensável admitir diferentes tipos de redes de
comunicações. Ex: token ring. Ethernet, peer-to-peer...
18. Os 12 objetivos
12. Independência de SGBD:
É desejável que diferentes sistemas atinjam um bom nível de
heterogeneidade admitindo assim diferentes SGBD ou instancias. Posso
ter uma determinada máquina com Oracle outra com MySQL outra com
Ingres e assim por diante. Trabalhando como parceiras em um sistema
distribuído até mesmo usando middlewares para quebrar as diferenças do
SQL impostas pelos diferentes SGBDs.
19. Bibliografia:
C.J. Date – Introdução a Sistemas de Banco de Dados(An Introduction to
Database Systens) cap 21.