|
SQL (Structured Query Language) est considéré comme un langage non procédural car il se concentre sur *quelles* données à récupérer, et non sur *comment* les récupérer. En revanche, les langages procéduraux précisent les étapes exactes que l’ordinateur doit suivre pour obtenir un résultat.
Voici ce qui rend SQL non procédural :
* Caractère déclaratif : Vous décrivez le résultat souhaité (par exemple, "sélectionnez tous les clients de la table 'Clients' où le pays est 'USA'"), et le moteur SQL détermine la manière la plus efficace d'exécuter la requête. Vous ne dictez pas les algorithmes ou les étapes spécifiques.
* Optimisation par le système de base de données : Le système de gestion de base de données (SGBD) est chargé de créer un plan d'exécution – une séquence d'opérations – pour atteindre le résultat souhaité. Ce plan peut impliquer l'indexation, les jointures, le tri et d'autres techniques transparentes pour l'utilisateur. L'utilisateur ne précise pas comment ces opérations sont effectuées.
* Opérations orientées ensemble : SQL fonctionne sur des ensembles de données (tables) plutôt que sur des enregistrements individuels. Une seule instruction SQL peut manipuler des milliers ou des millions de lignes simultanément. Cela contraste avec les langages procéduraux, qui traitent généralement les données un enregistrement à la fois.
En revanche, un langage procédural (comme C ou Python) vous obligerait à écrire du code qui explicitement :
1. Ouvre la connexion à la base de données.
2. Parcourt chaque enregistrement de la table « Clients ».
3. Vérifie le pays de chaque enregistrement.
4. Si le pays est « États-Unis », ajoute l'enregistrement à un ensemble de résultats.
5. Ferme la connexion à la base de données.
SQL supprime toutes ces étapes, ce qui rend les tâches de manipulation de données beaucoup plus simples et efficaces, en particulier lorsqu'il s'agit de grands ensembles de données. Le « comment » est laissé à l'optimiseur du système de base de données.
|