Changes

Dbms workshop

8,437 bytes added, 01:14, 14 November 2015
La date de la rencontre est en commentaire. La rencontre n'a plus lieu depuis belle lurette.
= 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>
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]]
<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 : &quot;Pirboazo&quot;, Member_num : 123001, Langue:'fr' }
{ &quot;Member_pseudo&quot; : &quot;Pirboazo&quot;,
&quot;Member_num&quot; : 123001,
&quot;Langue&quot; : &quot;fr&quot; }
 
M2 = { Member_pseudo : &quot;Yv&quot;, Member_num : 3001, Langue:'fr' }
{ &quot;Member_pseudo&quot; : &quot;Yv&quot;,
&quot;Member_num&quot; : 3001,
&quot;Langue&quot; : &quot;fr&quot; }
</pre>
 
'''Creation de la Collection Membre'''
Code:
<pre> &gt;db.membre.insert(M1)
</pre>
 
Résultat:
<pre>
WriteResult({ &quot;nInserted&quot; : 1 })
</pre>
 
Code:
<pre>
db.membre.insert(M2)
</pre>
 
Résultat:
<pre>
WriteResult({ &quot;nInserted&quot; : 1 })
</pre>
 
'''Verification de l'insertion.'''
 
Code:
<pre>
&gt; db.membre.find()
{ &quot;''id&quot; : ObjectId(&quot;53a07eba52a032beb132c6ba&quot;),
&quot;Member_pseudo&quot; : &quot;Pirboazo&quot;,
&quot;Member_num&quot; : 123001,
&quot;Langue&quot; : &quot;fr&quot; }
 
{ &quot;''id&quot; : ObjectId(&quot;53a07ed752a032beb132c6bb&quot;),
&quot;Member_pseudo&quot; : &quot;Yv&quot;,
&quot;Member_num&quot; : 3001,
&quot;Langue&quot; : &quot;fr&quot; }
</pre>
** Nota **
 
Code:
<pre>
&gt; show collections
</pre>
 
Résultat:
<pre>
membre
 
system.indexes
</pre>
 
On Quitte et on se reconnecte
<pre>
&gt; 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>
&gt; 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>
&gt; db.membre.remove({})
</pre>
 
Résultat:
<pre>
WriteResult({ &quot;nRemoved&quot; : 0 })
</pre>
drop collection
 
Code:
<pre>
&gt; 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>
&gt; use FFH
</pre>
 
Résultat:
<pre>
switched to db FFH
</pre>
 
Code:
<pre>
&gt; db.dropDatabase();
</pre>
 
Résultat:
<pre>
{ &quot;dropped&quot; : &quot;FFH&quot;, &quot;ok&quot; : 1 }
</pre>
 
Code:
<pre>
&gt; 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>
&gt; show dbs
</pre>
 
Résultat:
<pre>
admin (empty)
local 0.078GB
test (empty)
&gt;
</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.
44
edits