Buscar

BANCO DE DADOS II unidade04

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
1 
UNIDADE 4 – TÓPICOS AVANÇADOS SOBRE SGBD 
MÓDULO 1 – SEGURANÇA DE BANCO DE DADOS 
01 
1 - INTRODUÇÃO A QUESTÕES DE SEGURANÇA DE BANCO DE DADOS 
Em nossa matéria, já tratamos sobre dispositivos para backup e técnicas gerais de recuperação de 
falhas. Nesta etapa do estudo, trataremos de conceitos avançados, como segurança de dados (que será 
tratado a seguir), Bancos de dados distribuídos, mineração de dados e bancos de dados OLAP. 
A segurança do banco de dados é uma área extensa, que tenta resolver muitos problemas, incluindo os 
seguintes: 
 Diversas questões legais e éticas com relação ao direito de acessar certas informações — por 
exemplo, algumas informações podem ser consideradas particulares e não serem acessadas 
legalmente por organizações ou pessoas não autorizadas. Existem várias leis que controlam a 
privacidade da informação, como, por exemplo, o sigilo bancário que impede que outros 
tenham acessos aos seus dados bancários. 
 Questões políticas em nível governamental, institucional ou corporativo quanto aos tipos de 
informações que não devem se tornar públicas. Por exemplo, classificações de crédito e 
registros médicos pessoais. 
 Questões relacionadas ao sistema, como os níveis de sistema em que várias funções de 
segurança devem ser impostas. Por exemplo, se uma função de segurança deve ser tratada 
no nível de hardware físico, no nível do sistema operacional ou no nível do SGBD. 
 A necessidade, em algumas organizações, de identificar vários níveis de segurança e 
categorizar os dados e usuários com base nessas classificações. Por exemplo, altamente 
secreta, secreta, confidencial e não classificada. A política de segurança da organização com 
relação a permitir o acesso a várias classificações dos dados deve ser imposta. 
 
Neste módulo veremos como o SGBD pode atuar para fornecer a segurança adequada às informações. 
02 
1.1 - Ameaças aos bancos de dados 
As ameaças aos bancos de dados podem resultar na perda ou degradação de alguns ou de todos os 
objetivos de segurança comumente aceitos: integridade, disponibilidade e confiabilidade: 
 Perda de integridade. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
2 
 Perda de disponibilidade. 
 Perda de confidencialidade. 
Para proteger os bancos de dados contra esses tipos de ameaças, é comum implementar quatro tipos de 
medidas de controle: 
a) controle de acesso, 
b) controle de inferência, 
c) controle de fluxo e 
d) criptografia. 
 
Essas medidas de controle serão tratadas adiante. 
Perda de integridade 
A integridade do banco de dados refere-se ao requisito de que a informação seja protegida contra 
modificação imprópria (direito de modificar a informação). A modificação de dados inclui criação, 
inserção, atualização, mudança do status dos dados e exclusão. A integridade é perdida se mudanças 
não autorizadas forem feitas nos dados por atos intencionais ou acidentais. Se a perda da integridade 
do sistema ou dos dados não for corrigida, o uso continuado do sistema contaminado ou de dados 
adulterados poderia resultar em decisões imprecisas, fraudulentas ou errôneas. 
 
Perda de disponibilidade 
A disponibilidade do banco de dados refere-se a tornar os objetos disponíveis a um usuário humano 
ou a um programa ao qual eles têm um direito legítimo (direito de leitura e modificação). Isso pode 
acontecer, por exemplo, como resultado de uma falha de segurança, em que um hacker consegue 
derrubar o serviço de banco de dados, tornando-o indisponível. 
 
Perda de confidencialidade 
A confidencialidade do banco de dados refere-se à proteção dos dados contra acesso não autorizado 
(direito de acesso). O impacto do acesso não autorizado de informações confidenciais pode variar 
desde a violação de leis de sigilo até o comprometimento da segurança nacional. Esse acesso ou 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
3 
exposição não autorizados de dados poderia resultar em perda de confiança pública, 
constrangimento ou ação legal contra a organização. 
 
03 
Em um sistema de banco de dados multiusuário, o SGBD precisa oferecer técnicas para permitir que 
certos usuários ou grupos de usuários acessem partes selecionadas de um banco de dados sem que 
obtenham acesso ao restante dele. Isso é particularmente importante quando um grande banco de 
dados integrado precisa ser usado por diversos usuários diferentes dentro da mesma organização. Por 
exemplo, informações confidenciais, como salários de funcionários ou análises de desempenho, devem 
ser mantidas confidenciais para a maioria dos usuários do sistema de banco de dados. 
Um SGBD normalmente inclui um subsistema de segurança e autorização do banco de dados que é 
responsável por garantir a segurança de partes de um banco de dados contra acesso não autorizado. 
Agora, é comum referir-se a dois tipos de mecanismos de segurança de banco de dados: 
 Mecanismos de segurança discricionários. 
Estes são usados para conceder privilégios aos usuários, incluindo a capacidade de acessar arquivos 
de dados, registros ou campos específicos em um modo especificado (como leitura, inserção, 
exclusão ou atualização). 
 
 Mecanismos de segurança obrigatórios. 
Estes são usados para impor a segurança multinível pela classificação de dados e usuários em várias 
classes (ou níveis) de segurança e, depois, pela implementação da política de segurança apropriada 
da organização. Por exemplo, uma política de segurança típica é permitir que os usuários em certo 
nível de classificação (ou liberação) vejam apenas os itens de dados classificados no próprio nível de 
classificação (ou inferior) do usuário. Uma extensão disso é a segurança baseada em papéis, que 
impõe políticas e privilégios com base no conceito de papéis organizacionais. 
 
Esses mecanismos serão detalhados mais à frente. 
04 
1.2 - Medidas de controle 
Como dissemos antes, quatro medidas de controle principais são usadas para fornecer segurança aos 
bancos de dados: 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
4 
 Controle de acesso. 
 Controle de inferência. 
 Controle de fluxo. 
 Criptografia de dados. 
 
 Controle de acesso 
Um problema de segurança comum aos sistemas de computação é o de impedir que pessoas não 
autorizadas acessem o próprio sistema, seja para obter informações ou para fazer mudanças maliciosas 
em uma parte do banco de dados. O mecanismo de segurança de um SGBD precisa incluir provisões 
para restringir o acesso ao sistema de banco de dados como um todo. Essa função, chamada controle de 
acesso, é tratada criando-se contas do usuário e senhas para controlar o processo de login pelo SGBD. 
 Controle de inferência 
Bancos de dados estatísticos são usados para fornecer informações estatísticas ou resumos dos valores 
com base em diversos critérios. Por exemplo, um banco de dados para estatísticas de população pode 
oferecer estatísticas com base em faixas etárias, níveis de renda, tamanho de residência, níveis de 
educação e outros critérios. Os usuários de banco de dados estatísticos, como os estatísticos do governo 
ou empresas de pesquisa de mercado, têm permissão para acessar o banco de dados e recuperar 
informações estatísticas sobre uma população, mas não para acessar informações confidenciais 
detalhadas sobre indivíduos específicos. A segurança para os bancos de dados estatísticos deve garantir 
que informações sobre os indivíduos não possam ser acessadas. Às vezes, é possível deduzir certos fatos 
com relação aos indivíduos baseando-se em consultas que envolvem apenas estatísticas de resumo 
sobre grupos; consequentemente, isso também nãodeve ser permitido. As medidas de controle 
correspondentes são chamadas de medidas de controle de inferência. 
05 
 Controle de fluxo 
Outra questão de segurança é a do controle de fluxo, que impede que informações fluam de modo que 
alcancem usuários não autorizados. Os canais que são percursos para as informações fluírem 
implicitamente em caminhos que violam a política de segurança de uma organização são chamados de 
canais secretos. 
 Criptografia de dados 
Uma medida de controle final é a criptografia de dados, que é utilizada para proteger dados 
confidenciais (como números de cartão de crédito e senhas) que são transmitidos por meio de algum 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
5 
tipo de rede de comunicação. A criptografia também pode ser usada para oferecer proteção adicional 
para partes confidenciais de um banco de dados. Os dados são codificados usando algum algoritmo de 
codificação. Um usuário não autorizado que acessa dados codificados terá dificuldade para decifrá-los, 
mas os usuários autorizados recebem algoritmos de codificação ou decodificação (ou chaves) para 
decifrar os dados. 
Técnicas de criptografia que são muito difíceis de decodificar sem uma chave foram desenvolvidas 
para aplicações militares. As técnicas mais populares utilizam criptografia de chave pública, que é 
bastante usada para dar suporte a transações baseadas na Web em relação a bancos de dados, e 
assinaturas digitais, que são utilizadas em comunicações pessoais. 
 
Uma discussão abrangente da segurança nos sistemas de computação e bancos de dados está fora do 
escopo desta disciplina. Você verá apenas uma rápida visão geral das técnicas de segurança de banco de 
dados aqui. 
06 
1.3 - Segurança de banco de dados e o DBA 
Como já se sabe, o administrador do banco de dados (DBA) é a autoridade central para gerenciar um 
sistema de banco de dados. As responsabilidades do DBA incluem conceder privilégios aos usuários que 
precisam usar o sistema e classificar os usuários e dados de acordo com a política da organização. 
O DBA tem uma conta de DBA no SGBD, também conhecida como conta do sistema ou conta de 
superusuário, que oferece capacidades poderosas que não estão disponíveis às contas e usuários 
comuns do banco de dados. Os comandos privilegiados do DBA incluem aqueles para conceder e 
revogar privilégios a contas, usuários ou grupos de usuários individuais e para realizar os seguintes tipos 
de ações: 
1) Criação de conta. 
2) Concessão de privilégio. 
3) Revogação de privilégio. 
4) Atribuição de nível de segurança. 
 
