Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:documentation:h2

Ceci est une ancienne révision du document !


Le SGBD H2

Pré-requis : Java

Vérifier que java est installé

   java –version 

sinon télécharger le dernier jdk java (ou la jre java 8 ) et l’installer.

Seulement si nécessaire, compléter le PATH

Sous Linux :

   export PATH=${PATH}:chemin vers le dossier bin contenant java

Sous Windows :

   set PATH=%PATH%;chemin vers le dossier contenant java.exe

Téléchargement

Il y a 2 outils distincts : un SGBD et une interface d’accès au SGBD.

Le SGBD H2. Voir aussi le manuel H2 en anglais. Télécharger h2-1.4.200.jar dans votre dossier de travail ou exécuter les instructions suivantes :

cd votre_dossier_de_travail
wget https://h2database.com/h2-2019-10-14.zip
unzip h2-2019-10-14.zip 
mv h2/bin/*.jar .
rm h2*.zip

Démarrage du SGBD H2

On démarre le SGBD H2 en mode “serveur”. Ouvrir un terminal et aller dans votre dossier de travail. On utilise le port 9093

cd votre_dossier_de_travail
java -cp h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9093 &

Vérifier que le message suivant s’affiche :

TCP server running at  tcp://127.0.1.1:9093 (only local connections)

Vérifier que le serveur H2 est démarré : afficher un processus nommé h2 :

ps -u | grep h2 | grep Server

cela affiche java -cp h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9093

Démarrage de l’interface d’accès SQLWorkbench

On démarre SQLWorkbench pour accéder au SGBD H2. Télécharger sqlworkbench.jarPour cela, ouvrir un terminal et aller dans votre dossier de travail :

cd votre_dossier_de_travail
java -jar sqlworkbench.jar

Compléter les champs suivants dans le profil de connexion : Driver: sélectionner H2 Database Engine puis Cliquer sur Manage Drivers (ou Edit the driver definition) et sélectionner H2 database Engine dans le panneau de gauche et cliquer sur le bouton avec une icône de dossier pour indiquer l’emplacement du fichier h2-1.4.200.jar

image

Revenir dans la fenêtre « Select Connection profile »

Remplacer la valeur du champ URL par ceci pour charger la base existante tpmondial. Attention ne pas indiquer le suffixe .mv.db du fichier de la base. Exemples d’URL :

 jdbc:h2:tcp://localhost:9093/~/TP1/tpmondial

Permet de charger la base se trouvant dans le fichier ~/TP1/tpmondial.mv.db

Sous windows, cela charge la base tpmondial.mv.db se trouvant dans le dossier %USERPROFILE%\TP1 de l’utilisateur, avec USERPROFILE étant le dossier principal de l'utilisateur.

Puis compléter le champ Username pour indiquer que la base Mondial a été créée par l’utilisateur nommé etu :

  • Username: etu
  • Le champ Password reste vide.

Utilisation de SQLWorkbench

Commencer par ouvrir l’onglet Database Explorer dans le menu Tools → Show Database Explorer. Database Explorer permet de consulter les tables existantes et leur schéma. Il permet aussi d’afficher le contenu des tables. Cliquer sur le nom d’une table et choisir dans le panneau de droite le sous-onglet Data.

Ouvrir un onglet avec les exemples de requêtes :

File → Open et sélectionner le fichier tpmondial-exemple-requete.sql dans votre dossier de travail. Cela permet de saisir des instructions SQL et de les envoyer au SGBD. La fenêtre est divisée en 2 parties : la partie supérieure sert à éditer les instructions SQL, la partie inférieure affiche le résultat des instructions. Pendant le TP, on interagit avec le SGBD uniquement au moyen d’instructions SQL, l’objectif est de progresser en SQL, pas de maîtriser toutes les fonctionnalités de l’outil SQLWorkbench.

Penser à bien séparer chaque instruction SQL par un point-virgule. Il y a deux possibilités pour exécuter une requête :

  • Sélectionner les lignes de la requête puis Ctrl-E pour exécuter la partie de texte sélectionnée.
  • Placer le curseur au début d’une ligne et faire Ctrl-Entrée. Cela envoie au SGBD toute la partie de texte depuis le précédent point-virgule jusqu’au point virgule suivant.

Possibilité d’ouvrir plusieurs onglets (View → Add Tab, Save Tab).

Questions diverses

Puis-je modifier le contenu de la base ?

Oui, avec les instructions SQL insert, update et delete. Faire un

 commit; 

à la fin de vos instructions pour que les données soient visibles des autres applis qui interrogent la base.

Peut-on éteindre le SGDB H2 ?

Ouvrir un terminal:

 cd votre_dossier_de_travail
 java -cp h2-1.4.200.jar org.h2.tools.Server -tcpShutdown tcp://localhost:9093

Est-ce que le SGBD H2 est démarré ?

Dans un terminal, afficher un processus nommé h2 :

 ps -u | grep h2 | grep Server

Accès à la base depuis Windows

Voir les indications complémentaires TP BD sous windows et les adapter à votre cas.

Consulter le schéma d’une base

Les instructions SQL pour consulter le schéma d’une base sans utiliser Database Explorer :

 show tables;        - affiche le nom des tables 
 show columns from matable;         -affiche le schéma relationnel de matable.

Peut-on créer, avec H2, une nouvelle base autre que la base Mondial ?

Oui, pour cela il faut éteindre H2 puis le relancer avec l’option -ifNotExists

 java -cp h2-1.4.200.jar org.h2.tools.Server -ifNotExists -tcp -tcpPort 9093 &

Comment utiliser wget depuis les salles de la PPTI ?

En salle de TME, la commande wget est bloquée car les connexions sortantes ne sont pas autorisée. Il faut préciser de passer par le proxy en ajoutant les options use_proxy et https_proxy :

wget use_proxy=on -e https_proxy=proxy:3128 url_du_fichier_à_télécharger
site/enseignement/documentation/h2.1611839686.txt.gz · Dernière modification: 28/01/2021 14:14 par hubert