©
Najib Tounsi
1
SQL et Langages de Programmation
• SQL est un langage bases de données autonome.
• Langage ensembliste de haut niveau
• Il faut un langage de programmation, pour programmer des applications de gestion
o Notion de variables, structures de contrôles, etc.
o SQL est exécuté à l'intérieur d'un programme d'application
• Nécessité de coupler SQL avec un langage plus classique (dit langage hôte)
• « Impedence mismatch »
o SQL : haut niveau, traitement ensembliste, données persistantes, accès par valeur
o Langage programmation : algorithmique, données temporaires, accès par adresse
• Couplage fort ou couplage faible ?
©
Najib Tounsi
2
SQL et Langages de programmation : Couplage Fort
• SQL est augmenté d’un ensemble de constructions intégrées permettant son usage en
programmation.
• Intégration cohérente, un seul compilatur.
o E.g. types tuple, relation, etc… (cf. Pascal-Relationnel)
o Traitement ensembliste intégré au langage (e.g. instruction foreach etc. )
• Plus ou moins un nouveau langage de programmation (nouveau compilateur, etc.)
• PL/SQL, entre autres, est un exemple commercial (oracle)
• Dans une moindre mesure PHP/Mysql, JDBC etc. (voir après)
• Les L4Gs aussi sont de ce type.
• Solutions propriétaires
©
Najib Tounsi
3
SQL et Langages de programmation : Solution type middleware
• Usage d’une API qui fait l’interface entre le programme et le serveur BD (moteur SQL)
• PHP/..SQL
o mysql_select_db("store",$link);
o $result = mysql_query("SELECT * FROM employee",$link);
o $row = mysql_fetch_row($result)
o echo mysql_result($result,0,ename);
o printf("", $row[0], $row[1], $row[2], $row[3], $row[4]);
• Du coté du programme on manipule des données de types courants du langage hôte.
• Variables ((e.g. $link, $result, $row...) ) remplies par appel à des fonctions prédéfinies (API
orientée SQL).
• Cf. JDBC
©
Najib Tounsi
4
SQL et Langages de programmation : Couplage Faible
• SQL est exécuté à l'intérieur d'un programme d'application.
• Les requêtes SQL sont incorporées aux instructions d'un programme.
• On dit « Embedded SQL » ESQL.
• ESQL/C, ESQL/COBOL, ESQL/Java, ESQL/Fortran , etc. sont tous des produits standards.
• En principe toute requête SQL directe peut aussi être exécutée dans un programme.
• Réutilisation des langages existants
• Principe de préprocesseur.
• Exemple Pro*C precompiler de Oracle
©
Najib Tounsi
5
EMBEDDED SQL
Source ESQL/C
Préprocesseur
Code SQL pur Code C pur
Processeur SQL Compilateur
Plan d'exécution Module Objet
Editeur de lien
Module exécutable
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!