Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

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 paraque os próprios usuários produzam os relatórios necessários. 
 Relatórios que contemplam muitos cálculos em muitos dados sobrecarregam os servidos de 
processamento do SGBD. Por sua vez, se esses cálculos estivessem pré-processados (como, 
por exemplo, subtotalizados em campos desnormalizados), o SGBD não necessitaria refazer 
esses cálculos a cada consulta de usuário. 
 Grandes massas de dados tornam a pesquisa por desvios ou padrões muito difíceis de serem 
feitas de modo manual. Precisamos de mecanismos mais eficientes e baseados em 
automação para conseguir produzir os resultados esperados. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
41 
Neste módulo, veremos que a tecnologia de data warehouse oferece vários tipos de funcionalidade: de 
consolidação, agregação e resumo de dados. Os data warehouses (ou armazéns de dados) nos permitem 
ver a mesma informação por múltiplas dimensões. Incluiremos, também, alguns aspectos sobre 
mineração de dados (ou data mining). 
Para ser útil na prática, a mineração de dados precisa ser executada de modo eficiente em grandes 
arquivos e bancos de dados. Embora alguns recursos de mineração de dados estejam sendo fornecidos 
em SGBDRs (R de relacionais), ela não é bem integrada aos sistemas de gerenciamento de banco de 
dados. 
Em relatórios como o popular Gartner Report, a mineração de dados tem sido aclamada como uma das 
principais tecnologias para o futuro próximo. Inicialmente, iremos relacionar a mineração de dados à 
área mais ampla, chamada descoberta do conhecimento. 
Mineração de dados 
Como o termo indica, mineração de dados refere-se à mineração ou descoberta de novas 
informações em termos de padrões ou regras com base em grandes quantidades de dados. 
 
03 
1.1 - Mineração de dados versus data warehouse 
O objetivo de um data warehouse é dar suporte à tomada de decisão com dados. A mineração de dados 
pode ser usada junto com um data warehouse para ajudar com certos tipos de decisões. A mineração de 
dados pode ser aplicada a bancos de dados operacionais com transações individuais. Para tornar a 
mineração de dados mais eficiente, o data warehouse deve ter uma coleção de dados agregada ou 
resumida. 
Uma definição comum para um data warehouse é: 
Uma coleção de dados orientada a assunto, integrada, não volátil, variável no tempo para o suporte 
às decisões da gerência. Os data warehouses oferecem acesso a dados para análise complexa, 
descoberta de conhecimento e tomada de decisão. Eles dão suporte a demandas de alto desempenho 
sobre os dados e informações de uma organização. 
 
Já a mineração de dados é o ato de explorar o data warehouse, é o local de armazenamento dos 
dados a serem explorados, organizado de tal forma a facilitar a exploração. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
42 
Essa coleção de dados é formada por rotinas de conversão de dados transacionais, nas quais novas 
formas de análise sobre os mesmos dados são gerados. Exemplo: uma empresa poderá, a partir dos 
dados de todas as vendas realizadas em determinado ano, criar um banco de dados que resuma e 
consolide as vendas por tipo de item, faixas de valor, região da venda, faixas de valor de venda, marca e 
outros. Esse novo banco de dados gerado é a representação agregada/resumida do banco de dados 
relacional. A conversão transforma um banco de dado transacional (On-line Transaction Processing – 
OLTP) em um banco de dados analítico (On-line Analytical Processing – OLAP). 
04 
Os bancos de dados tradicionais têm suporte para o processamento de transação on-line (OLTP), que 
inclui inserções, atualizações e exclusões, enquanto também têm suporte para requisitos de consulta de 
informação. 
Os bancos de dados relacionais tradicionais são otimizados para processar consultas que podem tocar 
em uma parte do banco de dados e transações que lidam com inserções ou atualizações no processo de 
algumas tuplas por relação. Assim, eles não podem ser otimizados para mineração de dados. 
Ao contrário, os data warehouses são projetados exatamente para dar 
suporte à extração, processamento e apresentação eficientes para fins 
analíticos e de tomada de decisão. Em comparação com os bancos de 
dados tradicionais, os data warehouses em geral contêm quantidades 
muito grandes de dados de várias fontes, que podem incluir bancos de 
dados de diferentes modelos de dados e, às vezes, arquivos adquiridos 
de sistemas e plataformas independentes. 
 
Para discutir data warehouses e distingui-los dos bancos de dados transacionais, é preciso que haja um 
modelo de dados apropriado. O modelo de dados multidimensional (explicado com mais detalhes logo 
adiante) é uma boa escolha para OLAP e tecnologias de apoio à decisão. Ao contrário dos multibancos 
de dados, que oferecem acesso a bancos de dados disjuntos e normalmente heterogêneos, um data 
warehouse com frequência é um depósito de dados integrados de múltiplas fontes, processados para 
armazenamento em um modelo multidimensional. 
Diferentemente da maioria dos bancos de dados transacionais, data warehouses costumam apoiar a 
análise de série temporal e tendência, ambas exigindo mais dados históricos do que geralmente é 
mantido nos bancos de dados transacionais. 
05 
Em comparação com os bancos de dados transacionais, os data warehouses são não voláteis. Saiba+ 
Em sistemas transacionais, as transações são a unidade e o agente de mudança no banco de dados; ao 
contrário, a informação do data warehouse é muito menos detalhada e atualizada de acordo com uma 
escolha cuidadosa de política de atualização, normalmente incremental. As atualizações no armazém 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
43 
são tratadas pelo componente de aquisição do armazém, que oferece todo o pré-processamento 
exigido. 
Também podemos descrever o data warehouse de forma mais geral como uma coleção de 
tecnologias de apoio à decisão, visando a habilitar o trabalhador do conhecimento (executivo, 
gerente, analista) a tomar decisões melhores e mais rápidas. 
 
A figura a seguir oferece uma visão geral da estrutura conceitual de um data warehouse. Ela mostra o 
processo inteiro de data warehousing, que inclui a possível limpeza e reformatação dos dados antes que 
sejam carregados no armazém. Esse processo é tratado por ferramentas conhecidas como ferramentas 
de ETL (extração, transformação e carga). No final do processo, tecnologias de OLAP, mineração de 
dados e DSS podem gerar novas informações relevantes, como as regras; essas informações aparecem 
na figura a seguir, voltando ao armazém. A figura também mostra que as fontes de dados podem incluir 
arquivos. 
 
Exemplo de transações no modelo de dados tradicional OLTP que efetua carga em um modelo OLAP. 
 
Saiba+ 
Isso significa que as informações no data warehouse mudam com muito menos frequência e não 
podem ser consideradas de tempo real com atualização periódica. 
 
06 
Veja a seguir as principais diferenças entre os bancos de dados OLAP e OLTP: 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
44 
 OLAP OLTP 
