Difference between revisions of "Dbms workshop"
Line 148: | Line 148: | ||
<pre>psql -U fixme ffh < Ffh_sql.txt</pre> | <pre>psql -U fixme ffh < Ffh_sql.txt</pre> | ||
+ | Code: | ||
<pre> | <pre> | ||
ffh=# \d | ffh=# \d | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | </pre> | ||
List of relations | List of relations | ||
Schema | Name | Type | Owner | Schema | Name | Type | Owner | ||
Line 164: | Line 169: | ||
public | produit_produit_id_seq | sequence | fixme | public | produit_produit_id_seq | sequence | fixme | ||
(10 rows) | (10 rows) | ||
+ | </pre> | ||
+ | Code: | ||
+ | <pre> | ||
ffh=# \d langue | ffh=# \d langue | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
Table "public.langue" | Table "public.langue" | ||
Column | Type | Modifiers | Column | Type | Modifiers | ||
Line 194: | Line 206: | ||
les binaires dans /u01/projets/mongodb/bin | les binaires dans /u01/projets/mongodb/bin | ||
− | <pre> bsondump | + | <pre> |
+ | bsondump | ||
mongo | mongo | ||
mongod | mongod | ||
Line 204: | Line 217: | ||
mongoperf | mongoperf | ||
mongorestore | mongorestore | ||
− | + | mongos | |
mongostat | mongostat | ||
− | + | mongotop | |
</pre> | </pre> | ||
Line 213: | Line 226: | ||
==== Lancement du serveur ==== | ==== Lancement du serveur ==== | ||
− | <pre>/u01/projets/mongodb/bin/mongod --dbpath /u01/projets/mongodb/data/db | + | Code: |
+ | <pre> | ||
+ | /u01/projets/mongodb/bin/mongod --dbpath /u01/projets/mongodb/data/db | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
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.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.151+0200 [initandlisten] db version v2.6.2 | ||
Line 222: | Line 241: | ||
==== lancement du client ==== | ==== lancement du client ==== | ||
− | <pre>boizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo | + | Code: |
+ | <pre> | ||
+ | boizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
MongoDB shell version: 2.6.2 | MongoDB shell version: 2.6.2 | ||
− | connecting to: test | + | connecting to: test |
+ | </pre> | ||
+ | |||
+ | Code: | ||
+ | <pre> | ||
show dbs | show dbs | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
admin (empty) | admin (empty) | ||
local 0.078GB | local 0.078GB | ||
Line 232: | Line 265: | ||
==== Creation de la base FFH ==== | ==== Creation de la base FFH ==== | ||
− | <pre>use FFH | + | Code: |
+ | <pre> | ||
+ | use FFH | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
switched to db FFH | switched to db FFH | ||
+ | </pre> | ||
+ | |||
+ | Code: | ||
+ | <pre> | ||
db FFH | db FFH | ||
</pre> | </pre> | ||
Line 249: | Line 292: | ||
'''Creation de la Collection Membre''' | '''Creation de la Collection Membre''' | ||
+ | Code: | ||
<pre> >db.membre.insert(M1) | <pre> >db.membre.insert(M1) | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
WriteResult({ "nInserted" : 1 }) | WriteResult({ "nInserted" : 1 }) | ||
+ | </pre> | ||
+ | |||
+ | Code: | ||
+ | <pre> | ||
db.membre.insert(M2) | db.membre.insert(M2) | ||
− | WriteResult({ "nInserted" : 1 })</pre> | + | </pre> |
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
+ | WriteResult({ "nInserted" : 1 }) | ||
+ | </pre> | ||
'''Verification de l'insertion.''' | '''Verification de l'insertion.''' | ||
+ | |||
+ | Code: | ||
<pre> | <pre> | ||
> db.membre.find() | > db.membre.find() | ||
Line 266: | Line 325: | ||
"Member_num" : 3001, | "Member_num" : 3001, | ||
"Langue" : "fr" } | "Langue" : "fr" } | ||
− | + | </pre> | |
** Nota ** | ** Nota ** | ||
+ | |||
+ | Code: | ||
<pre> | <pre> | ||
> show collections | > show collections | ||
+ | </pre> | ||
+ | Résultat: | ||
+ | <pre> | ||
membre | membre | ||
Line 279: | Line 343: | ||
<pre> | <pre> | ||
> exit bye | > exit bye | ||
− | |||
pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo | pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo | ||
+ | </pre> | ||
+ | Résultat: | ||
+ | <pre> | ||
MongoDB shell version: 2.6.2 | MongoDB shell version: 2.6.2 | ||
connecting to: test | connecting to: test | ||
+ | </pre> | ||
+ | Code: | ||
+ | <pre> | ||
> show dbs | > show dbs | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
FFH 0.078GB | FFH 0.078GB | ||
admin (empty) | admin (empty) | ||
Line 301: | Line 374: | ||
</pre> | </pre> | ||
Delete all Member | Delete all Member | ||
+ | Code: | ||
<pre> | <pre> | ||
> db.membre.remove({}) | > db.membre.remove({}) | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
WriteResult({ "nRemoved" : 0 }) | WriteResult({ "nRemoved" : 0 }) | ||
</pre> | </pre> | ||
drop collection | drop collection | ||
+ | Code: | ||
<pre> | <pre> | ||
− | > db.membre.drop() | + | > db.membre.drop() |
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
true | true | ||
+ | </pre> | ||
+ | Code: | ||
+ | <pre> | ||
> show collections | > show collections | ||
+ | </pre> | ||
+ | |||
+ | Résultat: | ||
+ | <pre> | ||
system.indexes | system.indexes | ||
Line 425: | Line 515: | ||
</pre> | </pre> | ||
− | + | Code: | |
<pre> | <pre> | ||
> show collections | > show collections |
Revision as of 22:34, 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
Code:
ffh=# \d
Résultat: </pre>
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) </pre>
Code:
ffh=# \d langue
Résultat:
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
Code:
/u01/projets/mongodb/bin/mongod --dbpath /u01/projets/mongodb/data/db
Résultat:
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
Code:
boizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo
Résultat:
MongoDB shell version: 2.6.2 connecting to: test
Code:
show dbs
Résultat:
admin (empty) local 0.078GB
Creation de la base FFH
Code:
use FFH
Résultat:
switched to db FFH
Code:
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 Code:
>db.membre.insert(M1)
Résultat:
WriteResult({ "nInserted" : 1 })
Code:
db.membre.insert(M2)
Résultat:
WriteResult({ "nInserted" : 1 })
Verification de l'insertion.
Code:
> 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 **
Code:
> show collections
Résultat:
membre system.indexes
On Quitte et on se reconnecte
> exit bye pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo
Résultat:
MongoDB shell version: 2.6.2 connecting to: test
Code:
> show dbs
Résultat:
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 Code:
> db.membre.remove({})
Résultat:
WriteResult({ "nRemoved" : 0 })
drop collection
Code:
> db.membre.drop()
Résultat:
true
Code:
> show collections
Résultat:
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" } >