PostgreSQL: instalando e conhecendo seus recursos



Documentos relacionados
Procedimentos para Reinstalação do Sisloc

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

NetEye Guia de Instalação

Procedimentos para Instalação do SISLOC

Curso PostgreSQL - Treinamento PostgreSQL - Fundamental

Desenvolvendo Websites com PHP

Procedimentos para Instalação do Sisloc

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

AULA 5 Sistemas Operacionais

Manual do usuário. Mobile Auto Download

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

SISTEMAS DE ARQUIVOS Sistemas operacionais

GUNIX GRUPO DE ESTUDOS LINUX

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

29/06/ :30 Leite Júnior QUESTÕES CESPE BACKUP

O servidor de banco de dados ORACLE corporativo da empresa deve possuir a seguinte especificação mínima:

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Sistemas Distribuídos

Padrão ix. Manual de Instalação do Q-Ware Server Versão

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

FAT32 ou NTFS, qual o melhor?

Entendendo como funciona o NAT

XDOC. Solução otimizada para armazenamento e recuperação de documentos

Instalação Cliente Notes 6.5

Conceitos de Banco de Dados

Manual de Instalação e Configuração

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Prof. Marcelo Machado Cunha

Sistemas de Informação. Sistemas Operacionais 4º Período

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

Noções de. Microsoft SQL Server. Microsoft SQL Server

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Laboratório de Redes. Professora Marcela Santos

Manual Captura S_Line

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

NOVO MODELO DE ATUALIZAÇÃO FOCCO Atualização automática com o FoccoUPDATE

IW10. Rev.: 02. Especificações Técnicas

Manual de Instalação (TEF LOJA)

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

ISO/IEC 12207: Gerência de Configuração

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Configurando o IIS no Server 2003

Software de monitoramento Módulo CONDOR CFTV V1 R1

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

SCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

1. Introdução. 2. Funcionamento básico dos componentes do Neteye

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Dell Infrastructure Consulting Services

SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00

Manual de operação. BS Ponto Versão 5.1

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER.

Introdução ao Active Directory AD

Manual AGENDA DE BACKUP

Manual de Atualização Versão

Aplicação Prática de Lua para Web

A.S.P. Servidores Windows

CSAU Guia: Manual do CSAU 10.0 como implementar e utilizar.

Lógica de Programação

MicrovixPOS Requisitos, Instalação e Execução

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

4 Estrutura do Sistema Operacional Kernel

Fox Gerenciador de Sistemas

Manual de Administração

Instalando o Internet Information Services no Windows XP

Manual de Instalação PIMSConnector em Windows

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

GUIA INTEGRA SERVICES E STATUS MONITOR

CONFIGURAÇÃO MINIMA EXIGIDA:

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

Manual de Instalação PIMSConnector em Linux

Introdução. O Windows Server 2003 está dividido em quatro versões:

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

SISTEMA GERENCIADOR DE BANCO DE DADOS

02 - Usando o SiteMaster - Informações importantes

LINGUAGEM DE BANCO DE DADOS

Manual de Instalação ProJuris8

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

OCOMON PRIMEIROS PASSOS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Considerações sobre o Disaster Recovery

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Transcrição:

PostgreSQL: instalando e conhecendo seus recursos Adriana Paula Zamin Scherer 1, Daniel Gonçalves Jacobsen 2, Marcelo Luis dos Santos 3 Faculdade Dom Bosco de Porto Alegre Porto Alegre RS Brasil adriana.faculdade@dombosco.net, djacobsenoris@msn.com, celol_santos@hotmail.com Resumo. O objetivo do presente artigo é relatar o uso do banco de dados livre PostgreSQL em uma empresa que atua no mercado de meios de captura. Para tanto, o artigo apresenta uma revisão bibliográfica das principais características do banco de dados, desde sua instalação até a forma como o software trata a segurança das informações armazenadas. A coleta de dados foi exclusivamente realizada através de uma entrevista com os dois administradores do banco de dados na empresa. Os resultados mostram que a utilização do PostgreSQL é viável, pois os objetivos foram atendidos e em função da qualidade do produto, a empresa já tem novos projetos em andamento prevendo o uso do PostgreSQL. Palavras-chave: PostgreSQL, banco de dados, segurança 1. Introdução Na realidade econômica em que vivemos a disputa entre as empresas para conquistar uma fatia do mercado ou, pelo menos, manter os clientes que possui, as informações tornaram-se elementos essenciais para o bom funcionamento dos negócios. E se uma empresa pretende expandir seus negócios, é fundamental que as informações estejam disponíveis sempre que forem necessárias. Para isto, é imprescindível a utilização de um Sistema de Gerenciamento de Banco de Dados (SGBD). Atualmente existem diversos softwares gerenciadores de banco de dados disponíveis no mercado. É possível classificá-los quanto a sua distribuição que pode ser livre ou proprietária. Dentre os proprietários estão, entre outros, o Oracle e o SQL Server. Dentre os livres o PostgreSQL é o que mais se destaca por possuir recursos que o equipara aos bancos de dados proprietários. Este fator tem contribuído para que seu uso aumente significativamente. 1 Mestre em Ciências da Computação pela Universidade Federal do Rio Grande do Sul. Professora da Faculdade Dom Bosco de Porto Alegre, RS - Brasil. Tem experiência na área de Ciência da Computação, atuando principalmente nos seguintes temas: Banco de Dados, Programação, Oracle, Java. 2 Bacharelando do curso de Sistemas de Informação da Faculdade Dom Bosco de Porto Alegre. Atuando com desenvolvimento de aplicações web na empresa Embratec Good Card. Atua como programador em ColdFusion, Java, Sybase e Oracle. 3 Bacharelando do curso de Sistemas de Informação da Faculdade Dom Bosco de Porto Alegre. Atuando na área de desenvolvimento de sistemas na empresa InfoSaúde utilizando as tecnologias ASP.NET, C# e Oracle.

Este artigo pretende expor as características do PostgreSQL desde sua instalação passando pelos recursos e mostrando seu uso na prática, com o objetivo de servir como guia de referência para o aprofundamento dos assuntos abordados. O artigo apresenta-se dividido em seis seções além desta introdução. Na seção 2, serão abordadas as questões relativas à instalação do PostgreSQL. A seção 3 faz uma breve descrição das características do gerenciador de banco de dados, abordando os seus aspectos principais. Na seção 4 e 5, respectivamente, será descrita a metodologia utilizada para a coleta de dados e a apresentação e discussão dos dados levantados. A seção 6 irá conter a síntese do artigo e considerações finais. 2. Instalação O PostgreSQL é suportado pelas mais diversas plataformas, entre elas o Windows, o Linux, e o Unix. Será tratada a seguir, a instalação na plataforma Windows da versão 8.2.4. O PostgreSQL pode ser instalado nas versões 2000, 2003, NT e XP. No entanto, de acordo com [Oslei 2007] em tecnologia NT, o instalador não funciona corretamente e, por este motivo, o software deverá ser instalado manualmente fazendo algumas alterações. As versões 95, 98 e ME não são oficialmente suportados pelo PostgreSQL, entretanto, caso o usuário desejar instalá-lo nesses sistemas, uma das soluções é utilizar um emulador. Porém, desta forma, a confiabilidade e a integridade dos dados armazenados não são totalmente garantidas [Lucas 2006]. Inicialmente é possível ressaltar que o sistema de arquivos de disco ou a partição em que o software será instalado deverá ser NTFS devido à maior confiabilidade que este tipo de sistemas de arquivos garante [Lucas 2006]. Esta característica será discutida em maiores detalhes na seção 3.1. O usuário de login para iniciar a instalação do banco de dados necessariamente deverá ser o usuário administrador do sistema operacional. Assim, todos os direitos de uso para os recursos necessários para a instalação estarão garantidos. Por praticidade, o PostgreSQL deve ser instalado como um serviço do sistema operacional. Caso contrário, a inicialização deverá ser feita manualmente pelas pastas dos arquivos onde o PostgreSQL foi instalado, executando o arquivo initdb. Para instalar o PostgreSQL como serviço, o instalador solicita a conta do sistema operacional que irá executar o banco de dados. Caso a conta informada não exista, o instalador pode encarregar-se de criar a conta especificada e fica a critério do usuário determinar a senha, ou deixar que ele gere uma automaticamente. Se não, o usuário deverá informar a senha da conta já existente. Ainda durante a instalação, é possível determinar que o instalador faça a inicialização do banco de dados depois de concluído o processo. Para isto, devem ser fornecidas as seguintes informações: porta de conexão, locale, codificação e a conta do usuário interno do banco de dados. A porta de conexão é aquela, onde o banco de dados irá atender as requisições de conexão dos usuários. O PostgreSQL, por default, atende as requisições na porta 5432. Ainda sobre o gerenciamento das conexões dos usuários, pode-se, durante a instalação, determinar se o banco poderá ser acessado apenas pela própria máquina, ou por outras máquinas da rede. O locale e a codificação têm como

