NoSQL, également appelé « pas seulement SQL » (« not only SQL » en anglais) ou « non-SQL », est une approche de la conception de bases de données qui permet le stockage et l’interrogation de données en dehors des structures traditionnelles que l’on trouve dans les bases de données relationnelles.
Bien que NoSQL puisse toujours stocker les données présentes dans les systèmes de gestion de bases de données relationnelles (SGBDR), il les stocke simplement différemment d’un SGBDR. La décision d’utiliser une base de données relationnelle plutôt qu’une base de données non relationnelle est largement contextuelle et varie selon le cas d’utilisation.
Au lieu de la structure tabulaire typique d’une base de données relationnelle, les bases de données NoSQL hébergent les données dans une seule structure de données, telle qu’un document JSON. Étant donné que cette conception de base de données non relationnelle ne nécessite pas de schéma, elle offre une évolutivité rapide pour gérer des ensembles de données volumineux et généralement non structurés.
Le NoSQL est également un type de base de données distribuée, ce qui signifie que les informations sont copiées et stockées sur différents serveurs, qui peuvent être distants ou locaux. Cela garantit la disponibilité et la fiabilité des données. Si certaines données sont mises hors ligne, le reste de la base de données peut continuer à fonctionner.
Aujourd’hui, les entreprises doivent gérer d’importants volumes de données à grande vitesse, avec la possibilité d’évoluer rapidement pour exécuter des applications web modernes dans presque tous les secteurs d’activité. En cette ère de croissance du cloud, du big data et des applications mobiles et web, les bases de données NoSQL offrent cette rapidité et cette évolutivité, ce qui en fait un choix populaire pour leurs performances et leur facilité d’utilisation.
Le langage de requête structuré (SQL) est couramment mis en relation avec NoSQL. Pour mieux comprendre la différence entre NoSQL et SQL, il peut être utile de comprendre l’histoire de SQL, un langage de programmation utilisé pour récupérer des informations spécifiques à partir d’une base de données.
Avant les bases de données relationnelles, les entreprises utilisaient un système de base de données hiérarchique dont les tables étaient structurées en arborescence. Ces premiers systèmes de gestion de base de données (SGBD) permettaient aux utilisateurs d’organiser de grandes quantités de données. Cependant, ils étaient complexes, souvent exclusifs à une application particulière, et limités dans les méthodes de découverte des données. Ces limitations ont finalement conduit au développement de systèmes de gestion de bases de données relationnelles, qui organisent les données dans des tables. SQL a fourni une interface pour interagir avec les données relationnelles, permettant aux analystes de connecter des tables en les fusionnant sur des champs communs.
Au fil du temps, les demandes d’utilisation plus rapide et plus disparate de grands jeux de données sont devenues de plus en plus importantes pour les technologies émergentes, telles que les applications d’e-commerce. Les programmeurs avaient besoin de quelque chose de plus flexible que les bases de données SQL (c.-à-d. les bases de données relationnelles). Le NoSQL est devenu cette alternative.
Bien que NoSQL ait fourni une alternative à SQL, cette avancée n’a en aucun cas remplacé les bases de données SQL. Par exemple, imaginons que vous gériez les commandes d’une entreprise. Dans un modèle relationnel, les tables individuelles géreraient séparément les données client, les données de commande et les données produit, et elles seraient réunies via une clé commune unique, telle qu’un identifiant client ou un identifiant de commande. Bien que ce soit idéal pour stocker et récupérer rapidement des données, cela nécessite une mémoire importante. Lorsque vous souhaitez ajouter plus de mémoire, les bases de données SQL ne peuvent évoluer que verticalement et non horizontalement, ce qui signifie que votre capacité à ajouter plus de mémoire est limitée au matériel dont vous disposez. Par conséquent, l’évolutivité verticale limite en fin de compte le stockage et la récupération des données de votre entreprise.
En comparaison, les bases de données NoSQL sont non relationnelles, ce qui élimine le besoin de connecter des tables. Leurs capacités intégrées de partitionnement et de haute disponibilité facilitent l’évolutivité horizontale. Si un seul serveur de base de données ne suffit pas à stocker toutes vos données ou à traiter toutes les requêtes, la workload peut être divisée entre deux serveurs ou plus, ce qui permet aux entreprises de faire évoluer leurs données de manière horizontale.
Bien que chaque type de base de données présente ses avantages, les entreprises utilisent généralement à la fois des bases de données NoSQL et des bases de données relationnelles dans une seule application. Les fournisseurs de cloud d’aujourd’hui peuvent prendre en charge les bases de données SQL ou NoSQL. La base de données que vous choisissez dépend de vos objectifs.
Pour en savoir plus sur les différences entre les deux options, consultez l’article « Bases de données SQL et NoSQL : quelle est la différence ? ».
NoSQL offre d’autres options pour organiser les données de plusieurs façons. En offrant diverses structures de données, NoSQL peut être appliqué à l’analytique de données, à la gestion du big data, aux réseaux sociaux et au développement d’applications mobiles.
Une base de données NoSQL gère les informations à l’aide de l’un ou l’autre de ces modèles de données primaires :
Il s’agit généralement de la forme la plus simple de bases de données NoSQL. Ce modèle de données sans schéma est organisé en dictionnaire de paires clé-valeur, où chaque élément possède une clé et une valeur. Les clés peuvent être similaires à celles des bases de données SQL, comme l’ID d’un panier d’achat, tandis que les valeurs sont des ensembles de données, par exemple chaque article du panier d’achat de l’utilisateur. Ce modèle est couramment utilisé pour mettre en cache et stocker les informations de session utilisateur, par exemple les paniers d’achat. Mais ce type de base de données n’est pas vraiment adapté à l’extraction de plusieurs enregistrements à la fois. Redis et Memcached sont des exemples de bases de données clé-valeur open source.
Comme leur nom l’indique, les bases de données orientées documents stockent les données sous forme de documents. Elles peuvent être utiles pour gérer des données semi-structurées, qui sont généralement stockées aux formats JSON, XML ou BSON. Cela permet de garder les données ensemble lorsqu’elles sont utilisées dans des applications, réduisant ainsi le nombre de conversions nécessaires à leur utilisation. Les développeurs bénéficient également d’une plus grande flexibilité, car les schémas de données n’ont pas besoin de correspondre entre les documents (par exemple name et first_name). Cependant, cela peut être problématique pour les transactions complexes et entraîner la corruption des données. Parmi les cas d’utilisation courants des bases de données orientées documents, citons les systèmes de gestion de contenu et les profils d’utilisateurs. MongoDB, le composant de base de données de la pile MEAN est un exemple de base de données orientée documents.
Vous souhaitez en savoir plus sur MongoBD ? Consultez le tutoriel IBM pour commencer à utiliser les bases de données IBM Cloud Databases for MongoDB.
Ces bases de données stockent les informations dans des colonnes, ce qui permet aux utilisateurs d’accéder uniquement aux colonnes dont ils ont besoin sans allouer de mémoire à des données non pertinentes. Cette base de données tente de combler les lacunes des magasins clé-valeur et des magasins de documents, mais comme il peut s’agir d’un système plus complexe à gérer, elle n’est pas recommandée pour les équipes et les projets qui débutent. Apache HBase et Apache Cassandra sont des exemples de bases de données open source à colonnes larges. Apache HBase repose sur Hadoop Distributed Files System, qui permet de stocker des jeux de données épars, une solution couramment utilisée dans de nombreuses applications de big data. Apache Cassandra, quant à elle, a été conçue pour gérer de grandes quantités de données sur plusieurs serveurs et clusters répartis dans plusieurs centres de données. Elle est utilisée pour une variété de cas d’utilisation, comme les sites Web des réseaux sociaux et l’analytique de données en temps réel.
Ce type de base de données héberge généralement les données d’un graphe de connaissances. Les éléments de données sont stockés sous forme de nœuds, d’arcs et de propriétés. N’importe quel objet, lieu ou personne peut être un nœud. Un arc définit la relation entre les noeuds. Par exemple, un nœud peut être un client, comme IBM, et une agence, comme Ogilvy. Un arc catégoriserait la relation comme une relation client entre IBM et Ogilvy.
Les bases de données orientées graphes sont utilisées pour stocker et gérer un réseau de connexions entre les éléments du graphe. Neo4j est un service de base de données orientée graphes basé sur Java avec une édition communautaire open source où les utilisateurs peuvent acheter des licences pour la sauvegarde en ligne et des extensions haute disponibilité, ou une version sous licence préconfigurée avec sauvegarde et extensions incluses.
Avec ce type de base de données, comme IBM solidDB, les données résident dans la mémoire principale plutôt que sur le disque, ce qui accélère l’accès aux données par rapport aux bases de données conventionnelles sur disque.
De nombreuses entreprises sont entrées sur le marché NoSQL. En plus de celles mentionnées ci-dessus, voici quelques bases de données NoSQL populaires :
Pour en savoir plus sur l’actualité des bases de données, consultez la rubrique « Brève vue d’ensemble du paysage des bases de données ».
Chaque type de base de données NoSQL a des points forts qui le rendent idéal pour des cas d’utilisation spécifiques. Cependant, ils présentent tous les avantages suivants pour les développeurs et créent le cadre nécessaire pour fournir un meilleur service aux clients, notamment :
En un mot, les bases de données NoSQL offrent des performances, une disponibilité et une évolutivité élevées.
La structure et le type de base de données NoSQL que vous choisissez dépendent de la façon dont votre organisation prévoit de l’utiliser. Voici quelques utilisations spécifiques pour différents types de bases de données NoSQL.
La nécessité pour les grandes entreprises de fournir des services sans latence et d’évoluer plus rapidement a stimulé la croissance des microservices, ce qui a conduit les entreprises à réfléchir au type de base de données à utiliser pour différentes applications.
Les entreprises ont constaté que l’utilisation d’une base de données relationnelle unique pour chaque composant d’une application avait ses limites, en particulier lorsqu’il existe de meilleures alternatives pour des composants spécifiques. Les microservices constituent une option intéressante, en partie parce qu’ils éliminent le besoin d’un magasin de données unique et partagé pour l’ensemble d’une application. Au lieu de cela, l’application comporte de nombreux services faiblement couplés et déployables indépendamment, chacun avec son propre modèle de données et sa propre base de données, et intégrés via des passerelles API ou une iPaaS.
La tendance à utiliser plusieurs bases de données au sein d’une seule application, également connue sous le nom de persistance polyglotte, a contribué à créer un espace sur le marché permettant aux bases de données NoSQL de prospérer. Aujourd’hui, les développeurs peuvent tirer parti de la bonne base de données pour le bon microservice sans essayer de tout faire fonctionner dans le contexte d’une base de données relationnelle unique.
Simplifiez l’accès aux données et automatisez la gouvernance des données. Découvrez la puissance de l’intégration d’une stratégie de data lakehouse dans votre architecture de données, notamment l’optimisation des coûts de vos workloads et le dimensionnement de l’IA et des analyses, avec toutes vos données, partout.
Explorez le guide pour les responsables des données sur le développement d’une organisation axée sur les données et d’un avantage métier.
Consultez notre guide et découvrez comment exploiter les bases de données adéquates pour les applications, les analyses et l’IA générative.
Découvrez comment une approche de type data lakehouse ouvert peut fournir des données fiables et accélérer l’exécution des analyses et des projets d’IA.
Utilisez les solutions de base de données IBM pour répondre aux différents besoins en matière de workload sur le cloud hybride.
Découvrez IBM Db2, une base de données relationnelle qui offre des performances, une évolutivité et une fiabilité élevées pour le stockage et la gestion des données structurées. Elle est disponible en tant que solution SaaS sur IBM Cloud ou en autohébergement.
Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com