De que se trata o artigo

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


Em que situação o tema é útil

A escolha de um sistema gerenciador de banco de dados é um passo crucial no planejamento e análise de um sistema. Além disso, muitos sistemas têm a necessidade de acessar mais de um banco de dados diferente, e o desenvolvedor deve saber acessar todos. O SQL Express e o Oracle Express são as versões gratuitas, e limitadas, dos mais robustos e populares bancos de dados proprietários.

Bancos de dados Gratuitos

Não é apenas de Interbase e Firebird que o Delphi vive. No artigo anterior foram abordados, além do banco de dados Firebird, os bancos MySql e PostgreSQL. Neste artigo serão mostrados o banco de dados Microsoft SQL Server 2008 Express e o Oracle 10G Express e o IBM DB2. Apenas esses seis bancos de dados não cobrem nem de longe a totalidade dos bancos de dados existentes. Além disso, BDs relacionais não são o único tipo de banco existente. Em artigos futuros serão abordados outros tipos de bancos de dados.

No artigo anterior foram apresentados os bancos de dados open-source MySql, Firebird e PostgreSQL. Foram apresentados componentes alternativos para acesso aos dados e bancos de dados de exemplo foram testados. Também foram feitas medições de tempo em “selects” com várias tecnologias diferentes.

Porém apenas a performance da consulta foi medida, dos bancos de dados em si não foi medida a performance por não termos um banco de dados de teste igual para cada SGBD.

Microsoft SQL Server Express

O Microsoft SQL Server Express sem dúvida é um dos mais conhecidos e queridos sistemas gerenciadores de bancos de dados, principalmente por programadores que não trabalham apenas com Delphi. Tem uma confiabilidade típica de bancos de dados profissionais, além de um controle rígido de acessos, usuários e papéis. Esses devem ser muito bem configurados para que seja implementada uma boa segurança. Outras características interessantes do SQL Server são suas stored procedures, cuja sintaxe lembra um pouco o pascal.

Um ponto muito interessante no SQL Server é que, embora ele tenha recursos avançados de gerenciamento, automação e conversão, que outros bancos de dados gratuitos não têm, ele não se torna dificílimo de aprender por causa disso. Um recurso muito interessante é o FullTextSearch, onde é possível eleger tabelas para criar catálogos de palavras/strings e poder fazer uma busca com a função “contains”, que aceita muitos parâmetros e coringas diferentes, e é muito mais eficiente do que um “like” tradicional.

Nota do DevMan

FullText Search

O tipo de consulta categorizado como FullText é o tipo que cria um índice com as palavras de um texto. Uma vez que esse índice é criado, pode-se efetuar consultas no estilo utilizado por buscadores (Google, Bing). No geral, o texto a ser indexado passa por um analisador, que tem a função de identificar palavras chave, passando essas palavras para o indexador, que mantém isso em ordem. Esse recurso não é exclusivo para bancos de dados relacionais como SQL Server, Oracle ou MySQL. Existem também os frameworks de FullText Search. O mais conhecido na área de desenvolvimento de software é o Lucene (para Java) e sua versão para .Net. A principal vantagem em se usar um framework externo é retirar essa responsabilidade do banco de dados, deixando-o livre para realizar as consultas principais de um sistema.

Na seção de links desse artigo encontra-se a URL para download do SQL Server Express. O processo de instalação é um pouco demorado, mas não tem segredos. A Figura 1 mostra o início de sua instalação.

Clicar em “New Instalation” para
iniciar o processo

Figura 1. Clicar em “New Instalation” para iniciar o processo

O instalador do SQL antes verificará se todos os pré-requisitos estão instalados. Caso falte algum requisito o software acusará. Depois de instalados todos os requisitos clique em re-run. Então pode-se escolher quais recursos instalar. O SQL Server trabalha com o conceito de instância de servidor, assim, durante sua instalação deve-se informar um nome ou utilizar o sugerido, como mostra a Figura 2.

Escolha do nome de instância

Figura 2. Escolha do nome de instância

Um usuário deve ser escolhido para ser o usuário no qual o SGBD irá rodar. Geralmente é criado um usuário com o mesmo nome do banco de dados (o PostgreSQL e o MySQL fazem isso automaticamente, já o SQL Server permite que você crie ou escolha). Pode-se escolher um dos usuários de sistema do Windows para a execução do sistema gerenciador de banco de dados. Na sequência da instalação escolhe-se o tipo de autenticação (Authentication Mode).