objetivo configurar os acentos e os caracteres arábicos e sugere-se para estes, Portuguese, Brazil e LATIN1, respectivamente. A conta do usuário interno do banco de dados não deve ser a mesma conta do sistema operacional utilizada anteriormente para criação do serviço e a senha também não deve ser a mesma, pois caso ocorra uma invasão ao banco de dados o invasor não conseguirá facilmente invadir o sistema como um todo. O próximo passo é a habilitação dos módulos do contrib. Estes módulos proporcionam funcionalidades adicionais ao banco de dados. São diversas, conforme pode ser visto na figura 2.1. FIGURA 2.1 Módulos do contrib Segundo [Oslei 2007], algumas delas são diferenciais: TSeach2: é um recurso capaz de fazer uma busca completa por texto dentro do PostgreSQL. É uma evolução dos módulos Full Text Index e TSeach, que como indica o próprio instalador, se tornaram obsoletos. Suporte PgAdmin: funções adicionais ao software de gerenciamento PgAdmin. L-Tree: permite trabalhar com dados organizados em estrutura de árvore. PgStartTuple: informa o comprimento de tabelas e a quantidade de tuplas inutilizáveis. Logo após, deverão ser habilitadas quais linguagens procedurais 4 o usuário deseja instalar. Feito isso, o banco estará pronto para ser instalado completamente e ser executado. 4 Linguagem procedural é uma linguagem baseada na execução seqüencial das instruções. No caso dos bancos de dados, a programação interna pode ser feita através delas.

3. Características Técnicas Atualmente, o PostgreSQL é um dos SGBD s (Sistema Gerenciador de Banco de Dados) baseados em software livre mais avançado. Resultante de um projeto que se iniciou na década de 80, na Universidade de Berkeley, Califórnia [Gonzaga 2007]. Era chamado inicialmente de Postgres. Foi patrocinado por quatro empresas, denominadas DARPA, ARO, NFS e ESL Inc e coordenado por um dos primeiros desenvolvedores de banco de dados relacionais: o professor Michael Stonebraker [Sourceforge.net, 2007]. Durante o processo de desenvolvimento, o projeto passou por inúmeras mudanças e modificações, inclusive em seu nome. Em 1995, ele adotou a linguagem SQL como linguagem padrão do banco de dados e chamava-se Postgres95. De acordo com, [PostgreSQLBR 2007], um ano após, tornou-se o atual PostgreSQL fazendo menção a sua linguagem padrão e foi disponibilizado pela Internet. Hoje o PostgreSQL é um poderoso software para gerenciamento de banco de dados, agregando algumas funções dos SGBDs mais avançados, como por exemplo, os softwares proprietários Oracle ou SQL Server. É conhecido pela sua robustez e extrema segurança. Seu desenvolvimento é feito por comunidades voluntárias do mundo inteiro. Todavia, o projeto é gerenciado pelo PostgreSQL Global Development Group [Gonzaga 2007]. Além disso, vem ganhando cada vez mais espaço no mercado e é utilizado tanto em organizações públicas quanto organizações privadas. Um dos fatores que gerou um aumento significativo de utilização foi a sua inclusão na maioria das distribuições do Linux. Possui um suporte bastante grande para os padrões ANSI SQL-92, ANSI 96 e ANSI SQL-99 [Neto 2006]. Segundo [Oliveira e Cruz 2007], alguns comandos do padrão ANSI SQL-2003 também já começam a ser suportados. Ainda de acordo com [Oliveira e Cruz 2007] o PostgreSQL tem um suporte bastante amplo em relação as linguagens procedurais internas, como por exemplo: PL/pgSQL, PL/Tcl, PL/Perl, PL/Python, PL/Java, entre outras. Se o usuário desejar, também podem ser criadas novas linguagens e instalá-las no software desde que sigam as regras da documentação. O banco de dados suporta grandes volumes de dados, sendo que o tamanho do mesmo, o número de linhas e o número de índices são ilimitados. As tabelas suportam um valor aproximado de 32 TB cada uma, uma linha pode conter cerca de 1.6 TB e um campo cerca de 1 GB [PostgreSQL Global Development Group 2007]. Ainda assim, possui poderosos recursos de armazenamento de dados, gerência de memória, sistemas de bakcup, controle de concorrência e agrega algumas características simples de orientação a objetos (principalmente o conceito de herança de tabelas). Em [Neto 2006], podem ser vistas as funções básicas do PostgreSQL como por exemplo: triggers, views, stored procedures, transactions, schemas ou funções que foram implementadas a partir da verão 8.0.0, tablespaces, melhorias nos algoritmos de gerenciamento de buffers e checkpoints. Também implementa um recurso chamado garbage collection, que se encarrega de retirar fisicamente dos índices, das tabelas e da memória os dados que foram excluídos [Neto 2006], melhorando o desempenho do sistema como um todo.

Um dos principais diferenciais do banco é seu sistema de armazenamento de dados, que difere totalmente dos bancos concorrentes. O PostgreSQL possui um sistema de armazenamento baseado em cluster, que é um diretório onde todos os arquivos do banco estão armazenados. Tanto os arquivos dos dados, quanto os arquivos de configuração do banco. Outro tópico que tem destaque é a forma de como os dados são gravados no cluster. Os dados são temporariamente armazenados em um diretório do cluster que contém um conjunto de arquivos chamado WAL (Write Ahead Log). A cada modificação no conteúdo dos dados do banco, os novos dados são gravados temporariamente no WAL, que podem ter até 16 MB de tamanho. Os dados somente são transferidos do WAL para a base de dados original quando a função de checkpoint for chamada. O recurso de checkpoint pode ser configurado para ser executado de tempos em tempos ou pode ser chamado através de comandos SQL [Lucas 2006]. Este sistema aumenta significativamente a performance do banco, pois diminui o número de escritas efetivas nas tabelas originais [Gonzaga 2007], já que os dados somente serão realmente escritos com a chamada do checkpoint. O funcionamento básico do PostgreSQL é através de processos. O principal processo é o postmaster que é responsável por gerenciar o cluster e os processos de conexão dos clientes. Os outros processos chamam-se postgres, e são os que se iniciam quando um cliente conecta-se ao banco. Quando o coletor de estatísticas estiver sendo executado existirá também um processo postgres referente ao coletor de estatísticas [Lucas 2006]. O coletor de estatísticas é um software de apoio à administração do banco de dados, pois ele possibilita ao administrador coletar informações acerca das atividades do servidor. Com base nas informações coletadas o administrador pode fazer os ajustes necessários para que o banco de dados permaneça atendendo às requisições dos usuários com eficiência. Este aplicativo é capaz de indicar desde a quantidade de transações efetivadas e canceladas até a quantidade de leituras seqüências para cada tabela do banco [Neto 2006]. O controle de concorrência é utilizado para controlar eficientemente a atualização e visualização dos dados por diferentes sessões ao mesmo tempo. Segundo [Tessati 2007], o PostgreSQL implementa esse conceito de duas formas: o read commited que é uma forma comum entre outros SGBD s e o serializable. Se a forma utilizada for read commited, os dados visualizados são aqueles que foram efetivados antes do comando iniciar e nunca os dados que não foram efetivados ou aqueles que foram efetivados pelas transações concorrentes. Desta forma, duas consultas dentro de uma única transação podem trazer valores diferentes, pois neste modo de isolamento, uma transação concorrente pode alterar os dados da tabela durante a primeira consulta e assim ao iniciar a segunda consulta à tabela, esta contém as alterações efetivadas. Se a forma utilizada for serializable, os comandos enxergam os dados efetivados antes de a transação iniciar, assim consultas sucessivas dentro da mesma transação enxergam sempre os mesmos dados. Esta é uma forma mais rígida de controle da concorrência e pode ser alterada através do comando set transaction utilizado dentro dos softwares que gerenciam o banco.

Para gerenciar todas as essas tarefas, o PostgreSQL possui um conjunto de softwares de gerenciamento bastante completo e eficaz para Windows e Linux, chama-se PgAdmin. Encontra-se na verão III e possui uma interface gráfica muito interativa, não dificultando a execução das atividades e conectando-se ao banco via ODBC. É possível instalar o PgAdmin logo na instalação do próprio banco, ou instalálo separadamente mais tarde. Ele conta com diversos softwares para facilitar o uso pelo administrador do banco como, por exemplo, um agendador de tarefas ou um gerenciador do cluster de dados. Pode ser utilizado como um cliente SQL e monitora detalhadamente todos os processos que estão ocorrendo dentro do banco. 3.1. Segurança O PostgreSQL é um SGBD que tem no que diz respeito à segurança um dos seus pontos fortes, sendo em muitos casos o fator determinante na escolha entre os SGBDs livres. Esta sempre foi uma das preocupações da equipe de desenvolvedores do PostgreSQL: oferecer um SGBD extremamente robusto e confiável, sendo recomendado sua utilização em aplicações complexas, que exijam o controle de grandes volumes de dados, ou em casos de tratamento de informações críticas. A análise da segurança oferecida pelo PostgreSQL levará em conta fatores tidos como essenciais em um SGBD, além de outras características de funcionamento do PostgreSQL que aumentam a sua segurança. Logo na instalação do PostgreSQL é possível perceber que a segurança é questão primordial. Isto porque, para o seu perfeito funcionamento, a sua instalação [Oliveira 2007] deve ser feita em uma partição NTFS (New Technology File System), nunca em uma partição FAT (File Allocation Table) ou FAT32 (File Allocation Table para partições de até 32 GB). A vantagem de segurança de a instalação ser preferencialmente em sistemas de arquivos NTFS se deve ao fato deste possuir características que o tornam mais confiável do que os outros sistemas de arquivos, principalmente para aplicações que trabalham em rede. O controle de acesso aos dados deve ser feito de acordo com a necessidade de cada sistema. Existem informações que não devem ser vistas por todos os usuários: como exemplo, uma tabela que contenha os salários dos funcionários, ou os dados de um projeto novo que esteja em fase de desenvolvimento. O PostgreSQL oferece um controle baseado em direitos de acesso ou privilégios e é através deles que um usuário pode ou não acessar um dado. A identidade do usuário é que vai determinar o conjunto de privilégios disponíveis para ele. A autenticação dos clientes é feita através de um arquivo localizado no diretório de dados do cluster, chamado pg_hba.conf. Este arquivo é composto de vários registros, onde cada registro determina o tipo de conexão e devem ser informados valores como: o nome do banco de dados, a faixa de endereços de IP de cliente e o método de autenticação a ser utilizado nas conexões que correspondem a estes parâmetros [Sourceforge.net 2007]. Com a utilização deste arquivo que armazena os registros com os parâmetros necessários às autenticações é possível, por exemplo, determinar que um banco de dados possa ser acessado somente por um determinado usuário ou conjunto de usuários, informado ao registro. É possível também especificar os endereços IP ou a

faixa de endereços IP que o registro corresponde, autorizando o acesso apenas a partir desses endereços. Segundo [Sourceforge.net 2007], o PostgreSQL dispõe de eficientes métodos de autenticação, dentre os quais é possível destacar: por senha onde o principal método é o md5 (Message-Digest Algorithm 5) que suporta senhas criptografadas. As senhas, criptografadas ou não, ficam armazenadas em uma tabela do catálogo do sistema chamada pg_shadow. Kerberos implementa um protocolo de transporte de dados em rede, assegurando a comunicação dos dados mesmo em uma rede insegura. Além destes, a autenticação pode ser feita utilizando o nome do usuário e senha do sistema operacional, porém este método não é recomendado pois a segurança tornase dependente da oferecida pelo sistema operacional. A tabela do catálogo, pg_shadow, não pode ser vista por todos, justamente por conter as senhas dos usuários. Para possibilitar que esta tabela seja vista por todos sem que as senhas sejam exibidas, o PostgreSQL utiliza uma outra tabela do catálogo chamada pg_user, que é uma visão da pg_shadow, onde o campo senha é sempre mostrado com asteriscos ao invés dos caracteres reais da senha. Para aumentar a segurança dos dados que trafegam na rede é possível criptografar as comunicações entre o cliente e o servidor através do suporte nativo a conexões SSL (Secure Sockets Layer) através da instalação do OpenSSL no cliente e no servidor. Ainda é possível criar as conexões de clientes através de túneis SSH (Secure Shell). Ao tratar da segurança oferecida pelo PostgreSQL um dos principais aspectos é o mecanismo para criação de cópias de segurança e seu restabelecimento em caso de falhas, já que devido a importância das informações contidas nos bancos de dados não pode-se correr o risco de perdê-las por uma falha de hardware, queda de luz ou qualquer outro tipo de sinistro. O PostgreSQL possui duas poderosas formas de backup que contemplam as principais necessidades deste tipo de processo. São elas: O dump é um recurso que armazena diversos comandos em um arquivo de texto que podem reconstituir os dados do banco através de comandos SQL de criação de tabelas e todos os outros comandos necessários. Pode ser feito o dump de apenas alguns registros do banco ou de todos os registros contidos no cluster, o chamado dumpall. O point-in-time recovery é capaz de reconfigurar os dados para a data e hora informada pelo DBA (Data Base Administrator). Este recurso pode ser feito pela efetiva utilização do WAL como um sistema de armazenamento de arquivos [Lucas 2006]. Mesmo com esses recursos, pode ser feito backup através do sistema operacional, copiando o cluster dos dados. Todavia, esse recurso trás algumas restrições: o software deve estar fechado no momento da cópia do cluster; não é possível escolher as tabelas ou registros a serem copiados, isso quer dizer todos os

dados serão copiados, inclusive arquivos de controle do próprio banco que não se relacionam com as tabelas e registros; o processo é muito mais demorado e garante muito menos a integridade dos arquivos do que os anteriores [Neto 2006]. A cópia de segurança poit-in-time recovery somente é possível devido à existência do WAL. O WAL foi criado com o intuito de evitar perda de dados em uma eventual queda do sistema, pois trabalha com pontos de verificação que são gravados sempre que uma modificação é feita. Esse referencial teórico serviu de base para a condução do estudo de caso deste trabalho, permitindo ampliar o conhecimento acerca do PostgreSQL e, juntamente com os conceitos estudados na revisão teórica, construir um conjunto de referências que podem ser bastante úteis em projetos de escolha de softwares de banco de dados nas empresas. 4. Método de pesquisa O desenvolvimento da presente pesquisa utilizou a abordagem qualitativa por ser a mais adequada. Afinal, houve contribuição para a teoria e os entrevistadores precisaram estar presentes para compilar as informações. Essas características também influenciaram a escolha do método para coleta das informações, que neste caso foi utilizado o estudo de caso. A técnica utilizada foi a entrevista não-estruturada para que fosse possível conseguir os aspectos mais relevantes sobre o funcionamento do PostgreSQL em um ambiente de produção. A empresa onde foi realizado o estudo de caso oferece soluções de tecnologia e serviços para a indústria de meios de pagamento e para empresas que necessitem realizar trocas de informações de modo transacional. Ela foi criada há quatro anos e está distribuída em todo o país e em forte expansão na América Latina. Ela utiliza o conceito de rede aberta buscando oferecer ao ponto de venda o máximo de funcionalidades em um só produto. Atualmente a empresa captura mais de 50 milhões de transações multiserviços ao mês, entre elas, de cartões de crédito, de recarga de celular, de recarga de transporte, de consultas ao Serasa ou de seguros. Esta empresa foi utilizada porque faz uso do PostgreSQL para o armazenamento e gerenciamento das informações referentes ao monitoramento das transações. Sendo estas, um dos principais produtos da empresa. O sistema em estudo começou a ser utilizado durante o ano de 2007 com objetivo de criar uma base de conhecimento para uso interno, em relação à monitoração das transações. 5. Resultados e discussão dos dados coletados A versão do banco utilizada é a 8.2.4 instalada em um servidor com o sistema operacional Linux e a distribuição Slackware. A escolha desta plataforma e distribuição foi devido a sua estabilidade. No entanto, a opção pelo Sistema Operacional faz diferença na performance do PostgreSQL. A versão para Windows é mais lenta que a versão para Linux. Isto porque parte das funções do SGBD são reescritas para a versão Windows, o que ocasiona a diminuição da performance do banco. Porém, esta diferença

praticamente não é perceptível em aplicações de pequeno porte. Uma das práticas de modelagem que possibilitam ganhos de performance é a utilização de transações curtas, visando que nenhuma transação possa demorar tempo suficiente para deixar outras esperando sua finalização para que então possam ser iniciadas. O tipo de aplicação não foi claramente especificado, mas de acordo com os relatos dos administradores, pode-se concluir que é Online Transaction Processing (OLTP), por causa das inúmeras conexões e transações simultâneas que o banco recebe. Toda vez que é executado um update ou delete em alguma tabela, as linhas correspondentes ficam com status de versão anterior e excluída, respectivamente. Para evitar a sobrecarga do sistema e liberar efetivamente os espaços, o recurso chamado vacuum é utilizado. Existem variações para o recurso: auto_vacuum e full_vacuum. O auto_vacuum não é utilizado porque faz a limpeza quase que periodicamente, ocasionando a lentidão do sistema. Logo, o mais recomendável e o que é periodicamente utilizado é o full_vacum. Todavia este recurso também tem uma desvantagem: o sistema precisará estar parado. Similarmente ao que é implementado por bancos de dados proprietários, o PostgreSQL também implementa o recurso de memória exclusiva, onde é reservada uma quantidade de memória RAM específica para uso restrito do banco. Utilizando este recurso, há um aumento de performance bastante grande. No servidor PostgreSQL da empresa, há a reserva de 2 GB de memória para funcionamento do banco em uma máquina de 4 GB. O sistema de backup utilizado pela empresa é o dumpall, feito diariamente. Este processo foi escolhido em detrimento ao point-in-time-recovery pela maior eficiência, já que para recuperar o backup de uma determinada data utilizando o segundo método é mais lento do que utilizando o primeiro. O PostgreSQL não tem um limite máximo de conexões de usuários simultaneamente. O que existe é um limite de hardware do servidor em que o banco está instalado. Para cada usuário conectado, o servidor deve disponibilizar certa quantidade de memória, na empresa este valor é em torno de 16 MB de memória RAM. Para manter o sistema funcionando corretamente, sem lentidão, obedecendo às limitações do hardware do servidor e para manter a estabilidade do sistema deve-se estipular um número máximo de usuários simultâneos. Assim, verificou-se com os administradores do banco de dados como o PostgreSQL vem sendo utilizado na prática. Tendo mostrado um ótimo desempenho, segurança e atendendo as necessidades. Foi possível confirmar que o PostgreSQL é um SGBD robusto, seguro e também performático, disponibilizando uma extensa gama de funções que, em alguns casos, nem mesmo SGBDs proprietários oferecem. No entanto, para o aproveitamento destes recursos é preciso um conhecimento profundo por parte de quem o administra, tanto em relação às melhores práticas de modelagem de dados quanto ao controle de transações. Segundo os profissionais, sabendo utilizar em conjunto estes dois fatores, podem-se obter resultados tão bons quanto os obtidos pelos SGBDs proprietários mais utilizados, podendo superá-los em alguns casos. 6. Conclusão

Através desse relato, mostra-se o exemplo de uma empresa que apostou na qualidade, confiabilidade e robustez do PostgreSQL para depositar nele informações de controle interno e, através dele acabou encontrando uma solução eficiente e de baixo custo. Esse exemplo mostra como as empresas estão investindo no uso deste software, entendendo isso, como uma questão não mais de competitividade, mas de sobrevivência. Esse relato deve servir de exemplo para muitas empresas que se mantêm reticentes em relação ao uso de software livre, especialmente na área de banco de dados, entendendo que pelo fato desta área ser uma das mais importantes dentro das organizações, os softwares precisam ser pagos, pois somente assim podem garantir a sua qualidade. Enquanto que o correto é identificar a melhor solução para cada tipo de problema e que o banco de dados PostgreSQL é uma solução de qualidade, confiabilidade e economicamente viável, já que não há custo de licenciamento. Referências Bibligráficas Gonzaga, Jorge Luiz. (2007) Dominando o PostgreSQL. Rio de Janeiro: Editora Ciência Moderna Ltda. Lucas, Everton. (2006) PostgreSQL, Muito prazer! Visão geral das funcionalidades do PostgreSQL. Revista SQLMagazine. Edição nro 36. Neto, Álvaro Pereira. (2006) PostgreSQL Técnicas Avançadas Versões Open Source: Soluções para Desenvolvedores e Administradores de Banco de Dados. São Paulo: Editora Érica Ltda. Oliveira, Fernado Ike; Cruz, Rodrigo de Sá. PostgreSQL 8.2 O elefante em evolução. Revista SQL Magazine. Edição nro 41. Oliveira, Rodrigo Padula de. (2007) PostgreSQL 8.2 Win 32: Instalação passo a passo, http://www.postgresql.org.br/documenta%c3%a7%c3%a3o?action=attachfile&do= get&target=tutorial_win32.pdf, julho. Oslei, Daniel. (2007) Instalação do PostgreSQL 8.0. http://www.imasters.com.br/artigo/2917/postgresql/instalacao_do_postgresql_80/, julho. PostgreSQLBR: Comunidade Brasileira do PostgreSQL. (2007) Introdução e histórico. http://www.postgresql.org.br/introdu%c3%a7%c3%a3o_e_hist%c3%b3rico, julho. PostgreSQL Global Development Group. (2007) About, http://www.postgresql.org/about/, 2007. Sourceforge.net. (2007) Documentação do PostgreSQL 8.0.0, http://pgdocptbr.sourceforge.net/pg80/, julho. Tessati, Rogério. (2007) Controle de Concorrência no PostgreSQL. http://hermes.ucs.br/carvi/cent/dpei/rtessari/discip/sis0298/materiais/concorrencia2.pdf, agosto.