O DBA é responsável pela segurança geral do sistema de banco de dados. A primeira ação da lista acima 
é usada para controlar o acesso ao SGBD como um todo, enquanto as ações 2 e 3 são utilizadas para 
controlar a autorização de banco de dados discricionária, e a ação 4, para controlar a autorização 
obrigatória. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
6 
Criação de conta 
Essa ação cria uma conta e senha para um usuário ou grupo de usuários para permitir acesso ao 
SGBD. 
 
Concessão de privilégio 
Essa ação permite que o DBA conceda certos privilégios a determinadas contas. 
 
Revogação de privilégio 
Essa ação permite que o DBA revogue (cancele) alguns privilégios que foram dados anteriormente a 
certas contas. 
 
Atribuição de nível de segurança 
Essa ação consiste em atribuir contas do usuário ao nível de liberação de segurança apropriado. 
 
07 
O comando SQL que cria um usuário no banco de dados é o CREATE USER, e ele tem o seguinte padrão: 
CREATE USER ‘nome_do_usuario’ IDENTIFIED BY ‘senha_de_acesso’ 
 
O comando DROP USER é utilizado para excluir uma conta de usuário: 
DROP USER ‘nome_do_usuario’ 
 
Cada SGBD possui uma série de outras funcionalidades complementares que podem ser configuradas 
por parâmetros especiais, como por exemplo, tempo de validade da senha, necessidade de alterar a 
senha no primeiro login, tipo de criptografia de senha etc. 
 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
7 
 
 
 
