Por que eu devo ler este artigo:Este artigo é útil porque apresenta como utilizar a tradicional linguagem SQL em diferentes softwares que manipulam dados, mas para alguns cenários precisamos modifica-la para adequar ao cenário específico. A partir de uma breve revisão do contexto histórico do SQL, o artigo apresenta alguns desses cenários, incluindo as variações para lidar com dados temporais (TSQL2), informações semânticas (SPARQL), modelos multidimensionais (MDX) e objetos (HQL e JAPL). O artigo também discute como utilizar o SQL em bancos NoSQL, incluindo o Cassandra, (CQL), o Neo4J e o Hadoop (Hive e Spark SQL).

A sigla SQL (Structured Query Language) representa a linguagem de programação mais utilizada no mundo para manipular dados. Sua facilidade de entendimento, versatilidade e recursos permitem que um desenvolvedor utilize comandos sem a necessidade de muitas linhas de código para lidar com dados tradicionalmente armazenados em bancos de dados.

Contudo, apesar do uso da linguagem SQL ser onipresente no desenvolvimento de software, recentes tecnologias, softwares e outras abordagens vêm se aproximando dos conceitos e recursos da linguagem SQL para facilitar a manipulação de dados. Por exemplo, atualmente é possível utilizar a linguagem CQL (Cassandra Query Language) no banco NoSQL Cassandra para manipular informações armazenadas no formato chave/valor.

Apesar desse exemplo e do fato que o ensino tradicional de banco de dados inclui o aprendizado da linguagem SQL, os profissionais que trabalham com desenvolvimento, ciência de dados e banco de dados em geral devem ficar a atentos aos locais e a maneira onde linguagens semelhantes a SQL podem ser empregadas, bem como as limitações, vantagens e desvantagens de cada linguagem.

Sendo assim, este artigo apresentará uma discussão da linguagem SQL seguida da apresentação de opções semelhantes para lidar com tipos de dados armazenados em formatos diferentes do relacional (tabelas e relacionamentos). Além disso, também será discutida até que ponto é possível reutilizar o conhecimento da sintaxe e cláusulas da instrução SELECT do ponto de vista de leitura de dados.

O foco deste artigo é apresentar uma introdução às abordagens de manipulação de dados semelhantes à linguagem SQL encontradas em diferentes sistemas. A partir do que será explicado no artigo é possível obter uma visão panorâmica de como manipular dados em contextos e formatos não muito comuns, algo que pode ser muito útil no momento em que o profissional se deparar com dados organizados em formatos que fogem do que é sugerido pelo tradicional modelo relacional.

SQL como linguagem para lidar com dados

A linguagem SQL é um recurso para manipular dados de forma textual e de alto nível, ou seja, o desenvolvedor escreve a sintaxe de um comando com cláusulas, parâmetros, valores e opções. Uma vez que o comando esteja completo, ele é enviado para algum sistema que vai analisar a sintaxe e outros elementos (permissão, plano de execução, aliases, etc.). Caso tudo esteja correto, o mecanismo de acesso a dados do sistema que recebeu o comando vai executar a operação desejada e retornar algo para quem enviou o comando. Esse retorno pode ser uma mensagem de sucesso (ou falha) bem como um ou mais conjuntos de dados.

Do ponto de vista formal, a SQL é caracterizada como uma linguagem DSL (Domain Specific Language) declarativa de quarta geração. A abstração empregada na SQL faz que com seja preciso dizer o que se deseja obter dos dados e não como manipulá-los para que o resultado seja apresentado. Em outras palavras, com comandos SQL o desenvolvedor escreve o que ele deseja fazer com os dados e não como trabalhar com eles utilizando estruturas condicionais ou de repetição presentes nas linguagens de programação de primeira, segunda ou terceira geração.

Essa abstração, o fato da linguagem ser baseada na língua inglesa e a sua facilidade de uso fez com que a SQL se tornasse muito popular desde os anos 1980. De fato, das abordagens sugeridas na época essa foi a que se melhor adaptou para lidar com os dados no formato relacional ao ponto de ser padronizada em 1986 pelo ANSI (American National Standards Institute), uma instituição formada por integrantes de empresas que sugere padrões para diversas setores da economia, inclusive a computação.

Uma vez que a linguagem foi padronizada, diversos produtos do mercado começaram a respeitar o padrão, isto é apresentar elementos da linguagem de acordo com a especificação padronizada. Além disso, os fabricantes também incluíram recursos exclusivos para tornar suas soluções competitivas no mercado. Dessa forma, é comum encontrar “dialetos” da SQL específicos para cada produto como, por exemplo, o T-SQL (Transact-SQL) utilizado no SQL Server ou o PL/SQL utilizado no Oracle.

A popularidade da linguagem SQL está diretamente atrelada aos produtos que a utilizam. De fato, devido a essa popularidade é segura afirmar que a linguagem SQL é o recurso computacional mais utilizado pelos profissionais da área técnica que manipulam dados. Essa afirmação é corroborada por diferentes fontes, tal como o site db-engines.com que tem como objetivo coletar e apresentar informações de uso de sistemas que lidam com o gerenciamento de dados. Esse site faz pesquisas periódicas para determinar a popularidade de diversos softwares que lidam com dados. A Figura 1 apresenta um gráfico de linha obtido do db-engines.com que mostra um ranking baseado no score interno que quantifica a popularidade dos sistemas ao longo do tempo.

Ranking de popularidade de sistemas de
armazenamento do site db-engines.org
Figura 1. Ranking de popularidade de sistemas de armazenamento do site db-engines.org.

Como é possível notar no gráfico, os três principais sistemas (Oracle, SQL Server e MySQL) são bancos de dados relacionais que empregam a linguagem SQL. Portanto, pode-se notar que mesmo com diversas outras abordagens e maneiras de lidar com dados, a SQL ainda é muito popular pelo fato dela ser a principal linguagem suportada nos bancos de dados mais utilizados.

Outra fonte importante que podemos utilizar para comprovar que a SQL é a linguagem mais utilizada para manipular dados é a pesquisa anual feita com desenvolvedores conduzida pelo site de perguntas e respostas Stack Overflow. Essa pesquisa é ...

Quer ler esse conteúdo completo? Tenha acesso completo