Dans l’univers des bases de données, la notion de concurrence a une signification particulière bien différente du mot concurrent que nous connaissons tous et qui s’applique à l’économie.
En base de données, la concurrence signifie « accès simultanés« . Il est très fréquent que plusieurs personnes (ou programmes) souhaitent accéder « en même temps » aux mêmes données. C’est le cas lorsque l’on consulte un site web. C’est aussi le cas lorsque plusieurs utilisateurs souhaite accéder à la même fiche client dans un logiciel de gestion commerciale.
Le cas est plus problématique lorsque plusieurs utilisateurs souhaitent modifier « en même temps » les mêmes données ou qu’une donnée consultée par une personne est parallèlement modifiée par une autre.
Pour gérer ces situations problématiques d’accès concurrentiels aux données, les bases de données utilise des règles de gestion et d’intégrité des données nommées ACID. Il en découle des traitements par lots (les transactions) et la mise en place de mécanismes d’isolation (pose de verrous pour interdire l’accès à certaines données pendant la durée d’un traitement). Les verrous posent aussi d’autres problèmes et il faut parfois décaler dans le temps les opérations conflictuelles. Ce qui entraîne encore d’autres situations problématiques (données non à jour, doublons, synchronisation…).
Derrière le terme de concurrence d’accès aux données, il y a aussi un enjeu de performance : en fonction du volume de données à traiter, tous les SGBD ne se valent pas. Certains peuvent absorber des dizaines de demandes simultanées alors que d’autres sont capables d’en traiter beaucoup plus. Enfin, l’aspect matériel et l’architecture technique déployée devient souvent un goulot d’étranglement lorsque les problématiques de volume arrivent.