Foco Foco no nível estratégico da 
organização. Visa a análise empresarial e 
tomada de decisão (rotinas como: 
identificar melhores resultados de 
vendas, maiores gastos, produtos que 
não vendem, produtos que vendem 
mais, etc). 
Foco no nível operacional da organização. 
Visa a execução operacional do negócio 
(rotinas do dia a dia, como: comprar, 
vender, pagar, etc). 
Performance Otimização para leitura e geração de 
análises e relatórios gerenciais. 
Alta velocidade tanto para leitura como 
gravação de dados operacionais (pequena 
quantidade de informação), porém 
ineficiente para geração de análisesgerenciais (grande quantidade de dados). 
Estrutura dos dados Os dados são estruturados na 
modelagem dimensional. Os dados 
normalmente possuem alto nível de 
sumarização. 
Os dados normalmente estruturados em 
um modelo relacional normalizado, 
otimizado para a utilização transacional. 
Os dados possuem alto nível de detalhes. 
Armazenamento O armazenamento é feito em estruturas 
de data warehouse com otimização no 
desempenho em grandes volumes de 
dados. 
O armazenamento é feito em sistemas 
convencionais de banco de dados e 
utilizando sistemas de informação da 
organização. 
Abrangência É utilizado pelos gestores e analistas 
para tomada de decisão. 
É utilizado por usuários comuns da 
organização. 
Frequência de 
atualização 
A atualização das informações é feita no 
processo de carga dos dados. 
Frequência baixa, podendo ser diária, 
mensal ou anual (ou critério específico). 
A atualização de dados é diária, feita no 
momento da transação. Frequência muito 
alta de atualizações. 
Volatilidade Dados históricos e não voláteis. Os 
dados não sofrem alterações, salvo 
necessidades específicas (por motivos 
de erro ou inconsistência de 
informações). 
Dados voláteis, passíveis de modificação e 
exclusão. 
Tipos de permissões 
nos dados 
É permitido apenas a inserção (carga de 
dados) e leitura. Sendo que para o 
usuário está apenas disponível a leitura. 
Podem ser feitos leitura, inserção, 
modificação e exclusão de dados. 
Tipos de dados dos 
itens de dado 
Mais comuns são strings pequenas, 
booleano, inteiro, ponto flutuante e 
Qualquer tipo de dado. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
45 
data. Extremamente raro encontrar 
longas strings ou binários. 
 
07 
Em um banco de dados transacional (OLTP), normalmente os usuários utilizam sistemas de informação 
cujos dados são mantidos no banco de dados. Já um banco de dados OLAP, os usuários normalmente 
têm acesso direto aos dados por meio de ferramentas de análise. 
Veja figura abaixo: 
 
Banco de dados OLTP x banco de dados OLAP 
A mineração de dados ajuda na extração de novos padrões significativos que não podem ser 
necessariamente encontrados apenas ao consultar ou processar dados ou metadados no data 
warehouse. Portanto, as aplicações de mineração de dados devem ser fortemente consideradas desde 
cedo, durante o projeto de um data warehouse. 
Além disso, ferramentas de mineração de dados devem ser projetadas para facilitar seu uso juntamente 
com data warehouse. De fato, para bancos de dados muito grandes, que rodam terabytes ou até 
petabytes de dados, o uso bem-sucedido das aplicações de mineração de dados dependerá, primeiro, da 
construção de um data warehouse. 
08 
1.2 - Mineração de dados como parte do processo de descoberta do conhecimento 
A descoberta de conhecimento nos bancos de dados, normalmente abrange mais do que a mineração 
de dados. O processo de descoberta de conhecimento compreende seis fases: 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
46 
1) seleção de dados, 
2) limpeza de dados, 
3) enriquecimento, 
4) transformação ou codificação de dados, 
5) mineração de dados e 
6) relatório e exibição da informação descoberta. 
 
Como exemplo, considere um banco de dados de transação mantido por um supermercado. Suponha 
que os dados do cliente incluam um nome de cliente, CEP, número de telefone, data de compra, código 
do item, preço, quantidade e valor total. Uma grande quantidade de conhecimento novo pode ser 
descoberta pelo processamento desse banco de dados de cliente. Veja a seguir. 
 
 
Exemplos (enriquecimento) 
Por exemplo, dados os nomes de cliente e números de telefone, a loja pode adquirir outros dados 
sobre idade, renda e avaliação de crédito e anexá-los a cada registro. 
 
Durante a seleção de 
dados, dados sobre itens 
específicos ou categorias 
de itens, ou de lojas em 
uma região, ou área 
específica do país, podem 
ser selecionados. 
O processo de limpeza 
de dados, então, pode 
corrigir códigos postais 
inválidos ou eliminar 
registros com prefixos 
de telefone incorretos. 
O enriquecimento
normalmente melhora 
os dados com fontes de 
informação adicionais. 
Exemplos
A transformação de 
dados e a codificação
podem ser feitas para 
reduzir a quantidade de 
dados. Veja exemplos
Se a mineração de dados for baseada em um 
data warehouse existente para essa cadeia de 
varejo, podemos esperar que a limpeza já 
tenha sido aplicada. É somente depois do 
pré-processamento que as técnicas de 
mineração de dados são usadas para extrair 
diferentes regras e padrões. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
47 
Veja exemplos (transformação e codificação) 
Por exemplo, os códigos de item podem ser agrupados em relação a categorias de produtos, em 
áudio, vídeo, suprimentos, aparelhos eletrônicos, câmera, acessórios, e assim por diante. Os códigos 
postais podem ser agregados em regiões geográficas, as rendas podem ser divididas em faixas, e 
assim por diante. 
 
09 
O resultado da mineração pode ser descobrir o seguinte tipo de informação nova: 
a) Regras de associação; 
b) Padrões sequenciais; 
c) Árvores de classificação. 
Podemos ver que existem muitas possibilidades para descobrir novos conhecimentos sobre padrões de 
compra, relacionando fatores como idade, grupo de renda, local de residência, o que e quanto os 
clientes compram. Essa informação pode então ser utilizada para planejar políticas de marketing com 
base em demografias, combinar itens em propagandas ou planejar estratégias de distribuição dos 
produtos dentro da loja. 
Conforme mostra esse exemplo de loja de varejo, a mineração de dados 
precisa ser precedida por uma preparação significativa nos dados, antes 
de gerar informações úteis que possam influenciar diretamente as 
decisões de negócios. 
 
Os resultados da mineração de dados podem ser informados em diversos formatos, como: 
 listagens, 
 saídas gráficas, 
 tabelas de resumo ou visualizações. 
Regras de associação 
Por exemplo, sempre que um cliente compra equipamento de vídeo, ele também compra cabos e 
acessórios. Com isso, o vendedor já pode oferecer esses outros produtos para prováveis clientes que 
estejam comprando equipamentos de vídeo. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
48 
Padrões sequenciais 
Por exemplo, suponha que um cliente compre uma câmera e dentro de três meses ele compre 
suprimentos fotográficos, depois, dentro de seis meses, ele provavelmente comprará um item de 
acessório. Isso define um padrão sequencial de transações. Um cliente que compra mais que o dobro 
em períodos promocionais provavelmente poderá comprar pelo menos uma vez durante o período 
de Natal. 
 
Árvores de classificação 
Por exemplo, os clientes podem ser classificados por frequência de visitas, tipos de financiamento 
utilizado, valor da compra ou afinidade para tipos de itens; algumas estatísticas reveladoras podem 
ser geradas para essas classes. Esses conjuntos podem ser formados por similaridade de 
comportamento (exemplo: clientes que gastam mais de R$1000 por compra e clientes que gastam 
menos de R$1000) ou de características básicas (exemplos: idade, sexo, grau de instrução etc.). 
 
10 
1.3 - Objetivos da mineração de dados e da descoberta do conhecimento 
A mineração de dados costuma ser executada com alguns objetivos finais ou aplicações. De um modo 
geral, esses objetivos se encontram nas seguintes classes: 
 
O termo mineração de dados é usado popularmente em um sentido muito amplo. Em algumas 
situações, ele inclui análise estatística e otimização restrita, bem como aprendizado de máquina. 
Previsão
•A mineraçãode 
dados pode 
mostrar como 
certos atributos 
dos dados se 
comportarão no 
futuro. 
Exemplos
Identificação
•Os padrões de 
dados podem 
ser usados para 
identificar a 
existência de um 
item, um evento 
ou uma 
atividade. 
Exemplos
Classificação
•A mineração de 
dados pode 
particionar os dados 
de modo que 
diferentes classes ou 
categorias possam 
ser identificadas 
com base em 
combinações de 
parâmetros. 
Exemplos
Otimização
•Um objetivo relevante 
da mineração de dados 
pode ser otimizar o uso 
de recursos limitados, 
como: tempo, espaço, 
dinheiro ou materiais e 
maximizar variáveis de 
saída como vendas ou 
lucros sob determinado 
conjunto de restrições. 
Exemplos
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
49 
Não existe uma linha nítida separando a mineração de dados dessas disciplinas. Portanto, está além do 
nosso escopo discutir com detalhes a gama inteira de aplicações que compõem esse vasto corpo de 
trabalho. Para um entendimento detalhado do assunto, os alunos poderão consultar livros 
especializados, dedicados à mineração de dados. 
Previsão. 
Alguns exemplos de mineração de dados previsível incluem a análise de transações de compra para 
prever o que os consumidores comprarão sob cerros descontos, quanto volume de vendas uma loja 
gerará em determinado período e se a exclusão de uma linha de produtos gerará mais lucros. Em tais 
aplicações, a lógica de negócios é usada junto com a mineração de dados. Em um contexto científico, 
certos padrões de onda sísmica podem prever um terremoto com alta probabilidade. 
 
Identificação. 
Por exemplo, intrusos tentando quebrar um sistema podem ser identificados pelos programas 
executados, arquivos acessados e tempo de CPU por sessão. Em aplicações biológicas, a existência de 
um gene pode ser identificada por certas sequências de símbolos nucleotídeos na sequência de DNA. 
A área conhecida como autenticação é uma forma de identificação. Ela confirma se um usuário é 
realmente um usuário específico ou de uma classe autorizada, e envolve uma comparação de 
parâmetros, imagens ou sinais contra um banco de dados. 
 
Classificação. 
Por exemplo, os clientes em um supermercado podem ser categorizados em compradores que 
buscam desconto, compradores com pressa, compradores regulares leais, compradores ligados a 
marcas conhecidas e compradores eventuais. Essa classificação pode ser usada em diferentes análises 
de transações de compra de cliente como uma atividade pós-mineração. Às vezes, a classificação 
baseada em conhecimento de domínio comum é utilizada como uma entrada para decompor o 
problema de mineração e torná-lo mais simples. Por exemplo, alimentos saudáveis, alimentos de 
festa ou alimentos de lanche escolar são categorias distintas nos negócios do supermercado. Faz 
sentido analisar os relacionamentos dentro e entre categorias como problemas separados. Essa 
categorização pode servir para codificar os dados corretamente antes de submetê-los a mais 
mineração de dados. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
50 
Otimização. 
Esse objetivo da mineração de dados é semelhante à função objetiva, usada em problemas de 
pesquisa operacional, que lida com otimização sob restrições. 
 
11 
1.4 - Tipos de conhecimento descobertos durante a mineração de dados 
O termo conhecimento é interpretado de forma livre como algo que envolve algum grau de inteligência. 
Existe uma progressão de dados brutos da informação para conhecimento, enquanto passamos pelo 
processamento adicional. 
O conhecimento normalmente é classificado como indutivo versus dedutivo. O conhecimento 
dedutivo deduz novas informações com base na aplicação de regras lógicas previamente 
especificadas de dedução sobre o dado indicado. A mineração de dados enfoca o conhecimento 
indutivo, que descobre novas regras e padrões com base nos dados fornecidos. 
 
O conhecimento pode ser representado de várias maneiras: em um sentido desestruturado, ele pode 
ser representado por regras ou pela lógica proposicional. Em uma forma estruturada, ele pode ser 
representado em árvores de decisão, redes semânticas, redes neurais ou hierarquias de classes ou 
frames. 
É comum descrever o conhecimento descoberto durante a mineração de dados da seguinte forma: 
 Regras de associação. 
 Hierarquias de classificação. 
 Padrões sequenciais. 
 Padrões dentro de série temporal. 
 Agrupamento. 
Para a maioria das aplicações, o conhecimento desejado é uma combinação dos tipos citados. 
Expandimos cada um desses tipos de conhecimento nas próximas seções. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
51 
Regras de associação. 
Essas regras correlacionam a presença de um item de dado com outra faixa de valores para um 
conjunto de variáveis diverso. Exemplos: (1) Quando uma compradora adquire uma bolsa, ela 
provavelmente compra sapatos. (2) Uma imagem de raio X contendo características “a” e “b” 
provavelmente também exibe a característica “c”. 
Hierarquias de classificação. 
O objetivo é trabalhar partindo de um conjunto existente de eventos ou transações para criar uma 
hierarquia de classes. Exemplos: (1) Uma população pode ser dividida em cinco faixas de possibilidade 
de crédito com base em um histórico de transações de crédito anteriores. (2) Um modelo pode ser 
desenvolvido para os fatores que determinam a probabilidade de um consumidor entrar ou não em 
uma determinada seção de uma loja de departamentos. 
 
