Difference between revisions of "Dbms workshop"
(→Restore d'une base mongodb) |
|||
Line 317: | Line 317: | ||
'''Drop database'''<br /> | '''Drop database'''<br /> | ||
+ | |||
+ | Code: | ||
<pre> | <pre> | ||
> use FFH | > use FFH | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
switched to db FFH | switched to db FFH | ||
− | + | </pre> | |
+ | |||
+ | Code: | ||
+ | <pre> | ||
> db.dropDatabase(); | > db.dropDatabase(); | ||
− | + | </pre> | |
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
{ "dropped" : "FFH", "ok" : 1 } | { "dropped" : "FFH", "ok" : 1 } | ||
− | >exit | + | </pre> |
+ | |||
+ | Code: | ||
+ | <pre> | ||
+ | > exit | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
bye | bye | ||
</pre> | </pre> | ||
Line 330: | Line 350: | ||
pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo | pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo | ||
MongoDB shell version: 2.6.2 connecting to: test | MongoDB shell version: 2.6.2 connecting to: test | ||
+ | |||
+ | Code: | ||
<pre> | <pre> | ||
− | > show dbs | + | > show dbs |
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
admin (empty) | admin (empty) | ||
local 0.078GB | local 0.078GB | ||
Line 349: | Line 375: | ||
Nous utiliserons la forme suivante de la commande : | Nous utiliserons la forme suivante de la commande : | ||
+ | Code: | ||
<pre> | <pre> | ||
./mongodump --db FFH --out /u01/projets/mongodb/backup/ | ./mongodump --db FFH --out /u01/projets/mongodb/backup/ | ||
Line 356: | Line 383: | ||
<pre> | <pre> | ||
/u01/projets/mongodb/backup/FFH$ ls -la | /u01/projets/mongodb/backup/FFH$ ls -la | ||
+ | </pre> | ||
+ | Résultat: | ||
+ | <pre> | ||
total 20 | total 20 | ||
drwxrwxr-x 2 pboizot pboizot 4096 Jul 8 20:00 . | drwxrwxr-x 2 pboizot pboizot 4096 Jul 8 20:00 . | ||
Line 370: | Line 400: | ||
On recupere le fichier tar on l'extrait puis on lance le restore. | On recupere le fichier tar on l'extrait puis on lance le restore. | ||
+ | Code: | ||
<pre> | <pre> | ||
./mongorestore /u01/projets/mongodb/backup/FFH | ./mongorestore /u01/projets/mongodb/backup/FFH | ||
+ | </pre> | ||
+ | Résultat: | ||
+ | </pre> | ||
connected to: 127.0.0.1 | connected to: 127.0.0.1 | ||
2014-07-08T20:43:32.576+0200 /u01/projets/mongodb/backup/FFH/membre.bson | 2014-07-08T20:43:32.576+0200 /u01/projets/mongodb/backup/FFH/membre.bson | ||
Line 380: | Line 414: | ||
On verifie le chargement. | On verifie le chargement. | ||
+ | |||
+ | Code: | ||
<pre> | <pre> | ||
/u01/projets/mongodb/bin$ ./mongo FFH | /u01/projets/mongodb/bin$ ./mongo FFH | ||
+ | </pre> | ||
+ | Résultat: | ||
+ | <pre> | ||
MongoDB shell version: 2.6.2 | MongoDB shell version: 2.6.2 | ||
connecting to: FFH | connecting to: FFH | ||
+ | </pre> | ||
+ | |||
+ | code | ||
+ | <pre> | ||
> show collections | > show collections | ||
membre | membre |
Revision as of 22:21, 8 July 2014
Contents
Base de Données # Syteme de gestion de base de données : DBMS
Prochaine date le 17 Juin puis à partir de Juillet
2 ieme et 4 ieme Mardi du mois .
Semaine 1 - 11.03.2014
Définition :
Base de données : Ensemble de données organisées et structurées pour être interrogées par un logiciel
Syteme de gestion de base de données : il permet de stocker et de retrouver un ensemble d'informations de plusieurs natures ainsi que les liens qui existent entre les différentes informations.
Les principaux types de base de données.
Base de données hiérarchique Base de données réseau Base de données relationnelle Base de données orientée objet Base de données orientée documents Base de données orientée graphe Base de données XML
Chaque type de base s'appuie sur une modélisation différente de l'information. ( merise, Niam, objet .....)
Prochain réunion le 25 mars 19:00
Semaine 2 - 25.03.14
Gestion du "Foods For Hackers"
- Quoi : Foods For hackers
- Qui : Mardi BDD ---- Stockage des données.
- Où : Fixme , données ---> foo
- Quand : dev durée du workshop durée infini....
- Comment : Ensemble de donnée à définir interactions - saisie , mise à jour. crud interface python / web (php) script (initialisation / maj )
- Pourquoi : Pour connaitre produit ? Connaitre stock ?
Analyse Data
On s'interesse au food for hackers.
Type de Nouriture
- boissons
- Friandises
- Nouilles( pates )
- Fruits sec
- Biscuits aperitifs
- extension Burgers
Produits
- des prix ( achat, ventes )
- date de livraison
- date de péremptions
- type de nourriture
- Descriptions textuels
- Mot clef
- Whish
- quantité
Mots clef
- Langue
- MotsClef
- Description longue
Consommation
- Produit
- Quantité
- comsommateur
- date
Consomateurs
- pseudo
- idmembre
Langue
- Code
- nom long
Analyse Traitement.
- Initialiser la base.
- Ajouter un produit
- Réassortir le stock
- Ajouter un Consomateur
- Consommer un produit
- Saisir un produit en wish list
- Mise à jour stock
- Statistique de consommation
- Creation gestion des TAG ( mot clef )
- Gestion fermée des TAG.
- Gestion de la langue
Objectif pour la semaine 3
- avancer sur la modélisation des données (la théorie)
- créer les scripts de la base de données
Semaine 3 - 22.04.14
Utilisation de LibreOffice Base
Nous avons recherché des solutions pour décrire une base de données avec l'aide de LibreOffice Base. Selon Pirboazo, cette solution graphique n'est, à comparaison avec d'autres solutions, pas si pertinente que l'on pense. Dans LibreOffice Base, il existe la possibilité de se connecter à différente base de donnée distante avec l'aide de connecteurs particuliers. Après avoir mis en pratique ce que nous avons théorisé la semaine 2, la base de donnée fut crée avec Postgresql, mais au final, il s'est révélé que l'interface graphique ne soit pas si performante en comparaison avec la ligne de commandes pour pouvoir décrire une base de donnée.
semaine 4 - 20.05.2014
Creation User & database
avec l'utilisateur postgres
# Creation PG user : fixme DBUSER="fixme" DBNAME="ffh" USER_OPTS="--no-superuser --no-createrole --no-createdb $DBUSER --pwprompt" echo "On cree l'user $DBUSER..." createuser $USER_OPTS -U postgres echo "On cree la base $DBNAME..." createdb --owner $DBUSER $DBNAME -U postgres
avec votre utilisateur ajouter le paramètre -U postgres
Creation de table
Fichier d'ordre de création des tables de la base ffh sous postgresql media:ffh_sql.txt
psql -U fixme ffh < Ffh_sql.txt
ffh=# \d List of relations Schema | Name | Type | Owner --------+------------------------------+----------+------- public | langue | table | fixme public | langue_langue_id_seq | sequence | fixme public | member | table | fixme public | member_member_id_seq | sequence | fixme public | motclef | table | fixme public | motclef_motclef_id_seq | sequence | fixme public | nourriture | table | fixme public | nourriture_nourriture_id_seq | sequence | fixme public | produit | table | fixme public | produit_produit_id_seq | sequence | fixme (10 rows) ffh=# \d langue Table "public.langue" Column | Type | Modifiers ----------------+---------+------------------------------------------------------------ langue_id | integer | not null default nextval('langue_langue_id_seq'::regclass) langue_libelle | text | not null Indexes: "langue_pkey" PRIMARY KEY, btree (langue_id) Referenced by: TABLE "member" CONSTRAINT "member_langue_id_fkey" FOREIGN KEY (langue_id) REFERENCES langue(langue_id) TABLE "motclef" CONSTRAINT "motclef_langue_id_fkey" FOREIGN KEY (langue_id) REFERENCES langue(langue_id)
Semaine 5 - 17.06.2014
Mise en place d'une base mongodb
Installation
Téléchargement depuis le site http://www.mongodb.org/downloads
on décompresse le dossier
Puis on crée les arborescences pour accueillir une base de test et les binaires
Soit la racine /u01/projets/mongodb
les binaires dans /u01/projets/mongodb/bin
bsondump mongo mongod mongodump mongoexport mongofiles mongoimport mongooplog mongoperf mongorestore mongos mongostat mongotop
Un repertoire data/db à la racine.
Lancement du serveur
/u01/projets/mongodb/bin/mongod --dbpath /u01/projets/mongodb/data/db 2014-06-17T19:05:22.147+0200 [initandlisten] MongoDB starting : pid=14868 port=27017 dbpath=/u01/projets/mongodb/data/db 64-bit host=dbi-ntbk02 2014-06-17T19:05:22.151+0200 [initandlisten] db version v2.6.2 2014-06-17T19:05:22.152+0200 [initandlisten] git version: 4d06e27876697d67348a397955b46dabb8443827 2014-06-17T19:05:22.152+0200 [initandlisten] build info: Linux build10.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
lancement du client
boizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo MongoDB shell version: 2.6.2 connecting to: test show dbs admin (empty) local 0.078GB
Creation de la base FFH
use FFH switched to db FFH db FFH
Initialisation de données
M1 = { Member_pseudo : "Pirboazo", Member_num : 123001, Langue:'fr' } { "Member_pseudo" : "Pirboazo", "Member_num" : 123001, "Langue" : "fr" } M2 = { Member_pseudo : "Yv", Member_num : 3001, Langue:'fr' } { "Member_pseudo" : "Yv", "Member_num" : 3001, "Langue" : "fr" }
Creation de la Collection Membre
>db.membre.insert(M1) WriteResult({ "nInserted" : 1 }) db.membre.insert(M2) WriteResult({ "nInserted" : 1 })
Verification de l'insertion.
> db.membre.find() { "''id" : ObjectId("53a07eba52a032beb132c6ba"), "Member_pseudo" : "Pirboazo", "Member_num" : 123001, "Langue" : "fr" } { "''id" : ObjectId("53a07ed752a032beb132c6bb"), "Member_pseudo" : "Yv", "Member_num" : 3001, "Langue" : "fr" } ** Nota ** <pre> > show collections membre system.indexes
On Quitte et on se reconnecte
> exit bye pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo MongoDB shell version: 2.6.2 connecting to: test > show dbs FFH 0.078GB admin (empty) local 0.078GB test (empty)
Constat la base FFH existe...
use FFH
show collections membre system.indexes
Delete all Member
> db.membre.remove({}) WriteResult({ "nRemoved" : 0 })
drop collection
> db.membre.drop() true > show collections system.indexes
Drop database
Code:
> use FFH
Résultat:
switched to db FFH
Code:
> db.dropDatabase();
Résultat:
{ "dropped" : "FFH", "ok" : 1 }
Code:
> exit
Résultat:
bye
pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo MongoDB shell version: 2.6.2 connecting to: test
Code:
> show dbs
Résultat:
admin (empty) local 0.078GB test (empty) >
Semaine 6 - 08.07.2014
Objectif pour ce soir:
- corriger le wiki
- procédure pour exporter une base de données mongo
Export d'une base mongodb
L'export d'une base est extrêmement simple : du moins il y a une forme simple . la commande est mongodump.
Nous utiliserons la forme suivante de la commande :
Code:
./mongodump --db FFH --out /u01/projets/mongodb/backup/
Cette commande crée un repertoire FFH avec le contenue suivant :
/u01/projets/mongodb/backup/FFH$ ls -la
Résultat:
total 20 drwxrwxr-x 2 pboizot pboizot 4096 Jul 8 20:00 . drwxrwxr-x 3 pboizot pboizot 4096 Jul 8 20:01 .. -rw-rw-r-- 1 pboizot pboizot 164 Jul 8 20:00 membre.bson -rw-rw-r-- 1 pboizot pboizot 92 Jul 8 20:00 membre.metadata.json -rw-rw-r-- 1 pboizot pboizot 65 Jul 8 20:00 system.indexes.bson
Nous pouvons alors créer un tar , le stocker sur le ftp.fixme.ch un autre utilisateur peu alors le récuperer et le restore sur sa machine
Restore d'une base mongodb
On recupere le fichier tar on l'extrait puis on lance le restore.
Code:
./mongorestore /u01/projets/mongodb/backup/FFH
Résultat: </pre> connected to: 127.0.0.1 2014-07-08T20:43:32.576+0200 /u01/projets/mongodb/backup/FFH/membre.bson 2014-07-08T20:43:32.576+0200 going into namespace [FFH.membre] 2 objects found 2014-07-08T20:43:32.577+0200 Creating index: { key: { _id: 1 }, name: "_id_", ns: "FFH.membre" } </pre>
On verifie le chargement.
Code:
/u01/projets/mongodb/bin$ ./mongo FFH
Résultat:
MongoDB shell version: 2.6.2 connecting to: FFH
code
> show collections membre system.indexes > db.membre.find() { "_id" : ObjectId("53bc2d51bd84677f027bbbe6"), "Member_pseudo" : "Pirboazo", "Member_num" : 123001, "Langue" : "fr" } { "_id" : ObjectId("53bc2d54bd84677f027bbbe7"), "Member_pseudo" : "Yv", "Member_num" : 3001, "Langue" : "fr" } >