Veja um exemplo 
Veja um exemplo 
Vamos supor que um sistema bancário de nome “Sistema De Crédito” precise de acesso aos bancos 
de dados de “Clientes” (apenas para consulta) e do banco de dados “DadosBancarios” (para consulta 
e alteração. O DBA pode criar um usuário de nome “USR_SistCredito”, concedendo direito de leitura 
no banco de dados “Clientes” e de leitura e alteração em “DadosBancarios”, criando uma senha de 
acesso, como por exemplo “SDF@SD#33@D&A!JBV”. O programador então utilizará esses dados de 
usuário e senha para que o sistema de crédito possa acessar ambos os bancos. Os usuários finais não 
terão acesso direto ao banco de dados, apenas por meio do sistema. Posteriormente, o gestor do 
sistema, por sua vez, cadastrará os usuários do sistema, criando perfis de acesso e senhas para eles. 
 
08 
1.4 - Controle de acesso, contas de usuário e auditorias de banco de dados 
Sempre que uma pessoa ou um grupo de pessoas precisa acessar um sistema de banco de dados, o 
indivíduo ou grupo precisa primeiro solicitar uma conta de usuário. O DBA, então, criará um novo 
número de conta e senha para o usuário, se houver uma necessidade legítima para acessar o banco de 
dados. O usuário precisa efetuar o login no SGBD ao entrar com o número de conta e senha sempre que 
o acesso ao banco de dados for necessário. O SGBD verifica se os números de conta e senha são válidos; 
se forem, o usuário tem permissão para usar o SGBD e acessar o banco de dados. Os programas de 
aplicação também podem ser considerados usuários e precisam efetuar o login no banco de dados (ver 
nota final do capítulo anterior). 
É simples registrar os usuários do banco de dados e suas contas e senhas criando uma tabela 
criptografada ou um arquivo com dois campos: Numero_conta e Senha. Essa tabela pode ser facilmente 
mantida pelo SGBD. Sempre que uma conta é criada, um novo registro é inserido na tabela. Quando 
uma conta é cancelada, o registro correspondente deve ser excluído da tabela. 
O sistema de banco de dados também precisa registrar todas as operações no banco de dados que 
são aplicadas por certo usuário em cada sessão de login, que consiste na sequência de interações do 
Muitos sistemas de informação possuem o controle de acesso feito 
diretamente pelo próprio sistema (e não pelo SGBD), em um módulo de 
segurança específico. Nesses casos, o gestor ou administrador do sistema 
é o responsável por desempenhar atividades, semelhantes a estas citadas, 
para o DBA. Este, por sua vez, cria e concede acesso para o sistema 
acessar o banco de dados de forma a poder ler e alterar qualquer tabela 
(o programador é quem configura esse usuário especial de acesso ao 
banco de dados). O nível de acesso individual de cada usuário, conforme 
citado, é gerenciado pelo sistema de informação. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
8 
banco de dados que o usuário realiza desde o momento do login até o momento do logoff. Quando 
um usuário efetua o login, o SGBD pode registrar o número de conta do usuário e associá-lo ao 
computador ou dispositivo do qual o usuário realizou a conexão. Todas as operações aplicadas a 
partir desse computador ou dispositivo são atribuídas à conta do usuário até que ele efetue o logoff. 
É particularmente importante registrar as operações de atualização que são aplicadas ao banco de 
dados, de modo que, se o banco de dados for adulterado, o DBA possa determinar qual usuário 
mexeu nele. 
 
09 
Para manter um registro de todas as atualizações realizadas no banco de dados e de usuários em 
particular que aplicaram cada atualização, podemos modificar o logdo sistema. 
Lembre-se que o log do sistema inclui uma entrada para cada operação aplicada ao banco de dados 
que pode ser exigida para a recuperação de uma falha de transação ou falha do sistema. 
 
Podemos expandir as entradas de log de modo que também incluam o número de conta do usuário e o 
computador on-line ou ID de dispositivo que aplicou cada operação registrada no log. 
Se houver suspeita de qualquer adulteração no banco de dados, é realizada uma auditoria do banco de 
dados, que consiste em rever o log para examinar todos os acessos e operações aplicadas ao banco de 
dados durante certo período. Quando uma operação ilegal ou não autorizada é encontrada, o DBA pode 
determinar o número de conta usado para realizar a operação. 
As auditorias são particularmente importantes para bancos de dados 
confidenciais, que são atualizados por muitas transações e usuários, como 
no caso de bancos que os atualizam por meio de seus diversos caixas e 
clientes. Um log de banco de dados, utilizado principalmente para fins de 
segurança, às vezes é chamado de trilha de auditoria. 
 
10 
1.5 - Dados sensíveis e tipos de exposição 
A sensibilidade de dados é uma medida da importância atribuída aos dados por seu proprietário, com 
a finalidade de indicar sua necessidade de proteção. 
 
Alguns bancos de dados contêm apenas dados confidenciais, enquanto outros podem não conter 
qualquer dado confidencial. O tratamento de bancos de dados que caem nesses dois extremos é 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
9 
relativamente fácil, pois podem ser tratados pelo controle de acesso, que é explicado na próxima seção. 
A situação torna-se mais complicada quando alguns dos dados são confidenciais, enquanto outros não o 
são. 
Diversos fatores podem fazer que os dados sejam classificados como confidenciais: 
 Inerentemente confidenciais. 
 De uma fonte confidencial. 
 Confidenciais declarados. 
 Um atributo ou registro confidencial. 
 Confidencial em relação a dados previamente expostos. 
Inerentemente confidenciais. 
O valor dos próprios dados pode ser tão revelador ou confidencial que ele se torna sensível. Por 
exemplo, o salário de uma pessoa ou o fato de um paciente ter HIV/AIDS. 
 
De uma fonte confidencial. 
A fonte dos dados pode indicar uma necessidade. Por exemplo, um informante cuja identidade 
precisa ser mantida em segredo. 
 
Confidenciais declarados. 
O proprietário dos dados pode tê-los declarado explicitamente como confidenciais. Por exemplo, a 
lista de funcionários que poderão ser demitidos de uma empresa. 
 
Um atributo ou registro confidencial. 
O atributo ou registro em particular pode ter sido declarado confidencial. Por exemplo, o atributo de 
salário de um funcionário ou o registro do histórico de salários em um banco de dados pessoal. 
 
 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
10 
Confidencial em relação a dados previamente expostos. 
Alguns dados podem não ser confidenciais por si sós, mas assim se tornarão na presença de algum 
outro dado. Por exemplo, a informação exata de latitude e longitude para um local onde aconteceu 
algum evento previamente registrado, que mais tarde foi considerado confidencial. 
 
11 
É responsabilidade do administrador de banco de dados e do administrador de segurança impor 
coletivamente as políticas de segurança de uma organização. Isso indica se o acesso deve ser permitido 
a certo atributo do banco de dados (também conhecido como coluna da tabela ou um elemento de 
dados) ou não para usuários individuais ou para categorias de usuários. 
Vários fatores precisam ser considerados antes de se decidir se é seguro revelar os dados. Os três 
fatores mais importantes estão listados a seguir. 
 Disponibilidade de dados. 
Se um usuário estiver atualizando um campo, então esse campo torna-se inacessível e outros 
usuários não devem visualizar esses dados. Esse bloqueio é temporário e apenas para garantir que 
nenhum usuário veja quaisquer dados imprecisos. Isso normalmente é tratado pelo mecanismo de 
controle de concorrência. 
 
 Aceitabilidade de acesso. 
Os dados só devem ser revelados a usuários autorizados. Um administrador de banco de dados 
também pode negar acesso a uma solicitação do usuário mesmo que esta não acesse diretamente um 
item de dados confidencial, com base no fato de os dados solicitados poderem revelar informações 
sobre os dados confidenciais que o usuário não está autorizado a ter. 
 
 Garantia de autenticidade. 
Antes de conceder acesso, certas características externas sobre o usuário também podem ser 
consideradas. Por exemplo, um usuário só pode ter acesso permitido durante determinadas horas de 
trabalho. O sistema pode rastrear consultas anteriores para garantir que uma combinação de 
consultas não revele dados confidenciais. Esse último é particularmente relevante para consultas a 
banco de dados estatístico. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
11 
12 
2 - CONTROLE DE ACESSO DISCRICIONÁRIO 
O método típico para impor o controle de acesso discricionário em um sistema de banco de dados é 
baseado na concessão e revogação de privilégios (que são operados pelos comandos GRANT e 
REVOKE respectivamente). 
 
Vamos considerar os privilégios no contexto de um SGBD relacional. Em particular, vamos discutir um 
sistema de privilégios um tanto semelhante ao que foi desenvolvido originalmente para a linguagem 
SQL. Muitos SGBDs relacionais atuais utilizam alguma variação dessa técnica. A ideia principal é incluir 
declarações na linguagem de consulta que permitam que o DBA e usuários selecionados concedam e 
revoguem privilégios. 
2.1 - Tipos de privilégios discricionários 
Na SQL, o conceito de identificador de autorização é usado para se referir a uma conta de usuário (ou 
grupo de contas de usuário). Para simplificar, usaremos as palavras usuário ou conta para indicar a 
mesma coisa, no lugar de identificador de autorização. 
O SGBD precisa fornecer acesso seletivo a cada relação no banco de dados com base em contas 
específicas. As operações também podem ser controladas; assim, ter uma conta não necessariamente 
capacita seu mantenedor a toda a funcionalidade oferecida pelo SGBD. 
13 
De maneira informal, existem dois níveis para atribuição de privilégios na utilização do sistema de banco 
de dados: 
 O nível de conta. 
 O nível de relação (ou tabela). 
Os privilégios no nível de conta se aplicam às capacidades fornecidas à própria conta e podem incluir: 
 O privilégio CREATESCHEMA ou CREATE TABLE, para criar um esquema ou relação da base; 
 O privilégio CREATE VIEW, para criar uma relação entre tabelas ou uma visão diferenciada; 
 O privilégio ALTER, para aplicar mudanças de esquema como a inclusão ou remoção de atributos 
das relações; 
 O privilégio DROP, para excluir relações ou visões; 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
12 
 O privilégio MODIFY, para inserir, excluir ou atualizar tuplas; 
 O privilégio SELECT, para recuperar informações do banco de dados usando uma consulta 
SELECT. 
Observe que esses privilégios de conta se aplicam à conta em geral. Se determinada conta não tiver o 
privilégio CREATE TABLE, nenhuma relação pode ser criada com base nessa conta. Os privilégios em 
nível de conta não são definidos como parte da SQL; eles são deixados para os implementadores do 
SGBD definirem. 
Em resumo, os direitos atribuídos a um usuário dizem o que ele pode 
fazer e onde ele pode fazer. 
 
 
O nível de conta. 
Nesse nível, o DBA especifica os privilégios em particular que cada conta mantém 
independentemente das relações no banco de dados.O nível de relação (ou tabela). 
Nesse nível, o DBA pode controlar o privilégio para acessar cada relação ou Visão individual no banco 
de dados. 
 
14 
As questões de concessão de acesso de um SGBD são muito flexíveis. Há comandos que permitem, por 
exemplo: 
 Que um usuário tenha acesso a uma tabela, mas não a um determinado campo dessa tabela. 
 Que o usuário possa selecionar campos de uma tabela, mas não possa inserir novos registros. 
 Que o usuário possa inserir novos registros em uma tabela, mas não possa alterá-los ou apaga-
los. 
 Que o usuário possa inserir novos registos em uma tabela, mas não possa selecionar os registros 
salvos. 
 Que o usuário possa acessar qualquer dado, mas não possa criar uma tabela ou alterar um 
esquema. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
13 
 Que o usuário possa realizar backups, mas não possa acessar os dados das tabelas do banco. 
Ao criar um novo usuário em um banco de dados, ele não pode realizar nenhuma operação. Após a 
criação do usuário, o DBA precisa dar acesso às operações (como ler, inserir, alterar e/ou apagar 
dados) e aos objetos (como tabelas e visões). 
 
A seguir, veremos alguns exemplos de comandos. 
15 
Exemplos de comandos 
Na linguagem MySQL, o comando abaixo permite que o usuário ‘Marcelo’ acesse e modifique todas as 
tabelas do banco de dados SISTEMABANCARIO: 
GRANT ALL ON SISTEMABANCARIO.* TO ‘Marcelo’; 
 
O comando a seguir, permite que a usuária ‘Isadora’ tenha acesso de leitura na tabela FolhaPagamento 
do banco de dados FINANCEIRO: 
GRANT SELECT ON FINANCEIRO.FolhaPagamento to ‘Isadora’; 
 
Podemos ainda usar literais para declarar “todas as tabelas” ou “todos os bancos e todas as tabelas”. O 
comando a seguir garante o acesso à usuária ‘Rosa’ a todas as tabelas do banco de dados FINANCEIRO: 
GRANT SELECT ON FINANCEIRO.* to ‘Rosa’; 
 
O próximo comando garante o acesso a todas as tabelas de todos os bancos de dados para a usuária 
‘Rosa”: 
GRANT SELECT ON *.* to ‘Rosa’; 
 
A lista de concessões pode ser dada também para comandos estruturais. O próximo exemplo permite 
que a usuária ‘Rosa’ crie tabelas no banco de dados ESTOQUE: 
GRANT CREATE TABLE ON ESTOQUE TO ‘Rosa’; 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
14 
16 
Alguns SGBDs permitem até mesmo controlar o uso que um usuário demanda do SGBD. O comando 
abaixo, por exemplo, disponível no MySQL, limita que o usuário ‘Thiago’ realize no máximo 100 
consultas por hora no banco de dados: 
ALTER USER ‘Thiago’ WITH MAX_QUERIES_PER_HOUR 100; 
 
Consulte sempre o manual do SGBD que você utiliza para saber em detalhes 
as funcionalidades que ele disponibiliza para você. Clique aqui e veja, a título 
de exemplo, a lista de possibilidades de controle de segurança do SGBD 
MySQL. 
 
O comando REVOKE retira a segurança concedida pelo comando GRANT. O comando a seguir retira o 
acesso do usuário ‘Marcelo’ no banco de dados SISTEMABANCARIO: 
REVOKE ALL PRIVILEGES ON SISTEMABANCARIO FROM ‘Marcelo; 
 
O próximo comando remove o acesso do usuário ‘Rosa’ de inserir registro em todas as tabelas do banco 
ESTOQUE: 
REVOKE INSERT ON ESTOQUE FROM ‘Rosa’; 
 
Clique aqui 
Acesse a lista de possibilidades de controle de segurança do SGBD MySQL no seguinte link: 
http://dev.mysql.com/doc/refman/5.7/en/grant.html 
 
17 
2.2 - Controle de acesso baseado em papéis 
Imagine a seguinte situação: um determinado sistema possui 1000 usuários, destes, 2 são 
administradores, 10 são gerentes e os demais são usuários comuns que só fazem consultas. Para o DBA, 
garantir que cada usuário possua sua respectiva configuração de segurança correta pode ser bastante 
complexo. Há uma grande chance de que um entre os novecentos e poucos usuários comuns possua 
uma diferença de acesso. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
15 
Para resolver tal situação o SGBD possui um objeto denominado papel. Um papel é como um cargo 
dentro de uma empresa. Cada pessoa de cada cargo tem direitos diferentes no banco de dados e, 
muito provavelmente, duas pessoas de cargos iguais têm iguais direitos no banco de dados. 
 
Dessa forma, ao invés de um DBA dar concessões de acessos à usuários, ele passa a dar concessões de 
acesso a papéis. Por exemplo, ele define quais permissões o papel “Administrador de sistema” pode ter, 
depois ele define quais permissões o papel “Usuário comum” pode ter e assim sucessivamente. 
Configurados os papéis, o segundo passo é relacionar quais papéis um determinado usuário pode 
assumir. E, nesse ponto, o SGBD é bastante flexível, um usuário pode receber vários papéis diferentes. O 
João, por exemplo, pode ser o administrador de um sistema, o gerente do sistema e um usuário comum 
do sistema. 
Para a SQL, um papel é definido pelo objeto ROLE. Um papel é criado com o comando CREATE ROLE e é 
excluído com o comando DESTROY ROLE. Depois que um papel é criado, o método de atribuir e revogar 
permissões é exatamente o mesmo utilizado para usuários. 
Com a criação de papéis, fica muito mais fácil para o DBA criar usuários e 
atribuir segurança a eles. 
 
18 
3 - INJEÇÃO DE SQL 
Injeção de SQL é uma das ameaças mais comuns a um sistema de banco de dados. Alguns dos outros 
ataques a bancos de dados, que são muito frequentes, são: 
 Escalada de privilégios autorizada. 
Esse ataque é caracterizado por um indivíduo que tenta elevar seu privilégio atacando pontos 
vulneráveis nos sistemas de banco de dados. 
 
 Abuso de privilégio. 
Enquanto o ataque anterior é feito por um usuário não autorizado, este é realizado por um usuário 
privilegiado. Por exemplo, um administrador que tem permissão para alterar a informação do aluno 
pode usar esse privilégio para atualizar notas de alunos sem a permissão do instrutor. 
 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
16 
 Negação de serviço. 
Um ataque de negação de serviço (DOS — Denial Of Service) é uma tentativa de tornar recursos 
indisponíveis a seus usuários intencionados. Essa é uma categoria de ataque geral em que o acesso a 
aplicações ou dados da rede é negado aos usuários legítimos devido ao estouro do buffer ou 
esgotamento de recursos. 
 
 Autenticação fraca. 
Se o esquema de autenticação do usuário for fraco, um atacante pode personificar a identidade de 
um usuário legítimo ao obter suas credenciais de login. 
 
19 
3.1 - Métodos de Injeção SQL 
Os programas e aplicações Web que acessam um banco de dados podem enviar comandos e dados ao 
banco de dados, bem como exibir dados recuperados do banco de dados por meio do navegador Web. 
Em um ataque de Injeção SQL, o atacante injeta uma entrada de cadeia de caracteres pela aplicação, 
que muda ou manipula a instrução SQL para o proveito do atacante. 
 
Um ataque de Injeção de SQL pode prejudicar o banco de dados de várias maneiras, como na 
manipulação não autorizada do banco de dados, ou recuperação de dados confidenciais. Ele também 
pode ser usado para executar comandos em nível do sistema que podem fazer o sistema negar serviço à 
aplicação. 
Os tipos de ataques de injeção SQL mais comuns são: 
 Manipulação de SQL ou injeção de código. 
 Sobrecarga de recursos ou negação de serviços (Deny of Service). 
 Contorno de autenticação. 
Manipulação de SQL ou injeção de código 
Um ataque de manipulação muda um comando SQL na aplicação, fazendo que outra ação, diferente 
da originalmente proposta, seja executada no banco de dados. Por exemplo, suponha que um sistema 
de autenticação sistema de usuário receba o login e a senha do usuário e tente executar uma 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada17 
operação como “SELECT * FROM usuarios WHERE nome = ‘Thiago’ AND senha = ‘@#$sdf’. O atacante 
percebe que há uma tabela de nome ‘usuarios’ no banco de dados e ele poderia, por exemplo, mudar 
a instrução para “DROP TABLE usuario”, fazendo com que o sistema apague a tabela ‘usuarios’ e 
assim impossibilitando todo e qualquer acesso ao sistema. 
 
Sobrecarga de recursos ou negação de serviços (Deny of Service) 
Esse tipo de ataque caracteriza-se pela sobrecarga do SGBD, fazendo que o processamento e/ou 
acesso a disco atinja 100% de ocupação. Dessa forma, outros processos de outros usuários ficam 
comprometidos e/ou não funcionam. Uma das formas de se executar esse tipo de ataque é criar 
loops infinitos de operações de acesso a dados, fazendo com que o sistema fique infinitamente 
realizando uma operação de acesso a disco. Um outro mecanismo desse tipo de ataque é 
sobrecarregar as portas de comunicação do servidor com a rede. 
 
Contorno de autenticação 
Esse tipo de ataque permite ao atacante logar o sistema como se fosse um usuário privilegiado, 
muitas vezes com os mesmos direitos do DBA, podendo assim realizar qualquer operação no banco 
de dados. 
 
20 
4 - TÉCNICAS PARA REPARAÇÃO DE UM SGBD ATACADO 
Os sistemas de banco de dados precisam operar e continuar suas funções, mesmo com capacidades 
reduzidas, apesar de eventos destruidores, como ataques de hackers. Um SGBD, além de realizar todos 
os esforços para impedir um ataque e detectar um e, caso ocorra, deve ser capaz de fazer o seguinte: 
 Confinamento. 
 Avaliação de danos. 
 Reconfiguração. 
 Reparo. 
 Tratamento de falha. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
18 
O objetivo do atacante é prejudicar a operação da organização e a realização de sua missão, por meio de 
danos a seus sistemas de informação. O alvo específico de um ataque pode ser o próprio sistema ou 
seus dados. 
Embora os ataques que paralisam totalmente o sistema sejam graves e 
dramáticos, eles também devem ser bem temporizados para alcançar o 
objetivo do atacante, pois os ataques receberão atenção imediata e 
concentrada, a fim de retornar o sistema à condição operacional, 
diagnosticar como ocorreu o ataque e instalar medidas preventivas. 
 
Confinamento. 
Tomar ação imediata para eliminar o acesso do atacante ao sistema e isolar ou conter o problema 
para impedir que se espalhe mais. 
 
Avaliação de danos. 
Determinar a extensão do problema, incluindo funções que falharam e dados adulterados. 
 
Reconfiguração. 
Reconfigurar para permitir que a operação continue em um modo reduzido enquanto a recuperação 
prossegue. 
 
Reparo. 
Recuperar dados adulterados ou perdidos e reparar ou reinstalar funções do sistema que falharam, 
para restabelecer um nível de operação normal. 
 
Tratamento de falha. 
Ao máximo possível, identificar os pontos fracos explorados no ataque e tomar medidas para impedir 
uma nova ocorrência. 
 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
19 
21 
RESUMO 
Neste módulo, aprendemos que: 
a) Os três objetivos da segurança são: integridade (garantia de que os dados não foram alterados), 
disponibilidade (garantia de que os dados estão disponíveis para os usuários autorizados) e 
confiabilidade (garantia de que os dados são protegidos de acesso às pessoas não autorizadas). 
b) As quatro medidas protetoras de banco de dados são: controle de acesso, controle de 
inferência, controle de fluxo e criptografia. 
c) O controle de acesso inclui mecanismos de segurança discricionários e obrigatórios. 
d) O controle de acesso diz respeito às pessoas que podem ter acesso ou não a determinada 
informação por meio das funcionalidades de um sistema ou por meio do acesso direto ao banco 
de dados. 
e) O controle de inferência diz respeito à proteção de dados individuais calculados por meio de 
deduções lógicas de dados estatísticos. 
f) O controle de fluxo trata do impedimento do acesso de informações para pessoas não 
autorizadas. 
g) A criptografia de dados atua no embaralhamento de informações, codificando-as de tal forma 
que apenas pessoas que possuam as chaves de decodificação possam ter acesso à informação. 
h) O DBA controla os usuários e sistemas que acessam os bancos de dados por meio de contas 
específicas e perfis de acesso. Boa parte dos sistemas de informação tratam eles mesmos do 
controle de acesso dos usuários. 
i) Os principais comandos SQL para gerenciamento de segurança são os comandos GRANTE e 
REVOKE. 
j) A injeção de SQL é uma das ameaças mais comuns a SGBDs e caracteriza-se pelo ataque ao 
SGBD, seus dados e seus recursos. 
UNIDADE 4 – TÓPICOS AVANÇADOS SOBRE SGBD 
MÓDULO 2 – BANCOS DE DADOS DISTRIBUÍDOS 
01 
1 - CONCEITOS DE BANCO DE DADOS DISTRIBUÍDO (BDD) 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
20 
Estudamos anteriormente questões de segurança dos bancos de dados. Neste módulo, falaremos de 
Bancos de dados distribuídos. 
Um sistema de computação distribuído consiste em uma série de elementos de processamento, não 
necessariamente homogêneos, que são interconectados por uma rede de computadores e que 
cooperam na realização de certas tarefas atribuídas. 
 
 
Exemplo ilustrativo de um sistema distribuído 
Como um objetivo geral, os sistemas de computação distribuídos dividem um grande problema, difícil 
de ser administrado em partes menores, solucionando-o de modo eficiente de uma maneira 
coordenada. A viabilidade econômica dessa técnica tem duas razões: mais poder de computação é 
aproveitado para solucionar uma tarefa complexa, e cada elemento de processamento autônomo pode 
ser gerenciado independentemente para desenvolver as próprias aplicações. 
02 
A tecnologia de Bancos de dados distribuídos (BDD) é o resultado de uma fusão de duas tecnologias: 
 tecnologia de banco de dados e 
 tecnologia de rede e comunicação de dados. 
