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.