= Base de Données # Syteme de gestion de base de données : DBMS =
<!-- Tous les deuxièmes mardis du mois, nous nous rencontrons à 19:30 jusqu'à au plus tard 21:30 pour discuter base de données. -->
== Semaine 1 - 11.03.2014 ==
== Semaine 2 - 25.03.14 ==
=== Gestion du "Foods For Hackers" ===
* Quoi : Foods For hackers
* Pourquoi : Pour connaitre produit ? Connaitre stock ?
==== Analyse Data ====
On s'interesse au food for hackers.
==== Type de Nouriture ====
<blockquote>
* extension Burgers
</blockquote>
==== Produits ====
<blockquote>
* quantité
</blockquote>
==== Mots clef ====
<blockquote>
* Description longue
</blockquote>
==== Consommation ====
<blockquote>
* date
</blockquote>
==== Consomateurs ====
<blockquote>
* idmembre
</blockquote>
==== Langue ====
<blockquote>
</blockquote>
==== Analyse Traitement. ====
* Initialiser la base.
* Gestion de la langue
==== Objectif pour la semaine 3 ====
* avancer sur la modélisation des données (la théorie)
echo "On cree l'user $DBUSER..."
createuser $USER_OPTS-U postgres
echo "On cree la base $DBNAME..."
createdb --owner $DBUSER $DBNAME-U postgres
</pre>
=== Creation de table ===
Fichier d'ordre de création des tables de la base ffh sous postgresql [[media:ffh_sql.txt]]
<pre>psql -U fixme ffh < Ffh_sql.txt</pre>
Code:
<pre>
ffh=# \d
</pre>
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:
<pre>
ffh=# \d langue
</pre>
Résultat:
<pre>
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)
</pre>
== 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/
* bsondump
* mongo
* mongod
* mongodump
* mongoexport
* mongofiles
* mongoimport
* mongooplog
* mongoperf
* mongorestore
* mongos
* mongostat
* mongotop
Un repertoire data/db à la racine.
==== Lancement du serveur ====
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.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
</pre>
==== lancement du client ====
Code:
<pre>
boizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo
</pre>
Résultat:
<pre>
MongoDB shell version: 2.6.2
connecting to: test
</pre>
Code:
<pre>
show dbs
</pre>
Résultat:
<pre>
admin (empty)
local 0.078GB
</pre>
==== Creation de la base FFH ====
Code:
<pre>
use FFH
</pre>
Résultat:
<pre>
switched to db FFH
</pre>
Code:
<pre>
db FFH
</pre>
'''Initialisation de données'''
<pre> 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" }
</pre>
'''Creation de la Collection Membre'''
Code:
<pre> >db.membre.insert(M1)
</pre>
Résultat:
<pre>
WriteResult({ "nInserted" : 1 })
</pre>
Code:
<pre>
db.membre.insert(M2)
</pre>
Résultat:
<pre>
WriteResult({ "nInserted" : 1 })
</pre>
'''Verification de l'insertion.'''
Code:
<pre>
> 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" }
</pre>
** Nota **
Code:
<pre>
> show collections
</pre>
Résultat:
<pre>
membre
system.indexes
</pre>
On Quitte et on se reconnecte
<pre>
> exit bye
pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo
</pre>
Résultat:
<pre>
MongoDB shell version: 2.6.2
connecting to: test
</pre>
Code:
<pre>
> show dbs
</pre>
Résultat:
<pre>
FFH 0.078GB
admin (empty)
local 0.078GB
test (empty)
</pre>
Constat la base FFH existe...
<pre>use FFH
</pre>
<pre>show collections
membre
system.indexes
</pre>
Delete all Member
Code:
<pre>
> db.membre.remove({})
</pre>
Résultat:
<pre>
WriteResult({ "nRemoved" : 0 })
</pre>
drop collection
Code:
<pre>
> db.membre.drop()
</pre>
Résultat:
<pre>
true
</pre>
Code:
<pre>
> show collections
</pre>
Résultat:
<pre>
system.indexes
</pre>
'''Drop database'''<br />
Code:
<pre>
> use FFH
</pre>
Résultat:
<pre>
switched to db FFH
</pre>
Code:
<pre>
> db.dropDatabase();
</pre>
Résultat:
<pre>
{ "dropped" : "FFH", "ok" : 1 }
</pre>
Code:
<pre>
> exit
</pre>
Résultat:
<pre>
bye
</pre>
pboizot@dbi-ntbk02:/u01/projets/mongodb/doc$ /u01/projets/mongodb/bin/mongo
MongoDB shell version: 2.6.2 connecting to: test
Code:
<pre>
> show dbs
</pre>
Résultat:
<pre>
admin (empty)
local 0.078GB
test (empty)
>
</pre>
== 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:
<pre>
./mongodump --db FFH --out /u01/projets/mongodb/backup/
</pre>
Cette commande crée un repertoire FFH avec le contenue suivant :
<pre>
/u01/projets/mongodb/backup/FFH$ ls -la
</pre>
Résultat:
<pre>
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
</pre>
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:
<pre>
./mongorestore /u01/projets/mongodb/backup/FFH
</pre>
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:
<pre>
/u01/projets/mongodb/bin$ ./mongo FFH
</pre>
Résultat:
<pre>
MongoDB shell version: 2.6.2
connecting to: FFH
</pre>
Code:
<pre>
> 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" }
>
</pre>
== meeting du 9 Juin 2015 ==
Installation de postgresql depuis les sources.
Pourquoi installer depuis les sources ? Pour choisir ou on installe et quelle version on installe.
Pour installer les contributions que l'on veut , pour ne pas être dépendant des choix du gestionnaire de package.
== Metting du 14 Juillet 2015 ==
Exploration des source de psql
Objectif analyser comment ajouter une commande \pa qui permettrait une execution d'un fichier sql se trouvant dans une varaible SQLPGPATH.