As redes de computadores permitem o processamento distribuído de dados. Bancos de dados 
tradicionais, por sua vez, enfocam o fornecimento de acesso centralizado e controlado aos dados. Os 
bancos de dados distribuídos permitem uma integração de informações e seu processamento por 
aplicações que podem, por si mesmas, ser centralizadas ou distribuídas. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
21 
Diversos sistemas de protótipo de banco de dados distribuído foram desenvolvidos na década de 1980 
para resolver as questões de distribuição de dados, consulta distribuída e processamento de transação, 
gerenciamento de metadados de banco de dados distribuído e outros assuntos. Porém, um Sistema 
Gerenciador de Banco de Dados Distribuídos (SGBDD) abrangente em escala completa, que 
implementa a funcionalidade e as técnicas propostas na pesquisa em BDD, nunca surgiu como um 
produto comercialmente viável. 
A maioria dos principais vendedores redirecionou seus esforços de 
desenvolvimento de um produto SGBDD puro para o desenvolvimento de 
sistemas com base nos conceitos cliente-servidor, ou para o 
desenvolvimento de tecnologias para acessar fontes de dados heterogêneas 
distribuídas. 
 
As organizações continuam interessadas na descentralização do processamento (no nível de sistema) 
enquanto alcançam uma integração dos recursos de informação (no nível lógico) dentro de seus 
sistemas de bancos de dados, aplicações e usuários distribuídos geograficamente. Agora, existe um 
endosso geral da abordagem cliente-servidor para o desenvolvimento de aplicações, e a abordagem de 
três camadas (ou n-camadas) para o desenvolvimento de aplicações Web. 
03 
Podemos definir um banco de dados distribuído (BDD) como uma coleção de múltiplos bancos de 
dados logicamente inter-relacionados,distribuídos por uma rede de computadores, e um sistema de 
gerenciamento de banco de dados distribuído (SGBDD) como um sistema de software que gerencia 
um banco de dados distribuído enquanto torna a distribuição transparente ao usuário. 
 
