Les bases de données relationnelles organisent les données au format tabulaire (lignes et colonnes) et facilitent les relations entre les différentes tables. Par exemple, une base de données de service client peut comporter des tables distinctes pour les informations clients, les achats, les codes produits et les contacts, reliées entre elles par des clés comme un identifiant client unique.
SQL permet aux utilisateurs d’écrire des requêtes (et sous-requêtes) pour manipuler ces données. Ces commandes sont exécutées par plusieurs composants logiciels au cours du processus SQL :
Un analyseur vérifie l’exactitude des instructions SQL et les convertit dans un format que la base de données peut comprendre, tel que les symboles tokenisés. Cette étape fait appel à l’analyse de la syntaxe et à la vérification sémantique. L’analyseur permet également de s’assurer que l’utilisateur est autorisé à effectuer l’opération.
Ensuite, un moteur relationnel, également connu sous le nom d’optimiseur de requêtes, planifie les stratégies de récupération, de modification ou d’ajout de données les plus efficaces. Pour ce faire, il évalue différents plans d’exécution des requêtes. Il écrit le plan en bytecode, qui est un langage de machine virtuelle. Cette étape est cruciale pour optimiser la performance de la base de données et l’utilisation des ressources.
Enfin, un moteur de stockage traite le bytecode, exécute l’instruction SQL et gère le stockage physique des données. Il gère la représentation physique des données, notamment les formats de fichiers et la mise en mémoire tampon des données. Il se charge également de renvoyer le résultat à l’utilisateur ou à l’application. Cette étape permet de garantir un accès aux données et des mises à jour sur disque efficaces. Ce type de liaison permet de mettre en place des relations (par exemple, un-à-plusieurs ou plusieurs-à-plusieurs) établies à l’aide de clés primaires et étrangères pour garantir l'intégrité des données.