Artigo do tipo Tutorial
Recursos especiais neste artigo:
Conteúdo sobre boas práticas.
Funções internas do PostgreSQL
Funções internas de um SGBD são, em sua maioria, facilitadoras criadas pelo fabricante do SGBD para disponibilizar algum diferencial não encontrado em termos de consultas em seus concorrentes. É comum termos funções específicas em bancos distintos como SQL Server, Oracle, MySQL e PostgreSQL. Este último será o foco de nossa discussão sobre o assunto.

O presente artigo trata das funções internas do gerenciador de banco de dados PostgreSQL. Assim, abordaremos as funções de agregação, as conversões de tipos de dados e funções para manipular strings, números e datas, em uma apresentação bem prática e objetiva.


Em que situação o tema é útil
O tema apresentado neste artigo é útil para profissionais que já trabalham com o banco de dados e não exploram a sua capacidade de processamento. Também é útil para quem está interessado em conhecer funções internas de um SGBD e em quais situações elas podem ser utilizadas.

As funções internas são funções escritas na linguagem C que foram ligadas estaticamente ao servidor PostgreSQL, ou seja, na compilação do banco de dados essas funções são inseridas intrinsecamente para aumentar o leque de opções do programador para recuperar os dados do banco.

As funções internas trazem em apenas uma linha de comando uma funcionalidade extra para o sistema de gerenciamento de banco de dados, o que facilita a produção de resultados a partir das informações obtidas no banco. Essas funções podem sofrer variações de acordo com o SGBD visto que elas não são regularizadas pelo padrão SQL (cada fabricante pode implementar a função que desejar).

Apesar de o SGBD ter essas funções internas encapsuladas, o gerenciador aceita também funções definidas pelo usuário, que podem ser criadas a partir de uma sequência de comandos. Apesar dessa possibilidade, esse não será o foco desse artigo.

No caso do banco de dados que utilizaremos, o PostgreSQL, este possui uma linguagem procedural utilizada para criar triggers e procedures. Esta linguagem pode fazer uso também de funções internas do banco de dados.

Podemos assumir com certeza que a maioria dos softwares emprega as funções internas do banco de dados, pois é muito melhor enviar as informações já tratadas para a interface do sistema. Para ilustrar um caso que se faz necessário o uso das funções considere a situação em que um terminal faz a requisição de uma média de produtos vendidos no mês corrente. Sem as funções internas, teríamos que enviar todos os itens vendidos no mês para ser realizado um processamento no terminal e assim obter a média de vendas. Isso poderia gerar um tráfego de milhares de registros. Se utilizarmos a função adequada, será necessário trafegar apenas uma única informação, referente à média do mês, reduzindo significativamente o tráfego de dados.

Uma desvantagem é que a sintaxe da função pode ser modificada quando a desenvolvedora do sistema de gerenciamento de banco de dados bem entender. Apesar de não ser muito comum, mudanças assim podem ocorrer até mesmo quando a versão do gerenciador do banco de dados é modificada, nos deixando a mercê do fabricante do software.

Ao priorizar um tratamento adequado da informação dentro do banco de dados, o DBA tem uma maior segurança, pois ele sabe exatamente a estrutura de um algoritmo que está rodando no gerenciador do banco de dados. Na aplicação, teríamos uma “caixa preta”, mais difícil para o DBA visualizar e analisar o que ocorre exatamente em cada passo do algoritmo para o tratamento dos dados.

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