atps de programaÇÃo de banco de dados.doc

24
1 UNIVERSIDADE ANHANGUERA DE SÃO PAULO ANTONIO PEREIRA RA:8070837196 IZAIAS GOMES SANTOS RA:9911151596 REGINALDO NASCIMENTO GOMES RA:9895556423 SISTEMAS DE INFORMAÇÃO BANCO DE DADOS: MYSQL ANHANGUERA EDUCACIONAL LTDA OSASCO

Upload: izaiassb

Post on 02-Feb-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

1

UNIVERSIDADE ANHANGUERA DE SÃO PAULO

ANTONIO PEREIRA RA:8070837196IZAIAS GOMES SANTOS RA:9911151596

REGINALDO NASCIMENTO GOMES RA:9895556423

SISTEMAS DE INFORMAÇÃO

BANCO DE DADOS:

MYSQL

ANHANGUERA EDUCACIONAL LTDA

OSASCO

2015

Page 2: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

2

UNIVERSIDADE ANHANGUERA DE SÃO PAULO

BANCO DE DADOS:

Programação de Bando De Dados

Atividade praticaSupervisionada

- ATPS, desenvolvidas durante a

disciplina de programação de

Banco de Dados(MYSQL)

Professor Luiz Fernando

Pacheco

OSASCO

2015

Page 3: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

3

SUMÁRIO

ETAPA 02Stored Procedures ................................................................................03 a 06

Triggers ..................................................................................................06 a 07

ETAPA 03Processamento e Otimização de Consultas .......................................08 a 09Gerenciamento de Transações.............................................................09 a 10

ETAPA 04Banco de Dados Distribuídos ..............................................................10 a 13Data Warehouse.....................................................................................13 a 15

Data Mining ............................................................................................15 a 16Bibliografia .....................................................................................................17

ETAPA 02

Stored Procedures:

Stored Procedures não trazem desvantagens para uma aplicação com banco de Dados, pelo contrário só trazem melhoramentos na performance e desempenho na execução de uma aplicação. Porém existem algumas limitações, sendo mencionado primeiramente o programador, é preciso que ele saiba passar corretamente informações para as procedures, por exemplo, quais serão os parâmetros de entrada quais as variáveis etc. Como segunda limitação está a linguagem usada para programação, pois, pode ser ineficiente para operações muito complexas, por exemplo, quando se usa mais de um banco de dados. Existem comandos da Linguagem SQL que podem e que não podem ser usados em Stored Procedures:

Os comandos da SQL DML como SELECT, INSERT, UPDATE E DELETE podem ser usados em todas as procedures desde que para eles, sejam usadas variáveis locais, também a palavra INTO quando se usa select, para serem guardados os valores de saídas (retorno)?. Os que não podem ser usados fazem parte da SQL DDL, por exemplo, CREATE, ALTER, DROP, SET, GRANT, REVOKE, COMMIT E ROLLBACK.

A procedure tem a finalidade de armazenar e realizar diversos procedimentos SQL a serem realizados pelo banco de dados de acordo com os comandos neles inseridos.

Procedure ret_comissao_funcionario: calcula o valor da comissão dos funcionários baseado no valor de vendas e na porcentagem de comissão

Page 4: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

4

(campo comissão da tabela funcionário). A procedure deve calcular a comissão de todos os funcionários do mês informado se o parâmetro código funcionário for igual a zero ou caso informado o código do funcionário, calcular apenas a comissão do funcionário informado. 

Parâmetros: o Mês: o número referente ao mês a ser consultado. o Ano: ano a ser consultado. o Código do funcionário: “0” para todos os funcionários ou o código do funcionário. 

Campos Exibidos: o nome funcionário, valor da comissão. 

create or replace ret_comissao_funcionario( p_codigo in number,p_mes in number,p_ano in number)iscurso c_comi(cp_codigo in nunber) in select f.nome,f.comicao,v.valortotalfrom funcionario f,venda vwhere f.id_funcionario = v.funcionario_vendaand to_char(v.date,'mm/yyyy') = to_char(p_mes)||'/'to_char(p_ano)and f.id_funcionario = nvl(cp_codigo,f.id_funcionario); v_comicao number; 

beginif p_codigo = 0 thenfor r_comi in c_comi(null)loopv_comicao := r_comi.valortotal * comicao;dbms_output.put_line('Nome: '||r_comi||' Comissão:'||v_comicao);end loop;elsefor r_comi in c_comi(p_codigo )loopv_comicao := r_comi.valortotal * comicao;dbms_output.put_line('Nome: '||r_comi||' Comissão: '||v_comicao);end loop;

Page 5: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

5

end if;

end;

Procedure inc_item_venda: Insere o item de venda no banco de dados, calculando valor total do item baseado em seu preço unitário, quantidade e desconto. A procedure deve calcular o valor do desconto conforme o tipo informado como parâmetro (porcentagem ou valor). 

Parâmetros: o Código venda: código da venda que o item faz parte. o Código produto: código do produto. o Quantidade: quantidade do produto a ser vendido. o Valor Unitário: preço de venda do produto. o Tipo do desconto: “p” para porcentagem ou “v” para valor. o Valor do desconto: zero para nenhumdesconto ou valor. 

create or replace procedure inc_item_venda(p_cod_venda number,p_cod_produto number,p_qtd number,p_valor_uni number,p_tipo_desconto VARCHAR2,p_valor_desconto number) isv_valor number;v_valor_desconto number;

beginif p_tipo_desconto = 'v' then

v_valor := (p_valor_uni * p_qtd) - p_valor_desconto;v_valor_desconto := p_valor_desconto;

elsif p_tipo_desconto = 'P' thenv_valor_desconto := (p_valor_uni * p_qtd) * (p_valor_desconto / 100);v_valor := (p_valor_uni * p_qtd) - v_valor_desconto;elseraise_appication_error(-20100, 'Valor inesistente');end if;begininsert into itemvenda(iditemvenda,venda_itemvenda,

Page 6: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

6

produto_itemvenda,qtd,valorunitario,valordesconto,valortotal)values(seq_itemvenda.nextvall,p_cod_venda,p_cod_produto,p_qtd,p_valor_uni,v_valor_desconto,v_valor);

exceptionwhen others thenraise_appication_error(-20100, 'Erro ao inserir item de venda');end;commit;end;

Triggers:

Um TRIGGER ou gatilho é um objeto de banco de dados, associado a uma tabela, definido para ser disparado, respondendo a um evento em particular. Tais eventos são os comandos da DML (Data Manipulation Language): INSERT, REPLACE, DELETE ou UPDATE. Podemos definir inúmeros TRIGGERS em uma base de dados baseados diretamente em qual dos

comandos acima irá dispará-lo, sendo que, para cada um, podemos definir apenas um TRIGGER. Os TRIGGERS poderão ser disparados para trabalharem antes ou depois do evento.

Uma trigger pode ser executada antes de atualizar um registro no banco, através do comando BEFORE UPDATE, após efetivar uma atualização para que ela seja garantida através do comando AFTER UPDATE. Antes de uma inclusão para testar valores, restringindo a inclusão se não são de acordo com as regras da empresa, pois as triggers são feitas baseadas nestas, para isso se usa o comando BEFORE INSERT e para garantir uma inclusão, por meio do comando AFTER INSERT. Também pode ser utilizada antes de uma exclusão, para que se possa confirmar a exclusão de um registro ou bloquear a mesma,

Page 7: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

7

através do comando BEFORE DELETE e depois de uma exclusão, com o comando AFTER DELETE, para garantir que o registro realmente foi excluído.

Os cinco pontos que podem ser chamados de benefícios são:

1. Reduzir o tráfego na rede;2. Criar regras de negócios adaptadas a aplicação cliente,3. Criar rotinas comuns que podem ser utilizadas para toda a empresa, reduzindo o tempo de desenvolvimento e manutenção.4. Centralizar o processamento no servidor e reduzir os requisitos de hardware na estação cliente.5. Aumentar a performance das aplicações.

Trigger atualiza_valor_venda: Após a inclusão, alteração ou exclusão de um item de venda a trigger deve somar os valores totais de todos os itens da venda que ela pertence e atualizar o campo valortotal da tabela de venda. 

create or replace triggertg_atualiza_valor_vendaBEFORE DELETE OR INSERT OR UPDATE ON itemvendafor each rowdeclaretotal number;

beginselect sum(totalvalor) into total from itemvenda;

if inserting thenupdate venda set valortotal = total;elsif inserting thenupdate venda set valortotal = total;elsif deliting thenupdate venda set valortotal = total;end if;end;

ETAPA 03:

Processamento e Otimização de Consultas:

Aula-tema: Processamento e otimização de consulta, Gerenciamento de transações.A otimização ou Tanning de banco dados é sempre indicado, pois como o

Page 8: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

8

próprio nome sugere, Tanning é o melhoramento de algo, e no caso do banco de dados é o aumento da velocidade de resposta que se espera de uma consulta. Para que esse melhoramento sege feito, primeiramente deve-se analisar em quais operações do banco de dados, tem um tempo de resposta muito maior do que o necessário. Feito isso se verifica a instrução SQL, pois muitas vezes por uma má elaboração da instrução a performance é afetada bruscamente.Agora será mostrado algumas dicas para otimizar uma consulta no banco de dados.Evitar o uso de seleção total da tabela usando * .Quando você usa, o banco de dados interpreta o asterisco como a junção de todas as colunas da tabela, realizando uma conversão. E sem mencionar que com isso, o banco irá selecionar todas as colunas da tabela sem necessidade.Usar o DISTINCT apenas em casos estritamente necessários, pois para a elaboração desta clausula é muito custoso, em questão de processamento para o banco de dados, e quando utilizar o DISTINCT verifique de usar clausula WHERE.Tomar cuidado com o ORDER BY, pois a ordenação de registro de uma tabela é um recurso importante, mas também deve ser utilizada com cautela. Imagine uma tabela com milhares de registros e a seguinte instrução SQL:SELECT Nome, Telefone FROM CLIENTES ORDER BY NomeAo rodar essa instrução, o banco de dados terá que ler todos os nomes dos clientes da tabela e ordenar por ordem alfabética para mostrar o resultado. O tempo de resposta dessa instrução, ira demorar muito para selecionar todos os dados e depois ordenados na ordem desejada. Usar JOIN em excesso pode atrapalhar no desempenho porque, uma vez que o banco de dados irá traçar todo um plano de execução para associar todas as tabelas. Para cada JOIN, o banco de dados precisa “armazenar” a informação das chaves do relacionamento para garantir o retorno esperado.Evitar cálculos desnecessários no banco ajuda no desempenho, pois se imaginarmos uma situação em que temos uma tabela de vendas onde é são armazenados os seguintes dados. ID_VENDA, QUANTIDADE e PRECO_UNITARIO: 

Quantidade: 5Preço unitário: 20,00Total: 100,00Nosso objetivo é obter o total da venda, para isso podemos realizar um calculo direto no banco com o comando:SELECT IDVENDA,QTDE, PRECOUNITARIO * QTDE AS TOTAL FROM VENDA;A instrução que irá ter uma retorno mais rápido será a que já tem esse dado gravado no banco, por que não foi preciso realizar o calculo.

Foi analisado todas as instruções da etapa 1 e etapa 2 e não foi considerado

Page 9: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

9

necessário a otimização desses comando para o desempenho do banco de dados.

Gerenciamento de Transações:A transação é uma unidade de execução de programa que acessa e, possivelmente, atualiza vários itens de dados. Geralmente, é o resultado da execução de um programa escrito em uma linguagem de manipulação de dados de alto nível como o C, JAVA, C#,PHP,etc. É chamada transação toda execução de um programa que acessa ou modifica um banco de dados. Quando uma ou mais transações são submetidas a um SGBD, o mesmo deve garantir que todas as transações sejam completadas com sucesso e que as transações não tenham efeito direto no banco de dados e em outras transações.Para que o SGBD consiga assegurar a integridade do banco ele segue as regra da ACDI que são:Atomicidade: A execução de uma transação deve ser atômica, ou todas as ações são executadas, ou nenhuma é;Consistência: Cada transação executada isoladamente deve preservar a consistência do banco de dados; Isolamento: Cada transação deve ser isolada dos efeitos da execução concorrente de outras transações;

Durabilidade: Toda transação que for finalizada de forma bem-sucedida deve persistir seus resultados em banco mesmo na presença de falhas no sistema.A consistência dentro do SGBD é muito importante para que não o corra modificações de forma desordenada, Exemplo:Uma transferência de fundos entre contas não alteram a quantia total de dinheiro nas contas. O isolamento deve garantir que duas transações, executadas concorrentemente, devem ter o mesmo resultado se executado em ordem serial.Exemplo: T1 concorrente com T2 Serializada: T1, T2 ou T2, T1. Atomicidade é uma questão muito importante dentro do SGBD, pois uma transação interrompida no meio da execução pode causar inconsistência no banco. Para evitar essas falhas o SGBD usa um sistemas de escalonamento, que nada mais é do que uma lista de ações que devem ser seguidas. Existem alguns tipos de escalonamento:Escalonamento completo: O escalonamento insere, para todas as transações, as ações de abort ou commit.Escalonamento serial: O escalonamento não intercala as ações de transações diferentes; Escalonamento equivalente: Para qualquer estado da base de dados, o efeito de executar um primeiro escalonamento é idêntico ao efeito de executar um segundo escalonamento;

Page 10: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

10

Escalonamento serializável: Escalonamento equivalente a alguma execução serial das transações. No caso de haver falha na transação o SGBD deve manter o log do erro, contendo todas as ações executadas pelo usuário, para que essas posam ser desfeitas. O log também é usado para a durabilidade, por exemplo, se haver uma que do sistema antes que todas as mudanças sejam feitas em disco, o SGBD usa esse log para restaurar o banco quando o sistema for reiniciado.

ETAPA 04:

Banco de Dados Distribuídos:

Um sistema de banco de dados distribuído (BDD) consiste em uma relação de nós, cada qual podendo participar na execução de transações que acessam dados em um ou mais nós. Em um sistema de banco de dados distribuído, o banco de dados é armazena do em diversos

computadores(nós). Os computadores, em um sistema distribuído, comunicam-se uns com os outros por intermédio de vários meios de comunicação, tais como: redes de alta velocidade, redes sem fio ou linhas telefônicas, eles não compartilham a memória principal e o relógio.A diferença principal entre sistemas de banco de dados centralizados e distribuídos é que no primeiro os dados estão localizados em um único lugar, enquanto que no outro os dados residem em diversos locais. Esta distribuição de dados é motivo de muitas preocupações e dificuldades.Os processadores em um sistema distribuído podem variar em tamanho e função, podendo incluir microcomputadores, estações de trabalho, minicomputadores e sistemas de computadores de uso em geral. Estes processadores são geralmente chamados de nós, dependendo do contexto no qual eles estejam mencionados. Usa-se principalmente o termo nó (lugar, posição), a fim de enfatizar a distribuição física destes sistemas

Armazenamento Distribuído dos DadosUma relação r (ou tabela) possui diversos enfoques para o armazenamento em um banco de dados distribuído (BDD):Replicação: o sistema mantém réplicas idênticas da relação, onde cada réplica é armazenada em sites diferentes, resultando na replicação dos dadosFragmentação: a relação é particionada em vários fragmentos, onde cada fragmento é armazenado em um site diferente.

Replicação e fragmentação: a relação é particionada em vários segmentos, e o

Page 11: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

11

sistema mantém diversas réplicas década fragmento

Replicação de dadosA replicação de dados significa que um determinado objeto de dados logico pode possuir diversos representantes armazenados, em nós. O grau de suporte para a replicação é um pre-requisito para atingir o verdadeiro potencial de um sistema distribuído.

Fragmentação de dadosUma relação é dividida em fragmentos, onde cada fragmento contem informação suficiente para permitir a reconstrução da relação original.Existem duas formas de fazer a fragmentação:Fragmentação Horizontal: divide a relação separando as tuplas de r em dois ou mais fragmentos.Fragmentação Vertical: divide a relação pela decomposição do esquema R da relação r.

