Você está na página 1de 10

Algoritmo de Data Mining para PostgreSQL

Milton Roberto y Goya Banco de Dados - Introduo Desde que o homem comeou a usar computadores para armazenar e recuperar dados tem-se procurado processos para tornar essas operaes mais eficientes. Uma das tentativas nesse processo foi o uso de fitas magnticas em uma operao similar a que usamos para gravar filmes da televiso em uma fita de videocassete. Essa tcnica ficou conhecida como gravao seqencial em fita magntica. O problema da gravao seqencial em fita magntica justamente o que o nome indica: os dados so gravados sequencialmente e para chegarmos a um dado especfico temos que ler todos os que o precede. Isso no chega a ser um problema caso precisemos acessar, realmente, todos nossos dados, mas, se precisarmos recuperar um dado nico ento essa tcnica mostra-se muito pouco eficiente. A criao de circuitos integrados na dcada de 60 permitiu que a fita magntica fosse sendo substituda por unidades de disco que, hoje em dia, so conhecidas como disco rgido, winchester ou meramente HD. A vantagem destas unidades de disco que elas permitem tanto a leitura/gravao de dados de modo sequencial da mesma forma que era feito nas fitas magnticas quanto leitura/gravao de um dado especfico em qualquer ponto do disco rgido. Esta ltima tcnica ficou conhecida como leitura/gravao aleatria ou, em jargo tcnico, leitura/gravao randmica. O uso da tcnica de leitura aleatria um dos fatores que permitiu que pessoas no especializadas pudessem acessar os dados armazenados nos computadores. Essas pessoas passaram a exigir maior acesso as informaes e fizeram brotar a necessidade de melhorar a organizao dos mesmos e dessa necessidade surgiram os primeiros bancos de dados. Existem vrios modelos de banco de dados, entre eles esto os modelos de dados relacional, hierrquico, em redes e orientado a objeto. A principal diferena entre eles est na maneira como os dados so vistos. Banco de Dados Hierrquico O primeiro modelo de banco de dados comercialmente vivel foi o banco de dados hierrquico. Foi muito popular comercialmente nas dcadas de 60 e 70 e ainda possvel encontrar sistemas utilizando este banco de dados em equipamento de grande porte, tambm conhecidos como mainframe. Este modelo baseado em uma estrutura hierrquica similar a estrutura de um organograma de uma empresa. No organograma existe um presidente e abaixo

dele seus subordinados e os subordinados a estes, lembrando a figura de uma rvore. Do mesmo modo, em um banco de dados hierrquico existe uma raiz e galhos ligados a eles, como se a estrutura toda fosse uma rvore invertida. A raiz possui os dados principais e os galhos possuem informaes adicionais sobre os dados. Estes galhos, por sua vez, podem possuir seus prprios galhos com mais informaes adicionais. Um dos problemas apresentado por esta arquitetura a dificuldade em chegar a informao desejada, exigindo um especialista no assunto para localizar um dado especfico. Para se acessar um dado que estivesse no terceiro nvel das ramificaes necessrio comear da raiz, passar para o primeiro nvel das ramificaes, deste para o segundo nvel para, por fim, chegarmos ao terceiro nvel das ramificaes. Banco de Dados em Redes Na tentativa de solucionar o problema de localizar os dados no banco de dados hierrquico foi proposto ainda na dcada de 60 o banco de dados em redes. Nesse modelo aproveitou-se a estrutura do banco de dados hierrquico mas possibilitou a disponibilidade de acesso direto a um s galho e a partir deste encontrar os demais galhos que estivem correlacionados a ele. No entanto, para que esta estrutura funcione corretamente, o mesmo dado deve estar gravado em mais de um lugar ao mesmo tempo. Chamamos de redundncia a este tipo de ocorrncia. Este modelo no teve tanta popularidade quanto o modelo hierrquico e acabou caindo em desuso. Banco de Dados Relacionais No final dos anos 60, Codd um pesquisador da IBM e sua equipe, estavam procurando novas maneiras de resolver os problemas apresentados pelos modelos Hierrquico e em Rede quando trabalhavam com um volume macio de dados. Sendo um matemtico, postulou que seria possvel usar estruturas matemticas para resolverem muitos dos problemas apresentados pelos dois modelos citados. Em 1970, Codd apresentou o seu trabalho: Um Modelo Relacional de Dados para Grandes Banco de Dados Compartilhados. Neste trabalho ele apresenta o modelo relacional de banco de dados. Este modelo se baseou em duas vertentes da matemtica teoria dos conjuntos e lgica de predicado de primeira ordem. O modelo relacional deriva seu nome do termo relao, que uma parte da teoria dos conjuntos. Em um modelo relacional, os dados so armazenados em relaes, que so percebidas pelo usurio como tabelas. Cada relao composta de tuplas,

