Sei sulla pagina 1di 10

Transferncia de linhas de um arquivo.

TXT para um Banco de Dados


Trcio Santana S. Sousa1, Luciano Lucas do Nascimento1 Coordenao de Informtica Instituto Federal de Educao do Piau (IFPI) Floriano, PI Brasil
1

tercio.sss@gmail.com, lucianooh@hotmail.com

Resumo. Este artigo ir descrever os passos para a automatizao do processo de transferncia de linhas de informaes contidas em um arquivo TXT para um banco de dados. As ferramentas utilizadas neste processo sero uma aplicao desenvolvida em Object Pascal, no ambiente da Borland, o Delphi, e o servidor de banco de dados Interbase. O meio que conectar a aplicao ao banco o IBX. Alm de transferir as linhas deste arquivo, no final todos os dados devero estar ordenados de acordo com seus atributos no banco. Alm disso, ser retratado o tempo necessrio para a realizao da tarefa. Abstract. This article will describe the steps to automate the process of transferring lines of information in a TXT file into a database. The tools used in this process will be an application developed in Object Pascal, the environment of Borland Delphi and the database server InterBase. The medium that connects the application to the bank is IBX. In addition to transferring the lines of this file, in the end all data should be sorted according to their attributes in a database. Moreover, it will be portrayed as long as necessary to perform the task.

1. Informaes Gerais
O objetivo principal do trabalho fazer uma transferncia ou organizao dos registros contidos em um arquivo no formato de Bloco de Notas do Windows para um arquivo de banco de dados. Ele possui 673.617 linhas (ou registros), visto que cada registro est organizado em uma linha do arquivo. A soluo seria ento criar uma aplicao para automatizar esta tarefa, visto que seria praticamente impossvel de ser feita manualmente. A maneira de fazer com que o trabalho seja realizado automaticamente foi criar uma aplicao que segue um conjunto de regras e repeties para que faam tudo corretamente. Esta aplicao foi feita utilizando o ambiente de desenvolvimento da Borland o Delphi 7 [1]. Para se criar esta aplicao, foi necessrio primeiro estabelecer uma ordem de processos que foram seguidos por etapas. A primeira etapa incluiu a escolha do banco de dados cujos registros contidos no txt ficaro guardados, e quais componentes

ligaro a aplicao ao banco. O servidor de banco de dados escolhido foi o Interbase [2]. A empresa criadora deste banco a Borlad, a mesma do Delphi 7. Os componentes de conexo sero os da paleta Interbase do Delphi, conhecidos como IBX (Interbase Express). Escolhido o banco de dados e meio de conexo, hora ento de partir para a segunda etapa: a criao do banco e a tabela que vai receber os dados da transferncia. A terceira etapa fica por conta do desenvolvimento do programa. Por fim, a etapa de testes: foram feitos testes em diferentes mquinas, a fim de se obter o tempo gasto para a realizao das tarefas em diferentes configuraes de Hardwares.

2. Escolha do Banco de Dados


A escolha do banco fundamental, pois ela ir mostrar quais componentes podero ser usados durante a fase de desenvolvimento da aplicao. O banco escolhido foi o Interbase, ento os componentes da aba Interbase mostrados na Figura 1, podero ser usados para a conexo do banco com a aplicao.

Figura 1. Componentes da aba Interbase no Delphi 7

Estes componentes so chamados de IBX, e fornecem uma conexo rpida com o banco, pois evitam a passagem por camadas. A Figura 2 mostra as diversas camadas de conexo existentes e destaca o uso do IBX. Um exemplo de camada seria o BDE Borland Database Enginer.
IBX

Figura 2. Representao da ligao direta entre o Delphi e os componentes IBX com o banco Interbase

Outras ferramentas de conexo poderiam ser utilizadas, mas antes de escolh-las preciso verificar a compatibilidade do banco com estes componentes. Neste caso, se o

banco escolhido fosse o SQL Server da Microsoft, ento os componentes IBX no poderiam ser utilizados. Seria necessria a mudana para os elementos da paleta ADO (que so os mais indicados para se trabalhar com SQL Server), ou outros tambm compatveis. 2.1. Vantagens e Desvantagens do Interbase com IBX Como a tarefa a ser executada um tanto quanto complexa, afinal a aplicao ter que dividir linha por linha, atributo por atributo, e envi-las ao banco at chegar o final do arquivo - que contm 673.617 linhas, logo esse procedimento ser executado 673.617 vezes - o meio que ligar o banco influenciar bastante na velocidade destes procedimentos, visto que cada linha a ser enviada usar essa conexo. Se a ligao usando o IBX feita de forma direta, ento a velocidade ser mais alta que outras ferramentas, que passaro por camadas externas aplicao. Este foi o motivo da escolha dos componentes IBX associados ao banco Interbase: um meio de conexo que seja o mais rpido e direto possvel, visando obter um alto desempenho na realizao da exportao. Logicamente, em outras aplicaes poderiam ter mais vantagens a utilizao de componentes de outras paletas (Ex: ADO, BDE, DBExpress) e outros bancos, mas como o principal foco neste caso a velocidade, escolhemos o IBX. A desvantagem do IBX a pequena abrangncia em suporte a outros bancos de dados. Excetuando o Interbase, suportado apenas o servidor de bancos Firebird, desta forma, se fosse necessrio usar o Postgree ou SQL Server, toda a estrutura do programa teria de ser modificada, necessitando a remoo e a insero de componentes. Em resumo, a escolha do Interbase unido ao IBX ficou por conta ento da necessidade de uma alta velocidade de conexo com o banco e o timo desempenho das duas ferramentas juntas, apesar das desvantagens do IBX, que no vm ao nosso caso.

3. Criar o arquivo do banco e a tabela no Interbase


O processo de criao do banco e tabela no Interbase bastante simples, e semelhante a esta tarefa em outros SGBDs. Nesta etapa sero realizados os processos que daro origem ao banco e a tabela que receber os dados da exportao. O primeiro passo, antes de tudo criar o servidor do Interbase, que controla o banco virtualmente. 3.1. Criar o servidor do Interbase A primeira vez que se usa o IBConsole, necessrio criar um servidor, que vai controlar o acesso aos dados do banco. Essa etapa bastante simples, necessita apenas que se escolha um nome de usurio e senha. No padro do interbase o nome de usurio SYSDBA e a senha masterkey (minsculo). A Figura 3 mostra a tela de registro do servidor do Interbase.

Figura 3. Usurio (1) e senha padro (2) do Interbase

3.2. Criar o arquivo do Banco de Dados A criao do banco necessita que se escolha o caminho do arquivo e o apelido, conforme na Figura 4. Este arquivo o banco de dados em si. Nele estaro contidas informaes sobre as tabelas, atributos e os dados importados do arquivo TXT.

Figura 4. Campo que recebe o local (1) e Apelido ou nome do banco (2)

3.3. Criar a tabela que recebe os dados da transferncia Para isso, necessita-se da utilizao de cdigos SQL [3]. O Quadro 1 mostra o cdigo de criao da tabela. Dentro dele esto informaes relacionadas aos atributos, a

quantidade de caracteres que cada atributo receber, e o tipo de dados. A tabela se chamar CADASTRO, e ser composta dos seguintes atributos: ID (chave primria), CEP, SIGLA_UF (Sigla do estado relacionado ao CEP), Cidade e Logradouro. Todos eles equivalem aos campos do arquivo txt, exceto para ID, que ser criado como uma chave primria de cada registro e de maneira automtica. O Quadro 2 faz um resumo dos campos que sero criados na tabela CIDADES, e seus tipos. Aps se digitar a linha de cdigo do Quadro 1, com as informaes citadas acima, e ao executar estes comandos, a tabela j estar criada e o banco j estar pronto para receber os dados.
CREATE TABLE CADASTRO ( ID INTEGER NOT NULL, CEP CHAR(8) NOT NULL, SIGLA_UF CHAR(2) NOT NULL, CIDADE VARCHAR(50) NOT NULL, LOGRADOURO VARCHAR(125) NOT NULL, PRIMARY KEY (ID) ); Quadro 1. Cdigo SQL para a criao da Tabela CADASTRO