Padrões sequenciais. 
Uma sequência de ações ou eventos é buscada. Exemplo: (1) se um paciente passou por uma cirurgia 
de ponte de safena para artérias bloqueadas e um aneurisma e, depois, desenvolveu ureia sanguínea 
alta dentro de um ano da cirurgia, ele provavelmente sofrerá de insuficiência renal nos próximos 18 
meses. (2) se um cliente comprou uma TV acima de 40” e depois comprou um aparelho Blu-ray, 
provavelmente ele poderá comprar caixas de som e um amplificador externo. A detecção de padrões 
sequenciais é equivalente à detecção de associações entre eventos com certos relacionamentos 
temporais. 
 
Padrões dentro de série temporal. 
As similaridades podem ser detectadas dentro de posições de uma série temporal de dados, que é 
uma sequência de dados tomados em intervalos regulares, como vendas diárias ou preços de ações 
de fechamento diário. Exemplos: (1) As ações de uma companhia de energia, ABC Energia, e uma 
companhia financeira, XYZ Seguros, mostraram o mesmo padrão durante 2009 em matéria de preços 
de fechamento de ações (quando um sobe o outro sobe junto, quando um desce, o outro desce 
junto). (2) Dois produtos mostraram o mesmo padrão de vendas no verão, mas um padrão diferente 
no inverno. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
52 
Agrupamento. 
Determinada população de eventos ou itens pode ser particionada (segmentada) em conjuntos de 
elementos 'semelhantes'. Exemplos: (1) Uma população inteira de dados de transação sobre uma 
doença pode ser dividida em grupos com base na similaridade dos efeitos colaterais produzidos. (2) A 
população adulta no país pode ser categorizada em cinco grupos, desde mais prováveis de comprar 
até menos prováveis de comprar um novo produto. 
 
 
12 
2 - REGRAS DE ASSOCIAÇÃO 
Uma das principais tecnologias em mineração de dados envolve a descoberta de regras de associação. O 
banco de dados é considerado uma coleção de transações, cada uma envolvendo um item de dado. 
Um exemplo comum é o de dados de cesta de mercado. Aqui, a cesta de mercado corresponde aos 
conjuntos de itens que um consumidor compra em um supermercado durante uma visita. A ideia 
principal dessa característica é que um cliente que compraum item X, provavelmente comprará um 
item Y. Exemplo: 
Suponha que 4 consumidores adquiram os seguintes produtos em uma padaria: 
 
Observe que a maioria dos consumidores compram pão e leite. Uma política de marketing, baseada na 
análise das vendas, poderia sugerir que: 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
53 
 pão e leite fiquem próximos um do outro, 
 suco e biscoito fiquem no caminho que o cliente percorre dentro da padaria, e 
 seja feita uma promoção para o cliente comprar café (que é um item pouco vendido). 
A relação entre dois itens pode ser definida por dois parâmetros: suporte e confiança. 
 
13 
3 - CLASSIFICAÇÃO 
A classificação está relacionada a separar itens de dados em grupos. 
 
Por exemplo: um sistema bancário pode classificar as características do cliente 
em baixo, médio ou alto risco, e estipular critérios de juros e concisões 
bancárias com base nessa classificação. 
O interessante aqui é que os critérios de classificação não são critérios fixos, 
previamente definidos, como, por exemplo, a faixa salarial, mas sim resultados de um ou outro 
comportamento do cliente. Por exemplo, um cliente que nunca paga juros provavelmente oferece 
menos risco de inadimplência do que outro cliente que sempre atrasa nos pagamentos. 
Uma questão fundamental dessa abordagem é a capacidade de o sistema 
conseguir classificar corretamente cada item de dado na sua respectiva 
categoria. Outros fatores importantes são o custo computacional para 
determinar uma classe e a flexibilidade do modelo para prover novas 
classes (quando necessário). 
 
14 
4 - AGRUPAMENTO 
O suporte refere-se à frequência em que um 
conjunto de itens ocorre no banco de dados. 
Ou seja, o suporte é o percentual de 
transações que dois itens aparecem 
correlacionados. No exemplo acima, 
percebemos que pão e leite aparecem em 75% 
das compras. 
A confiança é a relação em que o segundo item 
aparece associado ao primeiro. No nosso 
exemplo, 100% das pessoas que compraram 
pão também compraram leite.
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
54 
Enquanto que a classificação separa itens baseando-se em regras fixas, o agrupamento separa itens 
baseando-se por similaridade. 
 
Essa similaridade pode ser definida por um comportamento ou característica 
que se percebe no grupo. Por exemplo, quando vários pacientes tomam um 
determinado medicamento, alguns terão algum tipo de reação, outros terão 
outro tipo de reação e outros ainda não terão reação alguma. Separar as pessoas em grupos e poder 
estudar as características individuais pode ser fundamental para compreender porque determinada 
reação é presente ou não nos pacientes. 
O objetivo do agrupamento é colocar registros em grupos, de modo que os registros em um grupo 
sejam semelhantes uns aos outros e diferentes dos registros em outros grupos. Os grupos costumam ser 
disjuntos. 
Uma questão importante do agrupamento é o grau de similaridade dos 
itens. Similaridade refere-se ao grau se semelhança. Quanto mais disjuntos 
forem os elementos, menor é a similaridade e mais fácil é o agrupamento. 
 
15 
5 - APLICAÇÕES DE MINERAÇÃO DE DADOS 
Tecnologias de mineração de dados podem ser aplicadas a uma grande variedade de contextos de 
tomada de decisão nos negócios. Em particular, algumas áreas de ganhos significativos devem incluir as 
seguintes: 
 Marketing. 
As aplicações incluem análise de comportamento do consumidor com base nos padrões de compra; a 
determinação das estratégias de marketing que incluem propaganda, local da loia e correio 
direcionado; segmentação de clientes, lojas ou produtos; e projeto de catálogos, layouts de loja e 
campanhas publicitárias. 
 
 Finanças. 
As aplicações incluem análise de crédito de clientes, segmentação de contas a receber, análise de 
desempenho de investimentos financeiros, como ações, títulos e fundos de investimentos; avaliação 
de opções de financiamento; e detecção de fraude. 
 
 Manufatura. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
55 
As aplicações envolvem otimização de recursos como máquinas, mão de obra e materiais; e o projeto 
ideal de processos de manufatura, layout de galpões e projeto de produtos, como automóveis 
baseados em requisitos do cliente. 
 
 Saúde. 
