Abstração de SGBDs

Publicado por Pedro Henrique da Silva Gregório em 25/05/2007

[ Hits: 8.374 ]

 


Abstração de SGBDs



Como este é meu primeiro artigo e a primeira vez é sempre a melhor, vou tentar caprichar. Então vamos ao que interessa!

Você programador já deve ter ouvido falar da substituição das funções de tal banco de dados por bibliotecas que dão suporte a vários SGBDs... e agora, o que fazer? Substituir tudo para as bibliotecas como Metabase ou mesmo o Pear DB, que é bem famoso, mas já parou de ser desenvolvido e aconselhado a ser trocado pelo Pear MDB2?

Então neste primeiro artigo é disso que vou falar, o que fazer, mudar ou não mudar, e algumas vantagens e desvantagens.

Vantagens:
  1. Migração para outros SGBDs mais prática;
  2. Suporte a vários bancos de dados;
  3. Não morrer trocando seu antigo sistema com mysql (exemplo) para postgre ou outros...

Desvantagens:
  1. Perda de desempenho em relação as funções de SGBDs;
  2. Não necessário em vários casos.

Um exemplo desta migração está citada abaixo.

Um arquivo de conexão com o mysql no php:

$user = "exemplo";
$password = "exemplo";
$host ="localhost";
$db ="exemplo";

mysql_connect("$host","$user","$password");
mysql_select_db($db);

Se um dia você precisar mudar este código para se conectar ao postgre ao invés do mysql, teria de reescrever muita coisa (fora as listagem, as inserções, aqui é só uma pequena conexão).

Então estas bibliotecas criaram uma solução para isto, abaixo o código que substituí este exemplo com o Pear DB:

1 require_once("PEAR.php");
2
3 $db = "mysql";
4 $user = "exemplo";
5 $password = "exemplo";
6 $host ="localhost";
7 $db ="exemplo";
8
9 $dsn = "$bd://$user:$password@$host/$db";
10
11 $db = DB::connect($dsn);

Então, neste código de conexão com o Pear DB, ao invés de na hora de migrar você reescrever e adaptar a página toda de acordo com o SGBD, apenas mudaria na linha 3 a string mysql para postgre...

Simples, fácil e sem demora, fora os outros SGBDs para os quais as bibliotecas dão suporte (como isto é um artigo descrevendo o que é a abstração de SGBDs, não escreverei também sobre os outros itens das bibliotecas, como resultados, consultas, inserção, etc).

Mas são todos que necessitam se adaptar para este método?
Claro que não, apesar da simplicidade, há também a perda de desempenho em relação ao modo antigo.

E quem usaria essas bibliotecas?
Na minha opinião "todos", mais especificamente quem quer fazer um sistema ou página que no futuro possa ser mudada em relação ao banco de dados (afinal mudar todo seu sistema para outro SGBD exige mão de obra) e também para quem quer fazer seu sistema ou página com suporte a vários bancos. Citei "todos" no início deste parágrafo porque afinal é melhor prevenir do que remediar (captaram a idéia?)... (:-)

Complementando, quem não deveria usar estas bibliotecas pra mim são os que sabem que nunca irão migrar por hipótese alguma o SGBD e também para quem está desenvolvendo algo para si mesmo e não para a uso de outros (afinal o cliente sempre manda e se um dia ele resolve trocar...).

Referência:
Bem, cheguei ao fim de meu primeiro artigo, espero que gostem e peguem leve...

Até mais povão.

Outras dicas deste autor

Ajax loading

Framework Javascript

Leitura recomendada

Como detectar e prevenir escalada de privilégios no GNU/Linux

Bloqueando e desabilitando usuário no Linux

Squid + SARG: Gerando relatórios pelo nome de usuário autenticado

Instalando Skype 32 bits no Debian Squeeze amd64

Corrigindo erro "VM is inaccessible" do VirtualBox

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts