Sistema empresarial IBM 12
Business System 12, o simplemente BS12, fue uno de los primeros sistemas de gestión de bases de datos totalmente relacionales, diseñado e implementado por IBM's Bureau Service subsidiaria en el centro de desarrollo internacional de la empresa en Uithoorn, Países Bajos. La programación comenzó en 1978 y la primera versión se entregó en 1982. Nunca se usó mucho y esencialmente desapareció poco después de que se cerrara la división en 1985, posiblemente porque IBM y otras compañías establecieron SQL como estándar.
La contribución duradera de BS12 a la historia fue el uso de un nuevo lenguaje de consulta basado en ISBL, creado en el Centro Científico de IBM en el Reino Unido. También se consultó a los desarrolladores del famoso System R en marcha en los EE. UU. al mismo tiempo sobre ciertos asuntos relacionados con el motor, pero el equipo de BS12 rechazó rotundamente SQL, convencido de que este lenguaje aparentemente poco sólido y difícil de usar (que en ese momento también era relacionalmente incompleto) nunca se daría cuenta.
BS12 incluye una serie de características interesantes que aún no han aparecido en la mayoría de los sistemas basados en SQL, algunas como consecuencia de seguir el precedente ISBL, otras debido a un diseño deliberado. Por ejemplo, se podría parametrizar una vista y los parámetros podrían ser del tipo TABLE. Así, una vista podría ser en efecto un nuevo operador relacional definido en términos de los operadores existentes. De hecho, el operador DIVIDE de Codd se implementó de esa manera.
Otra característica que podría haberse incluido fácilmente en los sistemas SQL fue el soporte para operaciones de actualización en las tablas del catálogo (tablas del sistema que describen la estructura de la base de datos, como en SQL). Se podría crear una nueva tabla insertando una fila en el catálogo TABLES
, y luego agregarle columnas insertándolas en COLUMNS
.
Además, BS12 se adelantó a SQL en el soporte de funciones y procedimientos definidos por el usuario, utilizando un sublenguaje completo de Turing, disparadores y una simple "llamada" interfaz para uso de programas de aplicación, todo en su primera versión en 1982.
Ejemplo
Consulta de muestra para determinar qué departamentos están por encima de sus presupuestos salariales:
T1 = SUMMARY(EMP, GROUP(DEPTNUM), EMPS=COUNT, SALSUM=SUM(SALARY)) T2 = JOIN(T1, DEPT) T3 = SELECT(T2, SALSUM Ø BUDGET)
Observe la "unión natural" en la columna común, DEPTNUM. Aunque algunos dialectos de SQL admiten combinaciones naturales, para familiarizarse, el ejemplo mostrará solo un "tradicional" entrar. Aquí está el SQL equivalente para comparar:
-- (versión SQL) SELECT d.Deptnum, Conde()*) como Emps, Sum()e.Sueldos) como Salsum, PresupuestoDESDE Emp como eÚnete Dept como d ON e.Deptnum = d.DeptnumGROUP BY d.Deptnum, PresupuestoHAVING Sum()e.Sueldos) ■ Presupuesto
Contenido relacionado
Conmutación de ráfagas
Conexión espalda con espalda
El ordenador contradictorio