ABIS Infor - 2012-10
SQL - sur son retour?!
Abstrait
Si à ce jour vous êtes actifs dans le domaine des données - comme utilisateur, administrateur, architecte - il est peu probable que vous n'ayez pas encore rencontré le terme 'NoSQL'. Des articles traitant BigData, les podcast sur le Cloud,... tous font assez souvent référence a ce terme. Mais qu'est-ce que c'est, le NoSQL?
Non seulement SQL - ou pas de l'SQL?
NoSQL désigne une catégorie de systèmes de gestion de base de données qui s'affranchit de l'architecture classique des bases relationnelles. En NoSQL, les données ne sont plus stockées dans une structure relationnelle; et typiquement, les données ne sont plus nécessairement manipulées avec de l' SQL traditionnel.
Les bases de données dites NoSQL abandonnent certaines fonctionnalités clefs des systèmes relationnels traditionnels pour mieux répondre aux réalités d'aujourd'hui: volumes de données énormes, variabilité dans les structures, nécessité de faire des analyses en temps réel, ...
Quelques charactéristiques d'un système NoSQL sont introduites dans ce qui suit.
- absence de schémas stricts - dé-normalisation: l'absence de structures de stockage très strictes garantit une réactivité, évolutivité et flexibilité désirées par les utilisateurs NoSQL. Les systèmes de base de données NoSQL sont fréquemment implémentés - modelés - comme des systèmes 'orientés graphe', 'clef-valeur', 'orientés document', ou 'orientés colonnes'.
- partitionnement horizontal sur un grand nombre de nœuds/serveurs avec des performances très stables: le coût d'espace est proportionnel à la volumétrie des données; le nombre de serveurs en utilisation peut être augmenté graduellement, de façon transparente pour les utilisateurs ('scale-out').
- réplication automatique des données sur les noeuds/serveurs utilisés.
- versioning des données.
- absence de notions ACID - Les propriétés dites BASE (Basically Available, Soft state, Eventually consistent) définissent que toutes mises à jour sur un système distribué NoSQL seront éventuellement cohérentes uniquement suite à une période sans mises à jour, puisque, en réalité, il est impossible de conserver un système cohérent en permanence, ce qui aurait pour effet de détériorer la disponibilité des données.
Quelques exemples de systèmes NoSQL
Voici quelques bases de données NoSQL fréquemment citées: HBase, Apache Casadra, MongoDB, Neo4j, Oracle NOSQL, Oracle Berkley DB, IBM Informix, IBM Lotus Notes.