Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:documentation:h2 [26/11/2020 09:32] amine |
site:enseignement:documentation:h2 [15/11/2021 18:50] (Version actuelle) amann [Télécharger et installer H2] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{indexmenu_n>10}} | {{indexmenu_n>10}} | ||
- | ===== Le SGBD H2===== | + | ===== SGBD H2 ===== |
- | ===Outils nécessaires pour ce TME=== | + | |
- | Vérifier que java est installé | + | H2 est un système de gestion de base de données relationnelle écrit en Java. |
- | <code bash> | + | |
- | java –version | + | |
- | </code> | + | |
- | sinon télécharger le dernier jdk [[https://jdk.java.net/|java]] (ou la jre [[https://www.java.com/fr/download/|java 8]] ) et l’installer. | + | ==== Instructions ==== |
- | **Seulement si nécessaire**, compléter le PATH | + | Le système H2 est écrit en Java qu'il faudra installer avant si nécessaire: [[https://java.com/en/download/help/download_options.xml]] |
- | //Sous Linux// : | + | ==== Télécharger et installer H2 ==== |
- | <code bash> | + | [[https://www.h2database.com/html/main.html]] et suivez les instructions d'installation. |
- | export PATH=${PATH}:chemin vers le dossier bin contenant java | + | |
- | </code> | + | |
- | //Sous Windows// : | + | - uniquement Windows: Windows Installer installe H2 comme programme dans le répertoire c:\Program Files ou C:\Program Files (X86) |
- | <code bash> | + | - Window et Linux: vous pouvez aussi télécharger le fichier //All platforms// qui est une fichier Zip que vous pouvez décompresser. Le répertoire créé contient un sous-répertoire//bin// avec toutes les commandes H2. |
- | set PATH=%PATH%;chemin vers le dossier contenant java.exe | + | ==== Créer une base de données vide ==== |
- | </code> | + | |
- | Il y a 2 outils distincts : un SGBD et une interface d’accès au SGBD : | + | <fc #ff0000>Attention: la nouvelle version de H2 demande la création de la base avant le lancement de la console.</fc> |
- | * Le SGBD [[https://www.h2database.com/html/main.html|H2]]. Voir aussi le [[https://www.h2database.com/h2.pdf|manuel H2]] en anglais. **Télécharger** [[https://nuage.lip6.fr/s/FrjfmmocrYmDFit|h2-1.4.200.jar]] dans votre dossier de travail. Optionnellement, vous pouvez utiliser wget pour le téléchargement : | + | |
- | <code bash> | + | |
- | wget https://h2database.com/h2-2019-10-14.zip | + | |
- | unzip h2-2019-10-14.zip | + | |
- | mv h2/bin/*.jar . | + | |
- | rm h2*.zip | + | |
- | </code> | + | |
- | ===Démarrage du SGBD=== | + | === Méthodé de création 1: === |
- | On démarre le SGBD H2 en mode “serveur”. Ouvrir un terminal et aller dans votre dossier de travail. On utilise le port 9093 | + | |
- | <code bash> | + | La première méthode consiste à Lancer H2 (voir ci dessous) et choisir dans l'**icône H2 affiché dans le menu** "Create a new database" (click bouton droit). |
- | cd votre_dossier_de_travail | + | |
- | java -cp h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9093 & | + | |
- | </code> | + | |
+ | {{ :site:enseignement:licence:2i009:sgbd-h2:capture_h2_1.png?200 |}} | ||
- | Vérifier que le message suivant s’affiche : | ||
- | <code> | ||
- | TCP server running at tcp://127.0.1.1:9093 (only local connections) | ||
- | </code> | ||
+ | La fenêtre affiché permet ensuite d'indiquer le chemin vers la base de données (attention: vous devez avoir le droit de créer le fichier). | ||
- | Vérifier que le serveur H2 est démarré : afficher un processus nommé h2 : | + | {{ :site:enseignement:licence:2i009:sgbd-h2:capture_h2_2.png?400 |}} |
- | <code bash> | + | Par exemple, vous pouvez mettre "~/td7" qui crée la base de donnée dans votre répertore HOME (~). Il faut ensuite indiquer un utilisateur et un mot de passe non-vide. |
- | ps -u | grep h2 | grep Server | + | |
- | </code> | + | |
- | cela affiche //java -cp h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9093// | + | === Méthodé de création 2: === |
+ | Exemple dans une console cmd Windows : | ||
- | ===Démarrage de l’interface d’accès=== | + | > java -cp 'C:\Program Files (x86)\H2\bin\h2-1.4.199.jar' org.h2.tools.Shell |
+ | Welcome to H2 Shell | ||
+ | Exit with Ctrl+C | ||
+ | [Enter] | ||
+ | URL jdbc:h2:~/test | ||
+ | [Enter] org.h2.Driver | ||
+ | Driver org.h2.Driver | ||
+ | [Enter] | ||
+ | User sa | ||
+ | Password | ||
+ | Type the same password again to confirm database creation. | ||
+ | Password | ||
+ | Connected | ||
+ | |||
+ | sql> quit | ||
+ | Connection closed | ||
+ | |||
+ | Dans une installation locale il faut remplacer | ||
+ | java -cp C:\Program Files (x86)\H2\bin\h2-1.4.199.jar org.h2.tools.Shell | ||
+ | par le chemin correspondant. Par exemple: | ||
+ | java -cp C:\Users\toto\Desktop\h2-1.4.199\bin\h2-1.4.199.jar org.h2.tools.Shell | ||
+ | ou | ||
+ | java -cp /home/toto/h2-1.4.199/bin/h2-1.4.199.jar org.h2.tools.Shell | ||
- | On démarre SQLWorkbench pour accéder au SGBD H2. Pour cela, ouvrir un terminal et aller dans votre dossier de travail : | + | Le mot de passe peut être vide et vous pouvez changer le nom de la base (test). La commande génère un fichier dans votre répertoire HOME (~). |
- | <code bash> | + | |
- | cd votre_dossier_de_travail | + | |
- | java -jar sqlworkbench.jar | + | |
- | </code> | + | |
- | Compléter les champs suivants dans le profil de connexion : | + | [[http://www.h2database.com/html/tutorial.html|Tutoriel H2]] |
- | 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 | + | |
- | {{:site:enseignement:master:mlbda:tmes:sqlworkbench1.png?400|image}} | + | ==== Lancer H2 ==== |
- | Revenir dans la fenêtre « Select Connection profile » | ||
- | {{:site:enseignement:master:mlbda:tmes:sqlworkbench2.png?400|}} | + | === Linux === |
- | 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 : | ||
- | /* Si le nom de la base ne correspond à aucun fichier existant, alors une nouvelle base vide sera créée. | + | cd h2-2019-10-14/bin |
- | */ | + | chmod +x h2.sh |
+ | ./h2.sh | ||
- | jdbc:h2:tcp://localhost:9093/~/TP1/tpmondial | + | === Windows === |
+ | |||
+ | - Naviguer dans le répertoire h2-2019-10-14/bin | ||
+ | - Exécuter h2.bat | ||
+ | |||
+ | (ou chercher "H2 Console" et exécuter) | ||
+ | |||
+ | |||
+ | La commande lance le serveur et ouvre une fenêtre de connexion: | ||
+ | |||
+ | {{:site:enseignement:licence:2i009:documents-tme:h2_1.png?500|}} | ||
+ | |||
+ | |||
+ | |||
+ | Cliquer sur **Connecter** | ||
+ | |||
+ | |||
+ | __Remarque__ : en cas d'erreur de connexion, vérifier que la configuration est "Generic H2 (Embedded)" et le champ URL JDBC contient bien '' jdbc:h2:~/test '' {{:site:enseignement:licence:2i009:documents-tme:h2_2.png?500|}} | ||
+ | |||
+ | ==== Chargement de données ==== | ||
+ | |||
+ | Copier/coller le contenu du fichier sql avec les données d'une base de données correspondant à la séance de TME. | ||
+ | |||
+ | * TME7 : [[http://www-bd.lip6.fr/wiki/site/enseignement/licence/2i009/donnees-astronomiques| BD-données-astronomiques]], [[http://www-bd.lip6.fr/wiki/site/enseignement/licence/2i009/donnees-foofle-h2| BD-données-Foofle]] | ||
+ | * TME5, 6 et 7 : [[http://www-bd.lip6.fr/ens/2I009_2015/bd-jo-v2_H2.html| BD-JeuxOlympiques-v2]] | ||
+ | * TME4 : [[http://www-bd.lip6.fr/ens/2I009_2015/bd-jo-v1_H2.html| BD-JeuxOlympiques-v1]] | ||
+ | |||
+ | Cliquer sur **Exécuter** | ||
+ | |||
+ | ==== Poser des requêtes SQL ==== | ||
+ | |||
+ | Cliquer sur **Effacer** et écrire vos requêtes ! | ||
+ | |||
+ | Par exemple : | ||
+ | <code sql> | ||
+ | SELECT * FROM Astre; | ||
+ | </code> | ||
- | Permet de charger la base se trouvant dans le fichier ~/TP1/tpmondial.mv.db | + | ==== Différences entre Oracle et H2 ==== |
+ | H2 et Oracle n'ont pas le même format par défaut pour les dates. | ||
- | Sous windows remplacer ~/ par le lecteur C: suivi de l'emplacement absolu du fichier contenant la base, sans le suffixe du fichier. | + | ^ ^ Oracle ^ H2 ^ |
+ | | Dates | '' '30/12/2015' '' ou ''//to_date//('30-12-2015', 'dd-mm-yyyy')'' | '' '2015-12-30' '' | | ||
- | jdbc:h2:tcp://localhost:9093/C:\Users\PRENOM\Documents\TP1\tpmondial | + | Par exemple : |
+ | * Oracle : ''...**where** dateFin > //to_date//('21-02-2014', 'dd-mm-yyyy');'' | ||
+ | * H2 : ''...**where** dateFin > '2014-02-21');'' | ||
- | Permet de charger la base tpmondial.mv.db se trouvant dans le dossier Documents\TP1 de l’utilisateur. | + | ==== Divers ==== |
- | 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. | + | |
+ | Le site du SGBD [[http://www.h2database.com/| H2]] est [[http://www.h2database.com/]] | ||