Os bancos de dados distribuídos são diferentes dos arquivos Web da Internet. As páginas Web são 
basicamente uma coleção muito grande de arquivos armazenados em diferentes nós em uma rede — a 
Internet — com inter-relacionamentos entre os arquivos, representados por hyperlinks. 
As funções comuns do gerenciamento de banco de dados, incluindo o processamento de consulta 
uniforme e o processamento de transação, ainda não se aplicam a esse cenário. A tecnologia, no 
entanto, está mudando para uma direção tal que os bancos de dados distribuídos da World Wide Web 
(WWW) se tornarão uma realidade no futuro. 
A proliferação de dados em milhões de sites Web em várias formas não se 
qualifica como um BDD pela definição dada anteriormente. 
 
04 
1.1 - Diferenças entre sistemas multiprocessados e BDD 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
22 
Precisamos distinguir os bancos de dados distribuídos dos sistemas multiprocessados que usam 
armazenamento compartilhado (memória primária ou disco). Para um banco de dados ser chamado de 
distribuído, as seguintes condições mínimas devem ser satisfeitas: 
 Conexões de nós de banco de dados por uma rede de computadores. 
 Inter-relação lógica dos bancos de dados conectados. 
 Ausência de restrição de homogeneidade entre os nós conectados. 
 
Todos os sites podem estar localizados nas proximidades físicas — digamos, dentro do mesmo prédio ou 
um grupo de prédios adjacentes — e conectados por uma rede local, ou podem estar distribuídos 
geograficamente por grandes distâncias e conectados por uma rede de longa distância ou mesmo por 
meio da Internet. As redes locais costumam utilizar cabeamento lógico do tipo “par trançado”, enquanto 
as redes de longa distância utilizam fibras óticas por meio de linhas telefônicas ou mesmo sinais de 
satélites. Também é possível usar uma combinação de redes. 
As redes podem ter diferentes topologias que definem os caminhos de 
comunicação diretos entre os sites. O tipo e a topologia da rede utilizada 
podem ter um impacto significativo no desempenho e, portanto, nas 
estratégias para o processamento de consulta distribuído e o projeto de 
banco de dados distribuído. 
 
Para questões arquitetônicas de alto nível, porém, não importa o tipo de rede utilizada; o que importa é 
que cada site seja capaz de se comunicar, direta ou indiretamente, com todos os outros sites. Para o 
restante deste módulo, consideramos que existe algum tipo de rede de comunicação entre os sites, 
independentemente de qualquer topologia em particular. Não abordaremos quaisquer questões 
específicas da rede, embora seja importante entender que, para uma operação eficiente de um sistema 
de banco de dados distribuído (SBDD), questões de projeto e desempenho da rede são críticos e fazem 
parte integral da solução geral. Os detalhes da rede de comunicação básica são invisíveis ao usuário 
final. 
Conexões de nós de banco de dados por uma rede de computadores. 
Existem vários computadores, chamados sites ou nós. Esses sites devem ser conectados por uma rede 
de comunicação básica para transmitir dados e comandos entre sites. 
 
Inter-relação lógica dos bancos de dados conectados. 
É essencial que as informações nos bancos de dados sejam relacionadas logicamente. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
23 
Ausência de restrição de homogeneidade entre os nós conectados. 
Não é necessário que todos os nós sejam idênticos em relação aos dados, hardware e software. 
 
05 
1.2 - Transparência 
O conceito de transparência estende a ideia geral de ocultar detalhes da implementação dos usuários 
finais. Um sistema altamente transparente oferece muita flexibilidade ao usuário final/desenvolvedor de 
aplicação, pois requer pouco ou nenhum conhecimento dos detalhes básicos de sua parte. 
No caso de um banco de dados centralizado tradicional, a transparência simplesmente pertence à 
independência lógica e física de dados para desenvolvedores de aplicação. Contudo, em um cenário 
de BDD, os dados e software são distribuídos por vários sites conectados por uma rede de 
computadores, de modo que tipos adicionais de transparências são introduzidos. 
 
Considere o banco de dados de empresa da figura abaixo, as tabelas FUNCIONARIO, PROJETO e 
TRABALHA_EM podem ser fragmentadas horizontalmente (ou seja, em conjuntos de linhas, conforme 
discutiremos logo adiante) e armazenadas com possível replicação, como mostra a figura a seguir. 
 
Modelo de dados fragmentados horizontalmente. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
24 
06 
Os seguintes tipos de transparências são possíveis: 
 Transparência da organização dos dados (também conhecida como transparência de 
distribuição ou de rede). Isso se refere à liberdade para o usuário de detalhes operacionais da 
rede e o posicionamento dos dados no sistema distribuído. Ela pode ser dividida em: 
o transparência de local e 
o transparência de nomes. 
 Transparência de replicação. Nesse modelo, as cópias dos mesmos objetos de dados podem ser 
armazenadas em vários sites para melhor disponibilidade, desempenho e confiabilidade. A 
transparência de replicação torna o usuário desavisado da existência dessas cópias. 
 Transparência de fragmentação. Dois tipos de fragmentação são possíveis: 
o A fragmentação horizontal distribui uma relação (tabela) em sub-relações que são 
subconjuntos de tuplas (linhas) na relação original. Veja um exemplo. 
o A fragmentação vertical distribui uma relação em sub-relações em que cada uma é 
definida por um subconjunto das colunas da relação original. Exemplo de fragmentação 
vertical. 
 Outras transparências incluem transparência de projeto e transparência de execução — 
referindo-se à liberdade de saber como o banco de dados distribuído é projetado e onde uma 
transação é executada. 
Transparência de local 
Refere-se ao fato de que o comando usado para realizar uma tarefa é independente do local dos 
dados e do local do nó onde o comando foi emitido. 
 
Transparência de nomes 
Implica que, quando um nome é associado a um objeto, os objetos nomeados podem ser acessados 
sem ambiguidade, sem especificação adicional quanto ao local onde os dados se encontram. 
 
 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
25 
Veja um exemplo 
Um banco de dados de vendas de uma empresa, no qual as vendas de cada estado ficam no banco de 
dados localizado naquele estado, para se fazer uma pesquisa por todas as vendas, há de se pesquisar 
em todos os bancos de dados de cada estado. 
 
Exemplo de fragmentação vertical 
Um banco de dados que trata de pedidos de compra e de pagamentos dessas compras. Um BDD 
poderia ter a base de dados dos pedidos de compra em um site e os dados dos pagamentos em outro 
site. Uma consulta global pelo usuário precisa ser transformada em consultas em cada site. 
 
07 
1.3 - Autonomia 
A autonomia determina a extensão à qual os nós individuais ou BDs em um BDD conectado podem 
operar independentemente. Um alto grau de autonomia é desejável para maior flexibilidade e 
manutenção personalizada de um nó individual. 
 
Um baixo grau de autonomia gera dependência, ou seja, um site precisa de 
outro para funcionar; isso é ruim em termos de projeto. Você deve planejar 
seu BDD para permitir o maior grau de independência possível. 
 
Exemplo: suponha que você possua 5 sites de BDD; suponha que o site A possua os dados básicos de 
pessoase que os demais sites, B, C, D e E, só possuam os IDs das pessoas. Imagine agora uma consulta 
SQL de uma determinada aplicação ocorrendo em qualquer um dos sites B a E que cujo retorno da 
instrução SQL requisite dados básicos das pessoas. Para que essa instrução processe, qualquer um dos 
sites B a E precisará consultar o site A para obter a resposta. Se o site A cair, nenhum dos sites B a E será 
capaz de prover os resultados desejados. Ou seja, os sites B a E tem alta dependência do site A, o que é 
indesejado. O correto seria que cada site B a E contivesse uma cópia dos dados básicos das pessoas, 
assim eles seriam capazes de processar a consulta SQL de modo independente. 
A autonomia pode ser aplicada ao projeto, comunicação e execução. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
26 
 
08 
1.4 - Confiabilidade e disponibilidade 
Confiabilidade e disponibilidade são duas das vantagens em potencial, mais comuns, citadas para 
bancos de dados distribuídos. 
A confiabilidade é definida em termos gerais como a probabilidade de um sistema estar funcionando 
(não parado) em certo ponto no tempo, enquanto a disponibilidade é a probabilidade de que o 
sistema esteja continuamente disponível durante um intervalo de tempo. 
 
Exemplos: um sistema que está fora do ar é um sistema que não é confiável. Um sistema que está no ar, 
mas operando de forma absurdamente lenta pode ser confiável, mas não está disponível. 
Podemos relacionar diretamente confiabilidade e disponibilidade do banco de dados aos defeitos, erros 
e falhas associadas a ele. Para construir um sistema que seja confiável, podemos adotar várias técnicas. 
Uma técnica comum enfatiza a tolerância a correções; ela reconhece que as falhas ocorrerão, e 
projeta mecanismos que podem detectar e remover falhas antes que elas possam resultar em uma 
falha do sistema. Outra técnica mais rigorosa tenta garantir que o sistema final não terá falha 
alguma. Isso é feito por meio de um processo de projeto especializado, seguido por controle de 
qualidade e teste abrangentes. 
 
