Siguiendo con el esfuerzo de PC World por acercar los nuevos conceptos de la informática personal a los lectores, vamos a dedicar el presente artículo a describir las características de los servidores de bases de datos SQL para PC's. Este software se encuentra en su momento de madurez.

En los últimos años, el segmento del software dedicado a las bases de datos corporativas está produciendo grandes innovaciones tecnológicas como nuevos tipos de datos, métodos para la integridad de datos, etc. No en vano, las bases de datos corporativas poseen una gran importancia estratégica, pues deben gestionar la información completa de una organización, a veces enorme, a la que debe accederse con inmediatez y con la máxima garantía de no perder datos o no poderlos recuperar. Anteriormente, estos sistemas se basaban en ordenadores muy potentes como los minis o mainframes, pero ante la reducción de precios y aumento espectacular de prestaciones de los micros, se han desarrollado gestores de bases de datos relacionales basados en el lenguaje SQL que han importado al mundo del PC elementos sofisticados de sistemas superiores, venciéndolos claramente en la relación prestaciones/precio. El simpático pero desprestigiado PC ha llegado a su mayoría de edad, mal que pese a los dinosaurios de la informática, y su utilidad no se reduce a servidor de juegos, procesadores de textos, y hojas de cálculo. Los nuevos servidores de bases de datos demuestran que los datos están seguros. Ya podemos fiarnos del PC.

Nuevos tipos de datos

Entre los nuevos tipos de datos podemos destacar los llamados BLOBs (Binary Large OBjects) que traducimos por tipos de datos binarios. Como en un ordenador todo se reduce en última instancia al formato binario, los BLOBs permiten almacenar cualquier cosa en una base de datos, pero dado que ya existen unos tipos de datos eficientes para tratar la información alfanumérica y numérica, bajo este formato se almacenan los llamados datos multimedia, o incluso programas ejecutables. Este tipo de información como sonido, voz, fotografía y vídeo requiere mucho más espacio de memoria para almacenarse que otros tipos de datos. Pensemos que el tipo de dato elemental más grande, es el formato numérico de coma flotante con diez dígitos de precisión que se almacena en 128 bits, por contra una secuencia de vídeo en movimiento de siete minutos, como unos dibujos de Bugs Bunny, ocupa en el estándar AVI (Vídeo for Windows) más de 1.000 millones de bits (126 MB). Esto explica por qué se llaman objetos grandes (large objects), y por qué los servidores han de ser capaces de manejar objetos de más de 2 GB.

Debido a sus características especiales los campos o columnas BLOBs se almacenan en una partición lógica de la base de datos que puede corresponder a una parte de disco, llamada blobspace (espacio para BLOBs). Los BLOBs necesitan además del gestor de la base de datos algún programa o procedimiento especial que pueda visualizarlos o ejecutarlos. De alguna manera los BLOB's son fragmentos de memoria apuntados por el servidor de datos, y por tanto son ciegos al propio gestor. Es el administrador de la base de datos quien debe programar el comportamiento del servidor cuando lee o escribe estos tipos de datos.

A los BLOBs se accede mediante el lenguaje de consulta de bases de datos, el SQL, aunque de manera muy restringida, pues un BLOB es una referencia que se asocia a registros o filas de la base de datos, y no un contenido. Por tanto, sin un programa específico, la búsqueda de BLOB's se hace por la información asociada. Algunos fabricantes implementan extensiones propietarias para un mejor tratamiento de esta información, mientras el llamado estándar ANSI SQL 93 se va completando para normalizar la sintaxis de gestión de BLOBs. Hasta el momento uno de los productos que más ha destacado en la gestión de estos datos ha sido Informix On Line.

Integridad de datos

Uno de los temas fundamentales de los servidores SQL es la conservación de la coherencia de los datos, también llamada integridad referencial. Todas las columnas de una tabla que se refieren a la clave primaria de otra tabla (clave foránea) deben referirse al valor de la clave primaria existente. Es decir si tenemos dos tablas, EMPLEADOS y DEPARTAMENTOS relacionadas por el código de departamento y variamos este campo clave en la tabla de DEPARTAMENTOS automáticamente deberá cambiarse en todas las filas de la otra tabla donde aparezca, o de lo contrario habremos perdido la relación, y por consiguiente, la coherente pertenencia de los empleados a los departamentos.

El primer tipo de integridad que soportan casi todos los gestores de datos es la integridad referencial, pero esta no cubre algunos casos menos usuales que deben ser definidos mediante la integridad referencial declarativa. Este tipo, a imitación de DB2, se implementa en el estándar ANSI SQL 92, no tan extendido como el ANSI SQL 89 que es el que usan la mayoría de los productos. La sintaxis de la integridad referencial se ve en la figura 1. La implementación declarativa tiene múltiples ventajas sobre la procedural, pero la principal es trasladar la responsabilidad de la integridad al propio gestor de bases de datos, no al administrador. La integridad forma parte de las propiedades de las tablas y no resulta de unas reglas externas.

Otro mecanismo que sirve para reforzar la integridad de los datos son los procedimientos almacenados y los disparadores que fueron introducidos en el primer servidor SQL cliente/servidor del mercado de la mano de Sybase. Los procedimientos almacenados son pequeños programas compilados que emplean instrucciones SQL para acceder a las tablas. Normalmente el programa residente en una estación cliente invoca algún procedimiento almacenado para realizar alguna operación de datos. Los disparadores son un tipo especial de procedimientos almacenados que se ejecutan automáticamente cuando se realizan determinados cambios en un tabla como altas, bajas o modificaciones.

Los disparadores se utilizan habitualmente para mantener la integridad referencial de los datos en los servidores que no implementan la integridad referencial declarativa.

En cualquier caso procedimientos almacenados y disparadores (ver figura 2) ofrecen unas ventajas claras: al ser compilados se ejecutan más rápidamente que una llamada SQL; al residir en el servidor reducen el tráfico sobre la red local; al compartirse en el servidor por todos los clientes, para mantener el programa sólo hay que reescribirlo en un sitio; pueden mejorar la seguridad impidiendo a algunos usuarios el ejecutarlos.

Los servidores: nuestra selección

Para realizar este artículo de divulgación pedimos a los fabricantes y distribuidores de los servidores SQL para NetWare, que es el sistema operativo de red para PC's más extendido, los productos más representativos. Tuvimos una respuesta desigual como se refleja en el presente artículo. Informix declinó amablemente su participación puesto que sus productos competitivos están en UNIX y en Windows NT. El producto de Borland InterBase 2.0 para NetWare, en el que teníamos mucho interés en evaluar debido a su original tecnología, no estuvo listo a tiempo. Por lo que respecta a SQLBase, los distribuidores no entregaron una copia de evaluación a la petición realizada por esta revista, a pesar de nuestros persistentes intentos. En cambio, agradecemos la magnifica disposición y el estupendo soporte ofrecido por los técnicos de la compañía Oracle Ibérica, así como el interés y la profesionalidad de Sybase que estuvo a nuestra entera disposición. Por lo que respecta a Novell, resaltamos la rapidez y la generosidad con la que nos entregaron tanto el sistema NetWare 3.11 como su producto NetWare SQL.

Respecto a Novell debemos comentar que debido a la reestructuración de la compañía, en la que se destaca el reforzami