Algumas aplicações são descoberta de padrões em imagens radiológicas, análise de dados 
experimentais para agrupar genes e relacionar sintomas ou doenças, análise de efeitos colaterais de 
drogas e eficácia de certos tratamentos, otimização de processos em um hospital e o relacionamento 
de dados de bem-estar do paciente com qualificações do médico. 
 
16 
RESUMO 
Neste módulo, aprendemos que: 
a) Os bancos de dados modernos têm gerado muitas massas de dados difíceis de serem analisadas. 
A tecnologia de mineração de dados é a resposta para essa questão. 
b) A mineração de dados é 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. 
c) A tecnologia de data warehouse oferece vários tipos de funcionalidade: consolidação, agregação 
e resumo de dados. 
d) O objetivo de um data warehouse é dar suporte à tomada de decisão. 
e) O data warehouse deve ter uma coleção de dados agregada ou resumida. 
f) A mineração de dados ajuda na extração de novos padrões significativos que não podem ser 
facilmente identificados em sistemas tradicionais. 
g) O processo de descoberta de conhecimento compreende seis fases: seleção de dados, limpeza 
de dados, enriquecimento, transformação ou codificação de dados, mineração de dados e o 
relatório e exibição da informação descoberta. 
h) O resultado da mineração provê os seguintes tipos de novas informações: regras de associação, 
padrões sequenciais e árvores de classificação. 
i) Os principais objetivos da mineração de dados são: previsão, identificação, classificação e 
otimização. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
56 
j) O resultado da mineração de dados é o conhecimento interpretado pelas análises realizadas. 
Esse conhecimento pode ser tipificado em regras de associação, hierarquias de classificação, 
padrões sequenciais, padrões dentro de série temporal e agrupamento. 
UNIDADE 4 – TÓPICOS AVANÇADOS SOBRE SGBD 
MÓDULO 4 –DATA WAREHOUSE (PARTE 2) 
01 
1 - REVENDO CONCEITOS: DW, OLAP, DSS 
Olá, seja bem-vindo à última etapa do nosso estudo. Como já fizemos uma introdução ao assunto data 
warehouse (DW), agora aprofundaremos o assunto. 
O crescente poder de processamento e a sofisticação das ferramentas e técnicas analíticas resultaram 
no desenvolvimento do que são conhecidos como data warehouses. 
Esses data warehouses oferecem armazenamento, funcionalidade e responsividade às consultas além 
das capacidades dos bancos de dados orientados à transação (OLTP). 
 
Acompanhando esse poder cada vez maior está uma grande demanda para melhorar o desempenho de 
acesso aos dados dos bancos de dados. Como temos visto no decorrer deste curso, os bancos de dados 
tradicionais equilibram o requisito de acesso a dados com a necessidade de garantir a integridade 
destes. 
Atualmente, existe uma grande necessidade de oferecer aos que tomam decisões, da gerência 
intermediária para cima, informações no nível correto de detalhe para dar suporte à atividade de 
tomada de decisão. Data warehouse, processamento analítico on-line (OLAP) e mineração de dados 
oferecem essa funcionalidade. 
Fizemos uma introdução às técnicas de mineração de dados no módulo anterior, agora, ofereceremos 
uma visão geral mais ampla das tecnologias de datawarehouse e OLAP. 
02 
Podemos dizer que um banco de dados é uma coleção de dados relacionados e um sistema de banco de 
dados é um banco de dados e um software de banco de dados juntos. Um data warehouse, conforme 
conceituamos na unidade passada, também é uma coleção de informações, bem como um sistema de 
suporte. Contudo, existe uma distinção clara. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
57 
Os bancos de dados tradicionais são transacionais (relacionais, orientados a objeto, em rede ou 
hierárquicos). Os data warehouses têm a característica distintiva de servir principalmente para 
aplicações de apoio à decisão. Eles são otimizados para recuperação de dados (apenas operações de 
select), e não para processamento de transação de rotina (não existem operações de update e delete 
no DW, somente operações de insert e select). 
 
Vários tipos de aplicações — OLAP, DSS e aplicações de mineração de dados — são costumeiramente 
associados a um data warehouse. Definimos cada uma delas a seguir: 
 
03 
2 - PRINCIPAIS CONCEITOS ASSOCIADOS A DATA WAREHOUSES 
2.1 - Modelos, Cubos e Matrizes 
Um data warehouse (DW) utiliza a modelagem dimensional (OLAP) ou multidimensional (MOLAP) como 
métodos mais comuns para o armazenamento de dados. Outros métodos menos comuns são o OLAP 
relacional (ROLAP), o OLAP Híbrido (HOLAP), e o OLAP para desktops (DOLAP). 
Os modelos dimensionais e multidimensionais tiram proveito dos relacionamentos inerentes nos 
dados para preencher os dados em matrizes dimensionais, chamadas cubos de dados. 
 
Para dados que se prestam à formatação dimensional, o desempenho da consulta nas matrizes 
dimensionais pode ser muito melhor do que no modelo de dados relacional. Três exemplos de 
dimensões em um data warehouse corporativo são: 
 os períodos temporais (meses, trimestres, anos), 
 produtos e 
 regiões da empresa (cidades, estados etc.). 
OLAP: (processamento analítico on-line) é 
um termo usado para descrever a análise 
de dados complexos do data warehouse. 
DSS (sistemas de apoio à decisão): ajudam os 
principais tomadores de decisões de uma 
organização com dados de nível mais alto em 
decisões complexas e importantes. A mineração 
de dados (que discutimos no módulo passado) é 
usada para descoberta do conhecimento.
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
58 
Exemplos: a análise dos itens vendidos por período e por filial da empresa; a análise dos produtos que 
deram mais defeito por período e por filial; a análise dos produtos que são vendidos em datas 
comemorativas por filial. 
04 
Uma planilha (linhas e colunas) é uma matriz bidimensional. Um exemplo seria uma planilha de vendas 
regionais por produto para determinado período. Os produtos poderiam ser mostrados como linhas, 
com as receitas de vendas para cada região compreendendo as colunas. Ao acrescentar uma dimensão 
de tempo, como os trimestres fiscais de uma organização, seria produzida uma matriz tridimensional, 
que poderia ser representada usando um cubo de dados. 
A figura a seguir mostra um cubo de dados tridimensional que organiza os dados de vendas de produtos 
por trimestres fiscais e regiões de vendas. 
 
Modelo de um cubo de dados tridimensional 
Cada célula teria dados para um produto específico, trimestre específico e região específica. Ao incluir 
outras dimensões, um hipercubo de dados poderia ser produzido, embora mais de três dimensões não 
possam ser facilmente visualizadas ou apresentadas de maneira gráfica. Os dados podem ser 
consultados diretamente em qualquer combinação de dimensões, evitando consultas de banco de 
dados complexas. 
05 
2.2 - Giro (rotação) do cubo 
Existem ferramentas para visualizar dados de acordo com a escolha de dimensões do usuário (o próprio 
Ms Excel pode ser usado para isso). 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
59 
Mudar da hierarquia (orientação) unidimensional para outra é algo feito com facilidade em um cubo 
de dados com uma técnica chamada de giro (também chamada de rotação). Nessa técnica, o cubo de 
dados pode ser imaginado girando para mostrar uma orientação diferente dos eixos. 
 
