Inteligencia de negocios y big data para el mundo hispano parlante.

¡Subscríbase al boletín gratuito!


Inteligencia de Negocios en Español - Decideo.com





Opiniones de expertos

Una pequeña historia de las bases de datos relacionales y del lenguaje SQL


Damien POULAIN, CEA, el 10 Octubre 2013 | Leído 565 veces



Damien POULAIN, CEA
Damien POULAIN, CEA

La invención de David L. Childs

En 1968, el matemático Holandés David L. Childs trabaja para la Universidad de Michigan. El domina la teoría de los conjuntos del matemático Alemán Georg Cantor y se interesa en la informática, particularmente en los problemas de rendimiento de las estructuras de almacenamiento. En Agosto, él publica “ Feasibility of a set-theoretical data structure ” traducción al Español Viabilidad de una estructura de datos de configuración teórica, 34 páginas, 53 definiciones, 10 teoremas: un documento con mucha información y pesado. Ninguna referencia: la creación pura.
Childs afirma que podemos expresar cualquier pregunta con sólo tres funciones básicas: la selección, la relación y el agrupamiento.
Childs demuestra que es mucho más sencillo y rápido de usar las funciones de conjuntos para responder a preguntas como “Encontrar, dentro de una población determinada, el número de españoles cuya lengua materna no sea ¡el español!”.

Reducir la universalidad de cuestionar a tres funciones es fascinante.
El pensamiento es una utopía.
Demostrarlo es casi impensable.

Esta invención dio el origen de la aventura del SQL.

La invención de Edgar F. Codd

En 1965, el informático Edgar Frank Codd recibió su Ph.D. en ciencias de la computación de la Universidad de Michigan. ¿Se cruzó con Childs dentro de los pasillos? La historia no lo dice. En 1967, se incorpora al centro de investigación de IBM en San José, California. Mientras Childs publica sus trabajos, Codd trata de inventar un sistema más eficiente de almacenamiento que las bases de datos indexadas secuenciales y las bases de datos jerárquicas. El trabaja sobre una teoría de la disposición de los datos basados en las “relaciones”.

En 1970, sus trabajos llegan a un resultado y tiene una idea genial: Él piensa que, gracias a su almacenamiento de datos organizados en “relaciones”, la teoría de Childs puede tener lugar a una implementación de un lenguaje “universal”, que lo llamó “Universal Data Sublanguage”. Él publica entonces el famoso artículo A relational Model of Data for Large Shared Data Banks (Un Modelo Relacional de datos para Grandes Bancos de Datos Compartidos). A diferencia del artículo de Childs, este artículo tiene un gran impacto.

Extracto de la introducción
« Existing noninferential, formatted data systems provide users with tree-structured files or slightly more general network models of the data. In Section 1, inadequacies of these models are discussed. A model based on n-ary relations, a normal form for data base relations, and the concept of a universal data sublanguage are introduced ».
En tres frases, se resume: cómo pasar de una base de datos jerárquica a un modelo relacional asociado aún lenguaje universal.

Codd describe muy precisamente el modelo relacional, como describe muy poco el lenguaje universal. Y concluye:
« Many questions are raised and left unanswered. For example, only a few of the more important properties of the data sublanguage in Section 1.4 are mentioned. Neither the purely linguistic details of such a language nor the implementation problems are discussed »
Es como dejar la puerta abierta para la invención de un lenguaje relacional.

La invención de Donald D. Chamberlin

En 1974, esto sucede: dos informáticos de IBM, D.D. Chamberlin y R.F. Boyce publican Sequel: a structured english query language.
Las primeras palabras del futuro lenguaje SQL aparecen.
Chamberlin y Boyce se inspiran en los trabajos de Childs traduciendo las 3 funciones de conjuntos: “selección” por SELECT/WHERE, “relación” por FROM y “agrupamiento” por GROUP BY.
Ellos también toman otros dos conceptos de Childs: la subconsultas y la unión/intersección.