Um SGBDD confiável tolera falhas dos componentes básicos e processa solicitações do usuário desde 
que a coerência do banco de dados não seja violada. Um gerenciador de recuperação do SGBDD precisa 
lidar com falhas que surgem de transações, hardware e redes de comunicação. As falhas de hardware 
podem ser aquelas que resultam em perda do conteúdo da memória principal ou perda de conteúdo do 
armazenamento secundário. As falhas de comunicação ocorrem devido a erros associados a mensagens 
e falhas na linha. Os erros de mensagens podem incluir sua perda, adulteração ou chegada fora de 
ordem no destino. 
 
A autonomia de projeto
refere-se à independência do 
uso do modelo de dados e 
técnicas de gerenciamento de 
transação entre nós.
A autonomia de comunicação
determina a extensão à qual 
cada nó pode decidir sobre o 
compartilhamento de 
informações com outros nós. 
A autonomia de execução
refere-se à independência dos 
usuários para atuarem 
conforme desejarem. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
27 
Falha 
Uma falha pode ser descrita como um desvio de um comportamento do sistema daquele especificado 
a fim de garantir a execução correta das operações. 
 
erros 
Erros constituem o subconjunto de estados do sistema que causam a falha. Falha é a causa de um 
erro. 
 
09 
1.5 - Vantagens dos bancos de dados distribuídos 
As organizações lançam mão do gerenciamento de banco de dados distribuído por diversos motivos. 
Algumas vantagens importantes são listadas a seguir. 
 Maior facilidade e flexibilidade de desenvolvimento da aplicação. 
O desenvolvimento e a manutenção de aplicações em sites geograficamente distribuídos de uma 
organização são facilitados devido à transparência da distribuição e controle de dados. 
 
 Maior confiabilidade e disponibilidade. 
Isso é obtido pelo isolamento de falhas ao seu site de origem, sem afetar os outros bancos de dados 
conectados à rede. Quando os dados e o software de SGBDD são distribuídos por vários sites, um 
destes pode apresentar falha enquanto outros continuam a operar. Apenas os dados e software que 
existem no Site defeituoso não poderão ser acessados. Isso melhora tanto a confiabilidade quanto a 
disponibilidade. Uma melhoria ainda maior é obtida pela devida replicação dos dados e software em 
mais de um site. Em um sistema centralizado, uma falha em um único site torna o sistema inteiro 
indisponível a todos os usuários. Em um banco de dados distribuído, alguns dos dados podem ficar 
inalcançáveis, mas os usuários ainda podem ser capazes de acessar outras partes do banco de dados. 
Se os dados no site que apresentou falha tiverem sido duplicados em outro site antes da falha, então 
o usuário não será afetado de forma alguma. 
 
 Maior desempenho. 
Um SGBD distribuído fragmenta o banco de dados ao manter os dados mais próximos de onde eles 
são mais necessários. A localização de dados reduz a disputa pela CPU e serviços de E/S e, ao mesmo 
tempo, reduz os atrasos no acesso envolvido nas redes remotas. Quando um banco de dados grande 
é distribuído por vários sites, existem bancos de dados menores em cada site. Como resultado, 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
28 
consultas e transações locais que acessam dados em um único site possuem melhor desempenho por 
causa dos bancos de dados locais menores. Além disso, cada site tem um número menor de 
transações executando do que se todas as transações fossem submetidas a um único banco de dados 
centralizado. Ainda, o paralelismo entre consultas e dentro da consulta pode ser alcançado ao 
executar várias consultas em diferentes sites, ou ao desmembrar uma consulta em uma série de 
subconsultas executadas em paralelo. Isso contribui para melhorar o desempenho. 
 
 Expansão mais fácil. 
Em um ambiente distribuído, é muito mais fácil a expansão do sistema em matéria de inclusão de 
mais dados, aumento dos tamanhos do banco de dados ou inclusão de mais processadores. 
 
10 
1.6 - Funções adicionais dos bancos de dados distribuídos 
A distribuição leva a uma maior complexidade no projeto e implementação do sistema. Para conseguir 
as vantagens em potencial, já listadas, o software de SGBDD precisa ser capaz de oferecer as seguintes 
funções, além daquelas de um SGBD centralizado: 
 Acompanhar a distribuição de dados. 
 Processamento de consulta distribuído. 
 Gerenciamento de transação distribuído. 
 Gerenciamento de dados replicados. 
 Recuperação de banco de dados distribuído. 
 Segurança. 
 Gerenciamento de diretório (catálogo) distribuído. 
Essas próprias funções aumentam a complexidade de um SGBDD em relação a um SGBD centralizado. 
Antes que possamos observar todas as vantagens em potencial da distribuição, temos de encontrar 
soluções satisfatórias para essas questões e problemas de projeto. É difícil conseguir a inclusão de toda 
essa funcionalidade adicional, e encontrar soluções ideais é um passo além. 
Acompanhar a distribuição de dados. 
A capacidade de acompanhar a distribuição de dados, fragmentação e replicação ao expandir o 
catálogo do SGBDD. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
29 
Processamento de consulta distribuído. 
A capacidade de acessar sites remotos e transmitir consultas e dados entre os vários sites por meio de 
uma rede de comunicação. 
 
Gerenciamento de transação distribuído. 
A capacidade de criar estratégias de execução para consultas e transações que acessem dados de 
mais de um site e de sincronizar o acesso aos dados distribuídos, mantendo a integridade do banco 
de dados geral. 
 
Gerenciamento de dados replicados.A capacidade de decidir qual cópia de um item de dados replicado acessar e de manter a consistência 
das cópias de um item de dados replicado. 
 
Recuperação de banco de dados distribuído. 
A capacidade de recuperar-se de falhas no site individual e de novos tipos de falhas, como a dos links 
de comunicação. 
 
Segurança. 
As transações distribuídas precisam ser executadas com o gerenciamento apropriado da segurança 
dos dados e dos privilégios de autorização/acesso dos usuários. 
 
Gerenciamento de diretório (catálogo) distribuído. 
Um diretório contém informações (metadados) sobre os dados no banco de dados. O diretório pode 
ser global, para o BDD inteiro, ou local para cada site. O posicionamento e a distribuição do diretório 
são questões de projeto e diretriz. 
 
11 
2 - TIPOS DE SISTEMAS DE BANCOS DE DADOS DISTRIBUÍDOS 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
30 
O termo sistema de gerenciamento de banco de dados distribuído (SGBDD) pode descrever diversos 
sistemas que diferem uns dos outros em muitos aspectos. 
O item principal que todos os sistemas têm em comum é o fato de os dados e software serem 
distribuídos por vários sites conectados por alguma forma de rede de comunicação. 
 
O primeiro fator que consideramos é o grau de homogeneidade do software de SGBDD. Se todos os 
servidores (ou SGBDs locais individuais) usarem software idêntico e todos os usuários (clientes) 
utilizarem software idêntico, o SGBDD é chamado de homogêneo; caso contrário, ele é chamado de 
heterogêneo. 
Outro fator relacionado ao grau de homogeneidade é o grau de autonomia local. Se não houver 
provisão para o site local funcionar como um SGBD independente, então o sistema não tem autonomia 
local. Contudo, se o acesso direto por transações locais a um servidor for permitido, o sistema tem 
algum grau de autonomia local. 
12 
3 - ARQUITETURAS DE BANCO DE DADOS DISTRIBUÍDOS 
Embora as arquiteturas de banco de dados paralela e distribuída estejam bastante presentes na 
indústria hoje, existem diversas manifestações das arquiteturas distribuídas que estão continuamente 
evoluindo entre as grandes empresas. A arquitetura paralela é mais comum na computação de alto 
desempenho, em que há uma necessidade de arquiteturas multiprocessadoras para enfrentar o volume 
de dados passando por aplicações de processamento de transação e warehousing (armazém de dados). 
3.1 - Arquiteturas paralelas versus distribuídas 
Existem dois tipos principais de arquiteturas de sistema multiprocessador que são comumente 
utilizados: 
 
Arquitetura de memória compartilhada 
(altamente acoplada). 
•Múltiplos processadores compartilham 
armazenamento secundário (disco) e 
também memória principal. Essa 
arquitetura é feita por um único
computador com vários processadores.
Arquitetura de disco compartilhado 
(livremente acoplada). 
•Múltiplos processadores compartilham 
armazenamento secundário (disco), mas 
cada um tem a própria memória principal. 
Essa arquitetura é feita por vários
computadores interligados por um 
barramento comum.
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
31 
Essas arquiteturas permitem que os processadores se comuniquem sem o overhead de trocar 
mensagens por uma rede. Os sistemas de gerenciamento de banco de dados desenvolvidos que utilizam 
esses tipos de arquiteturas são chamados de sistemas de gerenciamento de banco de dados paralelos, 
em vez de SGBDDs, pois utilizam a tecnologia de processadores paralelos. 
13 
Outro tipo de arquitetura de multiprocessador é chamado de arquitetura nada compartilhado. 
Nessa arquitetura, cada processador tem a própria memória principal e secundária (disco), não existe 
memória comum e os processadores se comunicam por uma rede de interconexão de alta velocidade 
(barramento ou switch). 
 
Ou seja, são vários computadores isolados um do outro. Embora a arquitetura nada compartilhado seja 
semelhante a um ambiente de computação de banco de dados distribuído, existem diferenças 
importantes no modo de operação. 
Nos sistemas de multiprocessador nada compartilhado, há simetria e homogeneidade de nós 
(geralmente utilizam-se servidores idênticos montados em rack); isso não acontece no ambiente de 
banco de dados distribuído, no qual a heterogeneidade do hardware e do sistema operacional em cada 
nó é muito comum. A arquitetura nada compartilhado também é considerada um ambiente para 
bancos de dados paralelos. 
 