Por exemplo, você poderia girar o cubo de dados para mostrar as receitas de vendas regionais como 
linhas, os totais de receita por trimestre fiscal como colunas e os produtos da empresa na terceira 
dimensão. Logo, essa técnica é equivalente a ter uma tabela de vendas regionais para cada produto 
separadamente, em que cada tabela mostra vendas trimestrais para esse produto região por região. 
06 
2.3 - Operações de roll up ou drill down sobre dados agrupados hierarquicamente 
Uma das formas mais comuns de agrupar itens, valores e resultados é o modelo hierárquico. Esse 
modelo separa e classifica os itens de informação em uma árvore de categorias. Quanto mais perto 
da raiz dessa árvore, maior é a agregação; quando mais perto das folhas dessa árvore, mais detalhada 
é a informação. 
 
 
Exemplo de estrutura hierárquica apresentando a raiz no topo e as folhas abaixo. 
O tipo de informação hierarquicamente organizada mais comum é o tempo. Nesse modelo, as 
informações são agregadas por anos ou décadas (quando próximas à raiz) e detalhadas sucessivamente 
até chegar à granularidade de meses ou dias (quando detalhadas próximas às folhas). Na prática, isso 
pode corresponder a um relatório de vendas que apresente os totais de vendas nos últimos dez anos 
agrupados por ano (ou seja, um relatório com 10 valores, um para cada ano) ou o mesmo relatório 
agrupado por meses (ou seja, um relatório com 120 valores, um para cada mês de cada ano). 
07 
Para permitir expandir ou contrair os dados representados, os modelos multidimensionais atendem 
prontamente a visões hierárquicas no que é conhecido como exibição roll up ou exibição drill down. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
60 
 
Além da unidade tempo, também é muito comum usar as funções de drill down e roll up com a unidade 
localização regional, por exemplo, um relatório que apresenta as vendas por estado da federação, ao 
sofrer a operação de drill down poderia representar as vendas por cidade. 
Outro tipo de categoria comum é a de organização hierárquica de itens. Veja um exemplo 
Veja um exemplo 
Por exemplo, um supermercado poderia ter uma grande categoria denominada alimentos, depois 
uma subcategoria denominada alimentos refrigerados e alimentos não refrigerados, dentro da 
categoria alimentos refrigerados, poderia haver laticínios, derivados de carne etc., dentro de 
derivados de carne, poderia haver derivados de frango, derivados de peixe, derivados de porco e 
derivados de boi. As operações de drill down e roll up poderiam navegar dentro dessa estrutura 
organizando e totalizando os itens. Por fim, um último exemplo muito comum é o de categorização 
hierárquica de departamentos. Nessa ótica, os departamentos poderiam ser decompostos em 
gerências e estas em unidades funcionais seguindo a mesma funcionalidade já comentada. 
 
08 
2.4 - Tabelas fato e tabelas dimensão 
O modelo de armazenamento multidimensional envolve dois tipos de tabelas: 
 tabelas de dimensão e 
 tabelas fato (ou tabelas de fatos). 
Uma tabela fato representa os valores detalhados de medidas ou fatos. 
 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
61 
Por exemplo, uma tabela que armazene quantidade, valor total e produto, conforme abaixo: 
Tipo do Produto Mês Quantidade Valor Total 
Cadernos Janeiro 1533 38.213,00 
Livros Janeiro 2841 75.098,01 
Borracha Janeiro 342 442,03 
Cadernos Fevereiro 889 21.003,21 
Livros Fevereiro 1990 23.989,10 
... ... ... ...Exemplo conceitual de tabela fato 
O exemplo acima ilustra o leiaute conceitual de uma tabela fato. Porém, na prática, uma tabela de fatos 
quase sempre usa uma chave do tipo inteiro para cada membro, em vez de um nome descritivo. O uso 
de uma chave do tipo inteiro pode reduzir substancialmente o tamanho da tabela de fatos. 
09 
O leiaute real de uma tabela de fatos poderia ser mais parecido com a tabela abaixo: 
Produto_ID Mes_ID Quantidade Valor Total 
121 1 1533 38.213,00 
90 1 2841 75.098,01 
32 1 342 442,03 
121 2 889 21.003,21 
90 2 1990 23.989,10 
... ... ... ... 
Exemplo físico (real) de tabela fato. 
Quando você coloca chaves do tipo inteiro na tabela de fatos, os títulos dos membros da dimensão têm 
que ser colocados em uma tabela diferente para ser referenciada. Essa tabela é denominada de tabela 
de dimensão. Você normalmente terá uma tabela de dimensão para cada dimensão representada em 
uma tabela de fatos. 
Uma tabela de dimensão é geralmente composta por uma chave primária e um campo textual para 
representar uma lista simples ou acrescida de um outro campo de chave para autorrelação e assim 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
62 
reproduzir uma estrutura hierárquica. As dimensões referem-se aos valores que serão referenciados e 
apresentados nos relatórios, como lista de produtos, lista de lojas, hierarquia de departamentos, 
hierarquia de produtos, lista de cores, lista de padrões etc. 
Qualquer tabela cujo conteúdo possa ser referenciado (por meio de 
uma chave estrangeira) na tabela de fatos pode vir a ser uma tabela 
de dimensão. 
 
