De que se trata o artigo

Este artigo trata sobre bancos de dados gratuitos, proprietários ou open-source, e das maneiras disponíveis no mercado para se conectar a eles. Serão apresentados os bancos de dados, o passo a passo para sua instalação e os componentes para conexão.


Para que serve

Bancos de dados servem para armazenar, organizar, indexar e buscar informações. Os bancos de dados mais utilizados são os relacionais. Todos os sistemas de informação necessitam de bancos de dados, exceto sistemas que, por questões de performance, fazem processamento de certos arquivos em lote. Bancos de dados gratuitos podem eliminar alguns custos tanto do desenvolvedor como dos clientes.


Em que situação o tema é útil

Sempre que se começar um projeto novo, do zero, o analista ou arquiteto passará pelas fases de análise, concepção, desenho e assim por diante. Em uma dessas etapas o modelo de dados conceitual, ou de negócios, será desenhado, e a partir daí o modelo de dados lógico. Desse ponto em diante, tanto nas fases de desenvolvimento como nas fases de teste e homologação, os desenvolvedores necessitarão saber como se instala e como se conecta a um sistema gerenciador de bancos de dados.

Bancos de dados Gratuitos

É conhecido e indiscutível o fato de que bancos de dados relacionais têm uma série de vantagens sobre arquivos de dados ou de texto, que é como os dados eram armazenados antigamente. Este artigo visa apresentar as principais opções de bancos de dados gratuitos e como se conectar a eles. Formas diferentes de conexão a um mesmo banco de dados são conhecimentos necessários, pois empresas diferentes acessam os bancos de dados de maneiras diferentes, levando em consideração ao que já foi desenvolvido, sistemas legados e frameworks adquiridos. Além disso, em sistemas onde o banco de dados é proprietário e já foi definido e adquirido, usar versões gratuitas ou Express desses bancos pode diminuir os custos de teste e homologação, além de ajudar no treinamento e capacitação do desenvolvedor.

Em qualquer livro sobre bancos de dados é possível ler uma introdução onde se fala sobre a evolução dos mesmos, passando de simples arquivos a bancos hierárquicos, como estruturas de diretórios, e daí para bancos relacionais.

Bancos de dados relacionais são baseados em tabelas e os relacionamentos entre elas. Estas tabelas são sempre bidimensionais, onde no eixo “x” têm-se as colunas, e no eixo “y” têm-se os registros. Um registro é formado por dados, ou valores, para as respectivas colunas. Então se uma tabela tem três colunas, como “Nome”, “Telefone” e “e-mail” um registro teria três dados, ou valores, um para cada coluna. Por exemplo (Vitor, 11 12345678, email@servidor.com.br) seria um registro, enquanto que (José, 11 98765432, jose@umservidor.com.br) seria outro registro.

Os bancos de dados relacionais provêm uma maneira única de qualquer aplicação acessar qualquer banco de dados. Fazem isso através de um padrão de armazenamento próprio e de um SGBD. O SGBD, ou sistema gerenciador de banco de dados, cria uma interface entre o programa e o banco de dados em si e é ele quem grava ou lê os dados do banco. O programa não precisa conhecer as complexas estruturas de dados e índices usados no arquivo de banco de dados para acessá-los. Basta saber como se comunicar com o SGBD que este fará todo o processo. O SGBD assume a responsabilidade de ler, gravar, garantir ou revogar acesso, indexar e manter o banco de dados. Para que o programa conheça e saiba se comunicar com o SGBD é necessário ainda outra camada, que são os drivers de bancos de dados, também chamados de bibliotecas clientes. A comunicação é feita através da Structured Query Language ou SQL.

O SQL e o modelo relacional fornecem um padrão para que absolutamente qualquer conjunto de dados, de qualquer tipo, possa ser representado numa estrutura de tabelas, colunas, registros e relacionamentos. Na linguagem formal os registros também são chamados de tuplas, as tabelas de entidades (ou relações) e as colunas de atributos.

Qualquer banco de dados relacional pode ser facilmente representado graficamente em um diagrama chamado diagrama de entidade-relacionamento (DER) ou modelo de entidade-relacionamento (MER). Muitos desenvolvedores consideram esse diagrama um dos melhores instrumentos para representar o negócio de uma empresa e apresentar para os stakeholders (clientes e outros interessados).

Muitos desenvolvedores partem de um diagrama desse tipo para desenvolver todo o banco de dados e o sistema, e criar um sistema totalmente orientado aos dados é um método preferido por muitos desenvolvedores.

