BLOB (Binary Large Objects): una introducción

El término BLOB se encuentra principalmente relacionado con bases de datos y proyectos de código abierto. Se emplea para almacenar archivos binarios, es decir, archivos que pueden contener no solo caracteres imprimibles, sino también patrones de bits arbitrarios. Los ejemplos más típicos de este tipo de archivos son los de imagen o audio, los archivos comprimidos o los datos para hojas de cálculo. Si vas a utilizar objetos binarios grandes en un proyecto, debes respetar ciertos procedimientos. ¿Qué es exactamente un BLOB? ¿Cuáles son sus características? ¿Cuáles son las ventajas y desventajas de su aplicación?

¿Qué es un BLOB?

La abreviatura inglesa BLOB corresponde a Binary Large Objects (en español, objeto binario grande). Frente a los BLOB, los CLOB (Character Large Objects) (o TEXT) son también objetos grandes, formados sin embargo por cadenas de caracteres.

Como ya mencionamos, entre los objetos binarios grandes típicos se pueden encontrar archivos de audio e imagen, así como datos de archivo u hojas de cálculo. Los vídeos son también considerados BLOB, por lo que los archivos binarios pueden tener un tamaño de varios cientos de gigabytes. Según su inventor, Jim Starkey, primero se ideo el término BLOB y solo más tarde se le atribuyó el significado de Binary Large Object. En 1997, Starkey declaró que esto se hizo porque la palabra “BLOB” resultaba poco seria a efectos de marketing.

Los BLOB en las bases de datos

Las bases de datos han de procesar de forma especial los objetos binarios grandes. Los tipos de datos especiales son imprescindibles. Las bases de datos no pueden leer ni comprender el contenido no estructurado de los BLOB, sino que los han de almacenar como un todo y solo pueden leer el nombre de archivo, el tipo de archivo y el tamaño de archivo del BLOB. Por lo tanto, al trabajar con objetos binarios grandes, las bases de datos no pueden realizar sus funciones propias, tales como clasificar, filtrar o buscar contenido.

Nota

La diferencia entre los datos estructurados y los no estructurados es que los primeros tienen una estructura clara. En los datos estructurados, toda la información se puede visualizar en los campos correspondientes de la base de datos. En cambio, los datos no estructurados no permiten sacar conclusiones sobre el contenido. Solo se conoce el tipo de datos.

Los objetos binarios grandes se almacenan en los distintos sistemas de bases de datos de forma diferente. Como a menudo la estructura de las bases de datos no es apropiada para almacenar BLOB, se almacenan en otro sitio. La base de datos contiene, entonces, una referencia que recoge dónde se almacena el archivo paginado. Dependiendo del sistema de base de datos, los archivos binarios grandes se encuentran bajo otros nombres, y en algunas soluciones como MySQL incluso tienen nombres diferentes según el tamaño de los archivos. En la siguiente tabla presentamos algunos de los sistemas más conocidos, incluyendo los nombres empleados respectivamente para los BLOB.

Base de datos Tipo de datos
MySQL Hasta 0,255 kb: TINYBLOBHasta 64 kb: BLOBHasta 16 MB: MEDIUMBLOBHasta 4 GB: LONGBLOB
PostgreSQL BYTEA y Object Identifier
Oracle BLOB
DB2 BLOB
Microsoft SQL Server binary, varbinary, text, ntext

¿Dónde se utilizan los BLOB?

Los BLOB se utilizan principalmente en la industria de los big data. Los datos en bruto recopilados de los visitantes de un sitio web se agrupan como colecciones de datos y se almacenan en bases de datos en todo el mundo. Recopilados en bruto, estos datos no están estructurados, por lo que esta es la forma más sencilla para que los capturen los sistemas de bases de datos. Los BLOB también se utilizan para almacenar películas o programas de televisión en bases de datos de forma cifrada.

Los objetos binarios grandes también se emplean en el ámbito del software de código abierto: incluso si, por defecto, todos los componentes de un proyecto de código abierto deben generarse a partir de un código fuente de acceso público, esto no siempre es así. En muchos casos, también se incluyen elementos propietarios (especialmente, controladores de dispositivos), que están disponibles únicamente en formato binario. El término BLOB también se usa para estos datos, aunque la inclusión de estos objetos en proyectos de código abierto es bastante controvertida.

Ventajas y desventajas de los objetos binarios grandes

El uso de los BLOB para un proyecto se debe sopesar cuidadosamente, dado que presenta algunas ventajas decisivas, si bien también inconvenientes.

Ventajas Inconvenientes
Los BLOB ofrecen la posibilidad de integrar fácilmente grandes datos binarios en una base de datos y son fáciles de referenciar No todas las bases de datos permiten el uso de BLOB
Los derechos de acceso se pueden configurar fácilmente en la gestión de derechos Los BLOB son ineficientes debido a la cantidad de espacio en disco requerido y al tiempo de acceso que requieren
Todos los datos están contenidos en copias de seguridad de la base de datos o en data dumps Hacer copias de seguridad lleva mucho tiempo debido al tamaño de los BLOB