Base de données orientée colonnes : explication du système

Alors que la plupart des bases de données divisent les informations en lignes, les bases de données orientées colonnes procèdent de la manière opposée. Avec ces dernières, et comme leur nom l’indique, les données sont réparties selon des colonnes. Qu’est-ce que cela signifie ? Découvrez dans notre article les avantages de ces bases de données orientées colonnes.

Comment sont structurées les bases de données orientées colonnes ?

La plupart du temps, les bases de données sont orientées lignes : le système de gestion de base de données crée une ligne par entrée. Les différents champs contenant les informations correspondantes sont ainsi listés les uns après les autres. Les bases de données relationnelles, en particulier, reposent sur ce principe. Mais les bases de données orientées colonnes inversent le système. Avec ces bases, chaque colonne correspond à une entrée : les données concernant chaque entrée sont par conséquent listées les unes en dessous des autres (et non les unes à côté des autres comme dans la variante orientée lignes).

Pour plus de clarté, voici le système orienté ligne :

Numéro Nom Prénom Clé
1 Skywalker Luke 3FN-Z768
2 Kenobi Obi-wan 7TR-K345
3 Organa Leia 8NN-R266

La base de données orientée colonnes fait pratiquement pivoter ce tableau à 90° :

Numéro 1 2 3
Nom Skywalker Kenobi Organa
Prénom Luke Obi-wan Leia
Clé 3FN-Z768 7TR-K345 8NN-R266

Sur le disque dur, les données apparaissent toutefois sous une forme unidimensionnelle et sont donc présentées les unes à la suite des autres. Pour une base de données orientée lignes cela signifie :

1, Skywalker, Luke, 3FN-Z768 ; 2, Kenobi, Obi-wan, 7TR-K345 ; 3, Organa, Leia, 8NN-R266

La base de données orientée colonnes enregistre également les informations les unes après les autres. L’orientation différente donne toutefois une autre séquence de données :

1, 2, 3 ; Skywalker, Kenobi, Organa ; Luke, Obi-wan, Leia ; 3FN-Z768, 7TR-K345, 8NN-R266
Conseil

Outre les bases de données orientées colonnes, il existe également d’autres alternatives au modèle classique. Les bases de données NoSQL ou leurs sous-catégories, les bases de données orientées documents, ainsi que les bases de données Key Value associées prennent de plus en plus d’importance. Les bases de données orientées graphe sont toujours plus appréciées, car ce modèle permet de très bien représenter les données ayant un lien important.

Champs d’application des bases de données orientées colonnes

Les systèmes relationnels basés sur des lignes sont principalement utilisés lorsque de nombreuses transactions doivent être effectuées rapidement. L’écriture, la modification et la suppression des entrées fonctionnent très bien avec les bases de données relationnelles. Les bases de données orientées colonnes sont utilisées pour analyser de grands volumes de données.

Dans de nombreux domaines d’application – par exemple, mais pas uniquement, dans la recherche –, des données sont analysées en permanence. Une base de données orientée colonnes permet d’aller beaucoup plus vite, car un nombre moins important d’accès au disque dur est nécessaire. Les données d’une catégorie sont proches les unes des autres. Si l’on souhaite lire et analyser un ensemble de données, il suffit de charger un bloc. Il n’est pas nécessaire de lire toute la base de données pour pouvoir recueillir les informations réparties.

Avantages et inconvénients d’une base de données orientée colonnes

Les bases de données orientées colonnes se montrent également avantageuses pour analyser de grands volumes de données – c’est-à-dire du big data. Puisque l’accès au disque dur représente un goulot d’étranglement lors de la lecture d’une base de données et que l’accès à une base de données en colonnes est plus efficace, la variante basée sur les colonnes est plus optimale.

Dans le cas d’applications transactionnelles, les accès sont généralement conçus différemment : dans ce type d’applications, les nouvelles informations doivent être réparties dans l’ensemble de la base de données. Une base de données orientée colonnes agirait plus lentement qu’un modèle classique pour réaliser cette tâche.

Un autre avantage des bases de données orientées colonnes réside dans les possibilités de compression. Les données d’une colonne sont toujours du même type – par exemple un string (chaîne de caractères) ou un integer (nombre entier). Comme toutes les entrées d’un même type sont proches les unes des autres, elles peuvent être compressées plus efficacement.

Les bases de données orientées colonnes les plus connues

Les systèmes de gestion de base de données basés sur des colonnes sont certes plus longs à utiliser en comparaison, mais le nombre d’implémentations disponibles est faible et le besoin en bases de données relationnelles est tout simplement plus grand. Quelques systèmes se sont toutefois établis.

  • Amazon Redshift : faisant partie des Amazon Web Services (AWS), Redshift offre un entrepôt de données orienté colonnes pour le big data.
  • MariaDB-ColumnStore : avec ColumnStore, le système de gestion de bases de données open source MariaDB (fork de MySQL) offre également une combinaison de base de données orientée colonnes et relationnelle.
  • SAP HANA : la plateforme de développement de SAP utilise également une combinaison de base de données relationnelle et orientée colonnes.
  • Apache Cassandra : le logiciel libre est basé sur Apache Hadoop et est publié en Java.
  • MonetDB : ce logiciel open source a été développé avec une attention particulière pour le data-mining.