SQL ou Linguagem de Consulta Estruturada
SQL (Structured Query Language) é uma linguagem de programação padronizada usada para gerenciar bancos de dados relacionais e executar várias operações nas informações que eles contêm. Criado inicialmente na década de 1970, o SQL é comumente usado não apenas por administradores de banco de dados, mas também por desenvolvedores que escrevem scripts de integração de dados e por analistas de dados que desejam configurar e executar consultas analíticas.
Os usos de SQL incluem a modificação das estruturas de tabelas e índices das bases de dados; inclusão, atualização e exclusão de linhas de dados; e a recuperação de subconjuntos de informações de um banco de dados para processamento de transações e aplicações analíticos. As consultas e outras operações SQL assumem a forma de comandos escritos no formato de instruções: as instruções SQL mais comumente usadas são selecionar, adicionar, inserir, atualizar, excluir, criar, alterar e “truncate”.
O SQL tornou-se a linguagem de programação padrão de fato para bancos de dados relacionais após seu surgimento no final dos anos 1970 e início dos anos 1980. Também conhecidos como bancos de dados SQL, os sistemas relacionais consistem em um conjunto de tabelas que contêm dados em linhas e colunas. Cada coluna de uma tabela corresponde a uma categoria de dados - como, por exemplo, o nome ou endereço do cliente - enquanto cada linha contém um valor de dados para a coluna que cruza com ela.
Padrão SQL e extensões próprias
O American National Standards Institute (ANSI) adotou o padrão SQL oficial em 1986 e, posteriormente, a Organização Internacional de Padronização, conhecida como ISO, em 1987. Desde então, os dois organismos de desenvolvimento de padrões lançaram mais de meia dúzia de atualizações conjuntas do padrão; no momento em que este artigo foi escrito, a versão mais recente era SQL: 2011, aprovada no mesmo ano.
As organizações podem usar sistemas proprietários e sistemas de gerenciamento de banco de dados relacional de código aberto baseados em SQL. Entre eles estão:
- Microsoft SQL Server
- Base de datos Oracle
- IBM DB2
- SAP HANA
- SAP Adaptive Server
- MySQL (ahora propiedad de Oracle)
- PostgreSQL
No entanto, muitos desses produtos de banco de dados suportam SQL com suas extensões próprias da linguagem padrão para programação procedural e outras funções. A Microsoft, por exemplo, oferece um conjunto de extensões chamado Transact-SQL (T-SQL), enquanto a versão estendida do padrão Oracle é PL/SQL. Como resultado, as inúmeras variantes de SQL que os fornecedores oferecem não são totalmente compatíveis entre si.
Comandos SQL e sintaxe
Os comandos SQL são divididos em vários tipos diferentes, como instruções de Linguagem de Manipulação de Dados (DML) e Linguagem de Definição de Dados (DDL), controles das transações e medidas de segurança. O vocabulário DML é usado para recuperar e manipular dados, enquanto as instruções DDL são usadas para definir e modificar as estruturas do banco de dados. Os controles de transação ajudam a gerenciar o processamento de transações, garantindo que elas sejam concluídas ou revertidas se ocorrerem erros ou problemas. As instruções de segurança são usadas para controlar o acesso ao banco de dados, bem como para criar funções e permissões de usuário.
A sintaxe SQL é o formato de codificação usado para escrever as instruções. A Figura 1 mostra um exemplo de uma instrução DDL escrita em Microsoft T-SQL para modificar uma tabela de banco de dados no SQL Server 2016:
Ferramentas SQL-on-Hadoop
Os motores de consulta SQL-on-Hadoop são um ramo mais recente do SQL que permite que as organizações com arquiteturas de big data construídas em torno de sistemas Hadoop tirem proveito deles, em vez de ter que usar linguagens mais complexas e menos familiares; em particular, o ambiente de programação MapReduce para o desenvolvimento de aplicativos de processamento em lote.
Existem mais de uma dúzia de ferramentas SQL-on-Hadoop disponíveis por meio de provedores de distribuição Hadoop e outros fornecedores; muitos deles são softwares de código aberto ou versões comerciais dessas tecnologias. Além disso, o mecanismo de processamento Apache Spark, que geralmente é usado em conjunto com o Hadoop, inclui um módulo Spark SQL que também oferece suporte à programação baseada em SQL.
Em geral, o SQL-on-Hadoop ainda é uma tecnologia emergente e a maioria das ferramentas disponíveis não oferece suporte a todas as funcionalidades que as implementações relacionais de SQL oferecem. Mas estão se tornando um componente comum das implantações do Hadoop à medida que as empresas procuram desenvolvedores e analistas de dados com experiência em SQL para participar da programação de aplicativos de big data.