Volver a la lista de artículos Artículos
Lectura de 10 minutos

La historia de SQL - Cómo empezó todo

¿Quién creó SQL y por qué? Descúbralo en este artículo.

¿Estás aprendiendo SQL? ¿O está a punto de dar el primer paso para trabajar con bases de datos? ¡Gran decisión! En cualquier caso, merece la pena conocer la historia de SQL: de dónde viene, a quién se le ocurrió y por qué.

He aquí una breve historia de SQL, empezando por su concepto fundacional: la base de datos.

Ted Codd y el modelo de datos relacional

Las primeras bases de datos informáticas aparecieron a finales de la década de 1960. Se trataba de un área de investigación importante en aquella época. Muchos informáticos se centraron en mejorar el funcionamiento de las bases de datos. Uno de ellos fue Edgar Frank (Ted) Codd, un informático inglés empleado en IBM. En los años 40, participó en el proyecto de la Calculadora Electrónica de Secuencia Selectiva, el primer ordenador electromecánico del mundo.

Pero por lo que Codd es realmente famoso es por un artículo publicado en 1970 titulado A Relational Model of Data for Large Shared Data Banks (Un modelo relacional de datos para grandes bancos de datos compartidos); con él se inició la era de las bases de datos relacionales en informática. Por ello, a menudo se hace referencia a Codd como el precursor de SQL. En 1981, recibió el Premio Turing, la más alta distinción en ciencias de la computación que a veces se llama el "Premio Nobel de la informática".

En la época en que Codd escribió su artículo, las bases de datos jerárquicas y en red eran las dominantes. También eran bastante inflexibles. Para obtener datos de la base de datos, había que escribir un programa informático: los datos no eran accesibles para los no programadores. Cualquier cambio en el modelo requería cambios en los patrones de acceso a los datos, es decir, había que reescribir básicamente los programas de acceso a los datos.

IBM