Arquitetura nada compartilhado 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
32 
14 
Para que exista uma arquitetura distribuída, dois quesitos são necessários: 
 sites separados e 
 bancos de dados separados. 
Se apenas os sites forem separados, mas os bancos de dados forem centralizados (como na figura 
abaixo), essa arquitetura é considerada de banco de dados centralizado. 
 
Arquitetura em rede com um banco de dados centralizado em um dos sites. 
15 
Somente com a separação de bancos de dados e de sites é que consideramos uma arquitetura como 
sendo distribuída. 
A figura a seguir ilustra esse modelo. 
 
Arquitetura de banco de dados totalmente distribuída. 
16 
3.2 - Arquitetura geral de uma configuração de replicação 
Uma arquitetura de bancos de dados distribuídos pode ser implementada por dois ou mais SGBDD 
atuando em sincronia. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
33 
A sincronia de um site SGBDD é gerenciada por meio de um servidor líder da arquitetura, denominado 
de replicador mestre (ou Master). Os demais sites SGBDDs do conjunto são denominados de 
replicadores escravos. 
O replicador mestre é o responsável por controlar todas as operações de replicação. É ele quem 
informa aos demais sites SGBDDs do conjunto (replicadores escravos) se uma determinada tarefa de 
sincronia deve acontecer e se essa tarefa ocorreu com sucesso (ou se deve ser refeita ou cancelada). 
 
O replicador mestre também é responsável por determinar quais bancos de dados do servidor deve ser 
replicado. Nem todos os bancos de dados do servidor necessitam ser replicados (muitas vezes 
replicamos apenas um banco de dados específico). Normalmente, ao configurar um SGBDD como 
replicador mestre. 
Há basicamente duas formas de se implementar a replicação: 
 um publicador – vários leitores, e 
 vários publicadores – vários leitores. 
 
Veremos a seguir cada uma dessas formas. 
17 
A primeira e mais comum delas é denominada um publicador – vários leitores. Nesse modelo, apenas 
o replicador mestre gera novas informações, os demais sites SGBDDs (replicadores escravos) recebem 
essas informações e atualizam seus próprios bancos de dados. 
 
Nesse modelo, os replicadores escravos podem tanto possuir uma cópia completa (espelho) do 
replicador mestre como possuir apenas parte dos dados deste. Exemplo: Suponha uma grande empresa 
que possua uma sede em Brasília e filiais em 4 capitais (Rio de Janeiro, São Paulo, Belo Horizonte e Porto 
Alegre). Essa empresa poderia entender que o melhor projeto de replicação para ela seria o modelo um 
publicador – vários leitores, onde a sede, em Brasília, possuiria todos os dados centralizados da 
empresa, e cada filial teria apenas os dados relacionados à aquela filial. Por exemplo, os dados dos 
funcionários que atuam na filial de São Paulo estariam presentes no SGBDD de Brasília (replicador 
mestre) e no SGBDD de São Paulo. Já os dados dos funcionários que atuam no Rio de Janeiro, também 
estariam no SGBDD de Brasília e no SGBDD do Rio de Janeiro. Cada filial só possui os dados que lhe 
interessa e a sede centraliza todos os dados. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de EducaçãoContinuada 
 
34 
Outra forma de implementar a replicação é a vários publicadores – vários leitores. Nesse modelo, 
tanto o replicador mestre quanto os replicadores escravos enviam e recebem dados. O replicador 
mestre pode centralizar todos os dados dos replicadores escravos ou possuir apenas seus dados de 
interesse. 
 
O mesmo vale para os replicadores escravos, eles podem ser uma cópia espelho do servidor mestre 
(onde todos os sites SGBDDs seriam fielmente replicados) ou possuir apenas os dados do seu interesse. 
Por exemplo, pensando na mesma lógica do exemplo anterior, uma filial de São Paulo poderia enviar as 
vendas realizadas naquela região para o SGBDD da matriz (em Brasília), dessa forma, cada filial teria os 
dados das vendas feitas na respectiva região e a matriz teria a consolidação de todas as vendas 
realizadas por todas as filiais. 
18 
3.2.1 - Conflitos de chave primária e Identificador de campo único 
O identificador de campo único (Unique Identifier – UID) é um tipo de dado gerado aleatoriamente 
pelo SGBD onde não é possível gerar dois valores idênticos de nenhuma forma. 
 
Esse tipo de dados é composto por letras e números, como você pode ver neste exemplo: E75B92A3-
3299-4407-A913-C5CA196B3CAB. 
Os identificadores de campo único são necessários para montar sites SGBDDs onde há vários sites 
publicadores para se evitar conflitos de chave primária. Vamos entender o porquê disso vendo um 
exemplo. 
Suponha que você tenha uma tabela chamada VENDA, com os campos ID_Venda (Inteiro), ValorVenda 
(Dinheiro), DataVenda (Data) e ID_Cliente (Inteiro). Essa tabela VENDA tem, associada a ela, uma outra 
tabela denominada ITENS_DE_VENDA que corresponde aos produtos vendidos e que para nosso 
exemplo não necessita de detalhamento. 
Vamos imaginar que há um SGBDD montado com um replicador mestre e cinco replicadores escravos 
semelhantes ao exemplo que passamos na seção anterior. Imagine que seja feita uma venda em São 
Paulo. A tabela de VENDA do SGBDD de São Paulo receberá um registro de ID_Venda = 1, ValorVenda = 
R$ 100, DataVenda = 10/12/2015 e ID_Cliente = 8. Esse registro será enviado para o replicador mestre e 
lá será armazenado da mesma forma. 
Imagine agora que a filial do Rio de Janeiro faça uma venda também. A tabela de VENDA do SGBDD do 
Rio de Janiero receberá um registro de ID_Venda = 1, ValorVenda = R$ 80, DataVenda = 10/12/2015 e 
ID_Cliente = 3. Esse registro será enviado para o replicador mestre e lá chegando entrará em conflito 
com a venda feita em São Paulo, já que ambos possuem o mesmo ID_Venda. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
35 
Para resolver esse conflito, modelos de dados SGBDD podem criar chaves primárias compostas (por 
exemplo, usando o ID_Venda + ID_Regiao, para identificar de qual região veio a venda), ou usando um 
identificador único para o registro, ao invés do tipo INTEIRO, utiliza-se o tipo UID. 
Ao usar o tipo UID garante-se que NUNCA haverá conflito de chave primária, pois nunca haverá dois 
registros com mesmo identificador. O mesmo conceito poderia ser implementado também para 
identificar clientes, evitando conflito de ID de clientes. Saiba+ 
 
Saiba+ 
Expandindo essa ideia, você perceberá que praticamente todas as tabelas que podem possuir 
conteúdo diferenciado em uma arquitetura de SGBDD poderiam se beneficiar do tipo UID para 
identificar esses registros. Tabelas que têm conteúdo idêntico, por exemplo, tabelas de Unidades da 
Federação, não precisam desse recurso, pois não haverá conflito. Exemplo: a UF RJ receberá o ID_UF 
= 3 em todos os sites. 
 
19 
Para inserir um identificador único em um registro, você precisará executar uma função do SGBD (caso o 
campo tenha preenchimento manual), ou deixar o SGBDD gerar automaticamente (caso o campo tenha 
preenchimento automático). Não é possível gerar o UID manualmente. A instrução SQL abaixo (no 
formato MS SQL Server) insere dados numa suposta tabela de VENDA com campo de ID_Venda do tipo 
UID: 
INSERT INTO VENDAS (ID_Venda, ValorVenda, DataVenda, ID_Cliente) 
VALUES (newid(), 100, ‘2015-12-10’, 8) 
 
Note que a função “newid()” irá gerar um número de UID e inseri-lo na tabela. 
Uma vez criado, você pode usar o valor de UID para referências. Como, por exemplo, em cláusulas 
WHERE ou mesmo numa instrução INSERT. Vamos supor agora que o campo ID_Cliente também é do 
tipo UID e o valor do ID_Cliente que queremos inserir seja “E75B92A3-3299-4407-A913-
C5CA196B3CAB”. A instrução SQL agora seria: 
INSERT INTO VENDAS (ID_Venda, ValorVenda, DataVenda, ID_Cliente) 
VALUES (newid(), 100, ‘2015-12-10’, ‘E75B92A3-3299-4407-A913-C5CA196B3CAB’) 
 
Note que usamos aspas para delimitar o campo de UID, ele é formatado do mesmo modo que um 
campo de caracteres. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
36 
Dessa forma, ao montar uma arquitetura de bancos de dados distribuídos onde mais de um SGBDD 
enviarão dados, tenha cuidado para evitar possíveis conflitos de chave primária. Utilize chaves 
compostas ou identificadores únicos para evitar esses conflitos. 
20 
3.2.2 - Tarefa de sincronização 
Para se ter efeito, uma arquitetura de bancos de dados distribuídos precisa estar em constante 
sincronia. A maioria dos SGBDDs implementam funcionalidades automáticas de sincronia. Essas 
atividades são classificadas em: 
 Configuração do Master; 
Ao se iniciar um novo projeto, a primeira atividade é definir um SGBDD como Master, definir o(s) 
banco(s) de dados a ser(em) replicado(s) e definir o tipo de replicação. Nesse momento, o SGBDD fará 
uma análise do BDD e identificará prováveis problemas de conflito de chave primária. Você precisará 
resolver todos os problemas de conflitos de chave primária antes de prosseguir para o próximo passo 
(veja seção anterior para detalhes de conflito de chave primária). 
 
 Configuração dos Escravos; 
