0% ont trouvé ce document utile (0 vote)
30 vues5 pages

Serie BDA

Le document décrit la mise en place de bases de données avec MongoDB, Cassandra, Redis et Neo4J, en fournissant des exemples de manipulation et d'importation de données. Il inclut des commandes pour créer des collections, insérer des données, effectuer des requêtes et gérer des relations entre les entités. Chaque section présente des opérations spécifiques adaptées à chaque type de base de données.

Transféré par

squarix2708
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
30 vues5 pages

Serie BDA

Le document décrit la mise en place de bases de données avec MongoDB, Cassandra, Redis et Neo4J, en fournissant des exemples de manipulation et d'importation de données. Il inclut des commandes pour créer des collections, insérer des données, effectuer des requêtes et gérer des relations entre les entités. Chaque section présente des opérations spécifiques adaptées à chaque type de base de données.

Transféré par

squarix2708
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Serie 4: Mise en place d'une base de donnee avec MongoDB

3. Manipulation simple des donnees

1. use ic4

2. db.createCollection('enseignant')

3.

db.enseignant.insertOne({
nom: "Douwe",
prenom: "Vincent",
prime: 2000,
anciennete: 2
})

4.

db.enseignant.insertMany([
{
nom: "Awe",
prenom: "Taissala",
prime: 2000,
anciennete: 2
},
{
nom: "Boudjou",
prenom: "Hortense",
prime: 1500,
anciennete: 3
},
{
nom: "Djorwe",
prenom: "Temoa",
prime: 1000,
anciennete: 4
},
{
nom: "Kaladzavi",
prenom: "Guidedi",
anciennete: 3
},
{
nom: "Laoukoura",
prenom: "Charles",
anciennete: 1
},
{
nom: "Nisso Nicodem",
anciennete: 5,
},
{
nom: "Nounamo",
prenom: "Patrick",
prime: 3000,
anciennete: 4
},
{
nom: "Terdam Valentin",
prime: 2500,
anciennete: 2
}
])

5.1 db.enseignant.find().sort({anciennete: -1}) 5.2 db.enseignant.find({nom: \[aeuio]$\i}) or db.enseignant.find({nom: {$regex: "


[aeuio]$"}}) 5.3 db.enseignant.find({anciennete : {$gt: 1, $lte: 3}})
5.4 db.enseignant.updateMany({},{$inc : {anciennete: 1}})

5.5

db.enseignant.aggregate([

{
$set: {
email: {
$concat : [{$toLower : "$nom"}, "@example.com"]
}
}
},
{
$merge: {
into : "enseignant",
on : "_id",
whenMatched: "replace"
}
}
])

5.6 db.enseignant.updateMany({prime: {$exists:true}}, {$inc : {prime: 1000}}) 5.7 db.enseignant.updateMany({prime: {$exists:false}},


{$set : {prime: 3000}}) 5.8

4. Importation des donnees

1. db.memoire.find().count() res: 797


2. db.memoire.find({"etudiant.matricule": "13Z502S"}, {titre: true, annee:true, _id:false})
3. db.memoire.find({"parcours.specialite.departement.code": "AGEPD"}).count()
4. db.memoire.find({annee: "2018-2019"}).count() res: 32
5. db.memoire.find({"parcours.specialite.departement.code": "AGEPD", annee: "2018-2019"}).count() res: 0
6. db.memoire.find({titre : "Amélioration du procédé d'extraction de l'huile de poisson de quelques localités de l'Extrême-
Nord"}, {etudiant: true})
7. db.memoire.aggregate([{$unwind:"$encadreurs"}, {$match:{ "encadreurs.nom": /\w Douwe/i}}, {$group: {_id:null, count: {$sum:
1}}}]) res: 7
8. db.memoire.aggregate([{$group: {_id: "$annee", stats: {$sum : 1}}}])
9. db.memoire.aggregate([{$group: {_id: "$parcours.specialite.departement.code", stats: {$sum : 1}}}, {$sort: {stats: -1}}])
10. db.memoire.find({encadreurs : {$size: 2}, "parcours.specialite.departement.code": "GCA"}).count() res: 25

Serie 6: Mise en place d'une base de donnee avec Cassandra

2.1. CREATE KEYSPACE ic4 WITH REPLICATION={'class': 'SimpleStrategy', 'replication_factor': 1}; 2.2.

CREATE TYPE ic4.encadreur (


nom text,
grade text,
role text );

2.3.
CREATE TABLE memoire (
matricule text,
nom text,
date_naissance text,
lieu_naissance text,
departement_code text,
departement_texte text,
specialite_code text,
specialite_texte text,
cycle_code text,
cycle_texte text,
titre text,
annee text,
encadreurs set<frozen<encadreur>>,
primary key(annee, matricule)
);

2.4.

COPY memoire
(matricule,
nom,
date_naissance,
lieu_naissance,
departement_code,
departement_texte,
specialite_code,
specialite_texte,
cycle_code,
cycle_texte,
titre, annee,
encadreurs) FROM 'cassandra.csv' WITH DELIMITER=';' AND HEADER=FALSE;

3.1 SELECT COUNT(*) FROM memoire; res: 796

3.2 SELECT COUNT(*) FROM memoire WHERE annee ='2016-2017' res: 87

3.3 SELECT titre FROM memoire WHERE matricule='18A0168P' AND annee='2020-2021'; 3.4

Solution naive SELECT COUNT(*) FROM memoire WHERE departement_code='AGEPD' ALLOW FILTERING; res: 441
Vue materialiser

CREATE MATERIALIZED VIEW memoire_par_departement AS


SELECT annee, matricule, departement_code
FROM memoire
WHERE departement_code IS NOT NULL
AND annee IS NOT NULL
AND matricule IS NOT NULL
PRIMARY KEY ((departement_code), annee, matricule);

SELECT COUNT(*) FROM memoire_par_departement WHERE departement_code ='AGEPD';

3.5

SELECT COUNT(*) FROM memoire_par_departement


WHERE departement_code = 'AGEPD'
AND annee = '2018-2019';

res: 0

Serie 8: Mise en place d'une base de donnee avec Redis

1.
SADD enseignants enseignants:L0012 enseignants:Q1452
HMSET enseignants:L0012 matricule "L0012" nom "Douwe Vincent" specialite "Genie Logiciel"
HMSET enseignants:Q1452 matricule "Q1452" nom "Boudjou Hortense" specialite "Cryptographie"

SADD cours cours:ITEL102 cours:ITEL104 cours:ITEL301 cours:ITEL303


HMSET cours:ITEL102 code "ITEL102" intitule "Algebre 1" credit 3 enseignant "enseignants:Q1452"
HMSET cours:ITEL104 code "ITEL104" intitule "Algorithme et programmation" credit 3 enseignant "enseignants:L0012"
HMSET cours:ITEL301 code "ITEL301" intitule "Cryptographie 1" credit 3 enseignant "enseignants:Q1452"
HMSET cours:ITEL303 code "ITEL303" intitule "Analyse et conception des algorithmes" credit 4 enseignant "enseignants:L0012"

LPUSH enseignants:L0012:cours "cours:ITEL104" "cours:ITEL303"


LPUSH enseignants:Q1452:cours "cours:ITEL102" "cours:ITEL301"
SADD etudiants etudiants:17Y51P etudiants:17Y065P
HMSET etudiants:17Y51P matricule 17Y51P nom "ANYAM KIAM" age 20
HMSET etudiants:17Y065P matricule 17Y065P nom "ZOGO FELIX" age 22

HMSET notes:17Y51P:ITEL102 valeur 12


HMSET notes:17Y51P:ITEL104 valeur 15
HMSET notes:17Y51P:ITEL301 valeur 16
HMSET notes:17Y51P:ITEL303 valeur 13

HMSET notes:17Y65P:ITEL102 valeur 15


HMSET notes:17Y65P:ITEL104 valeur 16
HMSET notes:17Y65P:ITEL301 valeur 16
HMSET notes:17Y65P:ITEL303 valeur 14

LPUSH notes:17Y65P "notes:17Y65P:ITEL102" "notes:17Y65P:ITEL104" "notes:17Y65P:ITEL301" "notes:17Y65P:ITEL303"


LPUSH notes:17Y51P "notes:17Y51P:ITEL102" "notes:17Y51P:ITEL104" "notes:17Y51P:ITEL301" "notes:17Y51P:ITEL303"

Serie 8: Mise en place d'une base de donnee avec Neo4J

1.
CREATE (c1:Cours{code : "ITEL101", intitule: "Analyse 1", credit: 3}),
(c2:Cours{code : "ITEL102", intitule: "Algebre 1", credit: 3}),
(c3:Cours{code : "ITEL103", intitule: "Circuits electriques", credit: 2}),
(c4:Cours{code : "ITEL104", intitule: "Algorithme et programmation", credit: 3}),
(c5:Cours{code : "ITEL105", intitule: "Introduction aux reseaux", credit: 2}),
(c6:Cours{code : "ITEL201", intitule: "Algorithme et structures de donnees", credit: 3}),
(c7:Cours{code : "ITEL202", intitule: "Base de donnees", credit: 3}),
(c8:Cours{code : "ITEL203", intitule: "Systemes embarques", credit: 3}),
(c9:Cours{code : "ITEL301", intitule: "Cryptographie 1", credit: 3}),
(c10:Cours{code : "ITEL302", intitule: "Base de donnees 2", credit: 2}),
(c11:Cours{code : "ITEL303", intitule: "Analyse et Conception des algorithmes", credit: 4}),
(c1)-[:ESTPREREQUIS]->(c5),
(c1)-[:ESTPREREQUIS]->(c7),
(c2)-[:ESTPREREQUIS]->(c4),
(c2)-[:ESTPREREQUIS]->(c9),
(c3)-[:ESTPREREQUIS]->(c8),
(c4)-[:ESTPREREQUIS]->(c6),
(c6)-[:ESTPREREQUIS]->(c7),
(c6)-[:ESTPREREQUIS]->(c11),
(c7)-[:ESTPREREQUIS]->(c11),
(c9)-[:ESTPREREQUIS]->(c11),
(e1:Enseignant{matricule: "L0012", nom: "Douwe Vincent", specialite: "Genie Logiciel"}),
(e2:Enseignant{matricule: "Q1452", nom: "Boudjou Hortense", specialite: "Cryptographie"}),
(e4:Enseignant{matricule: "L4785", nom: "Nounamo Dabou", specialite: "Genie Logiciel"}),
(e5:Enseignant{matricule: "D4521", nom: "Guiem Richard", specialite: "Analyse"}),
(e6:Enseignant{matricule: "R2451", nom: "Terdam Valentin", specialite: "Reseaux et Telecommunication"}),
(e7:Enseignant{matricule: "Q8425", nom: "Nisso Nicodem", specialite: "Systeme Embarques"}),
(e1)-[:DISPENSE]->(c4),
(e1)-[:DISPENSE]->(c11),
(e2)-[:DISPENSE]->(c2),
(e2)-[:DISPENSE]->(c9),
(e5)-[:DISPENSE]->(c1),
(e4)-[:DISPENSE]->(c6),
(e4)-[:DISPENSE]->(c7),
(e4)-[:DISPENSE]->(c10),
(e6)-[:DISPENSE]->(c5),
(e7)-[:DISPENSE]->(c3),
(e7)-[:DISPENSE]->(c8);

2.1 MATCH (c:Cours) RETURN c;


2.2 MATCH (c:Cours) RETURN COUNT(c);
2.3 MATCH (Enseignant{nom: "Douwe Vincent"})-[:DISPENSE]->(c:Cours) RETURN c;
2.4 MATCH (c:Cours{credit:2}) RETURN COUNT(c)
2.5 MATCH (c:Cours) WHERE c.credit >= 3 RETURN COUNT(c)
2.6 MATCH (e:Enseignant)-[:DISPENSE]->(c:Cours) RETURN e.nom, COUNT(c)
2.7 MATCH (c:Cours)-[:ESTPREREQUIS]->(:Cours{code:"ITEL303}) RETURN c
2.8 MATCH (:Cours{code:"ITEL101"})-[:ESTPREREQUIS]->(c:Cours) RETURN c
2.9 MATCH (c:Cours)-[*]->(:Cours{code:"ITEL303"}) RETURN c
2.10 MATCH (:Cours{code: "ITEL101})-[:ESTPREREQUIS]->(c:Cours) RETURN c

3. MATCH (c:Cours{code: "ITEL105"}) SET c.credit = 3


4.

MATCH (c:Cours{code: "ITEL101"}),


(c1:Cours{code: "ITEL103"})
CREATE (c)-[:ESTPREREQUIS]->(c1)

5. MATCH (c:Cours{code : "D4521"}) DETACH c

Vous aimerez peut-être aussi