0% ont trouvé ce document utile (0 vote)
154 vues3 pages

Examen BD

Transféré par

MK
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)
154 vues3 pages

Examen BD

Transféré par

MK
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

Exercice 1 (10 points)

Soit le diagramme de classes UML. De la mini-base de données ci-dessous


EMPLOYE
Matricule NUMBER (8)
Nom : VARCHAR (20)
Prénom VARCHAR (20)
Date Naissance Date
Salaire : NUMBER (5,2)
CONSTRUCTOR FUNCTION Employe_t()
STATIC FUNCTION Compte ()
MEMBER PROCEDURE Augmenter (aug NUMBER)
MEMBER PROCEDURE Modific()
MEMBER PROCEDURE Supprime ()

ENSEIGNANT
Rang : VARCHAR (10)
Département : VARCHAR (10)
CONSTRUCTOR FUNCTION Enseignant_t()
STATIC FUNCTION Compte ()
MEMBER PROCEDURE Augmenter (aug NUMBER)
MEMBER PROCEDURE Modifie ()
En utilisant SQL 3 :
1. Créer les types Employe_t et Enseignant_t correspondant au diagramme de classes UML
ci-dessus. Le constructeur de surcharge Employe_t prend en paramètres le nom, prénom, date
de naissance et le salaire de l'employé et le constructeur Enseignant_t prend en plus le rang et
le département. La fonction Compte retourne un nombre. Les procédures Modifie prennent
respectivement en paramètres tous les attributs des types Employe_t et Enseignant_t
2. Définir une table nommée Employe d'objets de type Employe_t
3. Implémenter les méthodes dans le corps du type Employe_t
• La méthode Compte renvoie le nombre d'employés de la table Employe
• La méthode Augmenter permet d'augmenter le salaire de l'objet employé appelant
d'un certain taux "aug" passé en paramètre.
• La méthode Modifie permet de modifier les valeurs de tous les attributs de l'objet
employé appelant.
• La méthode Supprime permet de supprimer l'objet employé appelant
4. Implémenter les méthodes dans le corps du type Enseignant t
• Surcharger la méthode Compte de manière à ne renvoyer que le nombre
d'enseignants.
• Surcharger la méthode Modifie qui permet de modifier les valeurs de tous les attributs
de l'objet enseignant appelant.

Exercice 2 (6 points)

Nous considérons la base de publications « publis » qui nous fournit des documents
JSON, comme les deux exemples ci-dessous, illustrant le contenu de la base. Vous
pourrez noter des clés pouvant être présentes ou non dans certains cas (clé "booktitle",
"cites"...), voire des données de type différents (clé "pages").
{
"id": "books/daglib/0025185", "type":"Book",
"title": "MongoDB - The Definitive Guide: Powerful and Scalable Data Storage.",
"pages":"1",
"publisher": "O'Reilly",
"year": 2010,
"authors": [ "Kristina Chodorow", "Michael Dirolf "],
"isbn": ["978-1-449-38156-1»]
}
{
"id": "conf/icod/BouzeghoubG83",
"type": "Article",
"title":"The Design of an Expert System for Database Design.", "booktitle": "ICOD-2
Workshop on New Applications of Data Bases",
"pages": { "start": 203, "end": 223 },
"year": 1983,
"url": "db/conf/icod/icod83w.html#BouzeghoubG83",
"authors": [ "Mokrane Bouzeghoub", "Georges Gardarin"],
"cites" : ["journals/tods/AstrahanBCEGGKLMMPTWW76", "books/bc/AtzeniA93",
"journals/tes/AtzeniABM82", "journals/jcss/AbiteboulB86"]
}
Exprimer les requêtes suivantes à l'aide du langage de requête MongoDB :
a) Les titres des articles commençant à la page 180 et finissant à la page 202 ;
b) le nombre de publications dont l'un des auteurs est « Toru Ishida » ;
c) les différents articles dans l'ordre décroissant de leur année de publication :
d) Modifier la page de fin à 224 et l'éditeur à Springer de la publication identifiée par
'conf/icod/BouzeghoubG83'.
e) Donnez la requête MapReduce permettant de : Pour chaque livre de type 'Phd' et
composé de chapitres (ayant l'attribut « booktitle »), d'obtenir la liste de ses chapitres

Exercice 3 (4 points)

Nous considérons la base de données de films « Movie Graph » contenant des acteurs
et des réalisateurs qui sont liés à travers les films sur lesquels ils ont collaboré.
Ci-dessous un aperçu du script de création de cette base :

CREATE (WhenHarry MetSally:Movie {title: 'When Harry Met Sally', released:


1998, tagline:' Can two friends sleep together and still love each other in the
morning?'})
CREATE (BillyC:Person {name: 'Billy Crystal', born: 1948})
CREATE (CarrieF: Person {name: 'Carrie Fisher', born: 1956})
CREATE (BrunoK: Person {name: 'Bruno Kirby', born: 1949})
CREATE(BillyC)-[:ACTED IN (roles: ['Harry Burns']}]->(WhenHarry MetSally),
(MegR)-[:ACTED IN (roles: ['Sally Albright']}]->(WhenHarry MetSally),
(CarrieF)-[:ACTED IN {roles: ['Marie']}]->(WhenHarry MetSally),
(BrunoK)-[:ACTED IN (roles: ['Jess']}]->(WhenHarry MetSally),
(RobR)-[:DIRECTED]->(WhenHarry MetSally),
(RobR)-[:PRODUCED]->(WhenHarry Met Sally),
(NoraE)-[ PRODUCED]->(WhenHarry MetSally),
(NoraE)-[WROTE]->(WhenHarry MetSally)
Exprimer les requêtes suivantes à l'aide du langage Cypher :

1) Liste des scénaristes (qui ont une relation : WROTE avec un film) des films réalisés
en 1998.
2) Liste des producteurs du film qui a pour titre « When Harry Met Sally »
3) Graphe des scénaristes-réalisateurs du même film
4) Graphe des acteurs et des réalisateurs qui ont participé ensemble à 2 films différents

Vous aimerez peut-être aussi