tambm conhecidas como registros ou linhas, e atributos, tambm conhecidos como campos. A ordem fsica em que os registros encontram-se numa tabela totalmente arbitrria. Cada registro de uma tabela identificado por um campo que contm valores nicos. Essas duas caractersticas do modelo relacional permitem que os dados existam independentes da forma como eles foram fisicamente armazenados. Ento, o usurio no precisa saber o local fsico de um registro para poder trabalhar com ele. Por este lado, o modelo relacional diferente do modelo hierrquico e do de rede, pois nestes modelos era imprescindvel que o usurio conhecesse o desenho da estrutura para que pudesse usar os seus dados. Esse modelo muito usado at hoje e encontra-se em bancos de dados como Oracle, DB2, Access e PostgreSQL, entre outros. Banco de Dados Orientado a Objeto Os sistemas de gerenciamento de bancos de dados relacionais foram projetados para armazenar dados segundo a teoria dos conjuntos. Entretanto, muitas vezes, o mtodo mais eficiente de catalogar dados no o mtodo mais eficiente de armazenar e recuperar esses dados. A tcnica de modelagem orientada a objetos normalmente empregada nos casos onde os dados envolvidos na aplicao apresentam uma estrutura complexa. Os bancos de dados relacionais funcionam bem e os dados so adequadamente administrados como se fossem partes de uma tabela, com tipos simples de dados, envolvendo poucas associaes com dados de outras listas. Ao lidar com dados que devem ser mantidos em estruturas complexas interdependentes, ou quando os dados devem ser rapidamente recuperados percorrendo caminhos de associaes em vez de simplesmente procurar em listas simples, a base de dados relacional comea a requerer caractersticas como gerenciamento de mltiplos ndices e esquemas que empregam estruturas transversais e normalizaes complexas. A meta dos bancos de dados orientados a objetos manter a correspondncia direta entre os objetos do mundo real e os do banco de dados, no que implica que podemos identificar e manipular os objetos como um todo. Representar um objeto complexo no modelo relacional significa que o objeto tem que ser subdividido em um grande nmero de linhas ou tuplas, o que leva necessidade de realizar um considervel nmero de operaes de juno para recuperar o objeto. Nos modelos de dados tradicionais os dados so vistos como uma coleo de tipos de registros ou de relaes, cada qual tendo uma coleo de linhas armazenadas em um banco de dados. Em um modelo de dados orientado a objetos um banco de dados considerado como uma coleo de objetos do mundo real.

Os bancos de dados orientados a objetos foram propostos para dar suporte s necessidades de aplicaes mais complexas, como aquelas que exigem transaes mais longas, textos longos e armazenamento de imagens. SGBD Um Sistema de Gerenciamento de Banco de Dados ou SGBD ou RDBMS, na sigla em ingls, uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades. Ou seja, SGBD uma ferramenta que permite administrar nossas bases de dados com mais facilidade. Para que o conjunto de programas seja considerado um SGBD ele deve atender integralmente a seis regras: Regra 1: Auto-Conteno - Um SGBD no contm apenas os dados em si, mas armazena completamente toda a descrio dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra chamada de meta-base de dados ou dicionrio de dados. Regra 2: Independncia dos Dados - Quando as aplicaes estiverem realmente imunes a mudanas na estrutura de armazenamento ou na estratgia de acesso aos dados, podemos dizer que esta regra foi atingida. Regra 3: Abstrao dos Dados - fornecida ao usurio somente uma representao conceitual dos dados, o que no inclui maiores detalhes sobre sua forma de armazenamento real. O chamado Modelo de Dados um tipo de abstrao utilizada para fornecer esta representao conceitual. Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso so exibidas ao usurio, porm nada afirmado sobre a criao dos ndices, ou como sero mantidos, ou qual a relao existente entre as tabelas que dever ser mantida ntegra. Regra 4: Vises - Cada usurio pode vir a visualizar os dados de forma diferente daquela existente previamente no Banco de Dados. Uma viso consiste de um subconjunto de dados do Banco de Dados, necessariamente derivados dos existentes no Banco de Dados, porm estes no devero estar explicitamente armazenados. Regra 5: Transaes - Deve gerenciar completamente a integridade referencial definida em seu esquema, sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao menos uma instruo que permita a gravao de uma srie modificaes simultneas e uma instruo capaz de cancelar uma srie modificaes. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que esto disponveis e, portanto so reservados, porm existe um bloqueio financeiro (duplicatas em atraso) que impede a venda. A transao dever ser desfeita com apenas uma

