Escolar Documentos
Profissional Documentos
Cultura Documentos
Banco de dados MySQL e PostgreSQL
Introdução
É muito fácil encontrar serviços de hospedagem de sites que oferecem em seus planos os
Sistemas Gerenciadores de Banco de Dados (SGDB) MySQL e PostgreSQL, embora isso seja
mais comum com o primeiro. Como esses SGBD não são usados apenas na internet, talvez
seja de seu interesse utilizá‐los em seus projetos de software, uma vez que cada um é
dotado de vantagens interessantes, como a gratuidade de uso. Para ajudá‐lo a escolher o
melhor para sua aplicação, este artigo apresenta as principais características de ambos,
começando com o MySQL. Para tanto, é recomendável que você tenha algum conhecimento
sobre os conceitos de bancos de dados.
Alguns termos
Mesmo aquelas pessoas que já trabalham com banco de dados podem ficar "perdidas" no
meio de tantos nomes de recursos. Assim, para facilitar a compreensão, segue uma lista com
uma breve explicação sobre os recursos mais importantes:
‐ Schemas: recurso que permite cruzar informações em um mesmo banco de dados, mas em
estruturas diferentes;
‐ SQL: sigla para Structured Query Language, é uma linguagem utilizada em bancos de dados
relacionais;
‐ SSL: sigla para Secure Sockets Layer, consiste em um protocolo para a troca segura de
informações;
‐ Stored procedures: esse recurso consiste em comandos SQL "guardados" no servidor para,
por exemplo, executar tarefas repetitivas, evitando que um cliente tenha que executá‐las
constantemente;
‐ Triggers: também chamados de gatilhos, os triggers são recursos que permitem o
acionamento de uma seqüência de comandos logo em seguida ou logo após um evento;
‐ Views: os views consistem em um tipo de tabela virtual formada por campos extraídos de
uma tabela "verdadeira", facilitando o controle sob os dados acessados.
O banco de dados MySQL
O MySQL é um dos sistemas de gerenciamento de banco de dados mais
populares que existe e, por ser otimizado para aplicações Web, é
amplamente utilizado na internet (inclusive aqui no InfoWester). É muito
comum encontrar serviços de hospedagem de sites que oferecem o MySQL e a linguagem
PHP, justamente porque ambos trabalham muito bem em conjunto.
Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para praticamente
qualquer sistema operacional, como Linux, FreeBSD (e outros sistemas baseados em Unix),
Windows e Mac OS X. Além disso, o MySQL é um software livre (sob licença GPL), o que
significa que qualquer um pode estudá‐lo ou alterá‐lo conforme a necessidade.
Entre as características técnicas do SGBD MySQL, estão:
‐ Alta compatibilidade com linguagens como PHP, Java, Python, C#, Ruby e C/C++;
‐ Baixa exigência de processamento (em comparação como outros SGBD);
‐ Vários sistemas de armazenamento de dados (batabase engine), como MyISAM, MySQL
Cluster, CSV, Merge, InnoDB, entre outros;
‐ Recursos como transactions (transações), conectividade segura, indexação de campos de
texto, replicação, etc;
‐ Instruções em SQL, como indica o nome.
Até o momento em que este artigo era escrito, o MySQL estava na versão 5.0 (mais
precisamente, 5.0.26). Em relação à versão 4.0, houve acréscimo de vários recursos e
melhorias importantes, como:
‐ Triggers;
‐ Stored procedures;
‐ Sub‐selects;
‐ Suporte total ao Unicode;
‐ INFORMATION_SCHEMA (para armazenamento do dicionário de dados);
‐ Server side cursors;
‐ Suporte a SSL;
‐ Melhoria no tratamento de erros.
O MySQL surgiu na Suécia pelas mãos de três colegas: Allan Larsson, David Axmark e Michael
Monty Widenius. Trabalhando com base de dados, eles sentiram a necessidade de fazer
Página 2
Instalação e Manutenção de Banco de Dados
determinadas conexões entre tabelas e usaram o mSQL para isso. Porém, não demorou para
perceberem que essa ferramenta não lhes atendia conforme o necessário e passaram a
trabalhar em uma solução própria. Surgia então o MySQL, cuja primeira versão foi lançada
no ano de 1996.
Um fato importante a ser destacado sobre o MySQL é que esse SGBD também possui uma
licença comercial, isto é, paga. A MySQL AB, empresa que o desenvolve e que o distribui,
oferece suporte diferenciado a quem estiver disposto a pagar por isso.
O banco de dados PostgreSQL
O sistema gerenciador de banco de dados PostgreSQL teve seu início na
Universidade de Berkeley, na Califórnia, em 1986. À época, um programador
chamado Michael Stonebraker liderou um projeto para a criação de um
servidor de banco de dados relacionais chamado Postgres, oriundo de um
outro projeto da mesma instituição denominado Ingres. Essa tecnologia foi
então comprada pela Illustra, empresa posteriormente adquirida pela Informix. Porém,
mesmo diante disso, dois estudantes de Berkeley (Jolly Chen e Andrew Yu) compatibilizaram
o Postgres à linguagem SQL. Este projeto recebeu o nome de Postgres95.
Em 1996, quando o projeto estava estável, o banco de dados recebeu o nome de
PostgreSQL. No entanto, enquanto ainda possuía o nome Postgres95, o banco de dados teve
várias mudanças. O seu código foi totalmente revisado e a linguagem SQL foi definida como
padrão.
Tecnicamente falando, o PostgreSQL é um banco de dados relacional e orientado a objetos.
Um de seus atrativos é possuir recursos comuns a banco de dados de grande porte, o que o
deixa apto a trabalhar, inclusive, com operações de missão crítica. Além disso, trata‐se de
um banco de dados versátil, seguro, gratuito e de código aberto (disponível sob uma licença
BSD).
Entre suas características, tem‐se:
‐ Compatibilidade multi‐plataforma, ou seja, executa em vários sistema operacionais, como
Windows, Mac OS X, Linux e outras variantes de Unix;
‐ Compatibilidade com várias linguagens, entre elas, Java, PHP, Python, Ruby, e C/C++;
‐ Base de dados de tamanho ilimitado;
‐ Tabelas com tamanho de até 32 TB;
‐ Quantidade de linhas de até 1.6 TB ilimitada;
‐ Campos de até 1 GB;
‐ Suporte a recursos como triggers, views, stored procedures, SSL, MVCC, schemas,
transactions, savepoints, referential integrity e expressões regulares;
‐ Instruções em SQL, como indica o nome.
Página 3
Instalação e Manutenção de Banco de Dados
No momento em que este artigo era escrito, o PostgreSQL estava na versão 8.1.
MySQL x PostgreSQL
MySQL ou PostgreSQL, qual usar? Ambos são muito bons e não fazem feio diante das
alternativas pagas. Além disso, possuem recursos e vantagens em comum, o que significa
que, para a maioria das aplicações, ambos podem ser usados. Na verdade, o correto não é
tentar descobrir qual é o melhor, mas em que situação um ou outro deve ser utilizado.
O PostgreSQL é otimizado para aplicações complexas, isto é, que envolvem grandes volumes
de dados ou que tratam de informações críticas. Assim, para um sistema de comércio
eletrônico de porte médio/alto, por exemplo, o PostGreSQL é mais interessante, já que esse
SGBD é capaz de lidar de maneira satisfatória com o volume de dados gerado pelas
operações de consulta e venda.
O MySQL, por sua vez, é focado na agilidade. Assim, se sua aplicação necessita de retornos
rápidos e não envolve operações complexas, o MySQL é a opção mais adequada, pois é
otimizado para proporcionar processamento rápido dos dados e tempo curto de resposta
sem exigir muito do hardware. Se você precisa, por exemplo, de um banco de dados para
armazenar o conteúdo do seu site, de seu fórum ou necessita manter um cadastro de
usuários de um portal, o MySQL "serve como uma luva", pois tais aplicações não necessitam
dos recursos avançados que o PostgreSQL oferece.
Para escolher um destes dois SGBD, procure entender bem quais recursos sua aplicação
precisa. Tente estimar o volume de dados, avalie o hardware disponível, certifique‐se das
funcionalidades necessárias e, posteriormente, procure por informações mais detalhadas do
MySQL e do PostGreSQL. Se sua aplicação for simples ‐ principalmente se for algo ligado à
internet ‐, não é preciso pensar muito: o MySQL é uma escolha satisfatória, pois é facilmente
encontrado em serviços de hospedagem.
Todavia, há situações em que tanto o MySQL quanto o PostgreSQL serão boas escolhas.
Nesses casos, é recomendável fazer testes com ambos e avaliar qual oferece mais vantagens
à aplicação.
Página 4