0% ont trouvé ce document utile (0 vote)
88 vues7 pages

TD Modélisation NoSQL

Transféré par

wissal.soltani007
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)
88 vues7 pages

TD Modélisation NoSQL

Transféré par

wissal.soltani007
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

Cours Gestion des Données Massives L3 DSI

TD Modélisation des bases NoSQL


Exercice 1 :

Soit la base de données de représentations de films, d’acteurs et leurs rôles dans ces films.
Les films

Id Titre Année Genre Country idrealisateur


17 Pulp Fiction 1994 Action USA 37

Les artistes

id nom prenom naissance


37 Tarantino Quentin 1963
11 Travolta Jhon 1954
27 Bruce Willis 1955
Les rôles

idFilm IdArtiste role


17 11 Vincent Vega
17 27 Butch Coolidge
17 37 Jimmy Dimmick

Question 1:
Représenter en JSON un film sans son réalisateurs

{ "_id": "17",

"titre": "pulp fiction",

"year": 1994,

"genre": "Action",

"country": "USA"

Question 2:
Représenter en JSON les artistes

[{"id": 37, "nom": "Tarantino","prenom": "Quentin", "naissance": "1963"},

Mme MSAKNI Imen Page 1


Cours Gestion des Données Massives L3 DSI

{"id": 11,"nom": "Travolta","prenom": "Jhon","naissance": "1954"},

{"id": 27,"nom": "Bruce","prenom": "Willis","naissance": "1955"}]

Question 3:
Grâce à l’imbrication des structures, représenter dans une même unité un film et son metteur
en scène.

{ "_id": 17,"title": "Pulp fiction", "year": "1994", "genre": "Action", "country": "USA",

"director":

{"last_name": "Tarantino", "first_name": "Quentin", "birth_date": "1963" }}

Question 4:
Donner une proposition de codage en JSON , toutes les informations sur un film (acteurs et
réalisateurs).

{ "_id": "movie:17", "title": "Pulp Fiction", "year": "1994",

"director": { "last_name": "Tarantino", "first_name": "Quentin", "birth_date": "1963" },

"actors": [

{ "first_name": "John", "last_name": "Travolta", "birth_date": "1954", "role": "Vindent Vega" },

{ "first_name": "Bruce", "last_name": "Willis", "birth_date": "1955", "role": "Butch Coolidge" }, {


"first_name": "Quentin", "last_name": "Tarantino", "birth_date": "1963", "role": "Jimmy Dimmick" }
]}

Exercice 2 :
On souhaite réaliser une base de données orientée documents pour gérer des cours et des
étudiants, étant donné les informations suivantes :
 Un cours est décrit par les attributs code, titre, description, crédits et prérequis.
 Les prérequis sont d'autres cours.
 Un étudiant est décrit par les attributs nom, prénom et adresse.
 Les adresses sont composées d’un numéro de rue, d'une ville et d'un code postal.
 Un étudiant suit plusieurs cours et les cours sont suivis par plusieurs étudiants.

Répondre aux questions suivantes


1. Donner le schéma relationnel relatif à la base.
2. Proposer un exemple JSON basé sur l'imbrication favorisant les cours qui sont suivis
par des étudiants.
3. Proposer un exemple JSON basé sur l'imbrication favorisant les étudiants qui suivent
des cours.
4. Quel est le principal défaut de ces deux dernières représentations ?

Mme MSAKNI Imen Page 2


Cours Gestion des Données Massives L3 DSI

Exercice 3 :
Soit le schéma conceptuel suivant :

Une personne peut avoir plusieurs domaines d’expertise, des emplois successifs, et une
habitation.

Figure : Diagramme de classe

Dé-normalisation du schéma
1. Une association avec des relations 1-n.
Des données fréquemment interrogées conjointement.

Par exemple, les requêtes demandent fréquemment le lieu d’habitation d’une personne. De fait, la
jointure devient coûteuse. Accessoirement, cette information étant peu mise à jour, cela pose peu de
problèmes. Résultat, l’entité ‘Habitation’ et l’association ‘habite’ sont intégrés à l’entité Personne.
Habitation devient un document imbriqué à l’intérieur de Personne, représenté par : “,habite-”

Toutes les données d’une entité sont indépendantes.

Prenons l’exemple des domaines d’expertise d’une personne, ils sont indépendants des domaines
d’une autre personne. De fait, rapatrier les données de cette entité n’impacte aucune autre instance
de Personne. Ainsi, la liste des domaines est importé dans Personne et représenté par : “*domaines+”

2. Une association avec des relations n-n


Cette fois-ci, c’est plus délicat pour l’entité Etablissement. Une personne peut avoir plusieurs emplois
et un employeur, plusieurs employés. De fait, une imbrication de l’employeur dans Personne peut
avoir de gros impacts sur les mises à jour (tous les employés à mettre à jour !). Il est donc peu
recommandé d’effectuer une fusion complète. Pour cela, seule l’association est imbriquée sous
forme d’une liste de documents, intégrant les attributs (qualité et date), ainsi qu’une référence vers
l’employeur. Ainsi : “*,emploie+ref-+”.

Même taux de mises à jour.


Dans le cas des emplois d’une personne, là également nous pourrions effectuer une fusion de
l’association “emploie”. En effet, le taux de mises à jour des emplois est équivalent à celui de la
Personne, de fait, sans incidence sur les problèmes de cohérence de données.

Mme MSAKNI Imen Page 3


Cours Gestion des Données Massives L3 DSI

Solution par imbrication –un seul document

{"_id" : 1, "nom" : "Travers", "prenom" : "Nicolas",

"domaines" : ["SGBD", "NoSQL", "RI", "XML"],

"emplois" : [

{"id_etablissement" : " 100", "qualité" : "Maître de Conférences",

"date" : "01/09/2017",…},

{"id_etablissement" : "101", "qualité" : "Vacataire",

"date" : "01/09/2012",….}

],

"Habite" : {"adresse" : "292 rue Saint Martin", "ville" : "Paris"}}

Solution par référencement -- deux documents

"_id": 1,

"nom": "Travers",

"prenom": "Nicolas",

"domaines": ["SGBD", "NoSQL", "RI", "XML"],

"emplois": ["100",

"101"

],

"Habite": {

"adresse": "292 rue Saint Martin",

"ville": "Paris"

Mme MSAKNI Imen Page 4


Cours Gestion des Données Massives L3 DSI

Exercice 4 :
Un livre est écrit par un seul auteur et fait l’objet de plusieurs ventes, un auteur peut écrire
plusieurs livres, une vente concerne un seul livre.

Figure : Diagramme de classe

Question 1:

On a besoin de savoir pour chaque livre donné tous ses détails. Proposer une modélisation non
relationnelle pour ce cas d’usage

Mme MSAKNI Imen Page 5


Cours Gestion des Données Massives L3 DSI

Question 2:
Proposer une modélisation orientée document de ces informations centrées sur les ventes, une
modélisation centrée sur les livres et une sur les auteurs.

a. Une modélisation centrée sur les ventes:

Prenons l’exemple de la vente de id_vente=12:


{

"id_vente": 12,

"date": "01/17/2017",

"livre": {

"isbn": 2154889589,

"titre": "NoSQL",

"auteur": {

"id_auteur": 987,

"nom": "Bruchez",

"prénom": "Rudi"

b. Une modélisation centrée sur les livres:


Prenons l’exemple de de livre d’isbn=2154889589 :
{
"isbn": 2154889589,
"titre": "NoSQL",
"auteur": {
"id_auteur": 987,
"nom": "Bruchez",
"prénom": "Rudi"
},
"vente": [{
"id_vente": 12,

Mme MSAKNI Imen Page 6


Cours Gestion des Données Massives L3 DSI

"date": "02/06/2017"
}, {
"id_vente": 20,
"date": "12/09/2017"
}]
}

c. Une modélisation centrée sur les auteurs:


Prenons l’exemple de de l’auteur de l’id_auteur=987 :
{
"id": 987,
"nom": "Bruchez",
"prénom": "Rudi",
"livre": [{
"isbn": 2154889589,
"titre": "NoSQL",
"vente": [{
"id_vente": 12,
"date": "02/06/2017"
}, {
"id_vente": 20,
"date": "12/09/2017"
}]
}]
}

Question 3:

Expliquer les modifications nécessaires pour gérer plusieurs auteurs par livre dans la base de
données relationnelle et dans les différents documents structurés.

Sur la modélisation relationnelle


Auteur(id_auteur, nom, prénom)
Livre(isbn, titre)
Ecrire (#id_auteur,# isbn)
Vente(id_vente, date, isbn)

Sur la modélisation orientée document


-Centrée sur les auteurs: pas de changement.
-Centrée sur les ventes ou bien livres: la clé auteur aura comme type : un tableau d’auteurs.

Mme MSAKNI Imen Page 7

Vous aimerez peut-être aussi