instruo ao Banco de Dados, sem quaisquer modificaes suplementares nos dados. Regra 6: Acesso Automtico Deve resolver automaticamente as situaes onde um usurio bloqueie o recurso que outro usurio deseja utilizar. Os SGBD tem, ainda, sete caractersticas operacionais elementares sempre observadas: Caracterstica 1: Controle de Redundncias - A redundncia consiste no armazenamento de uma mesma informao em locais diferentes, provocando inconsistncias. Em um Banco de Dados as informaes s se encontram armazenadas em um nico local, no existindo duplicao descontrolada dos dados. Quando existem replicaes dos dados, estas so decorrentes do processo de armazenagem tpica do ambiente Cliente-Servidor, totalmente sob controle do Banco de Dados. Caracterstica 2: Compartilhamento dos Dados - Deve incluir software de controle de concorrncia ao acesso dos dados, garantindo em qualquer tipo de situao a escrita/leitura de dados sem erros. Caracterstica 3: Controle de Acesso - Deve dispor de recursos que possibilitem selecionar a autoridade de cada usurio. Assim um usurio poder realizar qualquer tipo de acesso, outros podero ler alguns dados e atualizar outros e outros ainda podero somente acessar um conjunto restrito de dados para escrita e leitura. Caracterstica 4: Interfaceamento - Deve disponibilizar formas de acesso grfico, em linguagem natural, em SQL ou ainda via menus de acesso, no sendo uma "caixa-preta" somente sendo passvel de ser acessada por aplicaes. Caracterstica 5: Esquematizao - Deve fornecer mecanismos que possibilitem a compreenso dos relacionamentos existentes entre as tabelas e de sua eventual manuteno. Caracterstica 6: Controle de Integridade - Deve impedir que aplicaes ou acessos pelas interfaces possam comprometer a integridade dos dados. Caracterstica 7: Backup - O SGBD dever apresentar facilidade para recuperar falha de hardware e software, atravs da existncia de arquivos de pr-imagem ou de outros recursos automticos, exigindo minimamente a interveno de pessoal tcnico.

Software Livre Em 1984, o idealizador do software livre, Richard Stallman, definiu software livre como sendo liberdade dos usurios executarem, copiarem, distriburem, estudarem, modificarem e aperfeioarem o software. Mais precisamente, ele se refere a quatro tipos de liberdade, para os usurios do software: Liberdade de executar o programa, para qualquer propsito. Liberdade de estudar como o programa funciona, e adapt-lo para as suas necessidades. Aceso ao cdigo-fonte um pr-requisito para esta liberdade. Liberdade de redistribuir cpias de modo que voc possa ajudar ao seu prximo. Liberdade de aperfeioar o programa, e liberar os seus aperfeioamentos, de modo que toda a comunidade se beneficie. Acesso ao cdigo-fonte um pr-requisito para esta liberdade.

SQL Em 1974 dois pesquisadores da IBM, Chamberlim e Boyce, publicaram um artigo intitulado SEQUEL: A Structured English Query Language. Nesse artigo propunham uma forma de acessar os dados na estrutura relacional proposta por Codd usando uma seqncia de comando o mais prximo possvel da linguagem natural do usurio. Junto com o artigo apresentaram um prottipo da IBM chamado SEQUEL-XRM. Por motivos jurdicos o SEQUEL-XRM mudou de nome para SQL no incio da dcada de 80. O equilbrio entre a facilidade de uso e o poder de seus recursos fez com que o SQL atingisse enorme popularidade entre seus usurios vindo a tornar-se, em 1987, padro para todos os SGBD relacionais.

O que o PostgreeSQL? O PostgreSQL um sistema de gerenciamento de banco de dados relacional e orientado a objetos (SGBD) em cdigo livre. Permite executar vrias operaes do SQL (Linguagem de Pesquisa Estruturada - Strutured Query Language), incluindo subquerys, transaes, funes, tipos definidos pelo usurio (UDT User Defined Type) e funes definidas pelo usurio (UDF User Defined Function). Ele o mais avanado banco de dados de cdigo livre disponvel.

Seu cdigo-fonte e binrios pr-compilados esto disponveis para diversas plataformas. Optei trabalhar com a verso 7.4 por ser a verso mais recente do software em plataforma Windows XP. Esta plataforma foi escolhida devido a sua facilidade de uso. O PostgreSQL - conhecido anteriormente como Postgres95 - derivou do projeto POSTGRES da universidade de Berkley, cuja ltima verso foi a 4.2. O POSTGRES foi originalmente patrocinado pelo DARPA (Agncia de Projetos de Pesquisa Avanada para Defesa), ARO (Departamento de Pesquisa Militar), NSF (Fundao Cientifica Nacional) e ESL Inc. Monjian (2004) conta que a implementao do projeto POSTGRES iniciou em 1986, j em 87 tornou-se operacional. A primeira verso lanada para o pblico externo foi em 1989. Devido a uma crtica feita ao seu sistema de regras, o POSTGRES teve essa parte re-implementada e lanada em uma segunda verso em 1990. Em 1991 foi lanada a verso 3, com melhorias no executor de consultas e algumas partes do cdigo foram re-escritas. As verses subseqentes, at o Postgres95, foram focadas em confiabilidade e portabilidade. Segundo Lane (2004), o POSTGRES foi utilizado para diversos sistemas de pesquisa e de produo, entre eles, um banco de dados com rotas de asterides e diversos sistemas de informaes geogrficas. O cdigo do POSTGRES foi aproveitado em um produto comercializado pela Illustra Information Technologies (posteriormente incorporada Informix, que agora pertence IBM). A verso seguinte, o Postgres95, teve mudanas radicais em relao ao projeto original. O seu cdigo foi totalmente revisado, o tamanho dos fontes foi reduzido em 25%, e a linguagem SQL foi implementada como interface padro. A performance foi consideravelmente melhorada e vrios recursos foram adicionados. Em 1996 o nome Postgres95 tornou-se inadequado, o projeto foi rebatizado "PostgreSQL", para enfatizar a relao do POSTGRES original com a linguagem SQL. A numerao da verso voltou a seguir o padro anterior ao Postgres95 (considerada a 5.0), e a primeira verso do PostgreSQL foi a 6.0. Enquanto a nfase do Postgres95 tinha sido a correo de falhas e otimizao do cdigo, o desenvolvimento das primeiras verses do PostgreSQL foi orientada melhoria de recursos e implementao de novos recursos, sempre seguindo os padres de SQL anteriormente estabelecidos.

O Grupo Global de Desenvolvimento do PostgreSQL tem membros nos Estados Unidos, Brasil, Canad, Japo, Rssia, Portugal, Alemanha, Sucia, Sua, Hungria, Polnia, Turquia entre outros. Esse grupo formado essencialmente por empresas especializadas em PostgreSQL, empresas usurias do sistema, alm dos pesquisadores acadmicos e programadores independentes. Alm da programao, essa comunidade responsvel pela documentao, traduo, criao de ferramentas de modelagem e gerenciamento, e elaborao de extenses e acessrios. Pela riqueza de recursos e conformidade com os padres, ele um SGBD muito adequado para o estudo universitrio do modelo relacional, alm de ser uma tima opo para empresas implementarem solues de alta confiabilidade sem altos custos de licenciamento. um programa distribudo sob a licena BSD, o que torna o seu cdigo fonte disponvel e o seu uso livre para aplicaes comerciais ou no. (PostgreSQL, 2003, 12 p. - Traduo livre, minha)

O que Data Mining? Data Mining um processo analtico projetado para explorar grandes quantidades de dados (tipicamente relacionados a negcios, mercado ou pesquisas cientficas), na busca de padres consistentes e/ou relacionamentos sistemticos entre variveis e, ento, valid-los aplicando os padres detectados a novos subconjuntos de dados. (Werneck, 2003) Usama Fayyad (Fayyad et al. 1996) define como sendo: "...o processo no-trivial de identificar, em dados, padres vlidos, novos, potencialmente teis e ultimamente compreensveis" Esse processo vale-se de diversos algoritmos que processam os dados e encontram esses padres. preciso ressaltar que embora os algoritmos atuais sejam capazes de descobrir padres, ainda no temos uma soluo eficaz para determinar padres valiosos. Por essa razo, Data Mining ainda requer uma interao muito forte com analistas humanos, que so, em ltima instncia, os principais responsveis pela determinao do valor dos padres encontrados. O mesmo feito na conduo (direcionamento) da explorao de dados e, este aspecto, no pode ser desprezado em nenhum projeto que queira ser bem sucedido. Han (1996) ainda nos diz:

Data Mining parte de um processo maior de conhecimento denominado Knowledge Discovery in Database (KDD). KDD consiste, fundamentalmente, na estruturao do banco de dados; na seleo, preparao e pr-processamento dos dados; na transformao, adequao e reduo da dimensionalidade dos dados; no processo de Data Mining; e nas anlises, assimilaes, interpretaes e uso do conhecimento extrado do banco de dados, atravs do processo de Data Mining. (traduo livre minha).