Fragmentação e Replicação de DadosAs técnicas de fragmentação e replicação podem ser aplicadas sucessivamente a uma mesma relação. Um fragmento pode ser replicado, e as réplicas podem ser fragmentadas novamente e assim por diante.

Processamento de consultas distribuídasA transparência para leitura é mais fácil de se conseguir e manter do quea transparência para atualização. O maior problema para a atualização é garantir que todas as réplicas e fragmentos sejam atualizados, após uma atualização em uma das réplicas ou fragmentos. A atualização deve ser prolongada para todas as cópias (réplicas e fragmentos) existentes no sistema.Um dos fatores mais importantes no desempenho de uma consulta, em uma base centralizada,

é a quantidade de acesso a disco necessária para atingir oresultado. Em um banco distribuído os problemas aumentam, pois existe também a preocupação com a transmissão de dados na

rede. Um fator interessante para a consulta realizada em uma base distribuída é que para os diversos sites podem processar partes da consulta em paralelo.Na realização de uma consulta simples (trivial), como consultar todas as tuplas da relação CONTA, pode caracterizar um processamento não tão trivial, pois CONTA pode estar fragmentada, replicada ou ambas.TransaçõesO acesso a diversos itens de dados em um sistema distribuído é normalmente acompanhado de transações que têm de preservar as propriedades ACID:

Page 12: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

12

A: AtomicidadeC: ConsistênciaI: IsolamentoD: Durabilidade

Caracteristicas da ACID

Atomicidade: Todas as operações da transação são refletidas corretamente no BD ou nenhuma será.Consistência: A execução de uma transação isolada preserva a consistência do banco de dados.Isolamento: Cada transação não toma conhecimento de outras transações concorrentes.Durabilidade: Depois da transação completar-se com sucesso, as mudanças que ela faz no banco de dados persistem.

Tipos de transação

Locais: mantém acesso e atualizam somente a base de dados local.Globais: mantém acesso e atualizam diversas bases de dados locais.

Funções adicionais

Rastreamento de dados.Processamento de consultas distribuídas.Gerenciamento de transações distribuídas.

Gerenciamento de dados replicados.Recuperação de banco de dados distribuídos.Segurança.Gerenciamento do diretório distribuído

Vantagens

Gerenciamento de dados distribuído com níveis diferentes de transparência. Transparência de distribuição ou de rede.Transparência de replicação.Transparência de fragmentação.Melhoria da confiabilidade e na disponibilidade.Melhoria no desempenho.Expansão mais fácil.

Data Warehouse:

Page 13: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

13

Hoje em dia uma organização precisa utilizar toda informação disponível para criar e manter vantagem competitiva. Sai na frente a organização que consegue tomar decisões corretas e rápidas. Com esta importante tarefa nas mãos, profissionais tomadores de decisão tais como executivos, gerentes e analistas, exigem dos sistemas de suporte à decisão (Decision Support Systems - DSS) mais recursos para análise, front-ends que suportem consultas ad hoc, interfaces gráficas apropriadas, etc.

A ideia de data warehouse é integrar os dados internos e externos de uma organização em uma estrutura única permitindo uma melhor utilização dos dados pelos analistas, gerentes e executivos. Uma vez obtida a integração, sistemas como OLAP (On-Line Analytical Processing) e data mining fornecem mecanismos sofisticados para análise dos dados.

Estudar e conhecer a tecnologia de data warehouse pode ajudar os empresários a descobrir novas formas de competir em uma economia globalizada, trazendo melhores produtos ou serviços para o mercado, mais rápida do que os concorrentes, sem aumentar o custo do produto ou do serviço.

Não existem ainda metodologias formais para implementação de um data warehouse, ela deve ser adaptada às características e às expectativas de cada empresa, mas o principal objetivo em todas elas é o de descobrir maneiras diferentes de atuar no mercado e quais as mudanças internas que devem ocorrer para atender as novas realidades.

Nas últimas décadas, a tecnologia da informação evoluiu consideravelmente, dos primeiros computadores centrais até os atuais sistemas distribuídos. Essa visão moderna e descentralizada busca obter vantagens, principalmente em termos de acessibilidade, disponibilidade e custo.