O modo de autenticação “Windows” permite que o usuário, no caso o programa que acessará o banco ou o próprio SQL Management Studio, entre com as credenciais do Windows, ou seja, o login e senha atuais ou um login e senha da rede, do Active Directory ou da máquina servidora. Já o modo “mixed” permite o uso de usuários e senhas do próprio SGBD além das credenciais do Windows.

Nota do DevMan

Grandes empresas possuem dezenas, quando não, centenas de máquinas conectadas em rede. A localização de um determinado recurso (impressora, scanner, estação) compartilhado precisa ser rápido e fácil. Para gerenciar isso, em ambientes Windows, a Microsoft desenvolveu o Active Directory. Este é um serviço de rede que cria uma banco de dados centralizado com as informações da rede, facilitando a localização de qualquer recurso. Foi implementado utilizando protocolos padronizados como o LDAP (Lightweight Directory Access Protocol) o que permite um intercâmbio de informações com outros produtos que também utilizam o padrão LDAP

O Microsoft SQL Server possui vários bancos de dados de exemplo. Alguns mantidos pela própria Microsoft e outros mantidos pela comunidade. O interessante dos bancos de dados de exemplo da Microsoft é que por trás deles há uma “historinha” como se fossem os problemas e levantamentos de requisitos de uma empresa fictícia e todo o material didático dos treinamentos Microsoft é baseado nessa empresa “de mentirinha”. Destaque para o banco de dados AdventureWorks que se trata de uma fábrica de bicicletas. Na seção de links há a url para baixar os bancos de testes da Microsoft. A conexão pode ser realizada com um desses bancos.

Uma vantagem do banco de exemplo Northwind da comunidade é que ele pode ser recriado do zero a partir da execução de um arquivo .sql que pode ser baixado na seção de links e também está disponível com o fonte desta edição.

Os valores dos inserts podem ser mudados para que dados diferentes sejam inseridos no banco. Fique à vontade para modificar de acordo com seu gosto.

Para criar o banco de dados basta executar o script sql em uma janela do SQL Server Management Studio (Figura 3).

O SQL Server Management Studio

Figura 3. O SQL Server Management Studio

subtitulo]Oracle Express

O mais respeitado banco de dados tem também uma versão Express, e embora configurações finas sejam sempre bem vindas não é necessário ser um DBA para instalar o Oracle 10G.

A única parte da instalação do Oracle que merece uma atenção é a parte onde se coloca a senha para o usuário system, que é o “admin” do Oracle, mostrado na Figura 4.

Definição de senha para o usuário
SYSTEM do Oracle

Figura 4. Definição de senha para o usuário SYSTEM do Oracle

Junto com o banco de dados é instalado um web Server e um aplicativo para gerenciamento do banco. Toda a administração do Oracle, como criação de tabelas, gerenciamento de recursos, memória, usuários e comandos SQL será feita através de um browser.

O Oracle tem o conceito de instância e schema. O banco de dados (database) é a instância, enquanto que para cada usuário criado ele cria um schema diferente.

O conceito de schema é o que chamamos de database em outros bancos de dados como Firebird. Enquanto que o conceito de instance é o que é chamado de namespaces em outros bancos.

Uma limitação chata do Oracle Express Edition é que ele permite a criação de apenas uma instância. Isso pode não ser considerado uma grande limitação, mas imagine-se criando dois sistemas de domínios completamente diferentes em um mesmo servidor. Cada “usuário” nos arquivos de configuração dos sistemas acessa apenas um “banco de dados”, não tem como dois usuários acessarem um mesmo banco, ou como um usuário acessar vários bancos. Na versão full do Oracle não existe essa limitação: é possível criar várias instâncias de banco de dados.

Isso tudo significa que, diferentemente dos bancos de dados vistos até agora, quando se der o preenchimento do parâmetro database ou database name de um componente de acesso a dados deve-se escolher o nome da instância padrão. O login e senha é que determinará na verdade qual é o “banco de dados” ou o conjunto de tabelas que será visível.

Como cada usuário tem um schema, ou table-space, diferente, em dois usuários pode existir tabelas com o mesmo nome.

Além da limitação de uma única instância ele possui outras limitações:

1 – A limitação de executar em apenas um processador, mesmo que o servidor tenha vários;

2 – As tabelas de usuário (user data), que são as tabelas usadas por seu sistema excetuando-se as tabelas de sistema do próprio Oracle, podem chegar ao tamanho máximo de 4gb;

3 – A edição Express pode usar no máximo 1gb de memória livre, mesmo que o servidor tenha mais que isso.

Nota: Depois de instalado o Oracle deve-se decidir se o projeto de teste rodará no mesmo computador que o servidor Oracle ou se rodará em outro. Independente da escolha, no computador onde funcionará a aplicação, que chamamos de client, deve-se instalar as bibliotecas client do Oracle, disponíveis para download na seção de links (arquivo OracleXEClient.exe). Depois disso é necessário configurar os arquivos tnsnames.ora e listener.ora que estão na pasta C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN. A configuração padrão deve funcionar, entretanto verifique a documentação do Oracle para eventuais dúvidas.

DB2 Express

Ao iniciar a instalação do DB2 Express, nos deparamos com a escolha de qual modo de instalação será utilizado. A instalação feita será uma instalação típica. O único recurso que não está presente na instalação típica é o Full Text Search. Para isso faça uma instalação customizada.

Outra configuração delicada é indicar se o serviço rodará com o usuário db2admin ou com a conta LocalSystem do Windows (Figura 5). Cada caso é um caso, deve-se analisar isso tanto na concepção do sistema como na implantação, deve-se questionar onde o banco irá rodar, se é em um datacenter, quem fará a administração, quais as vantagens e desvantagens de se usar uma conta do sistema, quais as vantagens e desvantagens de se usar uma conta comum, o que é mais seguro, o que é mais flexível, qual opção permite acesso do banco de dados à arquivos no disco, para importação e assim por diante.

Definição de usuário

Figura 5. Definição de usuário

A visão do banco de dados que este artigo pretende dar é uma visão do ponto de vista do desenvolvedor, que deve-se preocupar mais com o código e as regras de negócio. Detalhes do banco de dados devem ficar a cargo do DBA especialista na ferramenta selecionada.

No exemplo a senha do usuário db2admin foi “1234567890a_” isso porque as políticas de segurança do Windows ou da rede podem exigir tamanho mínimo de senha e mistura entre caracteres numéricos, alfanuméricos e especiais. Isso pode acontecer durante a instalação do PostgreSQL também. Após a instalação será oferecida a criação de um banco de dados de exemplo, como mostra a Figura 6.

Criação do banco de dados SAMPLE

Figura 6. Criação do banco de dados SAMPLE

Porém, dependendo do tipo de instalação escolhido é possível que o banco de dados SAMPLE já esteja criado. É possível também que tenha sido criado automaticamente um schema com o seu nome de usuário do Windows e que o banco de dados SAMPLE esteja dentro desse schema.

Para ilustrar, no momento em que eu terminei a instalação em meu computador para a criação desse artigo foi criado o schema VITOR e o banco de dados SAMPLE está dentro dele.

Pode ser que o banco de dados SAMPLE já exista e não precise ser criado. De qualquer forma, ao criar o SAMPLE é oferecida a opção de ser criado com objetos em SQL e XML ou apenas SQL. Isso é possível devido ao suporte a armazenamento de XML nativo que o IBM DB2 possui. O suporte a XML não será usado no exemplo desse artigo, então pode-se instalar apenas o SQL.

Ferramentas de administração de bancos de dados

No artigo anterior foi apresentado o PGAdmin, que vem junto com o postgreSQL e é o sistema de administração e consultas ao banco de dados PostgreSQL.

O MySql, embora não venha junto com uma ferramenta visual, possui uma ferramenta modo texto (console). A ferramenta mais usada para a administração do MySql é o PHPMyAdmin, que é uma ferramenta Web e precisa do Apache mais o PHP para funcionar. Toda a administração do banco ocorre através de um browser.

O Interbase possui o IBConsole. Para acessar o Firebird pode-se usar o IBO Console, muito parecido com o IBConsole, ou pode-se usar o IBExpert. Há uma versão gratuita do IBExpert que mesmo tendo menos recursos que a versão paga ainda assim tem bem mais recursos que o IBO Console.

A ferramenta de administração do SQL Server da Microsoft é o SQL Server Management Studio visto na Figura 3 e a ferramenta de administração do DB2 é o Centro de controle visto na Figura 7 que pode ser encontrado em IBM DB2>Nome da instância>Ferramentas gerais de administração>Centro de controle.

Centro de controle do DB2

Figura 7. Centro de controle do DB2

A Figura 8 mostra a ferramenta de administração do Oracle, que funciona inteiramente via Browser com a ajuda de um servidor web embutido no produto. Seu endereço é http://127.0.0.1:8080/apex/ e com essa ferramenta é possível criar usuários/schemas, tabelas, executar comandos SQL e configurar o banco de dados.

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