FACULDADE LOURENÇO FILHO
Flávio Martins Colares
ANÁLISE COMPARATIVA DE BANCO DE DADOS
GRATUITOS
FORTALEZA
2007
FLÁVIO MARTINS COLARES
ANÁLISE COMPARATIVA DE BANCO DE DADOS
GRATUITOS
Monografia apresentada à coordenação
do curso de Ciências da Computação da
Faculdade Lourenço Filho, como requisito
para obtenção do grau de Bacharel em
Ciência da Computação.
Orientadora: Valneide Cabral, M.Sc.
FORTALEZA
2007
MONOGRAFIA APRESENTADA À COORDENAÇÃO DO CURSO DE CIÊNCIA DA
COMPUTAÇÃO DA FACULDADE LOURENÇO FILHO INTITULADA, ANÁLISE
COMPARATIVA DE BANCO DE DADOS GRATUITOS, COMO REQUISITO PARA
OBTENÇÃO DO GRAU DE BACHAREL EM CIÊNCIA DA COMPUTAÇÃO.
POR: FLÁVIO MARTINS COLARES
APROVADA EM:10/08/2007
BANCA EXAMINADORA CONSTITUÍDA DOS SEGUINTES PROFESSORES:
Profa. M.Sc. Valneide Cabral
Faculdade Lourenço Filho
Profa. Msc Fabiana Gomes Marinho
Faculdade Lourenço Filho
Prof. Msc. William de Araújo Sales
Faculdade Lourenço Filho
Agradecimentos
Agradeço a professora e orientadora M.Sc. Valneide
Cabral, pela dedicação, apoio e encorajamento
contínuo para o desenvolvimento deste trabalho, aos
demais Professores, pela cobrança e incentivo nas
disciplinas
por
eles
ministradas,
e
todos
os
funcionários que fazem esta Instituição de ensino,
pelo seu trabalho que em muito contribuiu e auxiliou
em nossa trajetória, e à direção da Faculdade
Lourenço Filho, pelo apoio institucional e pelas
facilidades oferecidas.
DEDICATÓRIA
Dedico à minha mulher, Tarcyana, aos meus filhos,
Victor e Déborah, pelo apoio, incentivo, contribuição
e compreensão durante todo o curso.
Aos meus amigos, colegas de trabalho e faculdade,
pela ajuda, incentivo dispensados a mim em toda a
elaboração deste trabalho.
RESUMO
Software Livre (Free Software) é o software disponível com a permissão para
qualquer um usá-lo, copiá-lo, e distribuí-lo, seja na sua forma original ou com
modificações, seja gratuitamente ou com custo. Em especial, a possibilidade de
modificações implica em que o código fonte esteja disponível. Se um programa é
livre, potencialmente ele pode ser incluído em um sistema operacional também livre.
E importante não confundir software livre com software grátis porque a liberdade
associada ao software livre de copiar, modificar e redistribuir, independe de
gratuidade. Existem programas que podem ser obtidos gratuitamente mas que não
podem ser modificados, nem redistribuídos. A finalidade deste estudo é conhecer
um pouco deste mundo livre, buscando conhecer os três maiores expoentes
hoje existentes no mercado mundial de SGBD's. Será avaliada a viabilidade da
adoção de Banco de Dados Gratuitos, pelas organizações que pretendam
adotar a prática da informatização das informações, com integridade dos dados
e com redução de custos e serão analisados três principais bancos de dados
livres que podem concorrer de fato com as grandes empresas como a IBM,
Microsoft e Oracle: Firebird 2.0, MySQL 5.0.26 e PostgreSQL 8.2.0. Este trabalho
tem como objetivo geral investigar se a adoção de banco de dados gratuitos é
segura e
viável, e como objetivos específicos: analisar conceitos e
características de bancos de dados; e apresentar o que sejam bancos de dados
gratuitos com suas vantagens e limitações. Quanto ao método de abordagem do
presente trabalho, foi feito uso do método indutivo, acompanhado da técnica de
pesquisa bibliográfica. Com as consultas a fontes bibliográficas diversas, será
possível o exame e estudo do tema sob os mais diversos enfoques e
entendimentos, o que propiciará um aprofundamento na matéria e,
conseqüentemente, um embasamento teórico para a realização do trabalho e a
obtenção dos fins por ele visados. Como resultados finais verificou-se que o
MySQL e o PostgreSQL, são os bancos mais utilizados e como se pode ver,
possuem muitas facilidades para o dia-a-dia. Além disso, por serem os mais
populares, desfrutam de uma grande gama de ferramentas desenvolvidas por
terceiros e suporte especializado. Atualmente, ao que tudo indica ambos estão
convergindo em termos de recursos. Enquanto o MySQL busca aumentar o seu
conjunto de funcionalidades, o que era uma grande necessidade, o PostgreSQL
busca aumentar sua performance: a nova versão 8.2.0 tem como um dos destaques
o aumento de 20% em performance segundo seus desenvolvedores.
Palavras-chave: Banco de dados, Firebird, MySQL PostgreSQL, Benchmark,
SGBD's.
SUMÁRIO
INTRODUÇÃO
8
1 BANCOS DE DADOS
12
1.1 CONCEITO E CARACTERÍSTICAS DE BANCO DE DADOS
12
1.2 O MODELO RELACIONAL
18
1.2.1 Conceitos
18
1.2.2 Restrições do modelo relacional
20
1.3 PADRÃO SQL
22
2 FATORES DETERMINANTES NA ESCOLHA DE UM BANCO DE DADOS
24
2.1 O SISTEMA DE BANCOS DE DADOS VERSUS SOFTWARE LIVRE
26
2.2 TIPOS DE LICENÇA DE SOFTWARE
28
3 BANCOS DE DADOS GRATUITOS
33
3.1 MYSQL
33
3.2 POSTGRESQL
36
3.3 FIREBIRD
37
4 NOVA VISÃO DAS EMPRESAS QUE COMERCIALIZAM BANCO DE DADOS
40
4.1 CARACTERÍSTICAS DO ORACLE EXPRESS
42
4.2 CARACTERÍSTICAS DA DB2 EXPRESS-C
44
4.3 CARACTERÍSTICAS DO SQL SERVER 2005 EXPRESS EDITION
48
4.4 TENDÊNCIAS
52
5 COMPARATIVOS E TESTES DE PERFORMANCE (Benchmark)
56
5.1 COMPARANDO FIREBIRD, MYSQL, POSTGRESQL
57
5.1.1 Análise de Desempenho (Benchmark)
67
5.2 COMPARATIVO DE PERFORMANCE ENTRE BANCO DE
PROPRIETÁRIOS E GRATUITOS
68
5.3 ANÁLISE DE CUSTOS NA AQUISIÇÃO DE LICENÇAS DE BANCOS
PROPRIETÁRIOS
69
6 CONCLUSÃO
71
BIBLIOGRAFIA
73
INTRODUÇÃO
Inicialmente se faz necessário estabelecer a diferença entre Banco de Dados (BD) e
Sistema Gerenciador de Banco de Dados (SGBD). BD é uma coleção de dados que
mantém relações entre si e está armazenada em um dispositivo que permite
armazenar, modificar e recuperar dados. Este dispositivo é o SGBD. Uma camada
entre os dados e as aplicações responsável pela execução de tarefas de
manipulação, gerenciamento, concorrência e recuperação de falhas. No decorrer do
processo de escolha do SGBD deve-se levar em consideração aspectos como:
características do sistema, habilidades, licença e suporte.
Hoje, com um mercado cada vez mais competitivo, as empresas buscam
diuturnamente informatizar seus processos. A grande massa de informações
provenientes destes processos de integração de sistemas, do comércio pela
internet e business intelligence é de grande valor para a tomada de decisões
destas organizações e estes dados são armazenados utilizando-se Banco de
Dados. Os Bancos de Dados são repositórios que não possuem a função
específica de armazenagem; podem recuperar, efetuar backup em tempo real e
9
manter a segurança dos dados muitas vezes críticos para os negócios das
empresas (CANTU, 2005).
Quando o assunto banco de dados vem à tona em rodas de profissionais
de informática, os nomes mais lembrados são na sua grande maioria, aqueles
ditos comerciais ou proprietários: Oracle, SQL Server e DB2. No entanto o
mundo do armazenamento de informações não se limita a estes sistemas. Além
deles, existem os chamados bancos de dados livres, ou seja, bancos de dados
cujo licenciamento e uso não obriga a aquisição por meio do pagamento de
licenças, sejam por servidor, por usuários ou por processador.
Estas bases de dados há muito mostraram que são capazes de enfrentar
seus concorrentes proprietários e de altos custos de igual para igual em vários
segmentos e ambientes, tornando-se uma alternativa viável para diversas
corporações ao redor do mundo. Além disso, a cada dia estes sistemas estão
mais maduros, trazendo para o profissional ou empresa, mais segurança,
confiabilidade,
estabilidade
e
principalmente,
redução
no
custo
de
licenciamento.
Assim como o Software Livre, onde dentre eles destaca-se o Linux, hoje
os Bancos de Dados Gratuitos também já se tornaram uma realidade. Mesmo
sabendo-se que Bancos de
Dados Comercias
(pagos) estão bastante
consolidados, incluindo aí as grandes empresas como IBM, Microsoft e Oracle,
os bancos gratuitos, alguns deles Open Source (código aberto), começam a
mostrar sua força. Dentre outras vantagens, o uso destes bancos de dados não
obriga a aquisição por meio de pagamento de licenças, sejam por servidor, por
usuário ou por processador. Repetindo o que já aconteceu com o Linux, o banco
10
de dados relacional está se tornando uma commodity1, quer pela oferta de bons
produtos ou até mesmo pela concorrência dos softwares livres.
Para os padrões tecnológicos atuais, garantir a segurança, a integridade
e a autenticidade de informações, quer sejam acessadas localmente ou na troca
de informações pela Internet, é o mínimo que se pode esperar. Uma alternativa
para informatização e com baixo custo é a adoção de Banco de Dados gratuitos,
uma prática ainda pouco utilizada pelas empresas, mais que atende plenamente
as necessidades da grande maioria, dependendo é claro do porte da aplicação e
das características da aplicação.
Neste contexto, pretende-se responder ao seguinte questionamento:
adoção de banco de dados gratuitos é viável? Dessa forma, a finalidade deste
estudo é conhecer um pouco deste mundo livre, buscando conhecer os três
maiores expoentes hoje existentes no mercado mundial de SGBD's. Será
avaliada a viabilidade da adoção de Banco de Dados Gratuitos pelas
organizações
que
pretendam
adotar
a
prática
da
informatização
das
informações, com integridade dos dados e com redução de custos e serão
analisados três principais bancos de dados livres que podem concorrer de fato
com os gigantes do mercado: Firebird 2.0, MySQL 5.0.26 e PostgreSQL 8.2.0.
Este trabalho tem como objetivo geral investigar se a adoção de banco
de dados gratuitos é segura e viável, e como objetivos específicos: analisar
conceitos e características de bancos de dados; e apresentar o que sejam
bancos de dados gratuitos com suas vantagens e limitações.
1
O termo commodity é utilizado nas transações comerciais de produtos de origem primária nas
bolsas de mercadorias. É uma referência aos produtos em estado bruto ou com pequeno grau de
industrialização, de qualidade quase uniforme, produzidos em grandes quantidades e por diferentes
produtores. Estes produtos in natura, cultivados ou de extração mineral, podem ser estocados por
determinado período sem perda significativa de qualidade. Exemplos: borracha, ouro, aço, prata,
cobre, soja e trigo. Também pode ser utilizado para referir-se a produtos sem diferenciação.
11
Quanto ao método de abordagem do presente trabalho, foi feito uso do
método indutivo, acompanhado da técnica de pesquisa bibliográfica. Com as
consultas a fontes bibliográficas diversas, será possível o exame e estudo do
tema sob os mais diversos enfoques e entendimentos, o que propiciará um
aprofundamento na matéria e, conseqüentemente, um embasamento teórico
para a realização do trabalho e a obtenção dos fins por ele visados.
O trabalho apresenta-se dividido em quatro capítulos: primeiro capítulo
aborda conceitos e características de banco de dados, o sistema de bancos de
dados, o padrão SQL, fatores determinantes na escolha de um banco de dados, e
tipos de licença de softwares. O segundo capítulo discorre a respeito de bancos de
dados gratuitos. O terceiro capítulo, por sua vez, analisa uma nova visão das
empresas que comercializam bancos de dados. No quarto capítulo é apresentado
um comparativo de custo de licenciamento dos bancos de dados analisados bem
como testes de performance (Benchmark) entre eles.
1
BANCOS DE DADOS
1.1 CONCEITO E CARACTERÍSTICAS DE BANCO DE DADOS
Um sistema de banco de dados é uma forma de armazenar dados e gerir
informações para a posterior recuperação ou atualização dessas informações por
um usuário. Deve evitar perdas de dados por falhas no sistema, acessos não
autorizados e anomalias de dados (TANENBAUM, 2000).
Um sistema de banco de dados tem como principais componentes, além dos
dados, o hardware, o software e os usuários. Os dados devem ser integrados, ou
seja, deve permitir que diversos usuários possam acessar os mesmos dados. O
hardware é composto pelos sistemas de armazenamento secundários, como os
discos magnéticos e pelas unidades de execução, como os processadores e
memória principal. Os softwares, conhecidos como Sistemas de Gerenciamento de
Banco de Dados (SGBDs), são os responsáveis por atender às solicitações dos
usuários, prover segurança e gerenciamento das atividades. E por fim, os usuários
13
que são os principais interessados no banco (AGHAZARM; MIRANDA JUNIOR,
1993).
Existem três classes de usuários: os programadores, que são os
responsáveis pelo desenvolvimento das aplicações; os administradores de banco,
que são responsáveis pelo gerenciamento das informações e das aplicações,
procurando atender às necessidades dos usuários e os usuários finais. Os usuários
finais são as pessoas que terão acesso às informações do banco através de
terminais e estações de trabalho. Estes últimos estão alheios à implementação,
limitando-se apenas a consultar ou modificar o banco de dados de acordo com as
suas permissões.
O crescente interesse das empresas e do mercado mundial nas informações
tem determinado o surgimento de muitos estudos nesta área e com isso o
desenvolvimento de conceitos, técnicas e dos sistemas de banco de dados. Os
bancos de dados e os sistemas de banco de dados se tornaram componentes
essenciais no cotidiano da sociedade moderna.
Um banco de dados pode ser definido como um conjunto de dados
relacionados armazenados juntos, sem redundâncias nocivas ou desnecessárias,
que modela um sistema do mundo real e pode servir para diferentes aplicações
(CANTU, 2005)
Um banco de dados é criado e mantido por sistema gerenciador de banco de
dados. Um Sistema Gerenciador de Banco de Dados (SGDB) é uma coleção de
programas que permite aos usuários criar e manter um banco de dados. O SGDB é,
portanto, um sistema de software de propósito geral que facilita os processos de
definição, construção, manipulação e compartilhamento de banco de dados ente
vários usuários e aplicações (NAVATHE,2002). A definição de um banco de dados
14
implica especificar os tipos de dados, as estruturas e as restrições para os dados a
serem armazenados em um banco de dados.
Na abordagem utilizando um banco de dados, um único repositório de dados
é definido uma única vez, mantido e então acessado por vários usuários. As
principais características de abordagem de um banco de são:
•
Natureza auto-descritiva do sistema de banco de dados;
•
Isolamento entre os programas e os dados, e a abstração;
•
Independência de dados;
•
Suporte para as múltiplas visões dos dados; e
•
Compartilhamento de dados e processamento de transações de
multiusuários.
A independência de dados pode ser definida como a capacidade de mudar o
esquema em um nível do sistema de banco de dados sem que ocorram alterações
do esquema (descrição do banco de dados) no próximo nível mais alto.
Na figura 1 temos a definição de uma arquitetura para os sistemas de banco
de dados, chamada arquitetura de três-esquemas (também conhecida como
arquitetura ANSI/SPARC, segundo o comitê que a propôs (Tsichritzis e Klug 1978),
proposto para auxiliar a realização e visualização das três características
importantes de abordagem com uso de banco de dados: 1) Separação de
programas e dados (independência de dados e operação de programas); 2) Suporte
a múltiplas visões (views) de usuários e 3) Uso de catálogo para armazenar a
descrição de banco de dados (esquema).
15
FIGURA 1 - A arquitetura três-esquemas
Fonte: Tsichritzis e Klug (1978, p. 32)
O objetivo da arquitetura de três-esquemas (Figura 1) é separar o usuário de
aplicação do banco de dados físico. Nessa arquitetura, os esquemas podem ser
definidos por três níveis:
•
Esquema interno – Descreve a estrutura física de armazenamento do
BD, a organização de arquivos e os métodos de acesso;
•
Esquema conceitual – Descreve a estrutura do BD completo sob o
ponto de vista do usuário. Descrições de entidades, atributos,
relacionamentos,operações e restrições;
•
Esquema externo – também chamado de visões de usuário.
Nível Interno: O nível interno tem um esquema interno que descreve a estrutura de
armazenamento físico do banco de dados. Esse esquema utiliza um modelo de dado
físico e descreve os detalhes completos de armazenamento de dados e caminhos de
acesso ao banco de dados.
16
Nível Conceitual: Possui um esquema conceitual que descreve a estrutura de todo
o banco de dados para a comunidade de usuários. O esquema conceitual oculta os
detalhes das estruturas de armazenamento físico e se concentra na descrição de
entidades, tipos de dados, conexões, operações de usuários e restrições.
Geralmente, um modelo de dados representacional2 é usado para descrever o
esquema conceitual quando o sistema de banco de dados for implementado.
Nível Externo: O nível externo ou visão(view) abrange os esquemas externos ou
visões de usuários. Cada esquema externo descreve a parte do banco de dados que
um determinado grupo de usuários tem interesse e oculta o restante do banco de
dados representacional, possivelmente baseado em um projeto de esquema externo
em um modelo de dados de alto nível.
Um sistema de banco de dados consiste basicamente na manutenção de
registros por computador, ou seja, um sistema cujo principal objetivo é manter as
informações e torná-las disponíveis quando estas são solicitadas (CANTU, 2005).
Inicialmente se faz necessário esclarecer a utilização do banco de dados. Há
bastante tempo os bancos de dados deixaram de ser simples repositórios de
informações. Hoje, entre os principais produtos disponíveis do mercado, há uma
grande quantidade de serviços agregados a estes. Estruturas de dados cada vez
maiores e complexas estão sendo geridas e armazenadas pelos bancos de dados
para atender necessidades específicas, em especial a grande demanda da internet.
Usa-se banco de dados em função dos seguintes benefícios: é condensado,
uma vez que suprime grande quantidade de documentos; é veloz, pois pode
reconstruir e transformar as informações com maior rapidez do que o trabalho braçal
de uma pessoa; associa as informações e impede repetição, uma vez que o sistema
2
Características derivadas da forma como a informação é apresentada.
17
de banco de dados adequa ao usuário o domínio unificado de suas informações
operacionais. Torna-se diferenciado do que ocorre em organizações que não têm um
sistema automatizado, em que cada aplicação é responsável por seus próprios
arquivos de tal forma que as informações operacionais são muito espalhadas;
permite compartilhamento, uma vez que as informações podem ser divididas por
diferentes usuários em um só banco de dados; valida a entrada de dados com
advertência de segurança; e possui modelos bem estabelecidos, o que viabiliza a
troca de dados.
Em uma organização na qual muitas pessoas usam os mesmos recursos, há
a necessidade de um administrador-chefe para gerenciar esses recursos. No
ambiente de banco de dados, o principal recurso é o próprio banco de dados e, a
seguir, o SGBD e os softwares relacionados. Administrar esses recursos é
responsabilidade do administrador de banco de dados – database administrator
(DBA).
As principais responsabilidades do DBA incluem a decisão do conteúdo do
banco de dados e da estrutura de armazenamento, a estratégia de acesso e
recuperação, monitoramento do desempenho, além de ter que garantir a segurança
e a integridade dos dados (RAMALHO, 2002).
Uma característica fundamental dos bancos de dados é que eles provêm um
nível de abstração dos dados, escondendo detalhes de armazenamento dos dados
que não são necessários para a maioria dos usuários de banco de dados. O modelo
de dados é a ferramenta principal utilizada para garantir esta abstração.
Um modelo de dados é um conjunto de conceitos que se usa para descrever
a estrutura do banco de dados e certas restrições que o banco deve garantir.
18
Existem três conjuntos de modelos de dados, o conceitual (expõe a
composição dos dados de forma abstrata sem se incomodar com a prática), o físico
(apresenta formas físicas de implantação) e o de implementação (um grupo com
peculiaridades dos dois primeiros). Neste trabalho, três modelos de informação são
abordados: o modelo entidade relacionamento (conceitual), o modelo orientado a
objetos (implementação) e o modelo relacional (implementação) (RAMALHO, 2002).
Em qualquer modelo de informações é necessário diferenciar a definição do
banco de dados, do banco de dados propriamente dito. A descrição de um banco de
dados é denominada de projeto de banco de dados. O modelo de dados é o critério
básico empregado para se qualificar os SGBDs. O mais habitual é o relacional, mas
alguns SGBDs modernos são fundamentados em modelos guiados por objetos.
1.2 O MODELO RELACIONAL
1.2.1 Conceitos
No modelo relacional a representação dos dados é feita através de tabelas, cada
uma delas com sua própria denominação. Estas tabelas se relacionam através de
um elemento comum, chamada de chave primária, que atenda às restrições
impostas pelo próprio modelo, garantindo a integridade dos dados.
A tabela é considerada uma relação, as linhas da tabela serão chamadas de
tuplas e as colunas de atributos. O número total de atributos da tabela será chamado
de grau, enquanto que o número de tuplas será a cardinalidade. O conjunto de
valores válidos para um determinado atributo é chamado de domínio (TANENBAUM,
2000).
19
Os blocos básicos do modelo relacional são o domínio, ou tipo de dado. Uma
tupla é um conjunto de atributos que são ordenados em pares de domínio e valor.
Uma relvar (variável relacional) é um conjunto de pares ordenados de domínio e
nome que serve como um cabeçalho para uma relação. Uma relação é um conjunto
desordenado de tuplas. Apesar destes conceitos matemáticos, eles correspondem
basicamente aos conceitos tradicionais dos bancos de dados. Uma relação é similar
ao conceito de tabela e uma tupla é similar ao conceito de linha (Figura 2).
FIGURA 2 - Representação de uma Tupla em uma tabela de dados
O princípio básico do modelo relacional é o princípio da informação: toda informação
é representada por valores em relações. Assim, as relvars não são relacionadas
umas às outras no momento do projeto. Entretanto, os projetistas utilizam o mesmo
domínio em vários relvars, e se um atributo é dependente de outro, esta
dependência é garantida através da integridade referencial (DANTAS, 2002).
Os sistemas de gerenciamento de banco de dados evoluíram dos modelos
hierárquicos para os modelos de rede e relacionais. O modelo de dados mais aceito
é o relacional. O Oracle o estende para um modelo objeto-relacional, o qual
possibilita o armazenamento de modelos complexos de negócios em um banco de
dados relacional.
20
1.2.2 Restrições do modelo relacional
- Regras de Integridade
O termo integridade de dados refere-se ao formato como os dados são
armazenados, ou seja, duas entradas inconsistentes podem gerar arquivos com
falha na integridade. Cabe ao administrador do banco de dados implementar
restrições de integridade que devem ser verificadas sempre que houver uma
alteração no banco de dados ou tentar impedir a inserção de dados inconsistentes.
Como exemplo pode-se citar o caso em que um indivíduo coloca caracteres
de texto em um campo numérico (TANENBAUM, 2000).
As restrições de integridade consistem em tentar impedir que o usuário entre
com dados com formatos diferentes do que o campo exige e garante que as
mudanças feitas no banco de dados por alguns usuários não violem as regras, que
devem ser informadas ao SGBD.
- Visões
Consiste em uma forma que o SGBD utiliza para gerar uma tabela virtual com
resultados oriundos de outras tabelas fisicamente existentes no banco de dados. Isto
significa que se pode restringir o acesso a um determinado usuário para que ele não
possa enxergar dados que não façam parte do seu trabalho.
As visões são muito úteis como uma forma de segurança, não deixando
usuários acessarem informações sem permissão; permite que usuários com
diferentes permissões vejam uma mesma informação de forma diferente e, também,
são úteis para simplificar consultas em um banco de dados (TANENBAUM, 2000).
21
De acordo com Dantas (2002), o modelo relacional apresenta as seguintes
restrições:
- Restrições de Domínio. Especifica que o valor de cada atributo A deve ser
um valor atômico do domínio dom(A).
- Restrições de chave. Por definição, todos os elementos de um conjunto
são distintos. Consequentemente, todas as tuplas em uma relação devem também
ser distintas. Isto significa que não deve existir duas tuplas com a mesma
combinação de valores para todos os atributos. Usualmente, existem outros
subconjuntos de atributos com a mesma propriedade acima, que são chamados
super-chave, que especifica a restrição de ser único. Toda a relação tem, no mínimo,
uma super-chave que é a junção de todos os atributos. Uma super-chave pode ter,
entretanto, atributos redundantes (ou seja não necessários para serem únicos). Um
conceito mais útil é o de chave, que é uma super-chave com a propriedade de que
se eliminarmos qualquer atributo leva a um conjunto de atributos que não mais é
uma super-chave. A restrição de ser única é para todo o estado da relação no
esquema, ou seja, deve ser atingida mesmo quando novas tuplas são inseridas na
relação. Se uma relação tem mais de uma chave, estas são chamadas chaves
candidatas. Uma das chaves candidatas é designada chave primária.
- Restrição de nulo. Pode ser especificado se valor nulo pode ou não ser
permitido.
- Restrição de Integridade Referencial. A restrição de integridade
referencial envolve duas relações distintas, ou dois atributos distintos de uma
relação. Por exemplo, supondo um relacionamento entre duas entidades
“Estudantes” e “Cursos”, onde estudantes estão ligados a um curso, podemos supor
que haja na relação dos estudantes um atributo contendo o código do seu curso. A
22
restrição de integridade referencial define que este atributo “código do curso” deve
corresponder ao valor da chave primária que identifica o curso realizado pelo
estudante, ou caso não esteja ligado a um curso, este valor seja nulo. Não é
possível este atributo conter algum valor diferente dos que estão na chave primária
da relação dos cursos
1.3 PADRÃO SQL
Com o aumento na utilização de banco de dados nas mais diversas aplicações, um
padrão para manipulação das informações de um banco de dados foi necessário.
Desta forma o primeiro padrão de linguagem a surgir foi a SQL (Structured Query
Language) em 1986 (CANTU, 2005).
Definido pela ANSI (American National Standards Institute) este primeiro
padrão ficou conhecido como SQL-86. Após algumas melhorias realizadas, um novo
padrão foi adotado sendo chamado então de SQL-89. Já em 1992 o modelo foi
definido. Este novo modelo ficou conhecido como SQL-92.
Estas mudanças foram finalizadas em 1999 (SQL-99) com alterações
significativas e uma delas relacionada com a definição de padrões para banco de
dados Objeto-Relacionais.
Independente do software ser livre ou proprietário, este mesmo padrão deve
ser mantido. Isto quer dizer que um usuário que trabalha, por exemplo, no MySQL
não terá grandes dificuldades ao se deparar com um Oracle. O que os difere é a
forma de lidar com as informações, a maneira em que as informações serão
tratadas, gerenciamento, garantia de integridade diferentes, etc, ou seja, uns mais
complexos e outros mais simples (CANTU, 2005).
23
De acordo com Garcia-Molina et al (2001), SQL é o acrônimo3 de Structured
Query Language, uma linguagem que apareceu para acessar bancos de dados de
forma simples, baseado nos conceitos do modelo Relacional propostos pelo Dr.
Codd em 1970. Esta linguagem vem tendo grande aceitação na comunidade, e essa
aceitação cresce cada vez mais graças ao bem sucedido esforço de padronização e
à evolução dos produtos de banco de dados e ambientes de desenvolvimento na
busca de soluções para Sistemas Abertos e arquiteturas Cliente servidor.
A adoção do padrão SQL por um banco de dados é um indicativo de que o
usuário poderá, com facilidade, implementar soluções personalizadas em diversos
bancos de dados. O SQL seria apenas este indicador.
3
Um acrônimo ou sigla é um agrupamento das letras iniciais de várias palavras. Os acrônimos são
especialmente úteis nas telecomunicações, uma vez que permitem condensar várias palavras em
poucas letras, poupando largura de banda e, em alguns casos dinheiro.
2
FATORES DETERMINANTES NA ESCOLHA DE UM BANCO
DE DADOS
Segundo Cantu (2005) constituem-se fatores determinantes para a escolha de um
adequado banco de dados as seguintes variáveis:
− Controle de redundância: o banco de dados deve ser capaz de
garantir que os dados não tenham duplicidade. Desta forma, não seria
possível incluir dois registros com o mesmo código (integridade de
entidade). Também não seria possível excluir um registro que tivesse
relacionamento com outras tabelas (integridade referencial). Esta
integridade é a base do modelo relacional, portanto é necessário que o
banco de dados tenha a capacidade de gerenciar o controle de
redundância.
− Compartilhamento de dados: a informação deve estar disponível
para qualquer número de usuários de maneira rápida, concomitante e
segura. É impensável, nos dias atuais, imaginar um banco de dados
exclusivo para um usuário. A informação, cada vez mais, deve ser
compartilhada por diversas pessoas da empresa. Disponibilizar a
25
informação com rapidez e segurança é requisito fundamental para
determinar a escolha do banco de dados.
− Controle de acesso: é essencial saber quem fez e o que cada usuário
pode fazer dentro do banco de dados. Disponibilizar a informação não é o
suficiente. Deve haver controle sobre o que é disponibilizado. Deve-se
analisar as possibilidades de controle de acesso às tabelas e colunas do
banco de dados e às operações que cada usuário pode realizar (inclusão,
alteração, consulta ou exclusão).
− Cópias de Segurança (back-up): deve haver rotinas específicas para
realizar cópias de segurança dos dados armazenados.
− Suporte às Transações: as transações são originadas em qualquer
operação que seja feita nos dados armazenados. Realizar o controle
sobre essas transações, garantindo a integridade das informações
armazenadas mesmo quando há diversos usuários realizando operações
ao mesmo tempo, é uma necessidade cada vez mais importante para os
bancos de dados. Há diversos níveis para o controle de transações. O
mínimo necessário para os dias atuais é o bloqueio por linha, ou seja,
cada alteração bloqueará apenas uma linha no banco de dados. Com
isso, há uma maior disponibilidade da informação armazenada visto que
poucas
linhas
estarão
efetivamente
bloqueadas
por
transações
pendentes.
− Suporte à programação: mesmo para quem utiliza arquitetura de
desenvolvimento em três ou mais camadas, algumas operações
continuam sendo mais rápidas se forem realizadas diretamente no banco
de dados. Com isso, o banco de dados deve possuir uma linguagem de
26
programação que permita realizar rotinas específicas diretamente sobre
ele. Além disso, muitas regras de negócio são implementadas diretamente
no banco de dados. Por exemplo, realizar o pedido de compra toda vez
que o estoque do produto chegar ao nível mínimo ou bloquear a venda,
caso o cliente esteja comprando além do seu limite de crédito.
− Recuperação: falhas acontecem. Um bom backup pode resolver boa
parte dos problemas. Mecanismos de backup on-line e em diversos
servidores e clusters, entre outros, são ferramentas importantes quando
um problema acontece.
− Desempenho: de nada adianta ter um banco de dados completo se
este for lento para as necessidades da empresa. O desempenho do
banco de dados muitas vezes pode ser melhorado com técnicas de
tunning (ajuste) realizadas diretamente no banco. Convém ter certeza de
que o banco de dados permite realizar estes ajustes, se eles podem ser
realizados e em qual escala.
− Escalabilidade: é necessário saber os limites do banco de dados.
Convém, principalmente para os bancos de dados livres, considerar o
tamanho máximo do banco de dados e o número máximo de linhas em
cada tabela. Conhecer casos de sucesso é fundamental para determinar
se o banco de dados está dentro da necessidade da empresa.
2.1 O SISTEMA DE BANCOS DE DADOS VERSUS SOFTWARE LIVRE
Segundo Garcia-Molina et al (2001), a partir da ampliação na procura de soluções
computacionais cada vez mais constantes e a procura de aplicações com menor
27
gasto de implantação, o software livre vem conseguindo em pouco espaço de tempo
novos partidários que se estendem desde novos desenvolvedores até organizações
de grande porte que os usam como servidores ou terminais desktop. Sistemas
operacionais Open Source (código aberto) se encontram em etapa ascendente e o
mais conhecido lançamento tem sido o Linux. Acoplado aos sistemas Open Source,
várias aplicações de iguais características aparecem para as mais diferentes
demandas e entre estas, aparecem os banco de dados livres, concepções maduras
e muito bem desenvolvidas que sustentam a forte propriedade de softwares estáveis
e seguros.
Os sistemas de banco de dados estão disponíveis em máquinas que
abrangem desde os micros portáteis, os desejáveis e cobiçados notebook´s, até os
computadores
de
grande
porte,
os
famosos
mainframes.
Os
recursos
proporcionados por um determinado sistema são, até certo ponto, definidos pelo
tamanho e pela potência da máquina servidora. Os sistemas em máquinas de médio
a grande porte tendem a ser multi-usuário, já nas de pequeno porte a ter usuário
único, ou seja, mono-usuário. Um sistema mono-usuário é aquele no qual somente
um único indivíduo pode operar num determinado momento; já os sistemas multiusuários são aqueles em que diversas pessoas podem operar simultaneamente.
Porém para o nosso contexto esta diferença é praticamente irrelevante, já que um
dos principais objetivos da maioria dos sistemas multi-usuários, e aqui se
enquadram os principais Banco de Dados, é permitir que cada usuário comporte-se
como se estivesse trabalhando com um sistema mono-usuário. Os problemas
especiais dos sistemas de usuários múltiplos são essencialmente internos do
sistema, não visíveis ao usuário (CANTU, 2005).
28
É evidente que o software livre veio para ficar. Os produtos que existem no
mercado estão evidenciando isso. Com a conseqüente maturidade que um projeto
deste alcança com o tempo, unido a um grupo de pessoas de fato obcecadas pela
qualidade do produto, fica sempre mais evidente que as organizações que vivem de
venda de banco de dados têm que passar a se preocupar (LAMAS, 2004).
2.2 TIPOS DE LICENÇA DE SOFTWARE
O termo software livre, algumas vezes também chamado de livre distribuição, é
usado para designar o software que pode ser livremente copiado e que possui
código fonte disponível para quem quiser vê-lo e alterá-lo (LAMAS, 2004).
Inicialmente é necessário esclarecer os conceitos. É muito comum a confusão
entre os termos software livre e software gratuito. Quando se aborda sobre software
livre ou comercial, pode-se dar a entender que livre e comercial são definições
opostas, como claro e escuro, mas, como se pode observar isto não é verdade.
A palavra software livre, segundo o GNU Project tem ligação com a definição
de liberdade e não gratuidade. Segundo o GNU, tem-se a liberdade de executar,
copiar, distribuir, estudar, modificar e melhorar qualquer componente de software
livre. É, por conseguinte, um pré-requisito o pleno acesso a seu código-fonte
(ANDERSON, 2004).
Por acepção, é consentido difundir um determinado software livre para
qualquer pessoa ou organização sem a necessidade de autorização, seja de forma
gratuita ou recebendo algum pagamento em troca. Pode-se então estabelecer uma
aplicação específica fundamentada em um software livre e depois comercializar esta
aplicação. O software livre é também uma oportunidade de negócio. Um exemplo
29
clássico disto é o Linux, que, quando comercializado, pode chegar a 2.500 dólares a
licença (LAMAS, 2004).
É importante também dizer que, embora o software livre possa ser distribuído
comercialmente por muitos, sempre se poderá encontrá-lo de forma gratuita, pois
esta é sua forma original.
Acontece que os distribuidores comerciais de software livre agregam valor ao
software, seja pelo empacotamento, seja pelas ferramentas e funcionalidades que
agregam ao código original, seja pelos serviços que oferecem, como instalação,
suporte, treinamento e outros. Dessa forma, ainda que esteja disponível uma versão
gratuita, dependendo do tipo de usuário e do uso que se dê ao software, o custo
total de propriedade (TCO) será menor se contar com o apoio de uma organização
especializada que vai garantir, dentre outros, a qualidade, a robustez e a
disponibilidade deste software (ANDERSON, 2004).
Como exemplos podem ser citados os softwares de categoria geoespacial.
Existe uma grande excitação em torno do software livre e a cada dia surgem novas
alternativas para os usuários. Há desde aplicações batch para conversão de
formatos, passando por bibliotecas, plataformas de desenvolvimento, sistemas de
navegação por GPS, servidores de web, ferramentas de análise, até bancos de
dados espaciais (LAMAS, 2004).
A mais recente novidade é a fundação da OSGeo (Open Source Geospatial
Foundation), iniciativa capitaneada pela Autodesk e em parceria com outros
importantes atores do mundo open source, aberta à participação de todos, inclusive
de outros fabricantes de software comercial. Esta organização, sem fins lucrativos,
tem como missão o suporte ao desenvolvimento de software geoespacial e a
promoção de seu amplo uso. A OSGeo conta hoje com diversos projetos, dentre os
30
quais o Autodesk MapGuide OpenSource, o MapServer, GDAL/OGR, GeoTools,
GRASS, Mapbender, MapBuilder e OSSIM, todos eles com download gratuito
(ANDERSON, 2004).
Existem várias tipos de licença de software. Dentre elas podem ser citadas
(LAMAS, 2004):
− A Licença Pública Geral GNU (GNU General Public License GPL) é a
licença que acompanha os pacotes distribuídos pelo Projeto GNU, e mais
uma grande variedade de software, incluindo o núcleo do sistema
operacional Linux. A formulação da GPL é tal que ao invés de limitar a
distribuição do software por ela protegido, ela de fato impede que este
software seja integrado em software proprietário. A GPL é baseada na
legislação internacional de copyright, o que deve garantir cobertura legal
para o software licenciado com a GPL.
− A licença Debian é elemento do contrato social realizado entre a Debian e
o grupo de usuários de software livre, e é denominada de Debian Free
Software Guidelines (DFSG). Em particular, esta licença apresenta além
da exigência da publicação do código fonte, critérios para a distribuição.
Estes critérios são: (a) a redistribuição deve ser livre; (b) o código fonte
deve ser incluído e deve poder ser redistribuído; (c) trabalhos derivados
devem poder ser redistribuídos sob a mesma licença do original; (d) pode
haver restrições quanto a redistribuição do código fonte, se o original foi
modificado; (e) a licença não pode discriminar contra qualquer pessoa ou
grupo de pessoas, nem quanto a formas de utilização do software; (f) os
direitos outorgados não podem depender da distribuição onde o software
se encontra; e (g) a licença não pode contagiar outro software.
31
− A licença do Open Source Initiative é emanada da Licença Debian, com
as alusões à Debian removidas.
− A licença BSD cobre as distribuições de software da Berkeley Software
Distribution, além de outros programas. Esta é uma licença considerada
'permissiva' porque impõe poucas restrições sobre a forma de uso,
alterações e redistribuição do software licenciado. O software pode ser
vendido e não há obrigações quanto a inclusão do código fonte, podendo o
mesmo ser incluído em software proprietário. Esta licença garante o
crédito aos autores do software mas não tenta garantir que trabalhos
derivados permanecem como software livre.
− O Consórcio X distribui o X Window System sob uma licença que o faz
software livre, mas não adere ao copyleft. Existem distribuições sob a
licença da X.org que são software livre, e outras distribuições não o são.
Existem algumas versões não-livres do sistema de janelas X11 para
estações de trabalho e certos dispositivos do IBM-PC que são as únicas
funcionais disponíveis, sem similares distribuídos como software livre.
− Software em Domínio Público Software em domínio público é software
sem copyright. Alguns tipos de cópia, ou versões modificadas, livres
porque o autor permite que restrições adicionais sejam impostas na
redistribuição do original ou de trabalhos derivados.
− O Software semi-livre é software que não é livre, mas é concedida a
permissão para que indivíduos o usem, copiem, distribuam e modifiquem,
incluindo a distribuição de versões modificadas, desde que o façam sem o
propósito de auferir lucros. Exemplos de software semi-livre são as
32
primeiras versões do Internet Explorer da Microsoft, algumas versões dos
browsers da Netscape, e o StarOffice.
− Shareware é uma modalidade de distribuição e comercialização de
software, onde o software pode ser livremente copiado, mas ele funciona
em um modo de demonstração por determinado período de tempo. O
usuário deve então, após esse período de tempo, comprar o software e ao
fazer isso adquirir uma chave (normalmente um número serial) que
desbloqueia as funções não disponíveis no modo demonstração.
− Software proprietário é aquele cuja cópia, redistribuição ou modificação
são em alguma medida proibidos pelo seu proprietário. Para usar, copiar
ou redistribuir, deve-se solicitar permissão ao proprietário, ou pagar para
poder fazê-lo.
− Software comercial é o software desenvolvido por uma empresa com o
objetivo de lucrar com sua utilização. É necessário observar que comercial
e proprietário não são o mesmo. A maioria do software comercial é
proprietário, mas existe software livre que é comercial, e existe software
não-livre não-comercial.
É muito importante deixar claro que projetos Open Source e Software livre
não são grátis, ou seja, para tudo há um preço, pois assim como existem
engenheiros que cobram ao desenvolver projetos, programadores também precisam
sobreviver de alguma forma, afinal todos tem contas a pagar. Software Livre
siginifica que se tem toda a liberdade de utilizar aquele produto da maneira que bem
entender, podendo até fazer alterações no programa que ache necessário e até
mesmo redistribuí-lo novamente cobrando ou não uma taxa para isso (ANDERSON,
2004).
3
BANCOS DE DADOS GRATUITOS
Dentro do universo dos sistemas de bancos de dados existem os pagos (Oracle,
SQL Server, DB2 e outros) e os gratuitos (MySQL, PostGreSQL, FireBird e outros).
O SQL Server, da Microsoft é considerado por muitos um SGDB para empresas de
pequeno a médio porte, já o Oracle é o banco de dados mais adquirido, e o DB2 da
IBM o mais utilizado por instituições financeiras (CANTU, 2005).
A seguir são realizadas algumas abordagens apresentadas por Ramalho
(2002), a respeito dos bancos de dados gratuitos.
3.1 MYSQL
Seguindo o padrão SQL-99, o MySQL é o software mais popular quando o assunto é
banco de dados livres. Este está sendo o banco de dados mais adquirido do mundo,
com 30 mil downloads diários e 5 milhões de instalações (entre websites,
datawarehouse, aplicações comerciais, etc). O MySQL é um banco de dados voltado
34
para aplicações de missão crítica de alto volume de dados. Sendo utilizado em 40%
(segundo estatísticas dos portais Slashdot.com e Linux.com) de todos os sites
publicados atualmente, Yahoo!finance, MP3.com, Motorola, NASA, Silicon Graphics
e Texas Instruments confiam e utilizam banco de dados MySQL. Sua aquisição pode
ser feita através do site oficial para aplicações sob licença GPL (General Public
Licence). Está disponível não somente para sistemas operacionais Open Source
(Linux, FreeBSD, MAC OS, etc) mas também para softwares proprietários (Microsoft
Windows). Para aplicações não GPL uma pequena taxa poderá ser cobrada, porém
não há limite de usuários, upgrades e processadores (ANDERSON, 2004).
Na época da criação deste sistema, um dos objetivos era que ele rodasse em
Linux, embora existam hoje versões para diversos Sistemas Operacionais, o que
acabou popularizando o sistema em 1999, quando Linus Torvalds e o Movimento
Open Source deslanchou no mercado mundial.
O resultado disso foi que hoje, o MySQL, considerado o banco de dados mais
rápido do mercado, e tornou-se uma alternativa barata e viável para uma grande
parte do mercado corporativo e on-line.
Desenvolvido pela empresa MySQL AB, o MySQL ainda possui: suporte,
treinamento e consultoria oficial no Brasil, suporte à integridade referencial,
transações e views, ferramentas gráficas de administração e extração de dados,
atualizações constantes através de equipe própria, suporte a cluster, stored
procedure e subselects (MySQL, 2005).
O MySQL é considerado o banco de dados mais rápido. Agilidade tem sido
um ponto bastante relevante em matéria de sistemas, principalmente para a Internet.
E para que os sonhos de muitos programadores se realizem, a equipe de
desenvolvimento do MySQL tem se mostrado bastante calcada no que diz respeito à
35
performance. Isso significa que a cada dia que passa o SGBD mais rápido do
mercado tende a ficar mais ágil e eficaz, dando conta do recado ao qual foi
designado.
Outro ponto forte e decisivo em um banco de dados é a sua segurança. Com
seus diversos tipos de tabelas, característica exclusiva do MySQL, é possível ter um
banco de dados bastante seguro e estável contando com integridade referencial,
backup e restore, controle de usuários e acessos, e ainda, se necessário, verificação
e correção de corrompimento de tabelas.
O MySQL não é usado somente para aplicações internet, podendo ser
utilizado como banco de dados desktop, ou seja, em aplicações corporativas;
também dá suporte a diversas linguagens de programação incluindo o Delphi da
empresa Borland e o Java da Sun. Ambos podem acessar o MySQL através dos
drivers MySQL ODBC e MySQL JDBC, respectivamente. Os drivers estão
disponíveis para download no site do produto.
O MySQL é gratuito. Outras grandes vantagens devem ser citadas como a
velocidade de operação que pode ser comparada com os grandes nomes de banco
de dados proprietários. Mesmo com um longo caminho para se igualar aos grandes
softwares proprietários existentes, o MySQL é conhecido mundialmente, garantindo
assim seu inevitável sucesso no futuro (MySQL, 2005).
Apresentava como principal desvantagem a falta de suporte a stored
procedures e triggers em versões anteriores a 5.0. Pode ser visto como deficiência a
falta de integridade referencial em todos os seus tipos de tabelas.
36
3.2 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 (ANDERSON, 2004).
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).
Suas principais características são: 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.
37
O PostgreSQL é o SGBD mais avançado. Também compatível com o padrão
SQL-99, existe uma similaridade muito grande entre este e o Oracle, uma vez que
ambos são objeto-relacional. Outra comparação a ser feita é a similaridade na
linguagem para programação no PostgreSQL e o Oracle (PL/SQL). Sem custo
algum, sua aquisição pode ser realizada no site oficial para os sistemas operacionais
Linux ou Microsoft Windows (OLIVEIRA, 2005).
Uma desvantagem do PostgreSql era não ter uma versão nativa para a
plataforma Windows, precisava de uma camada de emulação, lançada apenas a
partir da versão 8.0. Outra é não ter suporte a envio de e-mails integrado ao banco.
3.3 FIREBIRD
O FireBird é um produto Open Source que oferece uma excelente solução como
sistema gerenciador de bancos de dados de alta performance. A origem do FireBird
é a versão Open Source do Interbase® 6.0 de julho de 2000, quando a Borland
liberou os fontes de seu produto. O FireBird atualmente é totalmente independente
do InterBase®. O desenvolvimento é realizado em C e C++ para várias plataformas
entre elas Windows, Linux, Hp-UX, FreeBSD e outros. Utiliza-se do padrão ANSI
SQL-92 para prover a manipulação dos bancos de dados e algumas funções que
complementam tal padrão (ANDERSON, 2004).
Além disso, o FireBird oferece excelente controle de concorrência de acesso,
alta performance, e uma poderosa linguagem com suporte a stored procedures e
triggers de bancos.
38
O Firebird é um banco de dados relacional que oferece muitas características
do ANSI SQL-92 que funcione em Linux, em Windows, e em uma variedade de
plataformas de Unix. Oferece a simultaneidade excelente, desempenho elevado, e a
sustentação poderosa da língua para procedimentos e disparadores armazenados.
(ANDERSON, 2004).
O Firebird suporta integridade referencial, junções, visões, funções definidas
pelo usuário e, principalmente, a programação cliente/servidor através de
procedimentos armazenados e gatilhos. Este banco de dados, dispensa maiores
estruturas dentro da empresa ( DBA / Preparação ), onde basta instalar o software e
usá-lo, sem a interferência freqüente de profissionais, especializados na manutenção
do banco de dados de produção. É extremamente bem apropriado, por embutir
dentro de aplicações distribuídas. Acompanhando isso tudo, ele ainda dispensa o
uso de superservidores, usando pouco espaço em disco para sua instalação e
utilizando pouca memória em situações normais de uso. Por isso a plataforma
necessária para a sua instalação e utilização pode ser reduzida diminuindo
consideravelmente os custos do projeto
As empresas detentoras de softwares proprietários avaliam que os bancos de
dados livres estão muito aquém dos seus produtos. O fato não parece ser bem este.
Dependendo da precisão pode-se usar um banco de dados livre sem ausência de
qualidade para a organização. Se a saída for uma aplicação departamental, a alternativa
do software livre é ainda mais adequada. Várias organizações estão escolhendo por
instalar versões destes bancos de dados em saídas periféricas aos sistemas
fundamentais para poder testá-los e, em caso de êxito, migrar totalmente para a nova
base.
39
Uma limitação do Firebird é não trazer nenhuma interface de administração,
porém essa carência é facilmente contornável: no site oficial, http://www.firebirdsql.org,
diversos programas estão disponíveis que possibilitam realizar essas operações. Outra é
não ter “point in time recovery”, recuperação do banco em caso de falhas, prometido para
a próxima versão.
4
NOVA VISÃO DAS EMPRESAS QUE COMERCIALIZAM
BANCO DE DADOS
Diante do crescente progresso do desempenho e da credibilidade dos bancos de
dados gratuitos, as três maiores empresas do mercado: Oracle, IBM e Microsoft já
estão disponibilizando versões de seus aplicativos, ainda que com grandes
limitações, também gratuitos (INFO, 2006-2).
Dentre as três maiores fabricantes de bancos de dados do mundo, a IBM foi a
última anunciar a versão gratuita do seu SGDB. A Microsoft foi a primeira, lançando
o SQL Server Express, e a Oracle veio logo em seguida com o Database 10g
Express. Todos com restrição ao tamanho máximo da base de dados, número de
processadores e ao gerenciamento de memória RAM(Random Access Memory).
Com a crescente popularidade do banco de dados multi-plataforma MySQL,
os maiores fabricantes de sistemas de bancos de dados se
voltaram para as
demandas apresentadas pelas pequenas empresas, que atualmente apresentam
necessidades mais simples e futuramente podem ser transformadas em clientes das
versões pagas do produtos usados.
41
O Oracle 10g Express Edition tem esse público como seu objetivo. O software
é adquirido sem ônus, e contém os principais recursos das versões comerciais do
banco de dados Oracle, mas, em contrapartida, apresenta limitação de tamanho da
base de dados (até 4 GB) e do hardware utilizado. O gerenciador de bancos de
dados utiliza somente um processador e no máximo 1 GB de RAM, mesmo que o
micro apresente mais memória (INFO, 2006).
O DB2 Express-C é um passo significativo no compromisso da IBM em
potenciar e suportar o contínuo crescimento da comunidade de programadores e de
organizações que utilizam o DB2. Para tal, a IBM surge com uma versão sem
custos, tornando assim mais fácil a criação e a disponibilização de aplicações e de
soluções que assegurem os diferentes requisitos de gestão de informação.
A nova versão disponibiliza as mesmas capacidades do servidor de DB2
clássico num pacote mais reduzido e especificamente desenhado para ser utilizado
no desenvolvimento de software, disponibilização, redistribuição e integração nas
respectivas aplicações.
O DB2 Express-C suporta os sistemas operativos Windows e Linux em
arquiteturas de processadores 32-bit e 64-bit. Alguns dos distribuidores de software
Linux anunciaram já que passarão a incluir o DB2 Express-C nas suas distribuições
futuras.
Este software pode ser instalado em todos os sistemas AMD ou Intel x86 até
a um máximo de dois processadores core ou em alternativa dois chips dual core.
Não existe limite quanto à dimensão da base de dados. A memória suportada não
ultrapassa os 4GB.
O DB2 Express-C permite grande flexibilidade quanto a ambientes de
desenvolvimento.
42
Adicionalmente, as empresas podem facilmente proceder ao upgrade para
qualquer uma das edições do DB2 Universal Database que suportam servidores ou
clusters de grandes dimensões.
Programadores que usem uma ampla variedade de ambientes de
desenvolvimento podem utilizar recursos como o developerWorks e alphaWorks
para obterem acesso gratuito ao apoio da comunidade IBM de recursos tecnológicos
e às tecnologias emergentes a partir dos laboratórios de investigação e
desenvolvimento da IBM. As ferramentas e aplicações desenvolvidas com o DB2
Express-C são diretamente aplicáveis à família DB2.
4.1 CARACTERÍSTICAS DO ORACLE EXPRESS
A licença do Oracle Express é bastante aberta: é possível, sem pagar nada, distribuir
e implantar o programa, além de utilizá-lo para desenvolvimento de software. Nos
testes de INFO (2005), realizados com o sistema operacional SUSE Linux 10.0, o
Oracle Express Edition operou bem, sendo instalado rapidamente num micro com
processador Pentium 4 de 2,4 GHz e 512 MB de memória RAM.
A instalação é bastante simples. Toda a administração do banco de dados é
realizada pelo browser, o que também promove o acesso remoto para quem quer
deixar o servidor separado. A interconexão através da web permite criar usuários,
manusear objetos do banco de dados, realizar comandos na linguagem SQL, além
de importar e exportar dados. Um componente interessante é o Query Builder, que
estabelece consultas arrastando e soltando campos das tabelas (INFO, 2006).
Apesar de ser relativamente simples, a interconexão web funciona bem,
originando soluções satisfatórias para a concepção e conservação de bancos de
43
dados. Ainda apresenta uma ferramenta para passar um banco de dados do Oracle
Express para o Oracle 10g pago.
Uma grande prerrogativa do Oracle Express em relação ao MySQL se
encontra no suporte ao PL/SQL, a variante turbinada do SQL realizada pela Oracle.
Com ela, é possível adicionar mais funcionalidade em stored procedures, ou rotinas
arquivadas, o que pode atenuar a necessidade de manutenção futura dos
programas que empreguem o banco de dados.
Outro benefício do Express é a eficácia do banco de dados, que apresenta a
base do respeitado Oracle 10g. Para quem vai desenvolver software, a versão
Express apresenta o mesmo suporte a linguagens de programação do Oracle 10g,
integrando-se com Java, C++, PHP, com os principais dialetos da tecnologia Net
(como C# e VB.NET), entre outros (MUTO, 2006).
Com relação ao suporte do Oracle Express, ele é fornecido pelos próprios
usuários, que auxiliam uns aos outros em um grupo de discussão intercedido por
profissionais da empresa. Ao baixar o Oracle 10g Express Edition, é possível
cadastrar-se nesse grupo automaticamente.
A Oracle se preocupou muito em estabelecer uma interface gráfica de simples
emprego, principalmente para os que estão iniciando a utilização da tecnologia
Oracle. Nesta variante, foram agrupados programas peculiares totalmente gráficos,
para ajudar na utilização da ferramenta. De acordo com Muto (2006), são
características do Oracle Express:
− gerenciamento do banco de dados feito totalmente pelo browser;
− permite a criação de novos logins de acesso ao banco, assim como
permite a definição das permissões de acesso para cada tabela,
44
indicando quais usuários podem acessar, apagar, modificar e criar
novos registros no banco de dados;
− serve como portal de acesso às outras funções, contando com links
para acessar diretamente a comunidade do Oracle Express;
− apresenta controle direto (alteração, remoção, criação e outras) sobre
tabelas,
consultas
gravadas,
stored
procedures,
entre
outros
elementos;
− inclui ferramentas para importar dados de planilhas e arquivos XML,
assim como migrar os dados para o Oracle 10g;
− traz atalhos para executar comandos e o Query Builder, para montar
consultas arrastando e soltando campos.
4.2 CARACTERÍSTICAS DA DB2 EXPRESS-C
Depois da Microsoft e da Oracle, foi a vez da IBM apresentar uma versão gratuita de
seu banco de dados, o DB2 Express-C. Como as demais edições expressas dos
concorrentes, a do DB2 tem limitações, suporta até 4 GB de memória RAM, mas
possui peculiaridades que admitem sua utilização em aplicações comerciais e
sensíveis de um pequeno negócio. Apresenta os benefícios de suportar tanto a
plataforma Windows quanto a Linux, não restringir o tamanho do banco de dados e
rodar em máquinas com até dois processadores, enquanto as edições gratuitas do
SQL Server e do Oracle só admitem um (INFO, 2006-2).
Apesar da limitação de hardware, o software está autorizado para qualquer
número de conexões simultâneas, ou tamanho do banco de dados, e pode ser
45
empregado comercialmente, ou até mesmo incluído em pacotes de softwares, como
distribuições gratuitas ou pagas do sistema operacional Linux, como exemplo.
O DB2 Express-C apresenta menos recursos do que a sua variante paga,
DB2 Express, compreendendo as ferramentas DB2 Warehouse Manager, Informix e
DB2 Connect (MUTO, 2006).
Anteriormente, a IBM também divulgou o código do Cloudscape, um pequeno
servidor Java que teve seu desenvolvimento transferido à Apache Software
Foundation, que o renomeou para Derby (DATE, 2006).
Para o final do ano, a companhia deseja também aplicar atualizações
tecnológicas ao DB2 Express-C, ao mesmo tempo em que as versões pagas
auferirão novos recursos. O banco de dados gratuito está disponível para download.
A técnica de instalação do DB2 Express-C é rápida, mas completar o
download pela web pode ser difícil. O arquivo tem mais de 450 MB e, mesmo numa
boa conexão, irá demorar bastante para baixar. Conhecer os pré-requisitos e as
notas nos menus do instalador é necessário para impedir dificuldades durante e
depois da instalação. Por exemplo, no Windows XP, só dá para instalar o produto na
versão Professional.
No momento da instalação, o DB2 Express-C coloca em ação as alternativas
Java indispensáveis. Permite testar imediatamente seu funcionamento, criando ou
carregando os bancos de dados de exemplo que o acompanham. Uma série de
caixas de diálogo e janelas de confirmação recomenda o que fazer a cada passo da
instalação em bom português.
A atualização para versões mais recentes fica a um clique de distância no
próprio instalador. Basta acionar o botão Atualizar Versão para o programa verificar
qual é a versão em uso e executar o upgrade. Acessando o item Visualizar
46
Introdução, o usuário encontra tutoriais e informações particularizadas sobre o
produto e outros assuntos de interesse, como a migração indolor de versões
anteriores. Os outros primeiros passos disponíveis, criar banco de dados e acessar
exemplos, abrem o Centro de Controle (INFO, 2006-2).
O Centro de Controle é o ponto de partida de todas as operações, controles e
administração das bases de dados criadas no DB2 Express-C. Como pode haver
mais de uma instância operando na mesma máquina, o Centro de Controle domina
todas elas. O utilitário é rico em funcionalidade para criar e modificar tabelas,
executar consultas (queries) e análises complexas, monitorar o status dos bancos de
dados e importar e exportar dados (INFO, 2006-2).
Os usuários contam com uma interface bastante simplificada para utilizar,
parecida com a dos sistemas operacionais Windows e Linux. Essa estratégia de
padronização segue a da concorrente Oracle, que utiliza os navegadores de internet
para manter interface semelhante em todas as plataformas que suporta (DATE,
2006).
No Windows, a Central de Controle pode ser aberta via menu Iniciar ou
clicando-se com o botão direito do mouse no ícone do DB2 na bandeja do sistema.
Uma janela com uma lista similar à do Explorer, contendo banco de dados e seus
objetos, é mostrada ao abrir o programa.
A quantidade de utilitários disponíveis no DB2 Express-C impressiona.
Existem programas para monitoramento de memória e de aplicativos, um Centro de
Tarefas em que podem ser programadas tarefas características para a execução em
lote e ser feita a configuração do sistema. Para ajudar o administrador ou o
programador, funções como criar ou alterar banco de dados, fazer backup e
recuperar informações são controladas por assistentes.
47
Conseguir um bom desempenho das aplicações com banco de dados é
considerado essencial para a realização satisfatória das consultas. Na tentativa de
se aproximar do ótimo, o DB2 Express-C apresenta ferramentas, em sua grande
parte gráfica, para garantir que as aplicações não sejam lesadas pela má utilização
dos recursos. São diversas as ferramentas disponíveis: db2batch, que constata o
desempenho das consultas em tempo real; Visual Explain, que avalia graficamente
as consultas; Design Advisor, que recomenda a colocação de indicadores em
tabelas para restringir o tempo de acesso fundamentado nas consultas executadas,
e, finalmente, o Activity Monitor, que produz relatórios do desempenho dos sistemas
para avaliação.
O DB2 Express-C inclui os drivers e a interconexão necessários para o
incremento de aplicações nas linguagens C/C++, Java e .Net, além de PHP e Perl.
Suporta linguagens no servidor para a ampliação de procedimentos armazenados
(stored procedures), gatilhos (triggers) e funções. Esses elementos de base de
dados podem ser escritos em C/C++, Cobol, Java (JDBC e SQLJ), .Net (qualquer
linguagem suportada pelo compilador CLR) e SQL PL (Procedure Language). A SQL
PL é considerada nativa e fica conservada no banco de dados como objeto DB2,
reconhecida como padrão ANSI SQL.
Uma
ferramenta
gerenciamento,
gráfica,
desenvolvimento,
o
Centro
teste
e
de
Desenvolvimento,
implantação
de
permite
o
procedimentos
armazenados. A integração e o desenvolvimento de aplicações Java são pontos
fortes do produto. Os mais conhecidos drivers acompanham o pacote. O Websphere
Studio, da IBM, pode ser usado no desenvolvimento de aplicações com o DB2
Express-C, da mesma forma que o Visual Studio 2003, da Microsoft. Um driver de
48
acesso compatível com o ambiente de desenvolvimento 1.1 está disponível dentro
do produto (DATE, 2006).
A documentação não é tão completa como deveria, mas o usuário consegue
as informações, em inglês, no site da IBM. No conjunto da obra, o DB2 Express-C é
um banco de dados que vale a pena experimentar.
4.3 CARACTERÍSTICAS DO SQL SERVER 2005 EXPRESS EDITION
Este possui distintivos não presentes no MSDE como um potente e simplificado
setup GUI, suporte a CLR, ferramentas gráficas e conexão com o Visual Studio. No
entanto, algumas peculiaridades foram retiradas do SQL Server Express como,
suporte a DTS4, replication publishing e SQL Agent. A limitação de conexões
concorrentes do MSDE foi removida e ao invés disso o SQL Server Express usa as
limitações de CPU, RAM e banco de dados para se diferenciar das outras edições.
Em princípio é necessário esclarecer que o SQL Server 2005 Express Edition
(SQL Server Express) não é o SQL Server 2005, propriamente dito. O SQL Server
Express é uma plataforma de banco de dados fundamentada nas tecnologias do
SQL Server 2005 e chega para suprir o MSDE 20005. Ele é um produto gratuito e
apresenta características de rede e segurança que o distinguem das demais edições
do SQL Server 2005.
Este exemplar do SQL Server Express tem como grande compromisso uma
elevada facilidade de emprego com um processo de instalação simples e robusto e
com uma ferramenta gráfica (SQL Express Manager), que permitirá desempenhar a
administração do servidor de uma maneira fácil e prática. Esta ferramenta gráfica
4
O Microsoft SQL Server possui entre suas ferramentas o DTS (Data Transformation Services) , que
pode ser utilizado para transferir dados de SQL.
5
Versão gratuita e limitada do SQL Server 2000 para rodar com o Traffic Control.
49
ainda está em desenvolvimento e será disponibilizada como um download gratuito
no site da Microsoft.
O SQL Server Express foi desenvolvido tendo como finalidade dois empregos
básicos: a primeira, como um servidor de produtos, especialmente como um Web
Server ou Database Server. O segundo, como um cliente stand-alone6, onde a
aplicação não necessite depender de uma rede para conseguir ingresso aos dados.
O SQL Server Express utiliza o mesmo engine que as demais edições do
SQL Server 2005, mas por ser uma edição mais leve, possui algumas barreira. O
engine suporta 1CPU, 1GB RAM e banco de dados com até 4GB. Uma alteração
significativa em relação ao MSDE 2000 é que o engine do SQL Express não possui
a limitação de usuários concorrentes, conhecida como Concurrent Workload
Governor onde o desempenho do MSDE 2000 é extremamente prejudicado na
medida em que as conexões concorrentes de usuários aumentam.
O
SQL
Server
Express
até
pode
ser
instalado
em
máquinas
multiprocessadas, mas somente 1 CPU será reconhecida pelo engine. Como
resultado, peculiaridades como execução de consultas em paralelo não é suportado
pelo SQL Server Express (MUTO, 2006).
O limite de 1GB RAM é somente para o buffer pool. O buffer pool é utilizado
para o armazenamento de páginas de dados e outras informações. A memória
necessária para o gerenciamento de conexões, locks e outros não estão incluídos
neste limite de 1GB. Sendo assim, o SQL Express pode ser instalado normalmente
em máquinas com mais de 1GB, mas ele nunca usará mais que 1GB para o buffer
pool. AWE ou /3GB não é suportado.
6
Sem conexão com o mundo exterior.
50
O limite de 4GB para o banco de dados é aplicado somente para o arquivo de
dados. Entretanto, não existe limite para o número de banco de dados que se pode
colocar no servidor.
O SQL Server Express admite instalação side-by-side com outras variantes
do SQL Server, podendo conviver na mesma máquina junto com instalações do SQL
Server 2000, SQL Server 2005 ou MSDE 2000. A instalação Side-by-Side trabalha
com o sistema de Instâncias Múltiplas, onde se mantém a instalação já existente e
se adiciona uma nova instância da última versão existente. Uma instalação Side-bySide permite um processo de migração menos traumático e com a possibilidade de
testes, sem alterar no sistema que já está em funcionamento. Admite um número
máximo de 50 instâncias na mesma máquina desde que cada instância seja
unicamente identificada, ou seja, pode-se desempenhar até 50 instalações do SQL
Express desde que cada instância tenha um nome distinto. Por padrão o SQL Server
Express é instalado com uma named instance chamada SQLEXPRESS.
Distinto do MSDE 2000 que não possui ferramenta gráfica, o SQL Server
Express possuirá uma ferramenta gráfica chamada SQL Server Express Manager
(XM). Está, ainda, em fase de desenvolvimento, permitindo uma simples
administração dos bancos de dados e será difundida separadamente em forma de
download (DATE, 2006).
O XM suportará conexões para SQL Server Express e outras montagens do
SQL Server 2005, SQL Server 2000 e MSDE 2000. Uma janela de conexão
conduzirá o usuário por meio da escolha de uma instância e o método de
autenticação a ser usado, tolerando conexões locais ou remotas. Diversas
funcionalidades de gerenciamento de banco de dados estarão disponíveis por meio
do menu de contexto (botão direito) e wizards. Entre elas pode-se citar, criar e
51
modificar banco de dados, tabelas, usuários e logins. O Query Editor do XM aceitará
o desenvolvimento e execução de instruções T-SQL e scripts.
Algumas das ferramentas inclusas no SQL Server Express são o SQL
Computer Manager, SQL Command e o utilitário BCP. O SQL Computer Manager
substitui os atuais Service Manager, Client Network Utilities e Server Network
Utilities, ele é usado para iniciar ou parar os serviços do SQL Server e para capacitar
e descapacitar os protocolos de rede. O SQL Command (sqlcmd.exe) é uma variante
OLE DB do osql.exe, ele não somente tenta conservar as funcionalidades do OSQL
como também apresenta suporte aos novos tipos de dados do SQL Server 2005.
SQL Computer Manager e SQL Command são os mesmos em todas as edições do
SQL Server 2005.
Apesar de o usuário poder habilitar o suporte a protocolos como TCP/IP e
Named Pipes, por regra o SQL Server Express é instalado somente com suporte a
shared memory. Isto faz com que por padrão o SQL Server Express opere apenas
localmente na máquina onde foi alojado e não suporte vinculações de clientes em
uma rede. Para suportar conexões de clientes distantes, é indispensável habilitar o
suporte a rede no SQL Server Express. Para habilitar o suporte à rede, tem-se as
seguintes alternativas: empregar o SQL Computer Manager para habilitar os
protocolos indispensáveis (normalmente TCP/IP) e dar início ao serviço SQL
Browser; utilizar a parâmetro DISABLENETWORKPROTOCOLS=0 na linha de
comando no ato da instalação.
O SQL Browser é um serviço inédito do SQL Server 2005 que agrupa as
portas que as named instances estão utilizando. Este serviço vem desativado por
padrão e deve ser ativado para que a comunicação entre um cliente distante e um
servidor SQL Server Express opere perfeitamente. O SQL Server Express suporta a
52
maior parte das funcionalidades do SQL Server 2005. O SQL Express Edition é o
sucessor do MSDE e está fundamentado nas peculiaridades do SQL Server 2005.
4.4 TENDÊNCIAS
Dentre as tendências emergentes nesta conjuntura está o armazenamento em
memória. Um padrão de armazenamento em memória é o Prevayler. Lançado
independentemente por um grupo de brasileiros, essa ferramenta incide em um
repositório de objetos com desempenho de acesso bastante superior aos bancos de
dados tradicionais, notadamente pela propriedade de conservar os objetos em
memória no servidor de aplicações. Essa tecnologia ainda tem limitações,
especialmente atreladas à recuperação dos dados em caso de falha e aumento da
necessidade de memória.
Existem, e são bem acolhidos no mercado atual, os sistemas de banco de
dados objeto-relacionais. Estes podem ser observados como uma tentativa de
estender aos sistemas de banco de dados relacionais, algumas funcionalidades dos
bancos de dados orientados a objetos, que se fazem necessárias para oferecer
suporte a uma categoria mais ampla de aplicações e, de certa maneira, prover uma
ligação entre esses modelos.
Além dos sistemas gerenciadores de banco de dados objeto-relacionais,
como Oracle (2006), e PostgreSQL (2006), já bastante disseminados no mercado,
outra intenção são as interconexões objeto-relacionais que incidem em uma
abstração do modelo relacional para uma categoria que provê interconexão de
banco de dados orientado a objetos para uma aplicação e pode ser explicada por
ferramentas como o Hibernate. Essa tecnologia permite que as aplicações
53
apresentem os dados de maneira transparente em quaisquer tipos de bancos,
inclusive arquivos texto, cuidando de toda a complexidade inerente à tarefa. Para a
aplicação é como se existisse um banco de dados orientado a objeto servindo de
repositório.
As novas arquiteturas orientadas a serviço, como a SOA (Service Oriented
Architecture), também estão compelindo os desenvolvedores a produzirem sistemas
com um emprego cada vez maior de componentes e, conseqüentemente, com menor
vinculação. Por essa razão, as bases de dados relacionais, onde até o momento os
dados são persistidos, deixam de atender a esse tipo de solicitação, tornando as bases
de dados orientadas a objetos uma alternativa mais atraente para uma escala ainda
maior de aplicações (HEUSER, 2005).
Com isso, a probabilidade do aparecimento de novas tecnologias ligadas ao
modelo da orientação a objeto, que tenham como incumbência auxiliar na
constância dos dados de cada um dos objetos tende a crescer nos próximos anos.
Os bancos de dados orientados a objetos nasceram como uma alternativa
revolucionária para os bancos de dados relacionais. Diversos benefícios são
oferecidos por esses sistemas de bancos de dados, como o armazenamento direto
de tipos de dados complexos e a representação dos dados e das operações de um
objeto. Além disso, um único modelo (orientação a objeto) é empregado em diversas
fases do desenvolvimento de um sistema, durante a apreciação, a partir da
modelagem dos dados e no transcorrer da codificação (DATE, 2006).
Apesar de toda a variedade de ferramentas disponíveis no mercado, o uso da
tecnologia de banco de dados orientado a objetos continua bastante pequeno,
quando confrontada ao modelo relacional. Alguns dos motivos para a parca adoção
dos bancos de dados orientados a objetos estão ligados à cultura empresarial: em
54
função do tempo necessário e custos envolvidos, muitos vacilam na migração para
um banco de dados orientado a objetos.
A ausência de familiaridade com um SGBDOO, em comparação com um
SGBD relacional, o medo de adotar uma nova tecnologia, o tamanho do domínio da
aplicação/empresa a modelar, o tamanho reduzido das equipes de desenvolvimento
e o pouco conhecimento em orientação a objetos também são fatores que
influenciam na adoção do novo paradigma.
Além disso, nos primeiros SGBDOOs a confiabilidade, o desempenho e a
disponibilidade eram bastante deficientes, principalmente devido à falta de
investimento em ferramentas de gerenciamento. Essas ferramentas não suportavam
SQL (Structured Query Language), a linguagem de consultas padrão dos sistemas
de bancos de dados (SILBERSCHATZ, KORTH, H, SUDARSHAN, 2006).
Outro motivo é a incompatibilidade entre as implementações existentes.
Segundo Heuser (2005), existem variações significantes nas capacidades de
modelagem das ferramentas existentes. Por exemplo, em alguns SGBDOOs, os
relacionamentos são suportados por meio de declarações de alto nível, permitindo a
definição de propriedades mantidas pelo próprio desenvolvedor. Em outros, o
desenvolvedor deve programar a semântica das relações explicitamente.
Processos comumente efetuados em um banco de dados relacional, como
otimização, migração e restauração de dados, ainda carecem de amadurecimento
no paradigma orientado a objetos, haja vista que esses processos delegarem grande
parte do trabalho a um nível mais alto, obrigando a aplicação a se responsabilizar
por algumas tarefas que deveriam ser controladas pelo SGBD.
Ainda, tal qual no modelo relacional, existe a necessidade de constantes
ajustes e monitoramentos do banco de dados a fim de melhorar o desempenho
55
(tuning). A diferença está na quantidade de metodologias e ferramentas de ajuste
existentes para cada um dos modelos.
Apesar das vantagens discriminadas, vê-se que existem grandes obstáculos a
serem superados, daí o domínio dos sistemas de bancos de dados relacionais no
mercado.
Atualmente, BDOO é bastante utilizado em mercados verticais, como
telecomunicações, finanças e saúde e mesmo assim, em um número reduzido de
aplicações. Contudo, sua utilização como repositório de dados multimídia ou de
outros tipos de dados complexos, tem potencial para elevar o nível de utilização
dessa tecnologia.
5
COMPARATIVOS E TESTES DE PERFORMANCE
(Benchmark)
Um benchmark é definido, segundo o dicionário Webster’s II, como sendo “um
padrão para medida ou avaliação”. Em ambientes computacionais, um benchmark é
tipicamente um software que realiza um conjunto restrito e pré-definido de operações
(uma carga de trabalho) e retorna um resultado em algum formato (uma métrica),
que descreve o comportamento do sistema. As métricas dos benchmarks
computacionais podem medir rapidez (em qual velocidade a carga de trabalho foi
completada) ou vazão (quantas cargas de trabalho por unidade de tempo foram
medidas). Ao executar o benchmark em múltiplos computadores, é possível realizar
comparações (GRAY, 1993, apud MUTO, 2006).
O benchmark AS3AP (TURBYFILL et al. 1992, apud HEUSER, 2006) possui
como características principais a amplitude na medição do desempenho das
principais funcionalidades de um banco de dados, e a variação de tipos de carga de
trabalho aplicados. O benchmark é dividido em módulos que podem ser executados
separadamente ou em conjunto. Cada módulo é responsável por testar uma certa
57
funcionalidade. Algumas organizações de interesse público, como universidades e
laboratórios de pesquisa, criaram implementações de código aberto do benchmark
AS3AP, como o Open Source Database Benchmark (OSDB 2001, apud GARCIAMOLINA et al, 2001), da Compaq Computer Corporation®.
Nossa proposta é apresentar um estudo comparativo entre os SGBD Firebird,
MySQL e PostgreSQL. O estudo consiste em analisar os resultados gerados para
orientar na decisão de uma futura adoção destes gerenciadores, demonstrando as
melhorias nas funcionalidades dos SGBD relacionadas com segurança e
desempenho. Além disso, Firebird, MySQL e PostgreSQL possuem as três maiores
comunidades de usuários de bancos de dados de código aberto.
Embora poucos trabalhos acadêmicos de criação de benchmarks tenham sido
publicados, sendo que o principal motivo é uma restrição imposta pela “cláusula
DeWitt” (Moran, 2003), que proíbe a realização de testes em bancos de dados
comerciais sem a prévia autorização do fabricante. Em virtude desta cláusula, foram
construídos vários benchmarks para comparar o desempenho de SGDB de código
aberto, o que leva muitas vezes os resultados a serem contraditórios e tendenciosos.
5.1 COMPARANDO FIREBIRD, MYSQL, POSTGRESQL7
Muitas aplicações necessitam de um banco de dados que possa ser embutido ou
que possibilite ser instalado no cliente e seja administrado pelo mesmo. Além disso,
a crescente volatilidade nos negócios exige soluções flexíveis onde mudanças não
impactem significativamente a infra-estrutura de TI. Há diversas soluções de
7
As considerações apresentadas neste subtítulo foram adaptadas do artigo Comparando Firebird,
MySQL,PostgreSQL e SQLite (SANTOS, 2007, In: SQL magazine, ano 4 – 41 ed. DevMedia,
2007).
58
armazenamento de dados disponíveis no mercado e as de código livre vêm ganhado
destaque devido ao número cada vez maior de recursos oferecidos.
Nesse tópico será apresentada uma comparação entre três bancos de código
livre de forma a ajudar na decisão por uma solução adequada às características do
projeto. Constituem-se de bancos de dados bastante conhecidos no mercado, e
apresentam-se como uma opção muito interessante para tipos específicos de
projetos. Para esta comparação, foram utilizadas as últimas versões disponíveis, no
momento da escrita, dos bancos Firebird 2.0, MySQL 5.0.26 e PostgreSQL 8.2.0.
Para os bancos a serem analisados é necessário que sejam definidos os
critérios de comparação objetivando avaliá-los sob a perspectiva apresentada.
Nesse sentido, a idéia é eleger as características mais importantes que se deve
observar considerando situações que ocorrem no dia-a-dia. Para este trabalho, os
critérios de comparação vão ser estabelecidos a partir de características que
envolvem: stored procedures, triggers, suporte a XML, cursor, velocidade de
recuperação, tipo de dados para moeda, domains, views atualizáveis, transação,
tipos de bloqueio, ferramentas, portabilidade.
A iniciativa surgiu a partir de um projeto real onde havia a restrição da escolha
de ferramentas e tecnologias gratuitas, mas não necessariamente de código livre. O
escopo do projeto envolve a construção de módulos diversos que apoiarão as
atividades administrativas de uma instituição que coordena projetos, pesquisa e
estudos tecnológicos. Trata-se de um tipo sistema de informação muito comum,
basicamente o processamento de transações (solicitações, protocolos, envio de
avisos etc.) e que será utilizado numa intranet via navegador web por cerca de 50
terminais. É importante ainda citar o volume de dados que deverá ser manipulado
59
pelo SGBD: a expectativa é de que os dados úteis, desconsiderando o histórico em
formato de backup, sejam mantidos em algo em torno de 5GB.
Nesse contexto, a iniciativa foi originada de uma situação real de projeto, pois
foram escolhidos segundo as necessidades. Entretanto, são relativamente gerais, já
que essencialmente contemplam funcionalidades próprias dos SGBDs, e podem
portanto, ser facilmente adaptados para diversos contextos e projetos. No total, doze
critérios foram definidos: suporte a stored procedures, triggers, cursores, XML,
domains, transações e views atualizáveis, a velocidade de recuperação do banco em
caso de falhas, se possui tipo de dados para moeda, os tipos de lock que podem ser
utilizados, ferramentas disponíveis e a portabilidade dos bancos.
A seguir os critérios serão fundamentados e os recursos de cada banco
expostos. Ao final serão feitas algumas considerações finais e será mostrado como
os critérios foram utilizados na situação do projeto citado acima.
- Stored procedures
Um procedimento armazenado é um procedimento semelhante ao de uma
linguagem de programação que é armazenada no banco. Existem diversas razões
para utilizá-los, dentre as mais importantes: são componentes de software, não
havendo necessidade de recriar toda a lógica para cada aplicação desenvolvida;
possui maior performance já que evitam o tráfego na rede e utilizam “cache” assim
como “prepared statments”; são portáveis pois rodam em todas as plataformas nas
quais o banco pode ser instalado.
SGBD
Firebird
MySQL
PostgreSQL
Status
TABELA 1 - Stored procedures.
Comentários
Apenas para tabelas InnoDB.
60
- Triggers
Um gatilho é uma ação que o banco deve executar automaticamente sempre que
certo tipo de operação for executado. Gatilhos são usados extensivamente em
bancos de dados, pois evitam que instruções sejam codificadas dentro das
aplicações sempre que certos eventos ocorrem em uma tabela para manter a
consistência dos dados. Como explicado anteriormente, gatilhos são usados
extensivamente em banco de dados e a Tabela 2 mostra exatamente isto: todos os
bancos analisados suportam este recurso.
SGBD
Firebird
Status
MySQL
PostgreSQL
Comentários
Possui “universal triggers” os quais permitem que
um gatilho atue em todos os eventos.
Apenas para tabelas InnoDB.
Permite também escrever gatilhos na linguagem
C.
TABELA 2 – Triggers.
- Suporte a XML
Existe uma necessidade crescente em se trabalhar com dados XML, já que esta é
uma linguagem largamente utilizada para troca de dados, definição de metadados
etc. Entretanto, as aplicações XML, precisam, muitas vezes, utilizar uma base já
instalada a qual é toda baseada na tecnologia relacional. Como permitir, então, o
acesso a estes dados?
Por se tratar de uma necessidade relativamente recente, o suporte a XML nos
bancos de código livre é incipiente. Isto é retratado na Tabela 3 onde apenas o
PostgreSQL oferece alguma facilidade. Atualmente, existe uma pesquisa intensa
nessa área e alguns bancos comerciais como o SQL Server já oferece diversos
recursos como o “Typed XML” que é, resumidamente, uma coluna de uma tabela
associada a um XML Schema para receber o XML ou ainda gerar um documento
XML a partir de dados relacionais pré-existente.
61
SGBD
Firebird
MySQL
Status
PostgreSQL
Comentários
Não tem
A versão beta (5.1) possui duas funções: uma
para consulta e outra para atualização de
fragmentos XML armazenados em um campo de
uma tabela.
Possui um módulo XML que permite aplicar
consultas em fragmentos XML armazenados em
uma coluna utilizando XPath.
TABELA 3 - Suporte a XML.
- Cursores
Em vez de executar uma consulta inteira de uma só vez, é possível configurar um
cursor que encapsula consulta e permite, então, ler o resultado em poucas linhas por
vez. Uma razão para a utilização dos cursores é evitar memory overrun quando um
resultado contém um número grande de linhas. Um uso mais interessante é retornar
uma referencia para um cursor que foi criado pela função, permitindo ao chamador
ler o resultado.
Existem diversos tipos de cursores e uma comparação entre eles foge ao
escopo deste artigo. Para a comparação é assumido que o banco permita, pelo
menos, o cursor forward, ou seja, aquele que permita a navegação pelo resultado
em um sentido só.
SGBD
Firebird
MySQL
PostgreSQL
Status
Comentários
TABELA 4 - Cursor
- Velocidade de recuperação
Como o próprio título indica, a velocidade de recuperação do banco é o tempo gasto
entre uma falha do banco e a volta ao estado normal de operação. A importância
desta característica normalmente está relacionada com a criticalidade do negócio no
qual o banco está sendo utilizado. Por exemplo, suponha que um comércio fique
62
impedido de emitir suas notas ficais por conta de uma falha no banco. Uma
funcionalidade fundamental neste contexto é a recuperação no tempo (“point-intime”). Nela o administrador tem a possibilidade de apontar no tempo um instante
para restaurar o banco.
Na Tabela 5, o recursos avaliado foi a recuperação no tempo e apenas o
MySQL e PostgreSQL o suportam. Vale lembrar que o backup clássico, é
armazenado em arquivo, é suportado por todos os bancos.
SGBD
Firebird
Status
MySQL
PostgreSQL
Comentários
O “point-in-time” está na lista de prioridades para as
próximas versões.
O logging binário deve estar habilitado (opção – log-bin no
console).
TABELA 5 - Velocidade de recuperação
- Tipo de dados para Moeda
Este é um item muitas vezes subestimado, mas pode causar grandes problemas quando
passa despercebido. Na falta de um tipo especifico para moeda, muitos desenvolvedores
utilizam “float” ou “real” especificando sua precisão (número de casas decimais).
Entretanto, dependendo da implementação, a precisão apenas determina o tamanho
para armazenamento e isto significa que os números poderão ser arredondados segundo
regras aritméticas. Mesmo que o arredondamento seja de somente um centavo, os
danos podem ser desastrosos para cem mil vendas, por exemplo.
Como dito, definir um tipo de dados para moeda é um recurso importante.
Pode-se perceber na Tabela 6 que a maioria dos bancos suporta este tipo de dados.
SGBD
Firebird
MySQL
Status
PostgreSQL
Comentários
Tipo MONEY.
Deve-se utilizar o tipo de dados DECIMAL ou
NUMERIC.
O tipo MONEY está obsoleto, deve-se utilizar os
mesmo tipos do MySQL.
TABELA 6 - Tipo de dados para Moeda.
63
- Domains
Um domains é uma definição de uma coluna customizada, isto é, feita de acordo
com certas particularidades estabelecidas pelo usuário que é então armazenada
pelo banco e posteriormente aplicada na criação de tabelas. Assim, sempre que for
criada uma coluna em uma tabela, em vez de ficar lembrando as características do
campo, pode-se incluí-las por intermédio do respectivo domain previamente criado.
Explicando melhor: em várias tabelas é comum, por exemplo, o campo (coluna)
NOME (80 caracteres) ou o campo (coluna) TELEFONE (9999-9999 – 8 caracteres
sem a formatação), serem do mesmo tipo e tamanho. Em sistemas grandes, com
muitas tabelas, existe o risco de que estes campos recebam formatações diferentes
já que os sistemas estão quase sempre evoluindo ao longo do tempo. Assim, a fim
de facilitar a uniformização dos dados, é possível definir um “domain” e sempre que
um determinado tipo de dados for necessário, por exemplo, TELEFONE, aplicam-se
as características deste tipo à nova coluna do mesmo tipo através do “domain”
definido. Este recurso é suportado apenas pelo Firebird e PostgreSQL como visto na
SGBD
Firebird
MySQL
PostgreSQL
Status
Comentários
Tabela 7 - Domains.
- Views atualizáveis
Uma view é uma tabela virtual, uma tabela resultante de uma consulta efetuada
sobre uma ou mais tabelas. As views suprem varias funções. Podem, por exemplo:
substituir consultas longas e complexas por algo mais fácil de ser entendido e
manipulado; funcionar como elemento de segurança, a partir do momento em que
conseguem limitar o acesso dos usuários a determinados grupos de informações
armazenadas em um banco de dados. Se puderem ser atualizadas, as views
64
adicionam flexibilidade e facilitam a tarefa árdua do mapeamento objeto-relacional.
Atualmente, nenhum banco suporta esta funcionalidade, mas o PostgreSQL oferece
mecanismos que a emula conforme pode ser visto na Tabela 8.
SGBD
Firebird
MySQL
Status
PostgreSQL
Comentários
Apenas view´s de tabela única, não será considerado
Segundo o manual, esta funcionalidade e suportada,
entretanto seu uso é extremamente limitado e, portanto,
não será considerada suportada.
Devem ser criadas regras (ver documentação CREATE
RULE) que permitirão que ações alternativas (no caso,
emular uma “view” atualizável) sejam tomadas para
inserção, atualização e exclusão.
TABELA 8 - Views atualizáveis.
- Transação
Transação é um conceito fundamental em banco de dados é indispensável para a
manutenção da integridade dos dados, já que representa um conjunto de ações que
no todo devem ser realizadas com sucesso em uma ou mais tabelas do banco antes
que estas ações sejam gravadas de forma permanente. Existe ainda a possibilidade,
em alguns casos, da criação de marcos (“savepoints”) os quais funcionam como
“sub-transações”.
SGBD
Firebird
MySQL
PostgreSQL
Status
Comentários
Incluindo “savepoints”.
Incluindo “savepoints”.
Incluindo “savepoints”.
TABELA 9 - Transação.
- Tipos de bloqueio
Um bloqueio – traduzido do inglês “lock” – em banco de dados impede que duas
transações simultâneas acessem o mesmo recurso ou dado ao mesmo tempo.
Dependendo do banco, esta restrição de acesso simultâneo pode ter diferentes
“granularidades”, indo desde um bloqueio de uma tabela inteira (“table-level”) até
65
apenas uma linha (“row-level”); o bloqueio pode ainda ser de dois tipos: leitura e
escrita.
Todos os bancos devem ter algum tipo de mecanismo de bloqueio, afinal os
bancos são normalmente utilizados por vários clientes simultaneamente. A Tabela
10 contém comentários sobre os tipos de bloqueio suportados pelos bancos.
SGBD
Firebird
MySQL
PostgreSQL
Comentários
Utiliza o “optimistic locking”. Resumidamente, permite que todos
possam ler do banco e escrever sem utilizar explicitamente um
bloqueio. Isto permite isolar a leitura da escrita, ou seja, um não
afeta o outro. No entanto, certos eventos, como uma escrita,
podem gerar uma situação de conflito ou colisão –
diferentemente do bloqueio de linha ou tabela – onde ocorrendo,
a transação deve ser repetida até obter sucesso.
Usa bloqueio de tabela para tabelas MyISAM e MEMORY e
bloqueio de linha para tabelas InnoDB.
Utiliza o mesmo recurso o Firebird, porém quando o “optimistic
locking” não fornece o comportamento desejado pode-se utilizar
explicitamente o bloqueio de tabela ou de linha.
TABELA 10 - Bloqueio
- Ferramentas
Bancos de dados possuem uma ampla coleção de ferramentas de suporte que vão
desde a modelagem até a administração. Existem muitas empresas e projetos de
código livre que se dedicam exclusivamente a este tipo de ferramenta, que muitas
vezes são compatíveis com diversos bancos.
Estas ferramentas são importantes, pois auxiliam em varias fases do
desenvolvimento de sistemas como analise e projeto, construção e implantação. Na
Tabela 11 são listadas algumas das ferramentas de código livre para cada banco. A
listagem não é exaustiva, mas contém as mais citadas em listas de discussão e as
destacadas nos sites dos projetos. Algumas são mantidas pelos próprios
desenvolvedores dos bancos enquanto outras são projetos independentes. Apenas
ferramentas gráficas standalone são consideradas, bibliotecas para desenvolvimento
66
de aplicações foram desconsideradas. É importante destacar ainda que todos os
bancos apresentam administração via console.
O Firebird, apesar de possuir vários instrumentos como contribuições
independentes ao projeto, não possui nenhum instrumento oficial. MySQL possui o
maior grupo de ferramentas, destacando-se as quatro ferramentas (para migração,
modelagem, administração e desenvolvimento) conservadas pela própria MySQL
AB. O PostgreSQL, apesar da sua popularidade, não possui muitas opções de
código livre.
SGBD
Firebird
MySQL
PostgreSQL
Comentários
• ibWebAdmin; ferramenta para administração via Web; editor
SQL, visualização de tabelas, gatilhos, domains e outros.
• Ibutils: permite modelagem da base de dados, ainda em
versão beta.
• MITec Performance Monitor: possibilita a monitoração dos
recursos utilizados pelo banco.
• MySQL Migration Toolkit: permite a migração de diversos
bancos para o MySQL.
• MySQL WorkBench: ferramenta de modelagem recentemente
adquirida pelo MySQL AB, era conhecida como DBDesigner.
• MySQL, Administrator: ferramenta para gerenciamento de
usuários, monitoramento de recursos, recuperação de falhas,
etc.
• MySQL Query Browser: para criar e executar consultas em
SQL e explorar tabelas e consultas anteriores.
• phpMyAdmin: ferramenta com interface Web que permite a
execução de consultas, navegação nas tabelas, gerenciar
chaves e privilégios e exportação/importação de dados.
• pgAdmin: é a plataforma de administração e desenvolvimento
para o PostgreSQL, desenvolvido pela comunidade do projeto.
Auxiliar na utilização de todas as características do banco;
consulta SQL, privilégios, domains, roles entre muitas outras.
• phpPgAdmin: contém a maioria das funcionalidades do
pgAdmin.
Tabela 11 - Ferramentas
- Portabilidade
Este é um item de extrema importância, pois grande parte das empresas já possui
sua infra-estrutura de TI desenvolvida e é preciso, então, que o banco aproveite as
67
condições destas infra-estruturas. Além disso, é oportuno que o banco siga as
alterações ou atualizações dos recursos de TI aceitando transições suaves.
De maneira geral, como visto na Tabela 12, todos os bancos operam no
Windows, Linux e Mac OS e ainda suportam diversas versões do Unix. Para aqueles
que possuem instalações do NetWare, existe a opção de utilizar o MySQL.
SGBD
Comentários
Firebird
HP-UX, Linux, Mac OS, Solaris e Windows.
MySQL
Linux, NetWare, UNIX (BSD, Mac OS X, Solaris e outros) e
Windows.
PostgreSQL
Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris,
Tru64) e Windows.
Tabela 12 – Portabilidade
5.1.1 Análise de Desempenho (Benchmark)
Não existe um formato certo na decisão de quais tecnologias devem ser utilizadas, já
que muitos fatores particulares de cada projeto estão envolvidos. Assim, pretende-se
proporcionar uma visão mais precisa sobre o que há disponível no mundo do código
livre de forma a possibilitar uma escolha mais objetiva e explícita.
Diante das características do projeto apresentado, era necessário um banco
que pudesse trabalhar com moeda e que gerenciasse adequadamente acessos
concorrentes (o que está relacionado com os tipos de bloqueio). Assim, segundo
estas necessidades, os três servem como opções. Pode-se contestar e dizer que
apenas o Firebird e o PostgreSQL são soluções mais adequadas já que utilizam o
optimistic locking como tipo de bloqueio. Entretanto, no contexto do projeto, existe a
expectativa de um número relativamente baixo de acessos simultâneos de forma
que isso não representa uma real vantagem nesse caso.
68
Existe mais um problema a ser resolvido: o banco dever ser mantido pelos
próprios técnicos do cliente do projeto os quais não têm muita experiência neste tipo
de atividade. É essencial, portanto, se fazer uso de um conjunto de ferramentas para
que estes técnicos possam administrar e manter o banco. Além disso, em caso de
falhas, o mecanismo point-in-time facilitando o trabalho destes profissionais; restam
então, duas opções: o MySQL e o PostgreSQL.
A escolha do MySQL deve ser a correta em razão da necessidade, pela
equipe de desenvolvimento, da utilização de uma ferramenta de modelagem, e
dentre as opções que restam apenas o MySQL tem tal ferramenta.
5.2 COMPARATIVO DE PERFORMANCE ENTRE BANCO DE PROPRIETÁRIOS E
GRATUITOS
Segundo artigo da MySQL® Technical White Paper, de março de 2005, onde foi
divulgado comparativos de performance entre vários SGDB´s, dentre eles o MySql,
consta o realizado pela eweek.com. Foram mostrados alguns resultados do
benchmark, dentre eles, algumas comparações feitas com relação a performance.
Os testes foram realizados numa maquina HP NetServer LT6000 com 4
processadores Xeon de 700MHz, 2GB de RAM e disco Ultra3 SCSI, um modelo de
disco rígido de alta performance, de 249.1 GB, para armazenar o banco de dados.
Estes resultados (Figura 3) fornecem uma comparação relativa do MySQL,
comparando sua execução de encontro a outras bases de dados, e também a
escalabilidade do MySQL com CPUs adicionais.
69
FIGURA 3 – Gráfico comparativo de performance entre SGDB´s Pagos e Mysql
5.3 ANÁLISE DE CUSTOS NA AQUISIÇÃO DE LICENÇAS DE BANCOS
PROPRIETÁRIOS
1. Licenciamento por Usuário
DB2
Item
Qtde
1.1
10
1.2
1
1.3
1
Descrição
Valor
Total (R$)
IBM DB2 Universal Database Express Edition User
License + Atualização do Software e Suporte
IBM DB2 Universal Database Express Edition Server Install License +
Atualização do Software e Suporte
Media Pack
Total do grupo:
4.730,61
1.789,03
71,68
6.591,32
ORACLE
Descrição
Item
Qtde
1.4
1.5
10
1
Oracle Database 10G Standard Edition One
Oracle Database Standard Edition One - Suporte
1.6
1
Media Pack
Total do grupo:
Valor
Total (R$)
4.365,86
933,89
277,11
5.576,86
SQLSERVER
Item
Qtde
1.7
1.8
1
10
Descrição
SQL Sever Standard Edition 2005 Win32 English OLP NL
SQL CAL 2005 Win32 English OLP NL Device CAL
Total do grupo:
Valor
Total (R$)
2.350,10
4.289,30
6.639,40
70
2. Licenciamento por Processador
DB2
Item
Qtde
2.1
1
2.2
1
Descrição
Valor Total
(R$)
IBM DB2 Universal Database Express Edition User
License + Atualização do Software e Suporte
Media Pack
Total do grupo:
13.973,93
71,68
14.045,61
ORACLE
Descrição
Item
Qtde
2.3
1
Oracle Database 10G Standard Edition One
2.4
2.5
1
1
Oracle Database Standard Edition One - Suporte
Media Pack
Total do grupo:
Valor Total
(R$)
14.647,34
3.130,58
277,11
18.055,03
SQLSERVER
Item
Qtde
1.7
1
Descrição
SQL Sever Standard Edition 2005 Win32 English OLP NL
Total do grupo:
Valor Total
(R$)
15.235,95
15.235,95
A partir dos demonstrativos acima, montados através de propostas de
comercialização apresentadas por empresas fornecedoras de software, verifica-se
que se a escolha for posicionada em cima do valor dos custos de licença por
usuário, o Oracle seria a melhor opção com valor de R$5.576,86 para dez usuários.
Optando-se pela licença por processador o DB2 seria a opção mais viável com um
valor total de R$14.045,61.
6
CONCLUSÃO
Neste trabalho foi realizada uma comparação entre os bancos de código livre
Firebird 2.0, MySQL 5.0.26 e PostgreSQL 8.2.0. Uma situação de um projeto real foi
apresentada de maneira a dar um contexto prático de como esta avaliação pode
auxiliar na escolha de um banco. Ao todo, doze critérios foram definidos os quais
permitiram uma visão ampla das principais características.
O Firebird possui várias funcionalidades interessantes já que é um banco com
uma longa história, e também se destaca pela facilidade de configuração e
manutenção, sendo um banco com grande autonomia.
O MySQL e o PostgreSQL, são os bancos mais utilizados e como se pode
ver, possuem muitas facilidade para o dia-a-dia. Além disso, por serem os mais
populares, desfrutam de uma grande gama de ferramentas desenvolvidas por
terceiros e suporte especializado. Atualmente, ao que tudo indica ambos estão
convergindo em termos de recursos. Enquanto o MySQL busca aumentar o seu
conjunto de funcionalidades, o que era uma grande necessidade, o PostgreSQL
72
busca aumentar sua performance: a nova versão 8.2.0 tem como um dos destaques
o aumento de 20% em performance segundo seus desenvolvedores.
Consideravelmente estáveis e seguros, robustos e eficientes, com alguns
anos no mercado além do custo zero na aquisição de suas licenças. Esta é a tônica
atual dos SGBD's livres, principalmente dos três aqui apresentados e que nada
deixam a desejar para os grandes SGDB´s proprietários, quer na facilidade de
utilização e gerenciamento ou termos de performance.
Mas certamente a migração de uma base para outra não é tarefa trivial e que
exige conhecimento dos cenários de uso, testes e adaptações. Porém, exemplos
nacionais de sucesso podem ser vistos, por exemplo, no Metrô de São Paulo e
também no Detran do Paraná, grandes consumidores de espaço em disco para
armazenamento de informações. Se ainda não satisfeito, companhias como Apple,
Fujitsu, Cisco, Dow Jones, Suzuki, Siemens, também utilizam e não pensam em
voltar atrás. Então é inegável que o software livre veio para ficar também em banco
de dados. Os produtos que existem no mercado estão provando isso. Com a natural
maturidade que um projeto deste consegue com o tempo, aliado a um grupo de
pessoas verdadeiramente obcecadas pela qualidade do produto, fica cada vez mais
claro que as empresas que vivem de venda de banco de dados têm que começar a
se preocupar.
BIBLIOGRAFIA
AGHAZARM, Bruno; MIRANDA JUNIOR, Jedey Alves. Transmissão de dados em
sistemas de computação. São Paulo: Érica, 1993.
ANDERSON., Christiano. Software Livre não é Grátis! Revista Linux Magazine.
Ano I, nº1, ago. 2004, p. 94.
CANTU, Carlos H. Firebird essencial. Rio de Janeiro: Ciência Moderna, 2005.
DANTAS, Mário. Tecnologias de Redes de Comunicação e Computadores. Rio
de Janeiro: Axel Books, 2002.
DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8 ed. São Paulo:
Campus, 2006.
GARCIA-MOLINA, Hector, ULLMAN, Jeffrey D. e WIDOM, Jennifer. Implementação
de sistemas de bancos de dados. Rio de Janeiro: Campus, 2001.
HEUSER, C. A. Projeto de Banco de Dados. 5 ed. São Paulo: Sagra/Luzzatto,
2005.
INFO EXAME. São Paulo: Editora Abril, n. 228, mar. 2005.
INFO EXAME. Artigo - Oracle na Faixa. São Paulo: Editora Abril, n. 239, fev. 2006.
INFO EXAME. Artigo - DB2 de Graça. São Paulo: Editora Abril, n. 241, abr. 2006-2.
LAMAS, Murilo. Software livre ao seu alcance. São Paulo: Letras e Letras, 2004.
MUTO, Cláudio Adonai. PHP & MySQL - Guia Introdutório. 3 ed. São Paulo:
Brasport, 2006
MySQL. Anúncio publicitário. Revista Linux Magazine. Ano II, nº6, jan. 2005, p. 2.
74
Moran, Brian. The Devil’s in the DeWitt clause. Artigo Web 2003
http://www.sqlmag.com/articles/index.cfm?articleid=38587& acessado em
10/05/2007
OLIVEIRA., Celso Henrique Pedroso de. SQL Magazine. Bancos de Dados Livre x
Pago. Disponível em <http://www.sqlmagazine.com.br/Artigos/Outros/01_Banco
_FreeXPago.asp>. Acesso em 05out. 2006.
RAMALHO, José Antonio. Oracle. Aprenda a criar bancos de dados, tabelas,
índices, visões e outros objetos. São Paulo: Breckley Brasil, 2002.
SANTOS, Paulo Sérgio M. Dos. Comparando Firebird, MySQL, PostgrSQL e SQLite.
In: SQL magazine, ano 4 – 41 ed. DevMedia, 2007).
SILBERSCHATZ, A., KORTH, H., SUDARSHAN, S. Sistema de Bancos de Dados.
4 ed. São Paulo: Makron Books, 2006.
TANENBAUM, Andrew S.. Redes de Computadores. Rio de Janeiro: Campus,
2000.
Download

Flávio Martins Colares