|  
    
 Procédural vs langues de requête non procédurale dans le SGBDS  
  
  Langage de requête procédurale (PQL)   
  
 *  focus: Spécifie les étapes exactes et l'ordre des opérations pour récupérer les données.  
 *  comment cela fonctionne:  
 * Utilise des commandes comme "Open", "Close", "Fetch" et "Loop" pour contrôler l'accès aux données.  
 * Exige que l'utilisateur définit explicitement le processus de récupération, y compris la manipulation des données et l'itération.  
 *  Exemple:  
  
 `` SQL  
 - Récupérer les noms et salaires des employés, tri par salaire  
 Open Cursor_Employee;  
 Fetch Cursor_Employee dans employee_name, salaire;  
 Pendant (récupérer cursor_employee dans Employee_name, Salaire) Loop  
 Si salaire> 50000 alors  
 Imprimer Employee_Name, salaire;  
 Terminer si;  
 Boucle de fin;  
 Fermer Cursor_Employee;  
 `` '  
  
  Langage de requête non procédurale (NPQL)   
  
 *  focus: Décrit le résultat souhaité sans spécifier les étapes exactes.  
 *  comment cela fonctionne:  
 * Utilise des déclarations déclaratives qui expriment le résultat souhaité sans détails de procédure.  
 * Le système détermine le plan d'exécution optimal pour récupérer les données.  
 *  Exemple:  
  
 `` SQL  
 - Récupérer les noms et salaires des employés, tri par salaire  
 Sélectionnez Employee_Name, salaire  
 De l'employé  
 Où le salaire> 50000  
 Ordre par salaire;  
 `` '  
  
  Différences clés:  
  
 | Caractéristique | Langue de requête procédurale | Langue de requête non procédurale |  
 | --- | --- | --- |  
 |  spécificité  | Définit explicitement chaque étape | Décrit le résultat souhaité |  
 |  contrôle  | Contrôle de l'utilisateur Accès et manipulation des données | Le système détermine le plan d'exécution |  
 |  complexité  | Peut être complexe et difficile à écrire | Plus simple et plus intuitif à utiliser |  
 |  flexibilité  | Très flexible, permettant une manipulation de données complexes | Moins flexible, limité à des requêtes spécifiques |  
 |  Performance  | Peut être plus lent en raison d'un contrôle explicite | Peut être plus rapide en raison de plans d'exécution optimisés |  
 |  Exemples communs  | COBOL, RPG | SQL, XQuery |  
  
  
  Avantages et inconvénients:  
  
  Langue de requête procédurale:  
  
 *  Avantages:  
 * Flexibilité pour les opérations complexes  
 * Contrôle à grain fin sur l'accès aux données  
 *  Inconvénients:  
 * Complexe à écrire et à comprendre  
 * Moins efficace que les langues non procédurales  
  
  Langue de requête non procédurale:  
  
 *  Avantages:  
 * Plus facile à écrire et à comprendre  
 * Plus efficace en raison de plans d'exécution optimisés  
 *  Inconvénients:  
 * Moins flexible que les langues procédurales  
 * Limité dans des opérations complexes  
  
  
  En général, les langues de requête non procédurales sont plus largement utilisées dans les SGBD, principalement en raison de leur simplicité et de leur facilité d'utilisation.  Cependant, les langues procédurales sont encore précieuses dans des situations spécifiques où une manipulation de données complexes et un contrôle à grain fin sont nécessaires.
 
 |