Ao adicionar um novo site em um sistema BDD como escravo, é preciso definir o banco de dados da 
replicação (provavelmente um novo BD vazio) e o modelo de replicação (se só recebe dados ou se 
recebe e envia). Nesse momento, será necessário informar quem é o site Master e solicitar a 
sincronia inicial. Essa sincronia inicial é representada por uma grande carga de dados inicial e, 
portanto, pode ser bastante demorada. 
 
 Feito isso, você pode decidir por definir manualmente a estratégia de sincronização ou deixar o 
site Master decidir por si só. 
O SGBDD possui mecanismos de otimização que definem a melhor estratégia de sincronia, levando 
em consideração tempos de resposta, velocidade de rede e outros fatores. O gerenciador de 
transação global é responsável por coordenar a execução por vários sites em conjunto com o 
gerenciador de transação local nesses sites. 
 
21 
4 - PROTOCOLOS DE SINCRONIZAÇÃO 
O SGBDD, por meio do mecanismo gerenciador de transação global, gerencia não só a sincronização dos 
bancos, mas também as transações interbancos. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
37 
As transações interbancos são caracterizadas por operações SQL que precisam acessar e/ou modificar 
dados armazenados em sites BDD diferentes. Essas transações devem garantir todas as propriedades já 
discutidas anteriormente para uma transação convencional (por exemplo, os mecanismos de BEGIN 
TRANSACTION, COMMIT TRANSACTION, ROLL BACK, REDE_ITEM, WRITE_ITEM, ABORT etc.). Em um 
ambiente de BDD, o site que inicia a transação geralmente é o site responsável por coordenar a 
execução das operações da transação em todos os outros sites. 
Os SGBDDs normalmente implementam dois protocolos de sincronização: 
 o protocolo de confirmação em duas fases (two phase commit - 2PC) e 
 o protocolo de confirmação em três fases (three phase commit - 3PC). 
 
Veremos essesprotocolos a seguir. 
22 
4.1 - Protocolo de confirmação em duas fases 
Este protocolo trabalha com um gerenciador de recuperação global (ou coordenador) que mantém as 
informações necessárias para a recuperação. Neste modelo, o gerenciador assume o papel de 
controle da transação, que é feito por meio do bloqueio de acesso ao item de dado alterado. 
 
Ou seja, enquanto a transação não é processada em todos os sites participantes da transação, os itens 
de dados acessados e alterados em cada um dos sites participantes ficam bloqueados de acesso. Após a 
confirmação da transação pelo site coordenador, todos os demais sites recebem o comando de 
desbloqueio do item. 
Pelo fato de os itens de dados ficarem bloqueados, essa característica é considerada como uma grande 
desvantagem para o protocolo 2PC. Por exemplo, uma falha no coordenador da transação faz com que 
todos os participantes fiquem bloqueados até que o coordenador se recupere. 
23 
4.2 - Protocolo de confirmação em três fases 
O protocolo 3PC divide a confirmação da transação em duas partes: 
 uma denominada preparar para confirmar e 
 outra denominada confirmar. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
38 
A fase preparar para confirmar é utilizada para comunicar o resultado da fase de voto a todos os 
participantes. Se todos os participantes votarem sim, então o coordenador os instrui a entrar no estado 
preparar para confirmar. 
A subfase confirmar é idêntica à sua correspondente em duas fases. Agora, se o coordenador falhar 
durante essa subfase, outro participante pode ver a transação inteira até o término. Ele pode 
simplesmente perguntar a um participante que falhou se ele recebeu uma mensagem de preparar para 
confirmar. Se não tiver recebido, então ele assume seguramente que deve abortar. Assim, o estado do 
protocolo pode ser recuperado independentemente de qual participante falhou. Além disso, ao limitar o 
tempo exigido para uma transação confirmar ou abortar a um tempo-limite máximo, o protocolo 
garante que uma transação tentando confirmar por 3PC libera os bloqueios sobre o tempo-limite. 
A ideia principal é limitar o tempo de espera para os participantes que confirmaram e estão 
esperando por uma confirmação ou aborto global do coordenado. Quando um participante recebe 
uma mensagem de pré-confirmação, ele sabe que o restante dos participantes votou para confirmar. 
Se uma mensagem de pré-confirmação não tiver sido recebida, então o participante abortará e 
liberará todos os bloqueios. 
 
24 
4.3 - Conclusão 
O tema bancos de dados distribuídos é bastante extenso e por si só seria base para toda uma matéria de 
curso. Aqui exploramos conceitos gerais sobre a replicação de dados. Para aprofundar seu 
conhecimento, avalie o manual dos SGBDDs em como eles implementam a arquitetura de BDD. A 
grande maioria dos SGBDs modernos como MySQL, Postgree, Oracle, MS SQL Server e outros 
implementam BDD. 
25 
RESUMO 
Neste módulo, aprendemos que: 
a) Um sistema de computação distribuído consiste em uma série de elementos de processamento, 
não necessariamente homogêneos, que são interconectados por uma rede de computadores e 
que cooperam na realização de certas tarefas atribuídas. 
b) A transparência refere-se à ideia geral de ocultar detalhes da implementação dos usuários finais. 
c) A autonomia refere-se ao grau de um site de um BDD ser capaz de funcionar autonomamente, 
sem necessidade de consultar ou enviar dados de/para outros sites. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
39 
d) O grau de confiabilidade e disponibilidade refere-se à capacidade de um sistema funcionar e 
estar disponível para seus usuários nos momentos estabelecidos (nem todo sistema deve operar 
24h por dia/365 dias por ano). 
e) A arquitetura de BDD promove várias vantagens, entre as quais: aumento da flexibilidade e 
facilidade do projeto de software, aumento da confiabilidade e disponibilidade da solução, 
aumento do desempenho e facilita a expansão de novos sites. 
f) Para que um SGBDD promova o sistema de BDD, é necessário que o SGBDD implemente as 
seguintes funcionalidades: acompanhamento de distribuição de dados, processamento de 
consulta distribuído, gerenciamento de transação distribuído, gerenciamento de dados 
replicados, recuperação de banco de dados distribuído, segurança, gerenciamento de diretório 
distribuído. 
g) Um projeto BDD é considerado homogêneo quando o SGBDD utilizado por todos os sites é o 
mesmo, assim como a aplicação dos usuários que acessam os sites também é a mesma. 
h) Os tipos de arquitetura de sistema multiprocessador são: arquitetura de memória 
compartilhada, arquitetura de disco compartilhado e arquitetura nada compartilhado. 
i) A sincronia de um site SGBDD é gerenciada por meio de um servidor líder da arquitetura, 
denominado de replicador mestre. Os demais sites SGBDDs do conjunto são denominados de 
replicadores escravos. 
j) Um identificador único é um tipo de dado especial utilizado principalmente em sistemas 
distribuídos. Ele possui a característica de ser impossível criar dois valores iguais, o que previne 
qualquer possibilidade de conflitos de chave primária em bancos distribuídos. 
k) Uma transação interbancos distribuídos é controlada pelo gerenciador de transações do site que 
iniciou a transação. Há dois tipos de protocolos de controle de transação, o de confirmação em 
duas fases, que bloqueia itens de dados enquanto a transação não encerra, e o de confirmação 
em três fases, onde uma etapa intermediária controla a execução da transação e a etapa final 
confirma ou desfaz a transação. 
UNIDADE 4 – TÓPICOS AVANÇADOS SOBRE SGBD 
MÓDULO 3 –DATA WAREHOUSE (PARTE 1) 
01 
1 - VISÃO GERAL DA TECNOLOGIA DE MINERAÇÃO DE DADOS 
Estudamos anteriormente como um banco de dados distribuído é implantado e como as transações são 
coordenadas nesse tipo de ambiente. Agora é o momento de falarmos sobre data warehouse. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
40 
Nas últimas três décadas, muitas organizações têm gerado uma grande quantidade de dados legíveis à 
máquina na forma de arquivos e bancos de dados. Para processar esses dados, temos a tecnologia de 
banco de dados disponível, que dá suporte a linguagens de consulta como a SQL. O problema com a SQL 
é que ela é uma linguagem estruturada, que assume que o usuário está ciente do esquema do banco de 
dados. A SQL dá suporte a operações da álgebra relacional que permitem que um usuário selecione 
linhas e colunas de dados das tabelas ou informações relacionadas à junção de tabelas com base em 
campos comuns. 
A mineração de dados (do inglês data mining) é o processo de explorar grandes quantidades de 
dados à procura de padrões consistentes, como regras de associação ou sequências temporais, para 
detectar relacionamentos sistemáticos entre variáveis, detectando assim novos subconjuntos de 
dados. 
 
No campo da administração, a mineração de dados é o uso da tecnologia da informação para 
descobrir regras, identificar fatores e tendências-chave, descobrir padrões e relacionamentos ocultos 
em grandes bancos de dados para auxiliar a tomada de decisões sobre estratégia e vantagens 
competitivas. 
 
02 
Quando falamos de grandes massas de dados, surgem as seguintes questões: 
 As necessidades de consulta sobre grandes volumes de dados nem sempre é padrão, às vezes 
são necessários relatórios totalizadores, outras vezes são necessários relatórios detalhados; 
algumas vezes se analisam os dados geograficamente, outras vezes por valores, outras vezes 
por datas. Dessa forma é muito difícil que as aplicações de usuário incorporem todos os 
relatórios necessários e desejados pelos clientes. Muitas vezes é necessário prover 
mecanismos para

Outros materiais