Tabela CIDADES Atributo ID CEP Sigla_UF Cidade Logradouro Tipo de dado Inteiro Texto (10) Texto (2) Texto (50) Texto (125) Descrio Chave Primria Obrigatrio Obrigatrio Obrigatrio Obrigatrio

Quadro 2. Detalhes dos atributos que estaro contidos na tabela CADASTRO

4. Desenvolvimento da Aplicao
J temos em vista o banco que ser utilizado, j escolhemos os componentes que conectaro o banco ao programa, chegamos agora na parte principal: criar a aplicao. O algoritmo a ser seguido pela aplicao bastante simples, apesar de ela ter que realizar uma tarefa bastante complexa e demorada. Basicamente uma repetio. Funciona da seguinte forma: j que os dados sero enviados de um arquivo de texto para um banco, ele necessitar ser dividido para poder ser enviado ao seu atributo relacionado, presente na tabela do banco.

Para poder dividir, ser necessrio primeiro localizar qual parte ficar em seu atributo. Por exemplo, no arquivo txt, o campo CEP, em todas as linhas, est presente do caractere 1 ao 8, sendo que cada linha equivale a um registro que ser exportado. Logo, a aplicao dever localizar essa parte, e enviar ao banco para o atributo CEP. E far isso tambm com SIGLA_UF, Cidade e Logradouro. Ser repetido esse processo at chegar o final do arquivo, linha por linha. J para ID, como uma chave primria e um atributo que no est presente no banco, ser gerada automaticamente de acordo com o numero da linha que est sendo lida. Para o processo ser realizado mais rpido, um componente do Delphi chamado Memo presente no formulrio de Importao, ir carregar primeiro todo o contedo do arquivo txt, linha por linha, que ficar agora presente na Memria RAM do computador. Totalizando, a aplicao contm trs funes: Importar para o Banco, Pesquisa e Alterar Banco, divididas em um formulrio, cada uma. Conforme na Figura 5, as funes podem ser selecionadas, em um Menu Principal, encontrado na janela principal do programa.

Figura 5. Menu com as operaes realizadas pelo programa

4.1. Importar para o Banco Este o formulrio que executar a funo principal da aplicao, que a transferncia. Conforme na Figura 6, em que o formulrio e seus componentes so mostrados, o formulrio composto de um Memo, que recebe as linhas do arquivo txt, e dois botes o qual, um servir para o usurio mostrar o caminho do arquivo e outro para iniciar a transferncia. H tambm uma Progressbar que mostra o andamento da tarefa. Tambm existem os componentes IBX: IBDatabase o qual mostrado o caminho do banco e os parmetros de conexo; o IBTransaction que caso haja travamento na aplicao, ele cancela o pedido feito e desfaz toda a operao; O IBQuery que realiza os comandos de Insert (Operaes INSERT), ou seja, a insero dos dados no banco e o DataSource, que acessa a fonte de dados e as conecta com o IBQuery.

Figura 6. Formulrio Importar e seus componentes

4.2. Pesquisar Neste formulrio, existe a possibilidade de realizar buscas nos dados contidos no banco. Os tipos de pesquisa podem ser por: ID, CEP, Sigla do Estado, Cidade ou Logradouro. Como pode ser visto na Figura 7, o formulrio composto por um Radiogroup para se selecionar o critrio de busca; um Edit que receber o dado a ser pesquisado e os componentes IBX: o IBQuery que localiza a pesquisa no banco por cdigo SQL (operaes SELECT), o Datasource que acessa os dados do banco e faz a conexo com o IBQuery o IBDatabase que contm o caminho do arquivo, IBTransaction que caso haja travamento na aplicao, ele cancela o pedido feito pelo Query e o BDGrid, que exibe em uma tabela os registros.

Figura 7. Formulrio Pesquisar e seus componentes

4.3. Alterar Banco o formulrio (Figura 8) responsvel pelas operaes de atualizar, remover ou adicionar dados ao banco. Composto por DBGrid, DBEdits para mostrar os campos e alter-los, DBDatabase, Datasource, IBTable para receber os dados na Tabela CADASTRO e DBNavigator para selecionar as opes de remoo e alterao dos dados no banco. Existe tambm o boto Limpar banco, que apaga todos os registros do banco atravs do comando SQL DELETE.

Figura 8. Formulrio Alterar Banco e seus componentes

5. Testes com a Aplicao


O teste consiste na execuo do processo de Importao do banco, do formulrio Importar. Eles foram realizados em trs mquinas distintas, cada uma com componentes de Hardware diferentes. Em cada mquina, o teste foi feito 3 vezes, devido ao fato de que geralmente o tempo varia alguns segundos, dando como resultado final a mdia entre os 3 testes: (Tempo 1 + Tempo 2 + Tempo 3) / 3 = Tempo Mdio.

Este teste foi realizado 3 vezes em cada mquina, pelo motivo que o tempo de importao pode variar em funo do uso do processador com outras tarefas (do sistema operacional, por exemplo) que estariam sendo feitas simultaneamente ao processo, como mostra a tabela 2. 5.1 Resultados dos Testes
Tabela 2. Detalhes dos testes realizados Mquina: Configurao: Mquina 1 Core 2 Quad Q6600@ 2.2GHZ; Memria RAM: 2gb; Windows 7 de 32 bits 3m: 02s 3m: 03s 2m: 58s 3m: 01s Mquina 2 Core 2 Duo Q6400 @ 2.0 GHz Memria RAM: 3gb Windows Vista de 32 bits 3m: 18s 3m: 12s 3m: 20s 3m: 16s Mquina 3 Core 2 Duo T5450 @ 1.66 GHZ Memria RAM: 2gb Windows XP de 32 bits 2m: 48s 2m: 45s 2m: 45s 2m: 46s

Tempo do Teste 1 Tempo do Teste 2 Tempo do Teste 3 Tempo Mdio

5.2 Concluso Com a realizao da tarefa proposta, possvel chegar a vrias concluses. A primeira, que a automatizao da tarefa, foi vivel e compensadora, pois o tempo e o trabalho diminuram consideravelmente. Segundo, que para esta automatizao, o uso do Delphi em conjunto com o Interbase teve desempenho satisfatrio, visto que realizou as tarefas em um tempo que se pode considerar baixo, para a quantidade de dados processados de 673.617 linhas. Com os testes, a concluso que se pode chegar, que mesmo com mquinas de configuraes diferentes, o tempo variou pouco na realizao do processo. Um fato importante de se perceber que na configurao com processador Core 2 Quad (de 4 ncleos) com Windows Seven, o tempo foi maior que no Core 2 Duo (de 2 ncleos) com Windows XP. A explicao para isso, talvez seja na baixa compatibilidade do Delphi e Interbase com processadores de quatro ncleos, por conta da arquitetura destes processadores serem mais recentes que a verso do Delphi 7. Ou pelo sistema operacional Windows Seven, que tambm uma verso mais recente que o Delphi 7, e por este motivo no consegue explorar todos os recursos disponveis de Hardware e Software. J na disputa entre os dois processadores Core 2 Duo, a diferena foi um pouco maior. Tambm foi causado pela diferena de sistemas operacionais, o Windows Vista mais recente que o XP, e por este motivo o Delphi no explora todos os recursos da mquina.

Referncias
[1] Cantu, Marco, O. (2003) Dominando o Delphi 7: a Bblia [2] Cantu, Marco, O. (2003) Dominando o Delphi 7: a Bblia, p. 534 - 550 [3] Vieira, Daniel, (2004) Introduo a Sistemas de Bancos de Dados, 8 Edio, p. 71 93; [4] Ferreira, Marcos dos Santos, (2001) Delphi 6: Tpicos Avanados

Potrebbero piacerti anche