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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
site:enseignement:documentation:h2 [28/01/2021 16:26]
hubert
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 =====
-===Pré-requis : Java===+
  
-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écompresserLe 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>+
  
-====Téléchargement====+<fc #​ff0000>​Attention:​ la nouvelle version de H2 demande la création de la base avant le lancement de la console.</​fc>​
  
-Il y a 2 outils distincts ​un SGBD et une interface d’accès au SGBD.+=== Méthodé de création 1===
  
-Le SGBD [[https://​www.h2database.com/​html/​main.html|H2]]. Voir aussi le [[https://​www.h2database.com/​h2.pdf|manuel H2]] en anglais. +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)
-**Télécharger** [[https://​nuage.lip6.fr/​s/​FrjfmmocrYmDFit|h2-1.4.200.jar]] dans votre dossier de travail ou exécuter les instructions suivantes :+
  
-<code bash> +{{ :site:​enseignement:​licence:​2i009:​sgbd-h2:​capture_h2_1.png?200 |}}
-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 +
-</​code>​+
  
-====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. Remarque, vous pouvez ajouter l'​option -ifNotExists pour créer une nouvelle base par défaut, voir les questions/​réponses en bas de cette page. 
  
-<code bash> +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)
-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_2.png?​400 |}}
  
-Vérifier que le message suivant s’affiche :  +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.
-<​code>​ +
-TCP server running at  tcp://127.0.1.1:9093 (only local connections) +
-</​code>​+
  
 +=== Méthodé de création 2: ===
 +Exemple dans une console cmd Windows :
  
-Vérifier que le serveur ​H2 est démarré ​afficher un processus nommé ​h2 :+    > 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
  
-<code bash> +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 (~). 
-ps -u | grep h2 | grep Server +
-</​code>​+
  
-cela affiche ​//java -cp h2-1.4.200.jar org.h2.tools.Server -tcp -tcpPort 9093//+[[http://www.h2database.com/html/tutorial.html|Tutoriel H2]]
  
 +==== Lancer H2 ====
  
  
-====Démarrage de l’interface d’accès SQLWorkbench====+=== Linux ===
  
-On utilise [[https://​www.sql-workbench.eu/​|SQLWorkbench]] pour accéder au SGBD H2. Télécharger [[https://​nuage.lip6.fr/​s/​mkHxXDiJNX5dsPH|sqlworkbench.jar]]. Ouvrir un terminal et aller dans votre dossier de travail : 
-<code bash> 
-cd votre_dossier_de_travail 
-java -jar sqlworkbench.jar 
-</​code>​ 
  
-Compléter les champs suivants dans le profil de connexion : +   ​cd ​h2-2019-10-14/​bin 
-Driver: sélectionner H2 Database Engine puis  +   chmod +x h2.sh 
-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**  +   ./h2.sh
-pour indiquer l’emplacement du fichier ​h2-1.4.200.jar+
  
-{{:​site:​enseignement:​master:​mlbda:​tmes:​sqlworkbench1.png?​400|image}} 
  
-Revenir dans la fenêtre « Select Connection profile »+=== Windows ===
  
-{{:​site:​enseignement:​master:​mlbda:​tmes:​sqlworkbench2.png?400|}}+  - Naviguer dans le répertoire h2-2019-10-14/​bin 
 +  - Exécuter h2.bat
  
-Remplacer la valeur du champ URL par ceci pour charger la base existante tpmondial. +(ou chercher "H2 Console"​ et exécuter)
-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. ​ 
-*/ 
  
 +La commande lance le serveur et ouvre une fenêtre de connexion: ​
  
-   jdbc:h2:tcp://localhost:9093/​~/​TP1/​tpmondial+{{:site:enseignement:licence:2i009:​documents-tme:​h2_1.png?​500|}}
  
-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. 
  
-/OLD ---------------- +Cliquer sur **Connecter*
-Sous windows remplacer ~/ par le lecteur C: suivi de l'​emplacement absolu du fichier contenant la base, sans le suffixe du fichier.+
  
-   ​jdbc:​h2:​tcp://​localhost:​9093/​C:​\Users\PRENOM\Documents\TP1\tpmondial 
  
-   -------------------- +__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|}}
-*/+
  
-Puis compléter le champ Username pour indiquer que la base Mondial a été créée par l’utilisateur nommé etu : +==== Chargement de données ====
-  * Username: etu +
-  * Le champ Password reste vide.+
  
 +Copier/​coller le contenu du fichier sql avec les données d'une base de données correspondant à la séance de TME.
  
-===Utilisation de SQLWorkbench=== +   * 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]] 
-Commencer par ouvrir l’onglet Database Explorer dans le menu Tools -> Show Database ExplorerDatabase Explorer permet de consulter les tables existantes et leur schémaIl 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. +   * TME5, 6 et 7 [[http://​www-bd.lip6.fr/​ens/​2I009_2015/​bd-jo-v2_H2.html| BD-JeuxOlympiques-v2]] 
-{{:site:enseignement:​master:mlbda:tmes:sqlworkbench3.png?400|}}+   * TME4 [[http://www-bd.lip6.fr/​ens/​2I009_2015/​bd-jo-v1_H2.htmlBD-JeuxOlympiques-v1]] ​
  
-Ouvrir un onglet avec les exemples de requêtes :+Cliquer sur **Exécuter**
  
-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.+==== Poser des requêtes ​SQL ====
  
-Penser à bien séparer chaque instruction SQL par un point-virgule. Il y a deux possibilités pour exécuter une requête : +Cliquer sur **Effacer** et écrire vos requêtes !
-  ​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).+Par exemple : 
 +<code sql> 
 +   ​SELECT * FROM Astre; 
 +</code>
  
  
 +==== Différences entre Oracle et H2 ====
 +H2 et Oracle n'ont pas le même format par défaut pour les dates.
  
 +^ ^ Oracle ^ H2 ^
 +| Dates | ''​ '​30/​12/​2015'​ ''​ ou ''//​to_date//​('​30-12-2015',​ '​dd-mm-yyyy'​)'' ​ | ''​ '​2015-12-30'​ ''​ |
  
 +Par exemple : 
 +  * Oracle : ''​...**where** dateFin > //​to_date//​('​21-02-2014',​ '​dd-mm-yyyy'​);''​
 +  * H2 : ''​...**where** dateFin > '​2014-02-21'​);''​
  
 +==== Divers ====
  
-=====Questions diverses sur H2===== +Le site du SGBD [[http://www.h2database.com/| H2]] est [[http://​www.h2database.com/]]
- +
-===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 ​[[https://nuage.lip6.fr/s/​mGH3ARoojYp6y9R|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 qu'une base existante ?=== +
-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 : +
-<code bash> +
-wget use_proxy=on -e https_proxy=proxy:​3128 url_du_fichier_à_télécharger +
-</​code>​ +
-/* +
-Eventuellement,​ installer chez soi [[http://​www.index-internet.net/info_oracle_xe_oracle_express_edition.htm|Oracle Express Edition]] +
- +
-*/ +
  
site/enseignement/documentation/h2.1611847615.txt.gz · Dernière modification: 28/01/2021 16:26 par hubert