Voltar para a lista de artigos Artigos
10 minutos de leitura

A História do SQL - Como Tudo Começou

Quem criou o SQL e por quê? Descubra neste artigo!

Você está aprendendo SQL? Ou você está prestes a dar o primeiro passo para trabalhar com bancos de dados? Grande decisão! De qualquer forma, vale a pena conhecer a história do SQL - de onde veio, quem o criou e por quê.

Aqui está uma breve história da SQL, começando com seu conceito fundacional: o banco de dados.

Ted Codd e o Modelo de Dados Relacionais

As primeiras bases de dados informatizadas surgiram no final dos anos 60. Esta era uma importante área de pesquisa na época. Muitos cientistas da computação estavam concentrados em melhorar a forma como as bases de dados funcionavam. Um deles era Edgar Frank (Ted) Codd, um cientista informático inglês empregado na IBM. Nos anos 40, ele participou do projeto Calculadora Eletrônica de Sequência Seletiva - o primeiro computador eletromecânico do mundo.

Mas o que o Codd é realmente famoso é por um artigo publicado em 1970 chamado A Relational Model of Data for Large Shared Data Banks (Um Modelo Relacional de Dados para Grandes Bancos de Dados Compartilhados); isto iniciou a era das bases de dados relacionais na ciência da computação. O Codd é, portanto, freqüentemente referido como o antepassado do SQL. Em 1981, ele recebeu o Prêmio Turing, a mais alta distinção na ciência da computação que é às vezes chamada de "Prêmio Nobel da computação".

Na época em que Codd escreveu seu artigo, as bases de dados hierárquicas e de rede eram dominantes. Eles também eram bastante inflexíveis. Para obter dados do banco de dados, era preciso essencialmente escrever um programa de computador: os dados não eram acessíveis a não programadores. Qualquer mudança no modelo exigia mudanças nos padrões de acesso aos dados - em outras palavras, os programas de acesso aos dados tinham basicamente que ser reescritos.

IBM

Em seu artigo, o Codd propôs uma idéia completamente nova: modelagem de dados com a noção matemática de relações. (Hoje, chamamos de tabelas.) O modelo de dados relacionais do Codd permitia mais flexibilidade do que modelos hierárquicos e de rede de dados. Novas relações poderiam ser acrescentadas sem modificar as relações existentes. Graças a suas idéias, o trabalho com bancos de dados se tornou muito mais fácil.

Sistema R

O modelo do Codd não teve sucesso imediato. A IBM não estava ansiosa para implementar suas sugestões. Na época, eles tinham o IMS, um banco de dados hierárquico muito bem sucedido. Eles não queriam minar suas receitas com o IMS, construindo um produto concorrente. (O IMS ainda hoje é desenvolvido, o que mostra o sucesso que teve.) Só em 1973 a IBM iniciou o Sistema R, um projeto de pesquisa para explorar as idéias do Codd para o modelo de dados relacionais. A Codd não trabalhou de perto com a equipe do Sistema R; é difícil saber porque ele foi retirado de um projeto baseado em seu próprio trabalho. Duas pessoas envolvidas no desenvolvimento do Sistema R, Don Chamberlin e Ray Boyce, estavam encarregados de criar sua linguagem de consulta.

Uma linguagem de consulta para bancos de dados relacionais

Participa do artigo do Codd

Participa do artigo do Codd

Em seu artigo seminal, o Codd propôs um conjunto de operações que poderiam ser utilizadas para extrair dados de relações. Pode-se pensar nestas operações como a primeira linguagem de consulta para bancos de dados relacionais. Claro, a sintaxe era completamente diferente da SQL que conhecemos hoje; o Codd usou notação matemática para esta linguagem. A maioria das operações propostas pelo Codd podem ser feitas no SQL de hoje, apenas com notações diferentes.

Na época, Don Chamberlin estava trabalhando em bancos de dados hierárquicos e havia estudado a linguagem para consultar esses bancos de dados. Ele compreendeu imediatamente o impacto do modelo de dados do Codd. Em 1995, ele lembrou:

"Para Ray e para mim, nossa exposição ao modelo de dados relacional no simpósio de pesquisa da Codd foi uma revelação". Pela primeira vez, pudemos ver como uma consulta que exigiria um programa complexo na linguagem DBTG poderia ser reduzida a algumas linhas simples usando uma das linguagens relacionais da Codd. Tornou-se um jogo para nós dois inventarmos consultas e desafiarmos um ao outro a expressá-las em várias linguagens de consulta". [1]

De fato, o Codd propôs duas linguagens diferentes para o modelo relacional: álgebra relacional (a base para esta linguagem estava em seu artigo original de 1970), e cálculo relacional (também conhecido como a linguagem Alfa). Ambas as línguas utilizavam notação matemática com quantificadores e vários operadores matemáticos. Você pode ver as idéias da álgebra relacional do Codd em SQL hoje.

Irv Traiger, que também trabalhou na IBM durante este tempo, acrescentou:

"Glenn Bacon, que tinha o Departamento de Sistemas, costumava se perguntar como Ted poderia justificar que todos fossem capazes de escrever esta linguagem que se baseava em cálculos matemáticos predicados, com quantificadores universais e quantificadores e variáveis existenciais e coisas realmente, realmente peludas". [2]
Árvore genealógica SQL

O cálculo relacional/alfa tornou-se a base para QUEL, a linguagem de consulta para Ingres (Interactive Graphics Retrieval System), uma antiga base de dados relacional desenvolvida por Michael Stonebraker na Universidade da Califórnia, Berkeley. Ingres evoluiu para muitas aplicações de banco de dados comerciais, tais como PostgreSQL.

Consulta

O Jogo de Consulta

Mesmo antes do início do projeto do Sistema R, Chamberlin e Boyce criaram uma linguagem que chamaram SQUARE (Especificando Consultas como Expressões Relacionais). Eles apreciaram o poder das idéias do Codd, o que lhes permitiu usar algumas linhas para expressar consultas complexas que levariam páginas em um banco de dados hierárquico. Entretanto, eles estavam convencidos de que sua linguagem era mais simples e mais acessível aos usuários regulares do que a álgebra relacional e o cálculo relacional do Codd.

"Ray e eu ficamos impressionados com a forma compacta como as linguagens do Codd poderiam representar consultas complexas. Entretanto, ao mesmo tempo, acreditamos que deveria ser possível projetar uma linguagem relacional que fosse mais acessível aos usuários sem treinamento formal em matemática ou programação de computadores". [1]

SQUARE foi a base para a nova linguagem de consulta do Sistema R. O SQUARE usava uma grande quantidade de assinaturas e algumas notações matemáticas. Era difícil digitar em um teclado. Chamberlin e Boyce decidiram adaptá-lo para que se assemelhasse à estrutura de uma frase em inglês e fosse mais fácil de digitar.

"Então começamos a dizer que vamos adaptar as idéias do SQUARE a uma abordagem de palavras-chave mais inglesa, o que é mais fácil de digitar porque foi baseado em estruturas inglesas. Chamamos isso de Structured English Query Language e usamos a sigla SEQUEL para isso". [2]

Duas coisas foram importantes para Chamberlin e Boyce no projeto da SEQUEL. Primeiro, eles queriam que ela fosse acessível a usuários regulares sem formação matemática ou de programação. O pessoal do System R até recrutou um grupo de estudantes para aprender a SEQUEL e ver se eles achavam a sintaxe fácil. Além disso, eles queriam que a linguagem contivesse modificação de dados e elementos de definição de dados, o que era algo muito novo na época.

"Ray e eu esperávamos projetar uma linguagem relacional baseada em conceitos que seriam familiares a uma população maior de usuários. Também esperávamos estender a linguagem para abranger atualizações de banco de dados e tarefas administrativas, como a criação de novas tabelas e visões, que tradicionalmente estavam fora do escopo de uma linguagem de consulta.
[...] O que pensávamos estar fazendo era tornar possível a interação de não-programadores com bancos de dados. Pensamos que isto iria abrir o acesso aos dados a toda uma nova classe de pessoas que poderiam fazer coisas que nunca foram possíveis antes, porque não sabiam como programar". [2]

Finalmente, Chamberlin e Boyce escreveram dois artigos sobre SEQUEL: um sobre DML (Data Manipulation Language, por exemplo, SELECT, INSERT, and UPDATE statements) e um sobre DDL (Data Definition Language, que é usado para criar e modificar a estrutura do banco de dados).

"Escrevemos dois artigos: um sobre SEQUEL/DML e outro sobre SEQUEL/DDL. Estávamos cooperando muito estreitamente sobre isto. Os autores do artigo DML foram Chamberlin e Boyce; os autores do artigo DDL foram Boyce e Chamberlin, sem nenhuma razão especial; nós apenas dividimos o artigo. Queríamos ir a Estocolmo naquele ano porque era o ano do Congresso da IFIP em Estocolmo. Eu tinha um bilhete para Estocolmo por causa de algum trabalho que tinha feito em Yorktown, então Ray submeteu o trabalho da DDL ao Congresso da IFIP em Estocolmo, e o trabalho da DML que submetemos ao SIGMOD. [...] Estes eram trabalhos gêmeos em nossa estimativa original. Nós os escrevemos juntos e os achamos de valor e impacto comparáveis. Mas o que aconteceu com eles foi bem diferente. O trabalho da DDL foi rejeitado pelo Congresso da IFIP; Ray não chegou a ir a Estocolmo". [2]

E foi assim que nasceu a SEQUEL. Mais tarde, a SEQUEL foi renomeada para SQL por causa de uma questão de marca registrada.

Infelizmente, Ray Boyce faleceu logo após lançar as bases para SQL; ele nunca chegou a ver o impacto que isso teria. Em 1974, cerca de um mês após apresentar um artigo da SEQUEL em uma conferência técnica em Ann Arbor, Michigan, ele morreu repentinamente de um aneurisma cerebral rompido. Ele tinha apenas 26 anos de idade.

Curiosamente, Donald Chamberlin não considerava o SQL como uma boa linguagem para a forma como era usado na época. Em 1995, ele disse:

"Quando Ray e eu estávamos projetando a Sequel em 1974, pensamos que o uso predominante da linguagem seria para consultas ad-hoc por planejadores e outros profissionais cujo domínio de especialidade não era principalmente o gerenciamento de bases de dados. Queríamos que a linguagem fosse suficientemente simples para que as pessoas comuns pudessem "caminhar e usá-la" com um mínimo de treinamento. Ao longo dos anos, fiquei surpreso ao ver que o SQL é mais freqüentemente utilizado por especialistas treinados em banco de dados para implementar transações repetitivas, tais como depósitos bancários, compras com cartão de crédito e leilões on-line. Estou satisfeito em ver a linguagem utilizada em uma variedade de ambientes, mesmo que ela não tenha provado ser tão acessível a usuários sem treinamento como Ray e eu esperávamos originalmente". [1]

SQL se torna padrão na indústria

Ao longo dos anos, o SQL se tornou um padrão da indústria. Por enquanto, basta dizer que o SQL se tornou a linguagem básica para trabalhar com bancos de dados. Ela tem sido reconhecida por todas as organizações importantes, e gigantes do mercado como Google e Facebook a utilizam diariamente para muitos processos.

Histórico SQL

SQL e bancos de dados são atualmente um dos ramos de crescimento mais rápido da indústria de TI. Acompanhar esta tendência pode dar frutos. Se você quiser começar a aprender SQL do zero, experimente nosso SQL para Iniciantes curso. Se você já conhece algum SQL e quer aprender como analisar melhor o comportamento de seus clientes ou as tendências de receita, recomendo a trilha SQL Reporting. E se você conhece SQL e está preso a um problema específico, confira nosso SQL Cookbook, que contém muitos scripts SQL já prontos. Esteja à vontade para copiá-los para seu projeto.

Não importa o que você escolha da extensa oferta LearnSQL.com.br, agora é um bom momento para aprender SQL. É uma linguagem que tem 40 anos de idade, mas não vai a lugar algum. O conhecimento de SQL é uma grande habilidade que será útil em seu trabalho diário e dará um impulso a sua carreira.

Fontes:

1. Chamberlin, Donald D. "Early History of SQL" Accessed 11 Nov 2020 from https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6359709

2. McJones et al. "The 1995 SQL Reunion: People, Projects and Politics" Accessed 11 Nov 2020 from http://www.scs.stanford.edu/~dbg/readings/SRC-1997-018.pdf