10 
O exemplo abaixo representa uma tabela de dimensão de lista simples: 
 
 
Produto_ID Tipo_do_Produto 
121 Cadernos 
90 Livros 
32 Borracha 
Exemplo de tabela de dimensão de lista simples. 
O exemplo a seguir representa uma tabela de dimensão hierarquizada: 
Departamento_ID Departamento_ID_Pai Nome_do_Departamento 
1 Null Presidência 
2 1 Diretoria Financeira 
3 1 Diretoria de Negócios 
4 1 Diretoria de TI 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
63 
5 2 Gerência Contábil 
6 2 Gerência de Pagamentos 
7 4 Gerência de Redes 
8 4 Gerência de Sistemas 
Exemplo de tabela de dimensão hierárquica, note a autorrelação entre o primeiro e o segundo campo. 
11 
Outra forma de se criar uma estrutura hierárquica é pela desnormalização da tabela hierárquica. Isso é 
feito pela adição de outros campos à uma estrutura simples, eliminando a autorrelação. Este modelo é 
adequado para quando o número de níveis de detalhamento é igual para todos os itens da estrutura 
(todos os elementos possuem informação para todas as categorias). 
Veja o exemplo a seguir: 
Produto_ID Tipo_do_Produto Categoria Subcategoria 
1 Frango congelado Alimentos Congelados 
2 Linguiça Alimentos Carnes frescas 
3 Sabão em pó Limpeza Roupas 
4 Detergente Limpeza Louça 
5 Arroz Alimentos Em grãos 
6 Feijão Alimentos Em grãos 
O exemplo acima mostra uma tabela de dimensão com três categorias de agregação. 
No exemplo acima, Tipo_do_Produto é um atributo, Produto_ID é um atributo-chave. Em um data 
warehouse, o atributo-chave em uma dimensão deve conter um valor exclusivo para cada membro da 
dimensão. 
Em termos de banco de dados relacional, este atributo-chave é denominado chave primária. Além de 
tornar a tabela de fatos menor, mover informações sobre dimensão para uma tabela separada tem uma 
vantagem: você pode adicionar novas informações sobre cada membro da dimensão, bastando criar 
novas colunas para isso. 
12 
2.5 - Esquema estrela e esquema floco de neve 
Os esquemas multidimensionais mais comuns são o esquema estrela e o esquema floco de neve. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
64 
O esquema estrela consiste em uma tabela de fatos com uma única tabela para cada dimensão. 
 
Dessa forma, todas as tabelas de dimensões relacionam-se diretamente com a tabela fato. Esse é o 
modelo menos normalizado, pois os valores podem aparecer categorizados e repetidos em cada 
dimensão (veja o exemplo anterior da tabela de dimensão com três categorias). 
 
Exemplo de esquema estrela 
13 
O esquema floco de neve é uma variação do esquema estrela em que uma ou mais das tabelas 
dimensões de um esquema estrela são organizadas em uma hierarquia ao normalizá-las. 
 
Ao normalizar uma tabela de categorias, podem ser criadas várias tabelas de dimensão relacionadas, um 
exemplo seriam as categorias de tipo de produto, categoria e subcategoria que vimos anteriormente ou 
o exemplo de país, região, estado e cidade. A maior vantagem do modelo floco de neve é ocupar menor 
espaço de armazenamento. 
Lembre-se de um detalhe importante: a tabela que possui a categoria de 
maior agregação é a que se relaciona com a tabela fato, a partir desta e 
que são ligadas as demais especializações sucessivamente. 
 
Por exemplo: em uma tabela fato de vendas viria o relacionamento da tabela de países, depois a relação 
com a tabela de região, então a de estados e finalmente a de cidade. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
65 
 
Exemplo de esquema floco de neve 
14 
Outro termo utilizado é Constelação. 
Uma constelação de fatos é um conjunto de tabelas fato que compartilham algumas tabelas de 
dimensão. Por exemplo, tabelas fatos de COMPRAS, ORÇAMENTOS, VENDAS E PAGAMENTO, 
poderiam compartilhar algumas dimensões comuns a várias delas, como REGIÃO 
(CIDADE/UF/REGIÃO), DATA, PRODUTO, CLIENTE E FORNECEDOR. 
 
15 
 
3 - CRIANDO UM DATA WAREHOUSE 
Na construção de um data warehouse, os responsáveis deverão ter uma visão ampla do uso antecipado 
do armazém. Não existe um meio de antecipar todas as consultas ou análises possíveis durante a fase de 
projeto. Porém, o projeto deve aceitar especificamente a consulta ocasional, ou seja, acessar dados 
com qualquer combinação significativa de valores para os atributos nas tabelas de dimensão ou fatos. 
Por exemplo, uma empresa de produtos de consumidor com marketing intenso exigiria diferentes 
maneiras de organizar o data warehouse do que uma empresa de caridade, sem fins lucrativos, voltada 
para angariar fundos. Um esquema apropriado seria escolhido para refletir o uso antecipado. 
Tanto o modelo floco de neve quanto o modelo estrela permitem qualquer 
tipo de operação, como giro, drill down, roll up etc. A diferença maior entre 
os dois modelos é a normalização dos dados que permite com que um DW 
floco de neve ocupe menor espaço em relação do modelo estrela. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
66 
16 
3.1 - Aquisição de dados (carga de dados) 
A aquisição de dados para o armazém envolve as seguintes etapas, conhecidas por ETL (do inglês, ETL – 
Extraction, Transformation and Load): 
 extração de dados, 
 transformação e 
 carga. 
3.1.1 - Extração 
A extração de dados refere-se a selecionar quais fontes de dados proverão informações para o DW. 
 
É tecnicamente possível extrair informações de qualquer meio digital, não só bancos de dados, mas 
também de arquivos não estruturados, documentos eletrônicos, planilhas etc. O banco de dados de DW 
deve prover um mecanismo de conectividade capaz de se conectar a qualquer tipo de fonte de dados. 
Muitas vezes o acesso é garantido apenas mediante controle de acesso, ou seja, é preciso configurar um 
usuário e senha na rotina de acesso. Esse usuário e senha precisam ser previamente criados no local de 
origem dos dados. 
Exemplo: suponha que um DW feito na tecnologia Oracle consulte dados de um DB em Ms SQL Server, 
no banco de dados do Ms SQL Server precisa criar um usuário e uma senha de acesso para que a rotinade extração de dados no Oracle seja capaz de acessar as tabelas onde as informações estão localizadas e 
assim efetuar as consultas necessárias para colher os dados que alimentarão o DW. 
17 
3.1.2 - Transformação 
Em geral, pelo fato de os dados de um DW virem de diversos sistemas (diversos BD) muitas vezes 
localizados em SGBD diferentes, é comum que o mesmo tipo de informação esteja gravado de formas 
diferentes nesses bancos de dados. Os dados precisam ser formatados por coerência dentro do 
armazém. Nomes, domínios dos dados de fontes não relacionadas precisam ser reconciliados. 
Por exemplo, uma informação referente à cidade de São Paulo pode estar armazenada como “São 
Paulo” em um BD, como “SAO PAULO” em outro e como “S. Paulo” em um terceiro BD. 
É necessário que se entenda essas divergências e se corrija para um único formato a ser armazenado no 
DW. Uma rotina denominada transformação de dados é responsável por essa tarefa. 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
67 
A limpeza de dados é um processo complicado e complexo, que tem sido 
identificado como o componente que mais exige trabalho na construção do 
data warehouse. Para a entrada de dados, a limpeza precisa ocorrer antes 
que eles sejam carregados no armazém. 
 
