Banco de Dados Distribuídos - As 3
Banco de Dados Distribuídos - As 3
Banco de Dados Distribuídos - As 3
Distribuídos
Material Teórico
Utilizando Banco de Dados Distribuídos
Revisão Textual:
Prof. Me. Luciano Vieira Francisco
Utilizando Banco de Dados Distribuídos
OBJETIVO DE APRENDIZADO
• Compreender a importância dos conceitos sobre a distribuição de dados, frag-
mentação, alocação e processamento em ambientes de multiusuários, web, entre
outros aspectos;
• Demonstrar o seu compartilhamento utilizando uma estrutura de banco de dados
adequada e as diferentes situações de distribuição de dados.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.
Mantenha o foco!
Evite se distrair com
as redes sociais.
Seja original!
Nunca plagie
trabalhos.
Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e
sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Utilizando Banco de Dados Distribuídos
O uso dos dados tem funções específicas, pois um banco de dados é a parte mais importante
Explor
Figura 1
Fonte: iStock/Getty Images
8
O uso de sistemas em rede para internet ou distribuídos de natureza comercial
e, principalmente, os sistemas gerenciadores de banco de dados têm se mostrado
necessários às grandes organizações, as quais passaram a necessitar de profissio-
nais mais capacitados e que entendam de distribuição de dados para melhorar a
sua infraestrutura, com o objetivo de aprimorar a distribuição de suas informações.
Fragmentação
Segundo Özsu e Valduriez (2001), em um SGBDD, por razões de desempenho,
confiabilidade e disponibilidade, é desejável que os dados sejam distribuídos pelas
máquinas de uma rede de forma replicada.
Para que isso ocorra é usada uma técnica de fragmentação que consiste na
observação das relações existentes em um banco de dados e são divididas em
fragmentos menores, onde cada fragmento é tratado como um objeto de banco de
dados separado. Assim, cada réplica – fragmento usado como objeto – não cor-
responde à sua replicação completa, mas a uma parte ou a um subconjunto dessa
relação, exigindo menos espaço e, consequentemente, menos itens de dados a
serem administrados.
Importante! Importante!
Você percebe que agora estamos entrando em uma das características que definem o
uso da distribuição? Preste atenção, pois este momento é fundamental!
Definimos, portanto, que a fragmentação no mundo real pode ser divisão, re-
dução ou pequenos pedaços. No entanto, se aplicada ao universo tecnológico, a
fragmentação nada mais é do que a divisão em menores partes de um conjunto
9
9
UNIDADE Utilizando Banco de Dados Distribuídos
10
Para a utilização da técnica da fragmentação horizontal, podemos ter as seguin-
tes tipologias:
• Primária: executada com o uso de predicados definidos sobre a própria relação;
• Derivada: surge do particionamento de uma relação, que é resultado da defi-
nição de predicados sobre outra ligação.
Escolher a técnica mais apropriada para fragmentar cada tabela que compõe
a base de dados é, atualmente, um grande problema que possui apenas algumas
propostas de solução.
Tal técnica permite o processamento paralelo de uma relação com maior de-
sempenho e possibilita colocar os dados onde são acessados de maneira mais con-
tínua, diminuindo o peso das comunicações.
11
11
UNIDADE Utilizando Banco de Dados Distribuídos
Utilizar técnicas que envolvem a observação permite uma visão mais ampla de
toda a estrutura desenvolvida ou já finalizada. Partindo para a visão dessa análise,
temos duas estratégias que são utilizadas para a distribuição de bases de dados:
1. Ascendente: comumente aplicada sobre uma base de dados, operando
nas tarefas de modelagem e integrando as bases existentes. Este tipo de
ambiente é visto nos sistemas heterogêneos;
2. Descendente: envolve atividades básicas ao desenvolvimento de sistemas,
tais como a análise de requisitos e captura de informações, gerando um
esquema global até a implementação do projeto físico de distribuição em
projetos locais. É aconselhável para sistemas de bases de dados projetados
no início da modelagem da aplicação, pois sabe-se que é um processo
dinâmico e evolutivo, devendo ser sempre revisado a partir de histogramas
coletados no SGBDD.
Agora que conhecemos uma das técnicas que são usadas em bancos distribuí-
dos, veremos como o processo acontece de maneira que os dados e as informações
trafegam nas bases de dados existentes, assim como os seus comportamentos em
diversos sites ou nós das redes de computadores que dão suporte a essa estrutura.
Alocação
Após decidir quais são as técnicas de fragmentação a serem implementadas, de-
vemos nos preocupar com os recursos de alocação ou como realizar as alocações
de modo que o desempenho chegue a níveis satisfatórios de consulta nas bases de
dados, de acordo com os seus nós ou locais de armazenamento. Nesse sentido,
trabalharemos neste seguimento.
12
Depois de fragmentar as relações, o importante é tratar a alocação – colocar o
fragmento em um único nó – e/ou replicação – colocar o fragmento em dois ou
mais nós.
Aplicação 1
Aplicação 3
Figura 4
13
13
UNIDADE Utilizando Banco de Dados Distribuídos
A alocação envolve encontrar a ótima distribuição de dados por meio dos nós da
rede, com o objetivo de minimizar o custo das aplicações sobre os mesmos. Esse é
um aspecto crítico em um SGBDD, pois gera uma alocação ineficiente, levando a
um aumento considerável do custo de acesso ao sistema.
Distribuição
Segundo Özsu e Valduriez (2001), uma transação é um grupo de processos que
fazem transformações consistentes aos estados do sistema, ao mesmo tempo que
preservam a sua consistência.
14
seu commit – evitando aborts em cascata de processamento. Assim, ao existir
isolamento evitam-se vários problemas, por exemplo:
» Leitura suja – dirty read: a transação T1 modifica o item de dados X que é,
em seguida, lido por T2 antes de T1 terminar;
» T1 aborta;
» T2 lê um valor que nunca existiu no banco de dados;
» Leitura não repetível ou confusa – fuzzy read: T1 lê X;
» T2 modifica ou apaga X e faz commit;
» T1 tenta ler X outra vez, mas lê um valor diferente, ou não consegue encontrá-lo;
» Fantasmas: T1 procura na base de dados tuplas de acordo com um predica-
do, enquanto T2 insere novas tuplas que satisfazem esse predicado.
• Persistência: com o commit realizado, o sistema deve garantir que os resulta-
dos não desapareçam, mesmo que ocorram falhas subsequentes.
Segurança
As características fundamentais das transações, mais conhecidas por Atomicity,
Consistency, Isolation, Durability (Acid), tornaram-se realidade de acordo com os
protocolos de segurança criados para as quais, a saber, protocolos de:
1. Commit;
2. Abort ou terminação;
3. Recuperação.
Figura 5
Fonte: iStock/Getty Images
15
15
UNIDADE Utilizando Banco de Dados Distribuídos
Protocolos de Commit
Sua responsabilidade é manter segura a propriedade da atomicidade da tran-
sação em seu cumprimento, sendo que o protocolo mais conhecido e simples é o
Two-Phase Commit (2PC) – commit em duas fases.
Uma transação bloqueada não é desejável porque pode impedir que outras tran-
sações que precisem desses mesmos recursos os possam obter.
16
Protocolos de Abort ou Terminação
Ao ser percebida uma falha, estes protocolos indicam aos restantes como lidar
com o ocorrido. No caso do 2PC, se um nó participante falha e se o:
• Coordenador se encontra no estado wait, é necessário abortar a transação;
• Coordenador se encontra no estado commit ou abort, deve reenviar a mensa-
gem de commit/abort global ao nó em falha;
• Coordenador falha no estado wait, quando em recuperação, pode simples-
mente recomeçar o processo de commit;
• Participante falha no estado ready, quando em recuperação, pode perguntar
ao coordenador o que fazer quanto à subtransação interrompida.
Protocolos de Recuperação
Após resolvidas as falhas e as transações voltarem a ficar operacionais, tais
protocolos demonstram quais soluções devem ser tomadas para sincronizarem aos
nós restantes.
Controle de Concorrência
Ufa! Quantos detalhes temos que aprender e observar, mas espere que ainda
discorreremos sobre processar itens ao mesmo tempo – isso pode atrapalhar um
pouco o processo.
Avaliar, processar, verificar, tentar realizar etc., várias são as técnicas para sin-
cronizar transações concorrentes de modo a manter a consistência da base de da-
dos, enquanto ao mesmo tempo é atingido o máximo grau de concorrência.
17
17
UNIDADE Utilizando Banco de Dados Distribuídos
No 2PL existem duas fases: obtenção de locks e libertação de locks. Cada tran-
sação deve obter os locks de todos os objetos que necessitará antes de os usar. Se
um objeto já estiver locked por outra transação, todas as demais devem esperar.
Ademais, quando a transação liberta um dos locks, não pode pedir outros.
Os últimos dígitos podem ser obtidos por meio de um contador lógico ou através de
um relógio local, mas cada vez que dois nós trocam uma mensagem, os timestamps
são sincronizados. O receptor timestamp tem um valor maior do que o do emissor
– se isso não for verdade, a transação é abortada. O contador local do receptor é
avançado, realizando uma nova tentativa.
18
Processamento Distribuído de Questões
Consultar em bases distribuídas nos faz pensar em como as instruções de banco
ou SQL devem ser descritas.
Importante! Importante!
As observações citadas trazem apontamentos que podem nos levar a caminhos mais
fáceis de se resolver os inconvenientes anunciados ao longo do projeto.
19
19
UNIDADE Utilizando Banco de Dados Distribuídos
Existem diversos modelos e métodos para o trabalho com essas questões, sendo
a utilização de árvores de análise algébrica uma opção, pois são facilitadoras na ve-
rificação do processamento distribuído de questões ao apresentarem graficamente
os passos da questão. Assim, os inquéritos remotos são imediatamente localizados,
permitindo rapidez para remeter ao servidor adequado a execução do subinquérito.
20
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
CONHECENDO a técnica de fragmentação no SGBD Oracle
CONHECENDO a técnica de fragmentação no SGBD Oracle. 2015. Devmedia.
https://goo.gl/HvmiWh
Distribuição e fragmentação de bases de dados
FLORENTINO, P. V. Distribuição e fragmentação de bases de dados. SQL Magazine,
n. 16, 2007.
https://goo.gl/s9avdM
Livros
Introdução a sistemas de banco de dados
DATE, C. J. Introdução a sistemas de banco de dados. Rio de Janeiro: Elsevier, 2003.
Sistemas distribuídos – princípios e paradigmas
TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos – princípios e paradigmas.
3. ed. São Paulo: Pearson, 2009.
21
21
UNIDADE Utilizando Banco de Dados Distribuídos
Referências
BARBIERI, C. Bi2: business intelligence, modelagem & qualidade. Rio de Ja-
neiro: Elsevier, 2011.
22