Segundo W.H.Inmon, considerado um pioneiro no tema, um data warehouse é uma coleção de dados orientada por assuntos, integrada, variante no tempo, que tem por objetivo dar suporte aos processos de tomada de decisão.

O data warehouse é um banco de dados contendo dados extraídos do ambiente de produção da empresa, que foram selecionados e depurados, tendo sido otimizados para processamento de consulta e não para processamento de transações. Em geral, um data warehouse requer a consolidação de outros recursos de dados além dos armazenados em base de dados relacionais, incluindo informações provenientes de planilhas eletrônicas, documentos textuais, etc.

De acordo com Richard Hackathorn (outro pioneiro no tema), o objetivo de um data warehouse é fornecer uma "imagem única da realidade do negócio". De uma forma geral, sistemas de data warehouse compreendem um conjunto de programas que extraem dados do ambiente de dados operacionais da

Page 14: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

14

empresa, um banco de dados que os mantém, e sistemas que fornecem estes dados aos seus usuários.

Sistemas de Data Warehouse revitalizam os sistemas da empresa, pois:

• Permitem que sistemas mais antigos continuem em operação; • Consolidam dados inconsistentes dos sistemas mais antigos em conjuntos coerentes; • Extraem benefícios de novas informações oriundas das operações correntes; • Provém ambiente para o planejamento e arquitetura de novos sistemas de cunho operacional.

Como se vê, existem diferentes visões do que seria um data warehouse: uma arquitetura, um conjunto de dados semanticamente consistente com o objetivo de atender diferentes necessidades de acesso a dados e extração de relatórios, ou ainda, um processo em constante evolução, que utiliza dados de diversas fontes heterogêneas para dar suporte a consultas ad-hoc, relatórios analíticos e à tomada de decisão.

Extraindo informações do Data Warehouse

Existem várias maneiras de recuperar informações de um data warehouse, as formas de extração mais comuns no mercado hoje são:

• Ferramentas de consulta e emissão de relatórios;• EIS (Executive Information Systems);• Ferramentas OLAP;• Ferramentas Data mining.

A nova tendência dessas soluções é a integração com o ambiente Web, permitindo maior agilidade em consultas estáticas e dinâmicas.

Neste artigo veremos de forma básica e separadamente os conceitos das tecnologias OLAP e Data mining. A diferença básica entre ferramentas OLAP e data mining está na maneira como a exploração dos dados é abordada. Com ferramentas OLAP a exploração é feita na base da verificação, isto é, o analista conhece a questão, elabora uma hipótese e utiliza a ferramenta para confirmá-la.

Com data mining, a questão é total ou parcialmente desconhecida e a ferramenta é utilizada para a busca de conhecimento.

Ferramentas OLAP

OLAP (On-Line Analytical Processing) representa um conjunto de tecnologias projetadas para suportar análise e consultas ad hoc. Sistemas OLAP ajudam analistas e executivos a sintetizarem informações sobre a empresa, através de comparações, visões personalizadas, análise histórica e projeção de dados em vários cenários de "e se...". Sistemas OLAP são implementados para

Page 15: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

15

ambientes multiusuário, arquitetura cliente-servidor e oferece respostas rápidas e consistentes às consultas iterativas executadas pelos analistas, independente do tamanho e complexidade do banco de dados.

A característica principal dos sistemas OLAP é permitir uma visão conceitual multidimensional dos dados de uma empresa. A visão multidimensional é muito mais útil para os analistas do que a tradicional visão tabular utilizada nos sistemas de processamento de transação. Ela é mais natural, fácil e intuitiva, permitindo a visão em diferentes perspectivas dos negócios da empresa e desta maneira tornando o analista um explorador da informação.

Uma arquitetura OLAP possui três componentes principais: um modelo de negócios para análises interativas, implementado numa linguagem gráfica que permita diversas visões e níveis de detalhes dos dados; um motor OLAP para processar consultas multidimensionais contra o dado-alvo; e um mecanismo para armazenar os dados a serem analisados. A base de dados usada define se o pacote é um ROLAP, que interfaceia com um banco de dados relacional de mercado, ou um MOLAP, que se liga a um servidor OLAP, através de um banco de dados multidimensional e dedicado.