18 
3.1.3 - Carga 
Depois que os problemas de inconsistências tiverem sido resolvidos, dados semelhantes de fontes 
diferentes precisam ser coordenados para carga no armazém (DW). 
Tanto os dados ajustados quanto os dados que não necessitaram de ajustes serão inseridos nas 
tabelas fato e nas tabelas de dimensão. Em modelos de carga de um DW é muito comum que apenas 
a primeira carga de dados conterá dados a serem inseridos nas tabelas de dimensões, as cargas 
subsequentes de dados só conterão dados para tabelas fatos. 
 
O grande volume de dados no armazém torna a carga dos dados uma tarefa 
significativa (consome muito tempo e recursos). São necessárias ferramentas 
de monitoramento para cargas, bem como métodos para recuperação de 
cargas incompletas ou incorretas. Com o imenso volume de dados no armazém, 
a atualização incremental normalmente é a única técnica viável. 
A política de renovação provavelmente surgirá como um comprometimento que leva em conta as 
respostas às seguintes perguntas: 
 Até que ponto os dados devem ser mantidos no armazém? 
 Quais são as interdependências dos dados? 
 Qual é a disponibilidade do armazenamento? 
 Qual é o tempo de carga (incluindo limpeza, formatação, cópia, transmissão e overhead, como a 
recriação de índice)? 
19 
Como dissemos, os bancos de dados precisam lutar por um equilíbrio entre eficiência no processamento 
de transação e suporte dos requisitos da consulta (consultas ocasionais do usuário), mas um data 
warehouse normalmente é otimizado para acesso com base nas necessidades de um tomador de 
decisão. O armazenamento de dados em um data warehouse reflete essa especialização e envolve os 
seguintes processos: 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
68 
 
Embora um tempo adequado possa ser dedicado inicialmente à construção do armazém, seu imenso 
volume de dados costuma tornar impossível simplesmente recarregá-lo em sua totalidade em caso de 
falhas. Muitas vezes é inviável realizar um backup de dados de um DW. O que fazer, então? 
Quando o armazém utiliza um mecanismo de atualização de dados incremental, os dados precisam ser 
periodicamente eliminados; por exemplo, um armazém que mantém dados sobre os anos comerciais 
anteriores pode, de maneira periódica, eliminar seus dados a cada ano. 
O que fazer? 
As alternativas são a atualização seletiva (parcial) dos dados e versões de armazém separadas 
(exigindo capacidade de armazenamento duplo para o armazém!). 
 
20 
3.2 - Metadados 
Os metadados são um conjunto de informações que detalham outros dados. São utilizados para 
aumentar a compreensão dos dados armazenados no DW ou em outro ambiente. 
 
Os metadados descrevem e definem o esquema do DW. 
O repositório inclui: 
• Metadados técnicos 
Armazenamento dos dados 
de acordo com o modelo 
de dados do armazém. 
Criação e manutenção das 
estruturas de dados 
exigidas. 
Criação e manutenção dos 
caminhos de acesso 
apropriados. 
Fornecimento de dados 
variáveis no tempo à 
medida que novos dados 
são incluídos.
Suporte à atualização dos 
dados do armazém. 
Atualização dos dados. 
Eliminação dos dados 
(considerados obsoletos). 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
69 
Abordam detalhes de processamento de aquisição, estruturas de armazenamento, descrições de 
dados, operações e manutenção do armazém, e funcionalidade do suporte de acesso. 
 
• Metadados de negócios 
Incluem as regras de negócios relevantes e os detalhes organizacionais que dão suporte ao armazém. 
 
21 
4 - CONCLUSÃO 
Os data warehouses existem para facilitar as consultas ocasionais complexas, com uso intenso de dados 
e frequentes. Consequentemente, os data warehouses precisam oferecer suporte a consulta muito 
maior e mais eficiente do que é exigido dos bancos de dados transacionais. 
O componente de acesso ao data warehouse deve prover suporte para funcionalidade de planilha 
avançada, processamento de consulta eficiente, consultas estruturadas, consultas ocasionais, mineração 
de dados e visões materializadas. 
Os trabalhadores do conhecimento e os tomadores de decisão utilizam ferramentas que variam desde 
consultas parametrizadas até consultas ocasionais e mineração de dados. Assim, o componente de 
acesso do data warehouse precisa oferecer suporte para consultas estruturadas (tanto parametrizadas 
quanto ocasionais). Juntos, eles compõem um ambiente de consulta gerenciado. A própria mineração de 
dados usa técnicas da análise estatística e inteligência artificial. 
O gerenciamento de um DW em tese é muito mais complexo do que um BD tradicional, exige uma 
equipe com dedicação intensa, proporcional ao tamanho e complexidade do DW. A estrutura de 
hardware necessária também é, normalmente, superior aos ambientes normalmente utilizados para 
sistemas de informação. 
As maiores questões de um bom DW são: qualidade dos dados e consistência dos dados. Como os 
resultados apresentados pelo DW é um cálculo feito a partir de dados simples (registros simples), é 
quase impossível confirmar a veracidade dos cálculos e, portanto, precisamos confiar nos resultados 
apresentados. 
Aqui nos despedimos deste curso. Espero que você, aluno, tenha gostado desta matéria. O universo 
do DW é muito grande e demos aqui apenas uma introdução conceitual sobre o assunto. Inúmeros 
livros e sítios contêm informações complementares sobre o assunto. Fique com Deus e até a próxima! 
 
22 
117 – Banco de Dados II | Unidade 04 
 
 
© 2015 - AIEC - Associação Internacional de Educação Continuada 
 
70 
RESUMO 
Neste módulo, aprendemos que: 
l) Um DW é tanto uma coleção de dados como um sistema de suporte para acesso às informações. 
m) Um DW só utiliza operações de inserção e seleção de dados. Comandos de alteração e exclusão 
não são utilizados em um DW. 
n) OLAP, DSS e mineração de dados são exemplos de aplicações que usam DW. 
o) Um DW utiliza modelagem dimensional como forma padrão para armazenamento de dados. 
p) Um cubo é a representação de dados em três dimensões. Quando mais dimensões são 
agregadas, denominamos hipercubo. 
q) Girar um cubo significa representar as informações sobre outra perspectiva. 
r) Uma operação de roll up significa subir uma hierarquia de agregação; uma operação de drill 
down significa descer uma hierarquia de agregação. 
s) Tabelas fato representam os dados a serem apresentados nos relatórios. Tabelas dimensão 
proveem referências para dados textuais representados nas tabelas fato.t) Uma tabela de dimensão pode conter apenas um nível de detalhamento ou vários níveis (várias 
colunas). 
u) Os dois esquemas mais comuns de um DW são denominados de estrela e floco de neve. 
v) A ETL é o mecanismo que provê a seleção dos dados a serem inseridos no DW, a correta limpeza 
e ajuste desses dados e por fim a carga dos dados no DW.

Mais conteúdos dessa disciplina