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 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é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> | + | |
- | ===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é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 | + | __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> | </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/]] | ||