Les bases de données ont toujours été le cœur de tout système d’information.

Seulement, il y a une multitude de termes et concepts pas toujours évidents à comprendre pour un dirigeant… Fichiers, index, SQL, NoSQL, Oracle, Sybase, PostgreSQL, SQL server, MAriaDB, MySQL, Google Sloud SQL, SQL Azure, simpleDB, DynamoDB, MongoDB, Document saving, sharding …

La base, le tableau

Depuis le début de l’informatique, tous les systèmes ont toujours fonctionné sur des fichiers composés de tableaux et lignes. Cette façon de faire est toujours utilisée avec les tableurs ou les petites bases de données de type Microsoft Access. Tant qu’il s’agit de petite quantité de données, ce type de solution peut tout à fait convenir.

 

SQL : le plus répandu

Né dans les années 70, SQL (Simple Query Language) est encore aujourd’hui la solution la plus utilisée.

Mise en œuvre par beaucoup d’entreprises ou solution opensource, cette technologie a beaucoup d’avantages.

  • Le premier point est que les données sont sauvegardées à un seul endroit à la fois, puis ensuite répliquées en fonction des besoins. Cela signifie également que l’on est capable de connaître la valeur d’un champ à un moment précis.
  • Le deuxième point à connaître est que les données son enregistrées dans des tables avec des liaisons entre les lignes de différentes tables. Structure parfois complexe, dépendante des besoins du logiciel.

Le SQL est très utilisé dans le milieu bancaire pour son unicité des données ; ce qui permet l’enregistrement des transactions de manière fiable et dans un seul et unique endroit de reference.

L’inconvénient de cette unicité est que cela rend la gestion de bases de données très volumineuses assez difficile. La mise en place de système fiable 24h/24 sans aucune interruption de service le devient également. Il est fréquent d’avoir à mettre en place une solution de secours qui peut-être totalement indépendante de la solution nominale.

Pour résumer, SQL est la solution fiable et accessible par excellence pour les besoins minimes ou pour les besoins en grande fiabilité des données. Les solutions les plus connues sont : Oracle, MySQL, PostgreSQL, SQL server, MariaDB, Sybase …

 

Le challenger : le NoSQL

Depuis plusieurs années, le NoSQL (Not Only SQL) devient de plus en plus répandu.

Cette nouvelle solution vient en réponse à des besoins grandissants en terme de volumétrie. Dès que l’on commence à parler des besoins de Google ou Facebook ou simplement du bigData, le SQL atteint vite ses limites et vu la quantité de données, nous devons repenser l’architecture de manière distribuée au lieu d’augmenter la puissance des serveurs. On appelle aussi ce concept le « sharding ». La quantité des données devient alors illimitée car répartie à de multiples endroits. Néanmoins, cela supprime le concept de données uniques, nécessaire en cas de système de paiement.

Le deuxième point notable sur le NoSQL est que nous ne stockons plus les données simplement en tant que tableaux mais plutôt de manière hiérarchique. C’est ce que l’on appelle le stockage Documents ou données non structurées, qui permet d’identifier une donnée par une clé et sa valeur.

Les solutions NoSQL les plus répandus sont : MongoDB, Cassandra, Hbase, simpleDB, dynamoDB…

 

La recherche : comment ça marche ?

Les besoins en moteur de recherche sont grandissants. Cependant avec une quantité de données de plus en plus importante, il est nécessaire d’utiliser des solutions afin d’optimiser cette fonction.

Dans tous les systèmes de base de données, il existe le concept d’ « index » qui consiste à créer une table de recherche rapide, souvent stockée en mémoire RAM, et qui optimise les recherches sur les données les plus fréquentes.

Mais, il peut-être judicieux d’encore plus optimiser, en passant par des solutions de correction orthographique, synonymes… Il devient alors nécessaire d’utiliser des logiciels ou services spécifique tels que : ElasticSearch, azure search, apache Solr, Opensearch Server, Sphinx, SearchBlox, ou Algolia (Startup française basé à San Francisco).

 

Et vous ?

Quel type de base de données utilisez-vous et pour quel besoin ?

Avez-vous une bonne ou mauvaise expérience à partager ?

N’hésitez pas à laisser un commentaire !