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 [26/11/2020 10:24]
amine [Le SGBD H2]
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=== 
-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]]
  
-=====Questions diverses=====+==== Lancer H2 ====
  
-===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 ? ===  +=== Linux ===
-Ouvrir un terminal:+
  
-   cd votre_dossier_de_travail 
-   java -cp h2-1.4.200.jar org.h2.tools.Server -tcpShutdown tcp://​localhost:​9093 
  
 +   cd h2-2019-10-14/​bin
 +   chmod +x h2.sh
 +   ​./​h2.sh
  
-===Est-ce que le SGBD H2 est démarré ?=== 
-Dans un terminal, afficher un processus nommé h2 : 
  
-   ps -u | grep h2 | grep Server+=== Windows ===
  
 +  - Naviguer dans le répertoire h2-2019-10-14/​bin
 +  - Exécuter h2.bat
  
-===Accès à la base depuis Windows=== +(ou chercher "H2 Console" ​et exécuter)
-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  +La commande lance le serveur et ouvre une fenêtre ​de connexion: ​
-   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 ​?=== +{{:​site:​enseignement:​licence:​2i009:​documents-tme:​h2_1.png?500|}}
-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 ? === +Cliquer sur **Connecter**  
-En salle de TME, la commande wget est bloquée car les connexions sortantes ne sont pas autoriséeIl 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+__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 [[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>​ </​code>​
-/* 
-Eventuellement,​ installer chez soi [[http://​www.index-internet.net/​info_oracle_xe_oracle_express_edition.htm|Oracle Express Edition]] 
  
-*/ 
  
 +==== 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 ====
 +
 +Le site du SGBD [[http://​www.h2database.com/​| H2]] est [[http://​www.h2database.com/​]]
  
site/enseignement/documentation/h2.1606382664.txt.gz · Dernière modification: 26/11/2020 10:24 par amine