Accès aux bases de données
Principe de fonctionnement d’une base de données
Les bases de données relationnelles sont devenues des éléments incontournables de la majorité des applications. Elles se substituent à l’utilisation de fichiers gérés par le développeur lui-même. Cet apport permet un gain de productivité important lors du développement et une amélioration significative des performances des applications. Elles facilitent également le partage d’informations entre utilisateurs. Pour pouvoir utiliser une base de données, vous devez connaître un minimum de vocabulaire lié à cette technologie.
1. Terminologie
Dans le contexte des bases de données les termes suivants sont fréquemment utilisés :
-
Base de données relationnelle : une base de données relationnelle est un type de base de données qui utilise des tables pour le stockage des informations. Elles utilisent des valeurs issues de deux tables pour associer les données d’une table aux données d’une autre table. En règle générale, dans une base de données relationnelle, les informations ne sont stockées qu’une seule fois.
-
Table : une table est un composant d’une base de données qui stocke les informations dans des enregistrements (lignes) et dans des champs (colonnes). Les informations sont en général regroupées par catégorie au niveau d’une table. Par exemple, nous aurons la table des Clients, des Produits, ou des Commandes.
-
Enregistrement : l’enregistrement est l’ensemble des informations relatives à un élément d’une table. Les enregistrements sont les équivalents au niveau logique des lignes d’une table. Par exemple un enregistrement de la table Clients contient les caractéristiques d’un client particulier.
-
Champ : un enregistrement est composé de plusieurs champs. Chaque champ d’un enregistrement contient une seule information sur l’enregistrement. Par exemple un enregistrement Client peut contenir les champs CodeClient, Nom, Prénom...
-
Clé primaire : une clé primaire est utilisée pour identifier de manière unique chaque ligne d’une table. La clé primaire...
Accès à une base de données à partir de Java
Lorsque l’on souhaite manipuler une base de données à partir d’un langage de programmation, deux solutions sont disponibles :
-
Communiquer directement avec la base de données.
-
Utiliser une couche logicielle assurant le dialogue avec la base de données.
La première solution comporte plusieurs exigences.
-
Vous devez parfaitement maîtriser la programmation réseau.
-
Vous devez également connaître en détail le protocole utilisé par la base de données.
-
Ce type de développement est souvent très long et parsemé d’embûches. Par exemple les spécifications du protocole sont-elles accessibles ?
-
Tout votre travail devra être recommencé si vous changez de type de base de données car les protocoles ne sont bien sûr pas compatibles d’une base de données à l’autre. Pire parfois même d’une version à l’autre d’une même base de données.
La deuxième solution est bien sûr préférable et c’est celle-ci que les concepteurs de Java ont choisie. Ils ont donc développé l’API JDBC (Java DataBase Connectivity) pour l’accès à une base de données. Plus précisément l’API JDBC est composée de deux parties. La première partie contenue dans le package java.sql est essentiellement composée d’interfaces. Ces interfaces sont implémentées par le pilote JDBC. Ce pilote n’est pas développé par Oracle mais en général par le concepteur de la base de données. C’est effectivement ce dernier qui maîtrise le mieux la technique pour communiquer avec la base de données. Il existe quatre types de pilotes JDBC avec des caractéristiques et des performances différentes.
-
Type 1 : Pilote JDBC-ODBC
Ce type de pilote n’est pas spécifique à une base de données mais il traduit simplement les instructions jdbc en instructions ODBC. C’est ensuite le pilote odbc qui assure la communication avec la base de données. Cette solution n’offre que des performances médiocres. Ceci est principalement lié au nombre de couches logicielles mises en œuvre....