Familles NoSQL

Le fait d'avoir mathématiquement et formellement défini le modèle relationnel avant toute implantation lui a permis de "bien vieillir", comme il a ainsi gagné en indépendance par rapport aux technologies. Ceci dit, l'évolution entre autres du matériel informatique, des langages de programmation, des exigences des interfaces utilisateurs, des applications multimédias ainsi que de la réseautique a fait ressortir certaines limitations du modèle relationnel. D'autres types de bases de données ont émergé pour essayer de contourner ces limitations. C'est le cas entre autres des familles NoSQL. Certains logiciels de gestion électronique des documents ont adopté des bases de données NoSQL comme, par exemple, Constellio.

Nous n'entrerons pas dans un grand détail sur ces familles NoSQL, du fait de leur complexité. L'objectif est de réaliser que malgré toutes ses qualités, tout modèle de données possède des limites qui vont provoquer l'apparition d'autres modèles.

Le modèle relationnel, dans sa manière de représenter et de manipuler les données, se révèle peu efficace dans le contexte d'environnements Web distribués à grande échelle qui possèdent de grands volumes de données comme Twitter, Facebook et eBay. C'est entre autres un des facteurs à la source de l'émergence des familles de bases de données NoSQL.

Les familles NoSQL - l'appellation NoSQL (Not only SQL) date de 2009 - délaissent les propriétés des transactions relationnelles qui permettent de garantir et de maintenir la cohérence des données (propriétés ACID) au profit de contraintes qui priorisent la disponibilité des données (contraintes BASE) et qui se révèlent plus adaptées aux grands environnements Web distribués.

Il ne s'agit pas d'un modèle NoSQL, mais de plusieurs familles NoSQL qui se sont développées en parallèle et qui répondent à des besoins différents.

Exemples de familles NoSQL

Familles

Exemples d'utilisation

Orientées graphes pour traiter les réseaux massifs

Recommandations Twitter

Orientés colonnes pour faciliter les traitements privilégiant les colonnes

Calcul de l'âge moyen des utilisateurs

Orientées clé/valeur pour gagner en efficacité en lecture/écriture et pour le changement d'échelle

Système de sauvegarde de type Dropbox

Orientée "document" pour supporter des structures variables

Gestion des métadonnées des produits vendus chez eBay

Ces nouvelles familles de bases de données présentent comme principal avantage de contourner les limites du modèle relationnel contraignantes pour le contexte de systèmes Web distribués à grande échelle (fortes performances, résistance au changement d'échelle, entre autres). Elles ne sont toutefois pas exemptes de limites, par exemple du fait de leur relative jeunesse et du développement en parallèle de plusieurs familles.

Avantages et désavantages des familles NoSQL

Avantages

Désavantages

  • Faible coût relatif

  • Fortes performances

  • Résistance au changement d'échelle

  • Capacité à faire évoluer la représentation des données

  • "Jeunesse"

  • Pas de langage de requête abstrait partagé

  • Travail de programmation spécifique plus important

  • Cohérence des données moins aisée à garantir