Bibliografia Codd, E.F.. A Relational Model of Data for Large Shared Data Banks . In: Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. Disponvel em: < http://www.acm.org/classics/nov95/toc.html >, Acesso em 01 ago 2004, 12:13:00 Chamberlin, D.; Boyce, R.. SEQUEL: A Structured English Query Language . IBM Research Laboratory, 1975. Disponvel em: < http://www.cs.uml.edu/~cchen/574-F03/reading/cb74.pdf >, Acesso em 01 ago 2004, 16:47 Fayyad, Usama; Piatetski-Shapiro, Gregory; Smyth, Padhraic. The KDD Process for Extracting Useful Knowledge from Volumes of Data . In: Communications of the ACM, pp.27-34, Nov.1996 Groth, R. Data Mining, A Hands-on Approach for Business Professionals . Prentice-Hall PTR. 1998 Han, Jiawei; Fu, Yongjian. Discovery of Multiple-Level Association Rules From Large Databases. Proceedings of 21st VLDB Conference. 1995 JOHNSON, Deborah G., NISSENBAUM, Helen. Computers, Ethics & Social Values. USA, Prentice HallInc. 1995. LANE, Tom. A Tour of PostgreSQL Internals. Great Brigde. Disponvel em: < http://developer.postgresql.org/pdf/tour.pdf>, Acesso em 10 abr 2004, 22:50:00. MEDEIROS, Rosalvo. O Impacto dos Requisitos Fixados pelo Cliente na Produo de Software. Dissertao apresentada ao Programa de Ps-Graduao em Engenharia de Produo da Universidade Federal de Santa Catarina como requisito parcial para obteno do ttulo de Mestre em Engenharia de Produo. Florianpolis, 2000.

MOMJIAN, Bruce. Mastering PostgreSQL Administration, Software Research Associates. Disponvel em <http://candle.pha.pa.us/main/writings/pgsql/admin.pdf>, Acesso em 10 abr 2004, 22:15:00 Navega, Srgio. Princpios Essenciais do Data Mining . Anais da Infoimagem 2002. Cenadem 2002. L. Rowe; M. Stonebraker, The Postgres data model, Proc. VLDB Conference, Sept. 1987. Disponvel em <http://db.cs.berkeley.edu//papers/ERL-M87-13.pdf >. Acesso em 12 abr 2004, 21:30:00 M. Stonebraker; L. Rowe, The design of Postgres, Proc. ACM-SIGMOD Conference on Management of Data, May 1986. Disponvel em < http://s2kftp.cs.berkeley.edu:8000/postgres/papers/ERL-M85-95.pdf >. Acesso em 12 abr 2004, 21:42:00 M. Stonebraker, The design of the Postgres storage system, Proc. VLDB Conference, Sept. 1987. Disponvel em <http://db.cs.berkeley.edu//papers/ERLM87-06.pdf>. Acesso em 12 abr 2004, 21:42:00 M. Stonebraker; M. Hearst; S. Potamianos, A commentary on the POSTGRES rules system, SIGMOD Record 18(3), Sept. 1989. Disponvel em <http://db.cs.berkeley.edu//papers/ERL-M89-82.pdf >. Acesso em 12 abr 2004, 21:53:00 M. Stonebraker, The case for partial indexes , SIGMOD Record 18(4), Dec. 1989, 4-11. Disponvel em < http://db.cs.berkeley.edu//papers/ERL-M89-17.pdf >. Acesso em 13 abr 2004, 14:12:00 M. Stonebraker; L. A. Rowe; M. Hirohama, The implementation of Postgres, Transactions on Knowledge and Data Engineering 2(1) , IEEE, March 1990. Disponvel em <http://db.cs.berkeley.edu//papers/ERL-M90-34.pdf>. Acesso em 13 abr 2004, 14:52:00 M. Stonebraker; A. Jhingran; J. Goh; S. Potamianos, On Rules, Procedures, Caching and Views in Database Systems, Proc. ACM-SIGMOD Conference on Management of Data, June 1990. Disponvel em <http://db.cs.berkeley.edu//papers/ERL-M90-36.pdf>. Acesso em 13 abr 2004, 15:02:00 POSTGRESQL. PostgreSQL 7.3.2 Documentation, USA, 2003 Werneck, Paul. Data Warehouse and Data Mining. IBM. USA. 2003

Você também pode gostar