Data Mining:

Data mining é uma expressão inglesa ligada à informática cuja tradução é mineração de dados. Consiste em uma funcionalidade que agrega e organiza dados, encontrando neles padrões, associações, mudanças e anomalias relevantes.

A expressão data mining surgiu pela primeira vez em 1990 em comunidades de bases de dado. A mineração de dados é a etapa de análise do processo conhecido como KDD (Knowledge Discovery in Databases), sendo a sua tradução literal "Descoberta de Conhecimento em Bases de Dado".

O data mining pode ser divido em algumas etapas básicas que são: exploração, construção de modelo, definição de padrão e validação e verificação.

A mineração de dados é uma prática relativamente recente no mundo da computação, e utiliza técnicas de recuperação de informação, inteligência artificial, reconhecimento de padrões e de estatística para procurar correlações entre diferentes dados que permitam adquirir um conhecimento benéfico para uma empresa ou indivíduo. Para uma empresa, o data mining pode ser uma importante ferramenta que potencia a inovação e lucratividade.

A utilização da mineração de dados é bastante usual em grandes bases de dados, e o resultado final da sua utilização pode ser exibido através de regras, hipóteses, árvores de decisão, dendrogramas, etc.

Page 16: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

16

Uma mineração de dados bem executada deve cumprir tarefas como: detecção de anomalias, aprendizagem da regra de associação (modelo de dependência), clustering (agrupamento), classificação, regressão e sumarização. O processo de data mining costuma ocorrer utilizando dados contidos dentro do data warehouse.

Existem várias empresas e softwares que se dedicam à mineração de dados, pois a identificação de padrões em bancos de dados é cada vez mais importante. No entanto, a identificação de padrões relevantes não é exclusivo do mundo informático. O cérebro humano, utiliza um processo semelhante para identificar padrões e adquirir conhecimento.

Nos últimos anos, a mineração de dados tem sido amplamente utilizada nas áreas da ciência e engenharia, tais como bioinformática, genética, medicina, educação e engenharia elétrica.

O conceito de data mining é muitas vezes associado à extração de informação relativa ao comportamento de pessoas. Por esse motivo, em algumas situações, a mineração de dados levanta aspectos legais e questões relativas à privacidade e ética. Apesar disso, muitas pessoas afirmam que a mineração de dados é eticamente neutra, pois não apresenta implicações éticas.

Exemplos reais de Data Mining

A mineração de dados é muitas vezes usada por empresas e organizações para a obtenção de conhecimento a respeito de utilizadores / funcionários / clientes. Por exemplo, no setor público é possível fazer o cruzamento de dados entre o estado civil de um funcionário e o salário que ele ganha, para verificar se isso tem influência na sua vida conjugal.

Empresas como cadeias de supermercados podem recorrer a esse cruzamento de dados para determinarem produtos que são comprados em conjunto. Se um cliente que compra o produto X também compra o produto Y, talvez seja uma boa ideia posicionar os dois produtos perto, para facilitar a compra por parte do cliente.

Page 17: ATPS DE PROGRAMAÇÃO DE BANCO DE DADOS.doc

17

Bibliografia:

http://corporate.canaltech.com.br/

http://www.devmedia.com.br

http://www.postgresql.org

http://www.significados.com.br/data-warehouse/

http://www.significados.com.br/data-mining/

https://docs.google.com/file/d/0Bwtkydm_xvOraXc2NDF5d2J0RmM/edit

https://docs.google.com/file/d/0Bwtkydm_xvOrc24xcU81a1dueFU/edit

MACHADO, Felipe Nery Rodrigues. Tecnologia e projeto de Data Warehouse: uma

visão multidimensional. 2ª ed. São Paulo: Érica, 2006.

SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de Banco de Dados. 6ª ed. Rio de Janeiro: Campus - Elsevier, 2012.

DATE, C. J. Introdução a Sistemas de Bancos de Dados. 8ª ed. Rio de Janeiro: Campus - Elsevier, 2004.