Para quem programa orientado a objetos outra camada (ou várias) é necessária: a camada de ORM, ou mapeamento objeto-relacional. Essa camada seria responsável por mapear, ou transformar, os objetos de negócio em um conjunto de dados de tal forma que possa ser representado por tabelas e campos e armazenados em um banco de dados relacional.

Não é objetivo desse artigo abordar toda a teoria de bancos de dados, afinal existem livros para isso. Esse artigo tem por objetivo apresentar os principais bancos de dados gratuitos e mostrar como se conectar a eles. Antes de tudo é importante definir a diferença entre software gratuito, software open-source e software livre.

Software gratuito, como o próprio nome diz, não tem custo para quem o usa. Isso não quer dizer que ele possa ser usado sem restrições. A maioria dos bancos de dados “Express” tem restrições quanto ao número máximo de processadores, de usuários, de memória ou até mesmo se o uso é pessoal ou comercial.

Diferentemente deste tipo os bancos de dados open-source podem ser usados sem restrições e ainda o sistema gerenciador de banco de dados (SGBD) tem o código-fonte aberto, podendo-se visualizar, alterar e recompilar esse código fonte.

Software livre é um subconjunto de software open-source cuja licença é compatível com a licença GPL. Isso é uma garantia de que tanto o código fonte como outras partes do software, como bibliotecas, logotipos e etc. também são livres, e que softwares derivados deste também são livres. Quem dita as regras da GPL e diz se uma licença é compatível ou não com a GPL é a Free Software Foundation.

Drivers

Para que um programa feito em uma linguagem qualquer se comunique com um sistema gerenciador de banco de dados qualquer é necessário um driver. Driver nesse contexto significa um programa ou DLL que é capaz estabelecer uma comunicação entre o programa desenvolvido e o SGBD.

Os SGBDs abrem portas TCP, UDP ou ambas para que os programas possam se comunicar com eles. Todas as transferências de dados ocorrem por essas portas. O que o programa envia para o SGBD são comandos SQL de inserção, atualização ou de consulta, e o que o SGBD responde pode ser a quantidade de registros alterados ou os registros em si.

Nota: A escolha de um banco de dados é uma parte muito importante de um projeto de software, assim como conhecer as características, vantagens e desvantagens de cada um. Cada banco de dados tem limites de carga, performance e ambiente, porém se o seu projeto não pretende ou não prevê tocar em nenhum desses limites, ou se é apenas um protótipo ou um teste, como no caso desse artigo, não é necessário se importar com o banco de dados. Qualquer um servirá.

Os drivers servem para que o programador não tenha que saber detalhes específicos de tcp/ip, muito menos como cada banco de dados específico trabalha essas “conversas” de dados.

Cada empresa fabricante de SGBD fornece uma API ou um conjunto de APIs, que podem ser dlls ou outros artefatos que implementam a comunicação básica com esse banco de dados. E cada fabricante de compiladores ou IDEs produz outra biblioteca, ou conjunto de bibliotecas, responsável por se comunicar com essas dlls.

Nada impede, como pode ser observado em alguns casos, que um fabricante de compiladores, IDEs ou bibliotecas escreva um driver direto para um determinado SGBD que se comunique diretamente com ele via tcp/ip.

Isso quer dizer basicamente que qualquer linguagem de programação pode produzir programas que se conectem com qualquer banco de dados, contanto que exista um driver que faça essa comunicação. Esse driver pode até ser desenvolvido por terceiros e adquirido separadamente.

Há drivers que acessam diretamente um determinado tipo de SGBD (Figura 1), e são chamados nativos. Há drivers que simplesmente oferecem uma camada comum e padrão de acesso aos dados pelo programa, mas necessitam de outros drivers para acessar o banco de dados realmente. É o caso do OLEDB e ODBC. Com eles é possível acessar qualquer banco de dados da mesma maneira, como se existisse um único SGBD, mas é o OLEDB ou ODBC que realmente acessa o banco de dados usando para isso outros drivers (Figura 2).

Há mecanismos que fornecem uma interface padrão para que um programa possa acessar diferentes bancos de dados com seus drivers nativos. Para isso ele usa várias bibliotecas que implementam essa interface, cada biblioteca responsável pelo acesso a um banco de dados diferente. É o caso do DBExpress do Delphi, que se conecta com bibliotecas (DLLs) diferentes e drivers diferentes, mas provê para um programa feito em Delphi o mesmo mecanismo para todos eles.

...
Quer ler esse conteúdo completo? Tenha acesso completo