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 in­fo­r­ma­ció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 de­no­mi­na­dos objetos grandes (LOB) superan en tamaño a las entradas co­n­ve­n­cio­na­les de las bases de datos; asimismo, no se en­cue­n­tran es­tru­c­tu­ra­dos 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 co­rre­s­po­n­da una re­fe­re­n­cia a la ubicación de al­ma­ce­na­mie­n­to.

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 ca­ra­c­te­res. La abre­via­tu­ra procede del inglés Character Large Objects (objetos grandes de ca­ra­c­te­res), término acuñado por los de­sa­rro­lla­do­res 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 Po­s­t­gre­S­QL los denominan TEXT.

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

La expresión objetos grandes de ca­ra­c­te­res engloba a todos los objetos de las bases de datos co­m­pue­s­tos por cadenas de ca­ra­c­te­res, o, en otras palabras, son todos aquellos datos co­n­fo­r­ma­dos por ca­ra­c­te­res. Las cadenas de ca­ra­c­te­res son su­ce­sio­nes de letras, cifras, ca­ra­c­te­res es­pe­cia­les y ca­ra­c­te­res de control, por lo que las entradas de CLOB remiten no­r­ma­l­me­n­te a do­cu­me­n­tos de texto (XML, sobre todo). Algo que ca­ra­c­te­ri­za a este tipo de datos de gran tamaño es que no se almacenan di­re­c­ta­me­n­te en la base de datos, sino que se guardan por separado. El propio sistema de la base de datos cuenta con un mecanismo de re­fe­re­n­cia que remite al CLOB que co­rre­s­po­n­da. De esta forma, en la fila de la base de datos no se en­co­n­tra­rá el código de ca­ra­c­te­res de un sitio web, sino que habrá úni­ca­me­n­te un número de re­fe­re­n­cia que remitirá a la ubicación de al­ma­ce­na­mie­n­to del documento HTML en cuestión.

Ventajas e in­co­n­ve­nie­n­tes del al­ma­ce­na­mie­n­to CLOB

Una de las grandes ventajas que ofrecen los datos CLOB es la po­si­bi­li­dad de leer y modificar los di­fe­re­n­tes archivos. Los ad­mi­ni­s­tra­do­res de las bases de datos podrán, por ejemplo, comparar, editar o añadir el contenido de los objetos grandes de ca­ra­c­te­res con la ayuda de un programa de apli­ca­ción. Estas son algunas de las tareas que se pueden llevar a cabo:

  • SUBSTR permite extraer al usuario se­cue­n­cias de ca­ra­c­te­res de un CLOB
  • INSTR añade se­cue­n­cias de ca­ra­c­te­res a una posición o a otro CLOB
  • COMPARE compara los valores de dos CLOB
  • APPEND une dos CLOB

CLOB permite comprobar exhau­s­ti­va­me­n­te el contenido de do­cu­me­n­tos con texto/ca­ra­c­te­res, puesto que los almacena de forma íntegra. Por tanto, los ad­mi­ni­s­tra­do­res podrán comprobar con exactitud si el contenido se repite o si existen partes del texto que se su­pe­r­po­n­gan, en cuyo caso, los datos podrán fu­sio­nar­se para liberar espacio de al­ma­ce­na­mie­n­to.

Además, con este tipo de dato, todos los ca­ra­c­te­res es­pe­cia­les, las letras, las cifras y los ca­ra­c­te­res de control se al­ma­ce­na­rán sin riesgo a perderse. Si necesitas guardar toda la in­fo­r­ma­ció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 me­tai­n­fo­r­ma­ción de un documento, por lo que la mayoría de las bases de datos permiten incluso vi­sua­li­zar los objetos de ca­ra­c­te­res largos con es­tru­c­tu­ra de árbol, así como navegar y buscar co­m­po­ne­n­tes es­pe­cí­fi­cos.

Entre los in­co­n­ve­nie­n­tes que presenta este tipo de datos para el al­ma­ce­na­mie­n­to de grandes ca­n­ti­da­des de ca­ra­c­te­res, 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 es­tá­n­da­res pre­ci­sa­ría de mucho tiempo, dada la gran cantidad de texto que almacenan las CLOB. No obstante, los comandos de apli­ca­ción SUBSTR, INSTR, COMPARE y APPEND me­n­cio­na­dos arriba son una al­te­r­na­ti­va válida para replicar las ope­ra­cio­nes fu­n­cio­na­les de SQL. Otra de­s­ve­n­ta­ja de CLOB: en pro­po­r­ción, los elementos pequeños malgastan un valioso espacio de al­ma­ce­na­mie­n­to, puesto que para almacenar la in­fo­r­ma­ción fuera de la base de datos se reserva un espacio completo definido y se­g­me­n­ta­do.

Ir al menú principal