Logo Hardware.com.br
Ricardo de Castilho
Ricardo de C... Geek Registrado
4.4K Mensagens 2 Curtidas

Bancos de Dados Livre x Pago

#1 Por Ricardo de C... 09/03/2004 - 16:42
por Prof. Celso Poderoso


Software livre é uma realidade cada vez mais constante no mundo da informática. Com o inegável sucesso do Linux, a comunidade de informática passou a notar outros nichos que poderiam ser explorados pelo software livre.
Com banco de dados não poderia ser diferente. Com um mercado de sistemas pagos bastante consolidado, incluindo gigantes como IBM, Microsoft e Oracle, os bancos de dados livres começam a mostrar sua força. O fato é que, como aconteceu com o Linux, o mercado de banco de dados relacional está se tornando uma commodity, seja pelo aumento de bons produtos no mercado, seja pela concorrência dos softwares livres. Vamos analisar neste artigo quais são os principais bancos de dados livres e em que eles podem concorrer de fato com os gigantes do mercado.


Inicialmente é necessário diferenciar o uso que se fará do banco de dados. Já há algum tempo os bancos de dados deixaram de ser simples armazenadores de informações. Hoje em dia, pelo menos para os principais produtos do mercado, há uma vasta gama de serviços agregados a eles. Estruturas de dados cada vez mais complexas estão sendo geridas e armazenadas pelos bancos de dados para atender necessidades específicas, em especial para internet.
O padrão para manipulação da informação nos bancos de dados relacionais é o SQL (Structured Query Language). O primeiro padrão surgiu em 1986 e foi definido pela ANSI (American National Standards Institute). Ficou conhecido como SQL-86. Em 1989, surge a nova versão com modificações significativas (SQL-89). Em 1992 chegou-se a um padrão de regras básicas que definem os bancos de dados relacionais. A maior parte dos bancos de dados em uso atualmente é, em alguma escala, compatível com esta versão. Em 1999 houve a última alteração deste padrão. É conhecida como SQL-3 ou SQL-99. Houve importantes avanços nesta última versão. Algumas das mudanças mais significativas estão relacionadas com a definição dos padrões para bancos de dados Objeto-Relacionais.
Tanto os bancos de dados pagos como os livres adotam este mesmo padrão. Claro que isso não quer dizer que tanto faz utilizar um ou outro banco de dados. O que diferencia de fato o banco de dados é a forma como é tratada a informação armazenada. Cada software possui um gerenciamento diferenciado dos dados, utilizando metodologias de replicação, garantia de integridade das informações e controle de transações. Outros são mais simples, baseados em arquivos de dados. Alguns possuem linguagens de programação completas e complexas, enquanto outros não as possuem.
Portanto, dizer que um banco de dados segue o padrão SQL não quer dizer que eles possuem as mesmas características. Geralmente o termo SQL é apenas um indicativo que, sabendo o padrão, será fácil para o usuário implementar soluções personalizadas em diversos bancos de dados.


Alguns fatores influenciam na escolha de um banco de dados:

Controle de redundância: o banco de dados deve ser capaz de garantir que os dados não tenham duplicidade. Isso normalmente é conhecido como integridade referencial. Desta forma, não seria possível incluir dois registros com o mesmo código (chave primária). Também não seria possível excluir um registro que tivesse relacionamento com outras tabelas (chave estrangeira). 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 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 é pouco. 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: 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, deve possuir uma linguagem de programação que permita realizar rotinas específicas diretamente no banco de dados. 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. O que fazer quando houver uma quebra total do banco de dados? Qual o caminho para recuperação deste desastre? Claro que um bom backup pode resolver boa parte dos problemas, mas o que, além disso, o banco de dados poderá fazer ? Mecanismos de backup online 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 certificar se 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.
Algumas opções do mercado de banco de dados livre O mais popular banco de dados livre do mercado é o MySQL (http://www.mysql.com/). Milhares de sites na internet são mantidos neste banco de dados. Simples e poderoso, o MySQL é um sucesso inegável para empresas de diversos portes.
A produtora do software é a MySQL AB. O MySQL pode ser obtido gratuitamente no site ou ser adquirido por preços bem mais baixos que os concorrentes. Este banco de dados segue o padrão ANSI SQL-99 e, como os demais, possui extensões à linguagem padrão. A nova versão do produto possui suporte às transações e integridade referencial. Também é possível realizar replicação de dados e ainda possui um mecanismo de cache de buscas para agilizar as consultas às tabelas. Contudo, um dos recursos mais importantes para banco de dados ainda está ausente no MySQL: triggers (gatilhos), procedimentos e funções armazenadas e views (visões). Estes recursos estão prometidos para a próxima versão do produto.
Uma outra grande vantagem do MySQL é a velocidade. Testes mostram que ele compete com os líderes do mercado. Contudo, é necessário esperar para ver o que acontecerá quando tiver todos os recursos prometidos. Afinal, um banco de dados com menos recursos, poderá ser mais rápido. A independência de plataforma é outro fator relevante. Há versões do MySQL para Linux, Windows, Novell Netware, FreeBSD, Mac OS, AIX, HP-UX e Sun, dentre outros. É um produto que, devido ao crescente uso no mundo todo, mesmo tendo um longo caminho a percorrer até chegar a oferecer os mesmos recursos dos outros gigantes do mercado de banco de dados, tem um futuro garantido.

Outro grande concorrente dos bancos de dados livres é o PostgreSQL (http://www.postgresql.com/). Da mesma forma que o MySQL, o PostgreSQL é compatível com o padrão SQL-99 e possui suas próprias extensões à linguagem. Também pode ser obtido da internet e é totalmente grátis. É um projeto bastante maduro (consta no site que o produto existe há 16 anos) e possui recursos que somente os banco de dados pagos possuem. Além do suporte à integridade referencial, replicação de dados e controle de transações, é possível criar triggers (gatilhos), procedimentos e funções armazenados, views (visões) e até herança de objetos. Existem diversas linguagens de programação que podem ser utilizadas no PostgreSQL. Uma delas é muito semelhante ao Oracle PL/SQL. Isso diminui o tempo de aprendizado do produto. Da mesma forma que o Oracle, o PostgreSQL é um banco de dados objeto-relacional. Por esta semelhança com o banco de dados líder do mercado, o PostgreSQL tem se tornado uma alternativa bastante atraente para profissionais que dominam aquela plataforma.
Mesmo com todos estes recursos, o PostgreSQL é bastante veloz. Contudo, está disponível apenas para Unix e Linux. Pode ser instalado no Windows utilizando uma biblioteca específica ou utilizando o cygwin, produto que simula o ambiente Unix no Windows. Está prometida para a próxima versão compatibilidade nativa com o Windows. Quando isso acontecer - principalmente para os usuários Windows - por ser o banco de dados livre com maior número de recursos comparáveis aos líderes do mercado de banco de dados, o PostgreSQL estará se firmando como uma opção real de uso e substituição de outros produtos.


O terceiro dos bancos de dados livres a considerar para implantação é o Firebird (http://www.firebirdsql.com/). Utiliza o padrão SQL-92 e possui recursos semelhantes aos bancos de dados pagos. Possui controle de transações, inclusive com o two fase commit (gravação em duas fases). Também está disponível em diversas plataformas, como Linux, Windows, Solaris, HP-UX, Mac, dentre outros. É possível adquirir uma versão gratuita no site e é considerado bastante estável (versões desde 1981 em nomes diferentes). Como o PostgreSQL, o Firebird permite a criação de triggers (gatilhos) mas os procedimentos e funções são externos ao banco de dados. Isso dá a flexibilidade de utilizar diversas linguagens de programação, mas por outro lado compromete o desempenho. Sem dúvida alguma é um produto que, apesar de estar há anos no mercado, ainda tem um bom caminho a evoluir. Contudo, como vem de uma base de usuários fiéis ao Interbase, pode ser uma opção atrativa aos conhecedores deste banco de dados.


Conclusã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.
Muitas empresas que possuem softwares proprietários alegam que os bancos de dados livres estão há anos-luz de distância dos seus produtos. A realidade não parece ser bem esta. Dependendo da necessidade pode-se utilizar um banco de dados livre sem perda de qualidade para a empresa. Se a solução for departamental, a opção do software livre é ainda mais viável. Muitas empresas estão optando por instalar versões destes bancos de dados em soluções periféricas aos sistemas principais para poder testá-los e, em caso de sucesso, migrar completamente para a nova base. Basta fazer uma visita ao site dos produtos citados acima e verificar a quantidade e o porte das empresas que estão realizando projetos- piloto com os produtos.
Este caminho é conhecido do mercado. Assim foi e está sendo com Linux. Houve um crescimento significativo de servidores Linux no mercado a ponto de a Microsoft assumir que ele é um grande competidor atualmente. É difícil vermos uma empresa de qualquer porte que não tenha um único servidor Linux instalado.
Com os bancos de dados não custa repetir o caminho. Afinal o custo de um banco de dados é significativo para qualquer empresa e a qualidade do software livre não deixa a desejar. Se este mercado virará uma commodity ainda não é possível precisar. Hoje em dia, como poucas empresas possuem produtos de peso para competir, os preços ainda são muito semelhantes. Quem necessita de bancos de dados para toda a organização dificilmente utilizará um dos bancos de dados livres. Contudo, empresas menores poderão fazê-lo sem grandes problemas. Aí será o momento em que as grandes empresas irão notar que não se vive apenas de grandes empresas. O midlle e o low market existem e estão à espera de produtos com qualidade e preços competitivos.

Texto retirado na íntegra de http://www.fiap.com.br/secoes.asp?secao=artigo17&versao=2&titulo=
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal