|
October 26, 2015
|

Lidando com Bancos de Dados Diferentes

Quando se acessa um sistema de gerência de banco de dados (SGBD) de uma aplicação em uma linguagem de programação, sempre há uma API na linguagem para permitir acesso, com bibliotecas de chamadas de funções ou métodos para o acesso das funcionalidades do SGBD.

Em linguagens como Java e PHP, a biblioteca é a mesma para os vários bancos suportados. Ou seja, o programador tem acesso às mesmas chamadas usando bancos diferentes. Então, aparentemente é fácil trocar o SGBD. Porém o programador pode encontrar diferenças entre o comportamento dos bancos que pode dificultar uma eventual migração.
Primeiramente, os comandos SQL suportados e configurações podem não ser iguais. Ou seja, um comando SQL suportado em um SGBD pode não ser suportado em outro, sendo que isso pode acontecer inclusive com o que deve ser suportado pelo padrão ANSI SQL, que teoricamente deve ser suportado por todos os bancos, mas não é o que ocorre na prática.
Em segundo lugar, uma chamada pode não ser suportada por um determinado banco. Ela existe, porém não produz resultados. Uma API bem implementada deve lançar uma exceção que indique que a funcionalidade não está implementada, algo que não necessariamente ocorre na prática. Por exemplo, alguns SGBDs suportam pegar o número de linhas retornadas numa consulta com uma chamada, algo que outros não permitem. O programador até consegue fazer isso, mas não de modo automático.

Outra diferença que pode ocorrer é na forma como os dados são armazenados, fazendo que uma determinhada escolha seja boa num SGBD e ruim em outro em termos de desempenho na velocidade da execução dos comandos e na armazenagem dos dados. Por exemplo, uma ordem nas tabelas ou nas comparações de uma cláusula WHERE pode ser boa em um SGBD e desastrosa em outros. Tem-se também que um banco pode ter um tipo de indexação que outro não tem e que aumente a velocidade da execução de um comando SQL. Ou então um determinado índice pode ou não fazer diferença ao mudar de banco. Mais ainda, a maneira como determinado tipo de dado é armazenado e/ou retornado pode ser difetente em outro banco. Tiṕos de datas, horas e strings são os mais problemáticos nessa questão.

Portanto, ao portar sua aplicação de um banco para outro, é preciso tomar muito cuidado para o resultado não ser diferente do esperado.

Comments

More articles

Afinal, é possível criar app sem saber programação?

November 16, 2018

Como transformar um website em aplicativo?

November 14, 2018

Aplicativos: O que conhecer antes de criar um

November 13, 2018

É possível instalar aplicativos Android no Windows?

November 9, 2018