En temps normal, les bases de données en­re­gistrent les données de la façon suivante : les dif­fé­rentes colonnes des tableaux sont re­grou­pées en lignes qui sont à leur tour compilées en blocs de données. Dans chaque bloc de données, une ligne est alors attribuée à une in­for­ma­tion spé­ci­fique. Sous cette forme, l’en­re­gis­tre­ment des blocs de données demande moins d’espace dans la base de données.

Les objets de données par­ti­cu­liè­re­ment vo­lu­mi­neux sont toutefois traités dif­fé­rem­ment par les bases de données. Ces « Large Objects (LOB) » sont nettement plus gros que les entrées de bases de données ha­bi­tuelles, sont non struc­tu­rés et sont donc gé­né­ra­le­ment en­re­gis­trés à un autre endroit. À l’em­pla­ce­ment cor­res­pon­dant, la base de données laisse uni­que­ment une référence à l’em­pla­ce­ment de sau­ve­garde réel de l’objet.

Il existe deux types de LOB : les BLOB et les CLOB. Un BLOB est un type de données qui en­re­gistre de gros objets sous forme binaire, alors que le format de fichier CLOB en­re­gistre des chaînes de ca­rac­tères longues. Cette abré­via­tion signifie Character Large Objects (en français, « gros objets avec ca­rac­tères »), ce terme ayant été influencé par les dé­ve­lop­peurs de la base de données Oracle. Dans d’autres systèmes de bases de données, il existe en effet d’autres dé­sig­na­tions pour les gros objets telles que TEXT dans MySQL et Post­greSQL.

Comment fonc­tion­nent les CLOB et dans quel cadre sont-ils utilisés ?

L’ensemble des objets de bases de données avec des chaînes de ca­rac­tères, en d’autres termes tous les objets contenant des fichiers composés de ca­rac­tères, sont classés dans les Character Large Objects. Les chaînes de ca­rac­tères sont des séquences de lettres, de chiffres, de ca­rac­tères spéciaux et de ca­rac­tères de contrôle, ce qui explique pourquoi les entrées CLOB renvoient ha­bi­tuel­le­ment à des documents texte (en par­ti­cu­lier des XML). La par­ti­cu­la­rité de l’en­re­gis­tre­ment de ces types de données vo­lu­mi­neux est qu’ils ne sont pas, à quelques ex­cep­tions près, di­rec­te­ment en­re­gis­trés dans la base de données, mais à un endroit séparé. Le système de bases de données à pro­pre­ment parler indique uni­que­ment un mécanisme de référence renvoyant au CLOB en question. La ligne de la base de données ne contient par exemple pas l’ensemble du code de caractère d’un site internet, mais uni­que­ment un numéro de référence renvoyant au véritable em­pla­ce­ment de sau­ve­garde du document HTML sous-jacent.

Avantages et in­con­vé­nients de l’en­re­gis­tre­ment sous forme de CLOB

L’un des prin­ci­paux avantages du type de données CLOB est la pos­si­bi­lité d’effectuer des processus de lecture et de trai­te­ment sur les dif­fé­rents fichiers. À l’aide de pro­grammes d’ap­pli­ca­tion, les ad­mi­nis­tra­teurs des bases de données peuvent comparer, éditer ou compiler le contenu des Character Large Objects ren­seig­nés. Voici un aperçu des pos­si­bi­li­tés de trai­te­ment :

  • SUBSTR : permet aux uti­li­sa­teurs d’extraire des séquences de ca­rac­tères dans un CLOB
  • INSTR : insère des séquences de ca­rac­tères coupées à d’autres endroits ou dans d’autres CLOB
  • COMPARE : compare les valeurs de deux CLOB
  • APPEND : rassemble deux CLOB

Étant donné que les CLOB dé­lo­ca­li­sent com­plè­te­ment l’en­re­gis­tre­ment des documents avec du texte ou des ca­rac­tères, il est possible de vérifier leurs contenus très pré­ci­sé­ment. Les ad­mi­nis­tra­teurs peuvent dé­ter­mi­ner exac­te­ment si des contenus ap­pa­rais­sent en double ou si des portions de texte se recoupent. Si tel est le cas, il est possible de ras­sem­bler des ensembles de données afin de libérer de l’espace utilisé inu­ti­le­ment.

Par ailleurs, l’en­re­gis­tre­ment de lettres, de chiffres, de ca­rac­tères spéciaux et de ca­rac­tères de contrôle sous forme de CLOB s’effectue sans aucune perte : lorsque l’on procède à l’en­re­gis­tre­ment, il est souvent important que toutes les in­for­ma­tions d’un document soient sau­ve­gar­dées ce qui ne pose aucun problème sous ce format. Les CLOB per­met­tent par exemple d’en­re­gis­trer les méta in­for­ma­tions d’un document avec le contenu à pro­pre­ment parler. C’est pourquoi la plupart des bases de données sup­por­tent également l’affichage des Character Large Objects dans une ar­bo­res­cence ainsi que la na­vi­ga­tion et la recherche d’éléments spé­ci­fiques.

Parmi les in­con­vé­nients de ce type de données pour l’en­re­gis­tre­ment d’énormes quantités de ca­rac­tères, on trouve le fait que certaines bases de données ne per­met­tent pas un trai­te­ment via les célèbres fonc­tion­na­li­tés SQL. Comme les CLOB en­re­gistrent des quantités de données ex­trê­me­ment im­por­tantes, l’exécution des fonc­tion­na­li­tés standard prendrait en effet un temps très long. Dans ce cadre, les commandes d’ap­pli­ca­tion SUBSTR, INSTR, COMPARE et APPEND men­tion­nées plus haut cons­ti­tuent toutefois une al­ter­na­tive per­met­tant de re­pro­duire les opé­ra­tions SQL non fonc­tion­nelles. Autre in­con­vé­nient des CLOB : les éléments de données re­la­ti­ve­ment petits gas­pil­lent de l’espace puisqu’un espace de sau­ve­garde segmenté et défini de manière fixe est réservé pour l’en­re­gis­tre­ment en dehors de la base de données.

Aller au menu principal