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édentesRévision précédente
Prochaine révision
Révision précédente
site:enseignement:documentation:h2 [26/11/2020 09:56] – [Le SGBD H2] aminesite:enseignement:documentation:h2 [15/11/2021 18:50] (Version actuelle) – [Télécharger et installer H2] amann
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=== 
-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 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]]
  
-===Démarrage de l’interface d’accès===+==== Lancer H2 ====
  
-On démarre SQLWorkbench pour accéder au SGBD H2. Pour cela, 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 : +=== Linux ===
-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}} 
  
-Revenir dans la fenêtre « Select Connection profile »+   cd h2-2019-10-14/bin 
 +   chmod +x h2.sh 
 +   ./h2.sh
  
-{{:site:enseignement:master:mlbda:tmes:sqlworkbench2.png?400|}} 
  
-Remplacer la valeur du champ URL par ceci pour charger la base existante tpmondial. +=== Windows ===
-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 +  - Naviguer dans le répertoire h2-2019-10-14/bin 
-*/+  - Exécuter h2.bat
  
 +(ou chercher "H2 Console" et exécuter)
  
-   jdbc:h2:tcp://localhost:9093/~/TP1/tpmondial 
  
-Permet de charger la base se trouvant dans le fichier ~/TP1/tpmondial.mv.db+La commande lance le serveur et ouvre une fenêtre de connexion: 
  
-Sous windows remplacer ~/ par le lecteur Csuivi de l'emplacement absolu du fichier contenant la base, sans le suffixe du fichier.+{{:site:enseignement:licence:2i009:documents-tme:h2_1.png?500|}}
  
-   jdbc:h2:tcp://localhost:9093/C:\Users\PRENOM\Documents\TP1\tpmondial 
  
-Permet de charger la base tpmondial.mv.db se trouvant dans le dossier Documents\TP1 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. 
-=====Questions diverses===== 
  
-===Puis-je modifier le contenu de la base ?=== +Cliquer sur **Connecter** 
-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 +__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|}}
-   java -cp h2-1.4.200.jar org.h2.tools.Server -tcpShutdown tcp://localhost:9093+
  
 +==== Chargement de données ====
  
-===Est-ce que le SGBD H2 est démarré ?=== +Copier/coller le contenu du fichier sql avec les données d'une base de données correspondant à la séance de TME.
-Dans un terminal, afficher un processus nommé h2 :+
  
-   ps -grep h2 | grep Server+   * TME7 : [[http://www-bd.lip6.fr/wiki/site/enseignement/licence/2i009/donnees-astronomiquesBD-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**
  
-===Accès à la base depuis Windows=== +==== Poser des requêtes SQL ====
-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=== +Cliquer sur **Effacer** et écrire vos requêtes !
-Les instructions SQL pour consulter le schéma d’une base sans utiliser Database Explorer :+
  
-   show tables;        - affiche le nom des tables  +Par exemple : 
-   show columns from matable        -affiche le schéma relationnel de matable.+<code sql> 
 +   SELECT * FROM Astre; 
 +</code>
  
-===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 &+==== 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' '' |
  
-=== Comment utiliser wget depuis les salles de la PPTI ? === +Par exemple :  
-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 +  * Oracle ''...**where** dateFin > //to_date//('21-02-2014', 'dd-mm-yyyy');'' 
-<code bash> +  * H2 : ''...**where** dateFin > '2014-02-21');''
-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]]+
  
-*/+==== Divers ====
  
 +Le site du SGBD [[http://www.h2database.com/| H2]] est [[http://www.h2database.com/]]
  
site/enseignement/documentation/h2.1606380982.txt.gz · Dernière modification : de amine