Tenga en cuenta que las nociones de actualización y de unión no están presentes. No es una coincidencia, Childs no las cubrió.
N.B: Chamberlin y Boyce no citaron a Childs dentro de sus referencias, solamente a Codd.
En ese momento, no son los únicos: leer el articulo de Ken North sobre Childs.

En 1975, un año más tarde, Chamberlin, consciente de las deficiencias de la primera versión, se asocia con J.N. Gray y I.L.Traiger y publica Views, authorization, and locking in a relational data base system (Vistas, autorización y bloqueo en un sistema de base de datos relacional).

Esta publicación es verdaderamente una innovación, porque trae todos los elementos del futuro lenguaje SQL: la creación de las palabras INSERT, UPDATE, DELETE, GRANT, REVOKE, VIEW. Los conceptos de cerradura y combinación interna también hacen su aparición. Esta invención permite la creación del primer motor de SQL.

En 1976, Chamberlin lo resume todo en un libro SEQUEL-2: A Unified Approach to Data Definition.

La invención de Oracle

En 1978, IBM tiene todas las cartas en la mano para crear la primera base de datos relacional: los diseñadores (Codd y Chamberlin), los ingenieros altamente motivados y un prototipo llamado System/R.

Pero IBM era entonces el líder mundial de un mercado extremadamente rentable: Los computadores mainframes.

Codd intenta convencer a IBM de invertir alrededor de System/R, sin ningún éxito.

La naturaleza teniendo un vacío, Larry Ellison, aprovechó la oportunidad y comercializa una base de datos relacional que es nombrada Oracle.
Se implementa el lenguaje Sequel. El acrónimo se simplifica y se vuelve Structured Query Language (pero se mantiene la pronunciación Sequel).

La buena noticia referente a los cambios: las primeras versiones de Oracle son rápidamente operacionales y los bloqueos funcionan.
La mala sorpresa concerniente a las lecturas: las combinaciones provocan productos cartesianos (pronosticados por el visionario Childs). Los tiempos de respuesta en una lectura de múltiples tablas son catastróficos.
Las primeras versiones de Oracle sabían escribir las líneas, pero no restituirlas.

Con urgencia, Oracle inventa el concepto de índice con el fin de resolver correctamente los productos cartesianos y trae las sintaxis no normalizadas “+=” y “=+” de combinaciones externas.

Epilogo

A comienzos de 1980, varias compañías crean bases de datos relacionales (IBM, Teradata, Informix, Sybase, …). Lea el articulo muy bien escrito “La genealogía de SGDBR”. Los motores SQL se imponen progresivamente hasta convertirse en un estándar de facto para la gestión de las bases de datos.

Las ventajas que hacen la diferencia hoy en día son la simplicidad de acceso a los datos:
En lectura, gracias al lenguaje SQL
En actualización, gracias a la gestión automática con bloqueos.
Cuarenta años después, ninguna nueva invención ha llegado a destronar el concepto y muchos años pasarán para hacerlo.

¿Quién dice que la informática está en constante cambio?

Artículo adaptado por Jimmy Hernandez




Nuevo comentario:
Facebook Twitter

Usted puede comentar o proporcionar más información a todos los artículos de este sitio. Los comentarios son libres y abiertos a todos. Sin embargo, nos reservamos el derecho a eliminar, sin previo aviso ni explicación, todo comentario que no cumpla con nuestras normas internas de funcionamiento, es decir, cualquier comentario difamatorio o sin relación con el tema del artículo. Así mismo, los comentarios anónimos son eliminados sistemáticamente si son demasiado negativos o muy positivos. Exprese sus opiniones, compártalas con los demás y asúmalas. Gracias de antemano. Igualmente, agradecemos tener en cuenta que los comentarios no sean enviados automáticamente a los redactores de cada artículo. Si usted desea realizar una pregunta al autor de un artículo, contáctelo directamente, no utilice los comentarios.


Twitter
Rss
LinkedIn
Google+
Facebook
Pinterest