17
SQL Structured Query Language O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Embed Size (px)

DESCRIPTION

SQL - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação apresenta um estudo sobre os autores e a história da linguagem SQL, além de apresentar trechos da entrevista concedida por Don Chamberlin para o livro Mastermind Programming, lançado pela editora O'Reilly em 2009.

Citation preview

Page 1: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

SQLStructured Query

LanguageO que motivou Donald Chamberlin e Raymond Boyce criarem a

linguagem estruturada que revolucionou o mundo da informação

Page 2: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Donald ‘Don’ Chamberlin

Nascido em 1944 em San Jose, Califórnia

1971 - Ph.D. em Engenharia Elétrica na Stanford University

Eleito para a Academia Nacional de Engenharia e recebeu o prêmio de inovação ACM SIGMOD em 1997

Prêmio Edgar F. Codd em 2003

Doutor Honorário pela Universidade de Zurique em 2005

Foi um dos principais gerentes do projeto “System R” da IBM, e participou da criação das linguagens SQL e XQuery.

Page 3: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Dada uma grande coleção de dados estruturados, como você provê um jeito eficiente de obter, recuperar e atualizar informações quando você não sabe que tipo de operações as pessoas irão precisar? Esta questão foi respondida por Ted Codd através do Modelo Relacional,

em uma palestra no IBM´s Watson Research Center, Nova York em junho de 72

Princípio dos anos 1970 - Bancos de dados integrados no ambiente corporativo começavam a ser amplamente implementados.

Don Chamberlin e Ray Boyce estavam na plateia e buscavam avidamente entender como solucionar os problemas conceituais dos bancos de dados

A ideia de modelo relacional começou a ganhar peso com o desenvolvimento do sistema R, da IBM em 1973

Page 4: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Desafios propostos para a nova linguagem vencer

Linguagem que fosse baseada em inglês, de fácil digitação e que usasse palavras comuns do idioma

Baseada nos conceitos familiares de tabelas com linhas e colunas

Mais declarativa e menos procedural

Incluísse conceitos de alto nível como “agrupar”, que não era facilmente expressos em outras linguagens

Pegar todo o potencial do conceito relacional de Ted Codd e deixando de lado conceitos matemáticos complexos e terminologias estranhas como quantificadores universais, operadores de divisão relacional etc.

Page 5: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Desafios propostos para a nova linguagem vencer

Funcionalidades adicionais além de consulta: atualizar, inserir, apagar

Controle de dados, criação de novas tabelas e views nas mãos dos usuários

Definição de gatilhos e procedimentos

Unir aspectos administrativos e de manutenção de dados mantendo integridade da plataforma

Sem preocupações com retrocompatibilidade

SEQUEL (Structured English Query Language), 1974 ACM SIGFITED Conference

Page 6: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Ray Boyce falece em consequência de aneurisma cerebral no mesmo ano.

Page 7: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Da IBM para o mundo

Fase de pesquisa na IBM com SQL encerrou-se em 1979, com o fim do projeto do Sistema R

Responsabilidade sobre a linguagem foi para a comunidade de desenvolvedores que converteu o projeto em diversos produtos comerciais da IBM

1979, Relational Software Inc. lança o primeiro produto comercial baseado em SQL, no tempo uma pequena empresa, que hoje adota o nome do produto lançado nesta data: ORACLE

1986 o ANSI (American National Standard Institute) lança a especificação da SQL, promovendo compatibilidade entre diversas plataformas e aplicações que utilizam a linguagem, que se tornou ISSO em 1987.

Novas versões da especificação publicadas pela ISSO em 1989, 1992, 1999, 2003 e 2006

Page 8: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Entrevista com Donald ‘Don’ Chamberlin

Os próximos slides são trechos da entrevista concedida por Don Chamberlin para o livro “Mastermind of Programming” publicado pela O’Reilly em 2009 e organizado por Federico Biancuzzi e Shane Warden.

Don falou sobre a linguagem SQL e os conceitos que nortearam a criação da mesma, além de discorrer sobre o cenário das linguagens de programação nos idos dos anos 1970 e 1980.

Page 9: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Adin Falkoff trabalhou na APL com Ken Iverson em um trabalho similar ao SQL. Ambas linguagens surgiram a partir da expressão de uma definição rigorosa de um modelo. Formalismos como a notação de Iverson ou o modelo relacional de Codd ajudam a criar uma linguagem de programação de sucesso?

Eu acho que o modelo relacional foi decisivo na criação da linguagem SQL. Acredito que qualquer linguagem computacional com resultados determinísticos precisam de um conjunto de objetos ou operadores bem definidos, que podem ser chamados de modelo de dados formais. Acho que é a fundação da programação determinística.

Page 10: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Se eu fosse criar uma nova linguagem, você recomendaria que eu começasse de um modelo rigoroso de dados, ou isso é algo que você pode implantar na linguagem enquanto ela vai crescendo?

Em princípio, acho que pode ser feito de ambas as formas. Mas nem sempre você terá a flexibilidade de criar o conceito de um novo modelo de dados enquanto define uma nova linguagem. Por exemplo: os caras que criaram a XQuery não inventaram o XML, eles trabalharam em cima do modelo de dados que estava sendo implementado pelo XML Schema e por outros padrões da W3C.

Page 11: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Uma das decisões iniciais do projeto de desenvolvimento da SQL era que esta devia ser declarativa e não procedural, qual os principais critérios para esta escolha?

Manutenção de bancos de dados consistentes em ambiente de atualização concorrente foi uma das mais importantes questões pesquisadas no projeto do sistema R dentro da IBM.

(...) Acesso concorrente a dados compartilhados é refletido em SQL, principalmente, como o conceito de transações e degraus de isolamento, (isolamento é a letra “I” das propriedades ACID). Degraus de isolamento permite que desenvolvedores de aplicações controlem o tráfego entre usuários protegidos e os outros e amplia consideravelmente o número de usuários que podem ser suportados concorrentemente.

Page 12: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Que lições sobre invenção, ou mesmo desenvolvimento, e adoção de sua linguagem deixa para as pessoas que desenvolvem linguagens de programação nos dias de hoje e no futuro próximo?

Acho que a história da SQL ilustra a importância de ter um conjunto inicial de princípios que guiam o processo de desenvolvimento da linguagem. Eu fiz uma lista de princípios que eu acredito serem importantes no desenvolvimento de uma linguagem de computador. Não digo que todos esses princípios foram bem seguidos no desenvolvimento de SQL, de fato, algumas pessoas podem ver que alguns deles representam áreas deficientes na concepção original da linguagem SQL: (...) fechamento, plenitude, ortogonalidade, consistência, simplicidade, extensibilidade, abstração, possibilidade de otimização e resiliência.

Page 13: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Hoje existe uma enxurrada de ataques de injeção de SQL contra serviços na web que não filtram corretamente a entrada antes de inclui nas consultas às suas bases de dados. Alguma ideia?

Ataques de injeção de SQL é um bom exemplo de alguma coisa que nunca sonhamos nos primeiros dias. Nós não antecipamos que as consultas poderiam ser construídas a partir de entradas de um usuário utilizando um navegador na internet. Eu acho que a lição aqui é que software deve sempre ter o cuidado de olhar o que o usuário está inserindo antes de processar isso.

Page 14: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Sistemas escritos em C hoje, geralmente são em algumas ordens de magnitude maiores dos que eram escritos em C nos anos 1970, mas os conjuntos de dados são ainda muito, muito maiores. Um punhado de linhas de SQL pode ainda operar com um conjunto de dados que cresce tanto assim? Isso significa que SQL pode escalar com dados muito melhor eu outras linguagens. Isso é verdade? Se sim, por quê?

Talvez isso demonstre uma vantagem adicional das linguagens declarativas, na qual elas estão mais suscetíveis ao processamento paralelo que linguagens procedurais. Se você está realizando operação sobre um grande conjunto de dados e isso é descrito de um modo não-procedural, o sistema terá mais oportunidade de dividir o trabalho para os diversos processadores. O modelo de dados relacional e o alto nível de abstração que isto suporta, tem ajudado muito neste tipo de escalação. SQL, como uma linguagem declarativa, prover oportunidades para compiladores tirarem vantagens da oportunidade de paralelização implícita.

Page 15: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Você acha que XML irá afetar o jeito como nós utilizamos os motores de busca no futuro?

Acredito que isto seja possível. Motores de busca já exploram os tipos de metadados que são incluídos em tags HTML como hiperlinks. Você sabe, XML é uma linguagem de marcação mais extensível que HTML. Como nós estamos começando a ver mais padrões baseados em XML para marcar documentos especializados como documentos médicos e comerciais, acredito que os motores de busca vão aprender a tirar vantagem da informação semântica nestas marcações.

Page 16: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Você participou na padronização de duas linguagens de consulta, SQL e XQuery. O que você aprendeu destas experiências sobre o processo de padronização?

Primeiramente eu aprendi que padrões tem um grande valor em prover uma definição formal da linguagem, tem foco no feedback do usuário, e um mecanismo de evolução controlada da linguagem para satisfazer as requisições de mudança. Os processos de padronização traz consigo pessoas de diferente pontos de vista e conhecimentos. A colaboração resultante é notoriamente lenta, mas eu acredito que isto tende a produzir uma definição relativamente mais robusta da linguagem.

Page 17: Sql - O que motivou Donald Chamberlin e Raymond Boyce criarem a linguagem estruturada que revolucionou o mundo da informação

Como você define sucesso em seu campo de atuação?

Esta é uma maravilhosa pergunta. Eu definiria sucesso em pesquisa como tendo o último impacto na tecnologia. Se nós desenvolvemos teorias ou interfaces ou métodos que são largamente adotadas e sobreviver ao teste do tempo, então acho que podemos dizer que nossa pesquisa tem um certo valor.

Um dos melhores exemplos disto é o trabalho de Ted Codd. Ted trouxe ideias que eram suficientemente simples para as pessoas de sua época entenderem, e poderosas o suficiente para 40 anos depois ainda dominar a indústria de gerenciamento de informação. Não são muitos de nós que podem aspirar ter esse nível de sucesso, mas é como eu definiria um resultado ideal de um projeto de pesquisa.