¿Qué son los CLOB u objetos grandes de caracteres?

Por lo general, las bases de datos almacenan los datos de la siguiente forma: las columnas se agrupan en filas que, a su vez, se apilan en bloques de datos. De este modo, la información en cada bloque de datos está asociada a una fila y los bloques de datos consumen así menos espacio en la base de datos.

No obstante, las bases de datos tratan de otro modo los objetos de datos de mayor tamaño. Los denominados objetos grandes (LOB) superan en tamaño a las entradas convencionales de las bases de datos; asimismo, no se encuentran estructurados y, en la mayoría de los casos, se almacenan en un lugar distinto. La base de datos solo crea en la posición que corresponda una referencia a la ubicación de almacenamiento.

Existen dos tipos de LOB: los BLOB y los CLOB. Un BLOB es un tipo de dato que almacena un elemento grande de datos en código binario, mientras que el CLOB almacena cadenas largas de caracteres. La abreviatura procede del inglés Character Large Objects (objetos grandes de caracteres), término acuñado por los desarrolladores de la base de datos de Oracle. Otros sistemas de gestión de bases de datos utilizan también otros términos para denominar los objetos grandes; por ejemplo, MySQL y PostgreSQL los denominan TEXT.

¿Cómo funcionan los CLOB y para qué se utilizan?

La expresión objetos grandes de caracteres engloba a todos los objetos de las bases de datos compuestos por cadenas de caracteres, o, en otras palabras, son todos aquellos datos conformados por caracteres. Las cadenas de caracteres son sucesiones de letras, cifras, caracteres especiales y caracteres de control, por lo que las entradas de CLOB remiten normalmente a documentos de texto (XML, sobre todo). Algo que caracteriza a este tipo de datos de gran tamaño es que no se almacenan directamente en la base de datos, sino que se guardan por separado. El propio sistema de la base de datos cuenta con un mecanismo de referencia que remite al CLOB que corresponda. De esta forma, en la fila de la base de datos no se encontrará el código de caracteres de un sitio web, sino que habrá únicamente un número de referencia que remitirá a la ubicación de almacenamiento del documento HTML en cuestión.

Ventajas e inconvenientes del almacenamiento CLOB

Una de las grandes ventajas que ofrecen los datos CLOB es la posibilidad de leer y modificar los diferentes archivos. Los administradores de las bases de datos podrán, por ejemplo, comparar, editar o añadir el contenido de los objetos grandes de caracteres con la ayuda de un programa de aplicación. Estas son algunas de las tareas que se pueden llevar a cabo:

  • SUBSTR permite extraer al usuario secuencias de caracteres de un CLOB
  • INSTR añade secuencias de caracteres a una posición o a otro CLOB
  • COMPARE compara los valores de dos CLOB
  • APPEND une dos CLOB

CLOB permite comprobar exhaustivamente el contenido de documentos con texto/caracteres, puesto que los almacena de forma íntegra. Por tanto, los administradores podrán comprobar con exactitud si el contenido se repite o si existen partes del texto que se superpongan, en cuyo caso, los datos podrán fusionarse para liberar espacio de almacenamiento.

Además, con este tipo de dato, todos los caracteres especiales, las letras, las cifras y los caracteres de control se almacenarán sin riesgo a perderse. Si necesitas guardar toda la información de un documento, este formato de datos no supondrá ningún problema. Asimismo, junto con el contenido CLOB, también se podrá almacenar la metainformación de un documento, por lo que la mayoría de las bases de datos permiten incluso visualizar los objetos de caracteres largos con estructura de árbol, así como navegar y buscar componentes específicos.

Entre los inconvenientes que presenta este tipo de datos para el almacenamiento de grandes cantidades de caracteres, cabe destacar que algunas bases de datos no permiten realizar cálculos a través de las conocidas funciones SQL, ya que la ejecución de las funciones estándares precisaría de mucho tiempo, dada la gran cantidad de texto que almacenan las CLOB. No obstante, los comandos de aplicación SUBSTR, INSTR, COMPARE y APPEND mencionados arriba son una alternativa válida para replicar las operaciones funcionales de SQL. Otra desventaja de CLOB: en proporción, los elementos pequeños malgastan un valioso espacio de almacenamiento, puesto que para almacenar la información fuera de la base de datos se reserva un espacio completo definido y segmentado.