©
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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !