BLOB (Binary Large Objects) : introduction
On rencontre principalement le terme BLOB dans le contexte des bases de données et des projets open source. Il est utilisé pour l’enregistrement de fichiers binaires, c’est-à-dire les fichiers pouvant contenir à la fois des caractères imprimables et tout type de modèles binaires. Parmi les exemples typiques d’objets de ce type, on peut notamment citer les fichiers image et audio, les fichiers compressés ou les données des tableurs. Si des Binary Large Objects doivent être utilisés dans un projet, il convient de respecter certaines procédures. Qu’est-ce qu’un BLOB exactement ? Quelles sont ses caractéristiques ? Quels avantages et inconvénients découlent de leur utilisation ?
Qu’est-ce qu’un BLOB (Binary Large Object) ?
L’acronyme anglais BLOB signifie Binary Large Object (fr. : « gros objet de donnée binaire »). Il convient d’opérer une distinction entre les BLOB et les CLOB (Character Large Objects), également appelés TEXT, qui sont aussi de gros objets, mais qui sont composés de chaînes de caractères.
Comme indiqué plus haut, les fichiers audio et image ainsi que les archives de fichiers ou les données des tableurs font partie des gros objets binaires. Par ailleurs, les vidéos sont également classées dans les BLOB, raison pour laquelle les fichiers binaires peuvent avoir une taille de plusieurs centaines de gigaoctets. D’après leur inventeur Jim Starkey, l’acronyme BLOB s’est uniquement vu attribuer sa signification, à savoir Binary Large Object, de façon rétroactive. En 1997, Starkey expliquait que cette dénomination avait été créée en raison du caractère peu professionnel du nom BLOB d’un point de vue marketing.
Les BLOB dans les bases de données
Les bases de données doivent traiter les BLOB d’une manière particulière. Les types de données spécifiques sont incontournables. Les bases de données ne sont pas en mesure de lire ou de comprendre le contenu non structuré des BLOB et ne peuvent que les enregistrer de façon globale. La base de données peut uniquement lire le nom de fichier, le type de fichier et la taille de fichier des BLOB. Les fonctionnalités des bases de données telles que le tri, le filtrage et la recherche de contenus spécifiques sont par conséquent impossibles dans un BLOB.
La différence entre les données structurées et non structurées réside dans le fait que les premières disposent d’une structure claire. Toutes les informations des données structurées peuvent être affichées dans les champs correspondants de la base de données. En revanche, les données non structurées ne permettent pas de tirer des conclusions sur le contenu. Seul le type de données est connu.
Les Binary Large Objects sont sauvegardés de différente manière par les différents systèmes de bases de données. Comme, la plupart du temps, la structure des bases de données ne permet pas d’enregistrer directement les BLOB, ils sont déplacés. À cette fin, la base de données ne contient aucune référence sur l’endroit où le fichier déplacé est effectivement enregistré. Selon le système de base de données, on trouve également des termes alternatifs pour désigner les grands fichiers binaires et certaines solutions telles que MySQL ont même différentes désignations pour les fichiers de certaines tailles. Le tableau suivant montre certains des systèmes les plus connus avec les termes correspondants pour les Binary Large Objects :
Base de données | Type de données |
---|---|
MySQL | Jusqu’à 0,255 Ko : TINYBLOBJusqu’à 64 Ko : BLOBJusqu’à 16 Mo: MEDIUMBLOBJusqu’à 4 Go : LONGBLOB |
PostgreSQL | BYTEA et Object Identifier |
Oracle | BLOB |
DB2 | BLOB |
Serveur Microsoft SQL | binary, varbinary, text, ntext |
Où les BLOB sont-ils utilisés ?
Les BLOB sont principalement utilisés dans l’industrie du big data. Les données brutes collectées en masse auprès des visiteurs du site Internet sont regroupées sous forme de collections de données et sont enregistrées dans des bases de données dans le monde entier. Collectées sous forme brute, ces données ne possèdent aucune structure. C’est pourquoi il s’agit de la façon la plus simple pour les systèmes de bases de données de les enregistrer. Les BLOB peuvent également être utilisés pour enregistrer les films ou les émissions de télévision de façon presque chiffrée.
Les Binary Large Objects sont également utilisés dans le domaine open source : même si, par défaut, l’ensemble des composants d’un projet open source peuvent être générés à partir d’un code source accessible publiquement, ce n’est pas toujours le cas. Dans certains cas, des éléments propriétaires (en particulier les pilotes de périphérique) qui sont uniquement disponibles sous forme binaire sont intégrés. Le terme « BLOB » s’est également établi pour ces données, mais l’utilisation de ces objets dans les projets open source est plutôt controversée.
Avantages et inconvénients des Binary Large Objects
L’utilisation des BLOB dans un projet dépend de chaque cas spécifique, car ils présentent des avantages déterminants, mais aussi des inconvénients.
Avantages | Inconvénients |
---|---|
Les BLOB offrent une réelle possibilité d’intégrer de grosses données binaires dans une base de données et peuvent être référencés sans difficulté | Toutes les bases de données ne permettent pas l’utilisation de BLOB |
Il est possible de définir simplement des droits d’accès grâce à la gestion des droits | Les BLOB sont peu efficaces en raison de l’espace disque nécessaire et du délai d’accès |
Toutes les données sont contenues dans les sauvegardes ou les dumps de bases de données | La création de sauvegardes est très chronophage du fait de la taille de fichier des BLOB |