En su artículo, Codd propuso una idea completamente nueva: modelar los datos con la noción matemática de relaciones. (El modelo de datos relacional de Codd permitía más flexibilidad que los modelos de datos jerárquicos y de red. Se podían añadir nuevas relaciones sin modificar las existentes. Gracias a sus ideas, trabajar con bases de datos es ahora mucho más fácil.

Sistema R

El modelo de Codd no tuvo un éxito inmediato. IBM no estaba dispuesta a aplicar sus sugerencias. En ese momento, tenían IMS, una base de datos jerárquica de gran éxito. No querían socavar sus ingresos de IMS construyendo un producto de la competencia. (IMS sigue desarrollándose hoy en día, lo que demuestra el éxito que tuvo). No fue hasta 1973 cuando IBM inició System R, un proyecto de investigación para explorar las ideas de Codd sobre el modelo de datos relacional. Codd no trabajó estrechamente con el equipo de System R; es difícil saber por qué se le apartó de un proyecto basado en su propio trabajo. Dos personas implicadas en el desarrollo de System R, Don Chamberlin y Ray Boyce, se encargaron de crear su lenguaje de consulta.

Un lenguaje de consulta para bases de datos relacionales

Uniones en el artículo de Codd

Uniones en el artículo de Codd

En su artículo seminal, Codd propuso un conjunto de operaciones que podían utilizarse para extraer datos de las relaciones. Se puede pensar en estas operaciones como el primer lenguaje de consulta para bases de datos relacionales. Por supuesto, la sintaxis era completamente diferente del SQL que conocemos hoy en día; Codd utilizaba una notación matemática para este lenguaje. La mayoría de las operaciones que Codd propuso pueden realizarse en el SQL actual, sólo que con una notación diferente.

Por aquel entonces, Don Chamberlin trabajaba en bases de datos jerárquicas y había estudiado el lenguaje para consultar estas bases de datos. Enseguida comprendió el impacto del modelo de datos de Codd. En 1995, recordaba:

"Para Ray y para mí, nuestra exposición al modelo de datos relacional en el simposio de investigación de Codd fue una revelación. Por primera vez pudimos ver cómo una consulta que requeriría un complejo programa en el lenguaje DBTG podía reducirse a unas simples líneas utilizando uno de los lenguajes relacionales de Codd. Se convirtió en un juego para los dos inventar consultas y desafiarnos a expresarlas en varios lenguajes de consulta". [1]

De hecho, Codd propuso dos lenguajes diferentes para el modelo relacional: el álgebra relacional (la base de este lenguaje estaba en su artículo original de 1970), y el cálculo relacional (también conocido como el lenguaje Alpha). Ambos lenguajes utilizaban una notación matemática con cuantificadores y diversos operadores matemáticos. Hoy en día se pueden ver ideas del álgebra relacional de Codd en SQL.

Irv Traiger, que también trabajó en IBM durante esta época, añadió:

"Glenn Bacon, que tenía el Departamento de Sistemas, solía preguntarse cómo podía Ted justificar que todo el mundo fuera capaz de escribir este lenguaje que se basaba en el cálculo de predicados matemáticos, con cuantificadores universales y cuantificadores existenciales y variables y cosas muy, muy peliagudas." [2]
Árbol genealógico de SQL

El cálculo relacional/Alpha se convirtió en la base de QUEL, el lenguaje de consulta de Ingres (Interactive Graphics Retrieval System), una de las primeras bases de datos relacionales desarrollada por Michael Stonebraker en la Universidad de California, Berkeley. Ingres ha evolucionado hasta convertirse en muchas aplicaciones comerciales de bases de datos, como PostgreSQL.

Consulta

El juego de las consultas

Incluso antes de que se iniciara el proyecto System R, Chamberlin y Boyce idearon un lenguaje que llamaron SQUARE (Specifying Queries as Relational Expressions). Apreciaban la potencia de las ideas de Codd, que les permitía utilizar unas pocas líneas para expresar consultas complejas que ocuparían páginas en una base de datos jerárquica. Sin embargo, estaban convencidos de que su lenguaje era más sencillo y accesible para los usuarios habituales que el álgebra relacional y el cálculo relacional de Codd.

"A Ray y a mí nos impresionó la compacidad con la que los lenguajes de Codd podían representar consultas complejas. Sin embargo, al mismo tiempo, creíamos que debería ser posible diseñar un lenguaje relacional que fuera más accesible para los usuarios sin formación formal en matemáticas o programación informática." [1]

SQUARE fue la base del nuevo lenguaje de consulta de System R. SQUARE utilizaba muchos subíndices y alguna notación matemática. Era difícil de escribir en un teclado. Chamberlin y Boyce decidieron adaptarlo para que se pareciera a la estructura de una frase en inglés y fuera más fácil de escribir.

"Así que empezamos a decir que íbamos a adaptar las ideas de SQUARE a un enfoque de palabras clave más inglés, más fácil de teclear porque se basaba en estructuras inglesas. Lo llamamos Structured English Query Language (Lenguaje de Consulta Estructurado en Inglés) y utilizamos el acrónimo SEQUEL para ello". [2]

Dos cosas eran importantes para Chamberlin y Boyce en el diseño de SEQUEL. En primer lugar, querían que fuera accesible para los usuarios habituales sin formación matemática o de programación. El personal del Sistema R incluso reclutó a un grupo de estudiantes para que aprendieran SEQUEL y comprobaran si la sintaxis les resultaba fácil. Además, querían que el lenguaje contuviera elementos de modificación y definición de datos, lo cual era algo muy novedoso en ese momento.

"Ray y yo esperábamos diseñar un lenguaje relacional basado en conceptos que fueran familiares para una población más amplia de usuarios. También esperábamos ampliar el lenguaje para abarcar las actualizaciones de la base de datos y las tareas administrativas, como la creación de nuevas tablas y vistas, que tradicionalmente habían quedado fuera del alcance de un lenguaje de consulta.
[...] Pensamos que estábamos haciendo posible que los no programadores interactuaran con las bases de datos. Pensamos que esto iba a abrir el acceso a los datos a toda una nueva clase de personas que podrían hacer cosas que antes no eran posibles porque no sabían programar." [2]

Finalmente, Chamberlin y Boyce escribieron dos artículos sobre SEQUEL: uno sobre DML (Lenguaje de Manipulación de Datos, por ejemplo, sentencias SELECT, INSERT y UPDATE) y otro sobre DDL (Lenguaje de Definición de Datos, que se utiliza para crear y modificar la estructura de la base de datos).

"Escribimos dos artículos: uno sobre SEQUEL/DML y otro sobre SEQUEL/DDL. Colaboramos muy estrechamente en esto. Los autores del artículo sobre DML fueron Chamberlin y Boyce; los autores del artículo sobre DDL fueron Boyce y Chamberlin, sin ninguna razón especial; simplemente lo dividimos. Ese año queríamos ir a Estocolmo porque era el año del Congreso de la IFIP en Estocolmo. Yo tenía un billete para Estocolmo por un trabajo que había hecho en Yorktown, así que Ray presentó la ponencia sobre el DDL en el Congreso de la IFIP en Estocolmo, y la ponencia sobre el DML la presentamos en SIGMOD. [...] Fueron documentos gemelos en nuestra estimación original. Los escribimos juntos y pensamos que tenían un valor y un impacto comparables. Pero lo que ocurrió con ellos fue muy diferente. El documento DDL fue rechazado por el Congreso de la IFIP; Ray no pudo ir a Estocolmo". [2]

Y así nació SEQUEL. Más tarde, SEQUEL pasó a llamarse SQL por una cuestión de marca.

Por desgracia, Ray Boyce falleció poco después de sentar las bases de SQL; nunca llegó a ver el impacto que tendría. En 1974, aproximadamente un mes después de presentar un artículo sobre SEQUEL en una conferencia técnica en Ann Arbor, Michigan, murió repentinamente de un aneurisma cerebral. Sólo tenía 26 años.

Curiosamente, Donald Chamberlin no consideraba que SQL fuera un buen lenguaje para el uso que se le daba en aquella época. En 1995 dijo:

"Cuando Ray y yo estábamos diseñando Sequel en 1974, pensamos que el uso predominante del lenguaje sería para consultas ad-hoc por parte de planificadores y otros profesionales cuyo dominio de experiencia no era principalmente la gestión de bases de datos. Queríamos que el lenguaje fuera lo suficientemente sencillo como para que la gente corriente pudiera "acercarse y utilizarlo" con un mínimo de formación. A lo largo de los años, me ha sorprendido ver que SQL es utilizado con más frecuencia por especialistas en bases de datos con formación para realizar transacciones repetitivas como depósitos bancarios, compras con tarjeta de crédito y subastas en línea. Me complace ver que el lenguaje se utiliza en diversos entornos, aunque no haya resultado tan accesible para los usuarios sin formación como Ray y yo esperábamos en un principio." [1]

SQL se convierte en estándar del sector

Con los años, SQL se ha convertido en un estándar de la industria. Por ahora, basta con decir que SQL se ha convertido en el lenguaje básico para trabajar con bases de datos. Ha sido reconocido por todas las organizaciones importantes, y gigantes del mercado como Google y Facebook lo utilizan a diario para muchos procesos.

Historia de SQL

El SQL y las bases de datos son actualmente una de las ramas de la industria informática que más rápido está creciendo. Ponerse al día con esta tendencia puede ser rentable. Si quieres empezar a aprender SQL desde cero, prueba nuestro SQL para principiantes curso. Si ya sabes algo de SQL y quieres aprender a analizar mejor el comportamiento de tus clientes o las tendencias de los ingresos, te recomiendo el curso de SQL Reporting. Y si sabes SQL y estás atascado en un problema específico, echa un vistazo a nuestro SQL Cookbook, que contiene muchos scripts SQL listos para usar. No dudes en copiarlos en tu proyecto.

Independientemente de lo que elijas de la amplia oferta de LearnSQL.es, ahora es un buen momento para aprender SQL. Es un lenguaje que tiene 40 años, pero no va a ir a ninguna parte. El conocimiento de SQL es una gran habilidad que te será útil en tu trabajo diario y dará un impulso a tu carrera.

Fuentes:

1. Chamberlin, Donald D. "Early History of SQL" Consultado el 11 de noviembre de 2020 en https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6359709

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