SQL (Structured Query Language)
Um DBMS típico permite aos usuários armazenar, acessar e modificar dados de forma organizada e eficiente. Originalmente, os usuários de DBMSs eram programadores. Para o acesso aos dados armazenados, era necessário escrever um programa em uma linguagem de programação como COBOL. Embora esses programas tenham sido frequentemente escritos para apresentar uma interface amigável a um usuário não técnico, o acesso aos dados em si exigia os serviços de um programador experiente. O acesso casual aos dados não era prático.
Os usuários não estavam totalmente satisfeitos com esta situação. Embora pudessem acessar dados, muitas vezes era necessário convencer um programador de DBMS a escrever um software especial. Por exemplo, se um departamento de vendas quisesse ver o total de vendas no mês anterior de cada um dos vendedores e desejasse que essas informações fossem classificadas de acordo com o tempo de serviço de cada vendedor na empresa, haveria duas opções: ou já existia um programa que permitia que as informações fossem acessadas exatamente assim ou o departamento teria que pedir a um programador para escrever esse programa. Em muitos casos, isso dava muito trabalho para compensar o esforço, e era sempre uma solução cara para consultas únicas ou ad hoc. À medida que mais e mais usuários queriam acesso fácil, o problema ficava cada vez maior.
Para permitir que os usuários acessassem os dados de forma ad hoc, era necessário dar a eles uma linguagem para expressar suas solicitações. Uma única solicitação a um banco de dados é definida como uma consulta; tal linguagem é chamada de linguagem de consulta. Muitas linguagens de consulta foram desenvolvidas para esse propósito, mas uma delas se tornou a mais popular: a linguagem SQL, inventada na IBM na década de 1970. É mais comumente conhecido por sua sigla, SQL e é pronunciado como "ess-cue-ell" e como "sequel". O SQL tornou-se um padrão ANSI em 1986 e um padrão ISO em 1987. Hoje, é usado em muitos sistemas de gerenciamento de banco de dados.
Embora o SQL resolvesse as necessidades ad hoc dos usuários, a necessidade de acesso aos dados por programas de computador não desapareceu. Na verdade, a maior parte do acesso a bancos de dados ainda era (e é) programático, na forma de relatórios e análises estatísticas agendados regularmente, programas de entrada de dados, como os usados para entrada de solicitações e programas de manipulação de dados, como aqueles usados para reconciliar contas e gerar ordens de trabalho.
Esses programas também usam SQL, usando uma das três técnicas a seguir:
SQL incorporado, no qual instruções SQL são incorporadas em uma linguagem de host, como C ou COBOL.
Módulos SQL, nos quais instruções SQL são compiladas no DBMS e chamadas de uma linguagem de host.
Interface em nível de chamada, ou CLI, que consiste em funções chamadas para passar instruções SQL para o DBMS e recuperar resultados do DBMS.
Observação
É um acidente histórico que o termo interface em nível de chamada seja usado em vez de API (interface de programação de aplicativo), outro termo para o mesmo item. No mundo dos bancos de dados, a API é usada para descrever o próprio SQL: SQL é a API de um DBMS.
Dessas opções, o SQL incorporado é o mais comumente usado, embora a maioria dos principais DBMSs dê suporte a CLIs proprietárias.
Esta seção contém os tópicos a seguir.