| Artículos | 03 JUN 1994

Situación actual de los estándares SQL3 y SQL/MM

Un repaso a la evolución del lenguaje SQL
Mario G. Piattini Velthuis, Dpto. Formación e I+D, Cronos Ibérica, S.A.

El lenguaje SQL se ha impuesto como estándar, tanto de iure como de facto, y viene siendo objeto, desde hace varios años, de un intenso proceso de normalización. En este artículo repasaremos brevemente la evolución de este lenguaje y presentaremos los trabajos que se están llevando a cabo sobre el futuro estándar conocido con el nombre de SQL3.

El modelo relacional surge a finales de los años 60 como resultado de las investigaciones de E.F. Codd en los laboratorios de IBM en San José (California); los trabajos de Codd dieron lugar a una serie de estudios teóricos y prototipos que se extienden a partir de 1970.

El lenguaje SQL surge originariamente con el nombre de SEQUEL (Structured English QUEry Language) instrumentado en un prototipo de IBM, el SEQUEL-XRM, durante los años 1974-75. Este prototipo evolucionó durante los años 1976-77, pasándose a denominar su lenguaje SEQUEL/2, y cambiando posteriormente este nombre por SQL, debido a motivos legales. Poco después, el SISTEMA R de IBM instrumentó un subconjunto de este lenguaje.

En 1979 aparece el primer SGBDR comercial basado en SQL - ORACLE-, posteriormente van surgiendo otros productos basados en SQL como son el SQL/DS, DB2, DG/SQL, SYBASE, INTERBASE, INFORMIX, UNIFY, etc. E incluso otros productos que no poseían el SQL como lenguaje base -v.g. INGRES, DATACOM, ADABAS, SUPRA, IDMS/R- ofreceN interfaces SQL. Por lo que este lenguaje se convierte en un estándar de facto, aunque con múltiples variantes según los distintos fabricantes.

En 1982 el Comité de bases de datos X3H2 de ANSI, presenta un lenguaje relacional estándar basado principalmente en el SQL propio de los productos IBM; en 1986 este organismo aprueba el lenguaje como norma pasando a denominarse SQL/ANS, que también es aprobado, al año siguiente, como norma ISO -ISO (1987)-. En esta norma se especifican dos niveles (I y II) a cumplir, siendo el nivel I un subconjunto de las funcionalidades proporcionadas por el nivel II.

En 1989 se publica una nueva versión del estándar - ISO(1989)-, conocida como Addendum, que añade cierta integridad referencial, que se denomina integridad referencial básica, ya que sólo permite definir la opción de modificación y borrado restringidos y no proporciona cambios en cascada.

Por otra parte, ya que la norma ISO de 1989 no estandariza las definiciones para SQL embebido en lenguajes de programación -que sólo figuraban en apéndices recomendados- ANSI define, ese mismo año, un estándar para el lenguaje SQL embebido -ANSI(1989)-.

En este mismo año Apple Computer libera el Data Access Language (DAL) para sus ordenadores, (DAL es un dialecto del SQL que soporta varios gestores de bases de datos).

En junio de 1990, IBM anuncia su estándar DRDA (Distributed Relational Database Access) como parte de su arquitectura SAA (System Application Architect).

En abril de 1991 el SAG (SQL Access Group) completa la I Fase de especificaciones técnicas, que especifica un estándar para intercambiar mensajes SQL sobre una red OSI, basado en la especialización SQL del RDA de ISO. En junio de 1991 este grupo realizó una demostración -que constituyó todo un éxito- con más de veinte SGBDR que se intercambiaban datos y consultas. En el mes de noviembre de este mismo año Microsoft anunció el estándar ODBC (Open Database Connectivity) basado en el estándar del SAG.

La Unión Europea, siguiendo las recomendaciones del proyecto EWOS (European Workshop on Open Systems), ha creado en abril de 1991 el EG DBE (Expert Group on Database Enquiry), en el que juegan un papel muy relevante tanto el SQL como el RDA, EWOS (1991).

En 1992 el SAG completó su segunda fase, que especificaba un IPA (Interfaz para la Programación de Aplicaciones) CLI (Call Level Interface) y que ampliaba el estándar a más instalaciones cliente/servidor, en la que además de las especificaciones OSI se incluye otros protocolos de red como, por ejemplo, TCP/IP. En noviembre Borland relanzó el estándar ODAPI (Open Database Application Programming Interface) como IDAPI (Integrated Database Application Programming Interface), con el patrocinio de IBM, Novell y WordPerfect.

En 1992 también se aprueba como norma internacional una nueva versión del SQL, conocida como SQL2 o SQL-92 -ISO (1992)-, en la que se incrementa substancialmente la capacidad semántica del esquema relacional, se añaden nuevos operadores, se mejora el tratamiento de errores y se incluyen normas para el SQL embebido. En esta nueva norma se definen tres niveles de conformidad distintos: Entry SQL, Intermediate SQL y Full SQL, siendo este último -como su nombre indica- el que ofrece mayores funcionalidades, mientras que el primer nivel es un subconjunto del segundo y éste, a su vez, del tercero.

En la actualidad se están elaborando nuevas propuestas para extender el SQL -el llamado SQL3- dotándolo, además de una mayor capacidad semántica, de ciertos principios del paradigma de la orientación al objeto. Además se está trabajando sobre una extensión del SQL3 para soportar bases de datos multimedia, conocida como SQL/MM (SQL Multimedia).

Asimismo se está elaborando una norma para la exportación e importación de datos entre entornos SQL - Export/Import for SQL-, que sirva también para los sistemas de diccionarios de recursos de información.

EL LENGUAJE SQL3

El lenguaje SQL-92 ha mejorado considerablemente el soporte de la semántica en una base de datos relacional ya que incluye conceptos tales como los dominios o las aserciones además de mejorar la integridad referencial respecto al estándar de 1989.

Sin embargo, el SQL-92 carece todavía de los elementos necesarios para soportar los requisitos de la nueva generación de bases de datos -CAREY et al. (1991)-, especialmente, por lo que respecta a las aplicaciones de ingeniería (CAD, CAM, CAE, CASE, etc.), científicas, multimedia, sistemas expertos, etc.

Por esta razón, los comités de ISO/IEC y ANSI están trabajando, de forma coordinada, para completar la definición de una nueva versión del estándar SQL, que incluya todos los requisitos que plantea esta nueva generación de SGBD.

Las características más significativas del SQL3 son las siguientes:

- reglas activas (disparadores), definidos con la sentencia CREATE TRIGGER, en la que se especifica el momento de disparo (BEFORE o AFTER) y el evento (INSERT, DELETE, UPDATE), además de la acción correspondiente

- tipos abstractos de datos, definidos con la sentencia CREATE TYPE, que permite especificar los atributos y operaciones que representan el valor y el comportamiento del tipo abstracto de datos

- tipos de datos booleano y enumerado

- múltiples valores nulos, definidos con la sentencia CREATE NULL CLASS que permite definir distintas clases de valores nulos

- opción PENDANT en la integridad referencial, que permite, por ejemplo, el borrado automático de una tupla de la tabla referenciada cuando se borra la última tupla correspondiente a ella en la tabla que referencia

- operador de unión recursiva para expresiones de consulta

- cursores sensitivos, que son cursores abiertos que permiten ver cambios en los datos no producidos a través del cursor

- supertipos/subtipos y supertablas/subtablas

- papeles (roles) de usuario, definidos mediante CREATE ROLE

Debido al considerable volumen que ha ido adquiriendo este nuevo estándar (que supera ampliamente las mil páginas) se ha decidido, en la última reunión del comité ISO/IEC JTC1/SC21 WG3 DBL celebrada en Munich en enero de este año, descomponerlo en varias partes a fin de que resulte más manejable, tal como se muestra en la figura 1.

De todas estas partes, las relativas al SQL/CLI y SQL/PSM son las que progresarán más rápidamente ya que se proponen como nuevas partes del estándar SQL-92, y se espera que se ap

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios