Les bases de données SQL

Les systèmes de gestion de base de données permettent de lire et d'écrire facilement et rapidement un ensemble de données structurées. Apparus aux débuts des années 1980, ils ont vites été adoptés et sont aujourd'hui omniprésents dans le secteur financier. La majorité des données bancaires sont stockées et manipulées dans des bases de données relationnelles. Petit aperçu.

Le SQL

Le Structured Query Language (SQL) est un langage de programmation qui permet de lire et de modifier des données. Ce langage, normalisé, est interprété par toutes les bases de données relationnelles.

On peut s'imager une base de données relationnelles comme un ensemble de tables reliées logiquement entre elles. Pensez aussi à plusieurs feuilles Excel reliées entre elles.

Exemple de requêtes SQL : enregistrer et chercher des employés d'une société (champs : identifiant, nom de l'employé, date d'arrivée dans la société):

Procédures stockées

Les bases de données supportent aussi les procédures stockées qui sont un ensemble de requêtes SQL regroupées au sein d'une même transaction. Elles permettent de faire des traitements complexes sur les données avec certaines garanties. + Oracle a ainsi développé sont propres langage de procédures stockées : PL/SQL. + Microsoft a développé sa propre variante: T-SQL

Chaque éditeur a ainsi développé son propre langage de procédures stockées, ce qui limite fortement la comptabilité entre les différentes bases de données.

Les différents éditeurs

Il existe des dizaines de vendeurs de bases de données SQL. Les principaux éditeurs de bases de données SQL sont regroupés dans le tableau suivant :

Société Solution Création version actuelle Licence
Oracle Oracle Database 1979 18c propriétaire
Microsoft SQL Server 1989 2017 propriétaire
IBM DB2 1987 11.1 propriétaire
Sybase (SAP) Adaptive Server Enterprise (ASE) 1986 16.0 propriétaire
PostgreSQL 1996 11.2 open source
Oracle MySQL 1995 8.0 open source et propriétaire

Toutes ces solutions se distinguent par leur politique de licences, leurs fonctionnalités, leurs compatibilités, leurs performances...

Les bases de données Oracle sont souvent utilisées pour héberger les données volumineuses ou critiques des entreprises. Cet éditeur propose des tarifs de licences très élevés ce qui poussent certains projets à préférer les bases de données Microsoft SQL Server (notamment pour les projets développé en C#), IBM DB2 ou Sybase ASE, qui offrent des caractéristiques et usages sensiblement proches.

Dans le monde de l’Open source on choisit souvent entre :

  • PostgreSQL que certains décrivent comme un « équivalent gratuit d’Oracle ». Il propose de nombreuses fonctionnalités, avec un grand respect de la norme SQL. Le développement très ouvert, non financé par un acteur IT, peut faire douter les décideurs concernant la pérennité et le support de cette solution.
  • MySQL : une base de données avec peu de fonctionnalité, rachetée par Oracle en 2006.

On pourrait aussi mentionner MariaDB, un dérivé de MySQL, SQLite (intégré notamment dans tous les téléphones Android) ou Microsoft Access.

Quelles bases de données choisir?

Si vous commencez un nouveau projet, vous avez le choix ! Votre choix sera conditionné par votre budget, la volumétrie des données, la complexité du modèle de données, des performances...

Si vous utiliser un logiciel du marché, l'éditeur peut vous contraindre dans votre choix de base de données. Ainsi le logiciel SimCorp Dimension fonctionne uniquement avec Oracle Database 11g Release 2 (référence).

Changement de base de données

Changer de base de données est parfois nécessaire pour des raisons budgétaires ou de volumétrie/capacité de traitements.

Il est difficile de changer de base de données au cours de la vie d’un projet : problème de compatibilité, volume de données à exporter/importer, requêtes SQL et procédures stockées à réécrire…

Rôles et responsabilités

Différents acteurs sont amenés à utiliser une base de données.

Un administrateur de base de données (DBA) est la personne responsable du bon fonctionnement d’une base de données : configuration, optimisation, maintenance, mise à jour, sécurité, confidentialité…

Le DBA est souvent aussi amené à travailler avec les administrateurs systèmes, pour installer les bases de données (sur Linux ou Windows principalement) et optimiser le système d’exploitation. Les bases de données sont très gourmandes en ressources et nécessitent souvent des machines puissantes.

Les architectes conçoivent souvent le modèle de données (« les tables ») en se basant sur le modèle métier.

Les développeurs d’applications sont chargés d’écrire des requêtes SQL et de concevoir l’interface graphique (comme un site web) pour exposer les données aux utilisateurs. Ils peuvent aussi demander des conseils aux DBA.

Un ingénieur support peut être amené à exécuter des requêtes SQL lors d’une opération de maintenance par exemple. Il travaille étroitement avec un DBA lors d’incidents de production comme des problèmes de performance.

Le futur des bases de données

Les bases de données SQL ont de beaux jours devant eux. Les grandes entreprises ont investis depuis longtemps dans les bases de données relationnelles et ont des contrats solides avec les éditeurs.

L’émergence des bases de données NoSQL (comme MongoDB, MarkLogic ou Cassandra) peut répondre à certains cas d’usage. Elles doivent encore se perfectionner pour vraiment concurrencer les bases de données SQL dans le stockage de données stratégiques.

On voit de plus en plus d’offres pour héberger les bases de données dans le Cloud. Cela irrite les éditeurs traditionnels (comme Oracle) qui perdent une part de marché.

Les gros acteurs du Cloud n’hésitent pas à développer leur propre moteur de bases de données comme Amazon Aurora, dérivé de MySQL.

Pour aller plus loin

Antoine, le 03 avril 2019