Vous êtes sur la page 1sur 3

Département MIAp

Année 2022-2023
—–

Bases de données - Semestre 1

TP n◦7 – Travailler avec beaucoup de tables !

Objectif du TP : Travailler avec une base de données composées de nombreuses


\ tables et à partir d’une description en langage naturel telle que pourrait vous faire un
client.

Exercice I Articles scientifiques

Contexte
Le métier de chercheur consiste, entre autres, à faire connaître ses travaux de recherche par
l’intermédiaire d’articles publiés dans des conférences et des journaux. Rechercher l’ensemble
des articles d’un domaine particulier permet aux jeunes chercheurs doctorants de se faire une idée
du travail déjà réalisé dans ce domaine. Cette tâche est aussi quotidiennement réalisée par les
chercheurs confirmés qui s’informent sur des techniques ou concepts particuliers, ou lorsqu’ils
explorent de nouveaux domaines connexes. Le nombre d’articles de recherche publiés croit extrê-
mement rapidement, ce qui rend difficile ce travail de collecte d’articles.
L’objectif de ce TP est de créer une base de données permettant aux chercheurs de gérer leur
bibliographie (ensemble d’articles). Cette base doit leur permettre d’avoir une description rapide
des articles disponibles mais aussi d’avoir accès à des notes et à de brefs commentaires associés à
ces articles.

Description des articles


Un article possède plusieurs attributs comme son titre, qui doit être unique, ses auteurs, un
résumé (e.g. démonstration, recherche-long, recherche-court, etc. Un article avec un titre donné
peut être publié sous différents supports de publication (e.g. conférence, journal, thèse, livre, etc.).
Tout support a donc un type (conférence, journal, etc.) et un nom (e.g. "ICDE" et "PODS" sont
deux conférences du domaine des bases de données, "VLDB Journal" est un journal de bases de
données). On doit pouvoir déterminer l’année de publication d’un article sur un support donné,
sachant qu’un article peut être publié dans plusieurs conférences et/ou journaux la même année ou
à des années différentes. Néanmoins, un article donné, sur un support donné ne sera publié qu’une
seule année.
Un auteur est caractérisé par son adresse email. De plus, un nom, un prénom, un site web
personnel, et le ou les laboratoires dans le(s)quel(s) il travaille. Un laboratoire est caractérisé par
son nom et possède un sigle, une adresse, et éventuellement une url pour son site web.

Notation et Annotation des articles


Les utilisateurs de l’outil sont des auteurs (mais tous les auteurs ne sont pas nécessairement des
utilisateurs). Les utilisateurs doivent pouvoir noter et étiqueter les articles (ces notes et étiquettes
ne dépendent pas du support de publication). On conserve le nom de l’utilisateur ayant produit des
étiquettes et des notes.

2022
Chaque utilisateur peut donc attribuer une note (entier compris entre 0 et 5) à un article en
particulier. Un utilisateur ne peut noter qu’une seule fois chaque article.
Un utilisateur peut ajouter des étiquettes sur n’importe quel article. Un étiquette n’est caracté-
risée que par sa valeur. A priori, n’importe quelle chaîne de caractères peut faire office de valeur
pour une étiquette.

Création de la base de données


Question 1. Créer et peupler la base de données avec le script fourni sur moodle. Analyser le code pour
comprendre le contenu des bases.

Question 2. Réaliser sur papier le MCD.

Requêtes SQL
Exprimer en SQL les requêtes suivantes en ne retournant que les informations pertinentes au
niveau des attributs (donc parfois implicites).

Question 3. Quels sont les articles dont Susan Davidson est l’un des auteurs ? (2 résultats)

Question 4. Quels sont les laboratoires qui ont la même url (donnez la liste des laboratoires qui partagent une
url commun avec un autre laboratoire) ? (2 résultats)

Question 5. Quels sont les co-auteurs de Susan Davidson ? (3 résultats)

Question 6. Quelle est la moyenne des notes données par Luc Segoufin ? (1 résultat)

Question 7. Quels sont les auteurs qui ont noté tous les articles ? (1 résultat)

Question 8. Sélectionner aléatoirement un auteur ? (1 résultat)

Question 9. Lister les articles écrits par au plus 2 auteurs (3 résultats)

Question 10. Lister les auteurs qui n’ont écrit aucun article (0 résultat)

À retenir : La commande GROUP BY est utilisée pour grouper plusieurs lignes et


- on peut alors utiliser une fonction d’agrégation (COUNT, SUM, MAX, AVG...) sur
une colonne de groupe de lignes.

À retenir : Le HAVING est presque similaire à WHERE mais il s’utilise sur les
- groupes générés avec le GROUP BY en ajoutant une condition sur ces groupes (e.g.
en utilisant les fonctions d’agrégation).

TP n◦ 7
Exercice II Questions supplémentaires à finir à la maison
Question 1. Quel est l’e-mail de Peter Buneman ? (1 résultat)

Question 2. Quels sont les auteurs (prénom et nom) et titres des articles écrits ? (7 résultats)

Question 3. Pour chaque auteur, quel est le nombre de laboratoires où ils travaillent. (5 résultats)

Question 4. Quels sont les auteurs ayant annoté au moins un article ? (3 résultats)

Question 5. Quelle la moyenne pour chaque article des notes données par les auteurs de cet article ? (3 résul-
tats)

Question 6. Quels sont les auteurs qui ont réalisé au moins une annotation d’articles ? (3 résultats)

Question 7. Lister par ordre décroissant les auteurs en fonction du nombre d’articles qu’ils ont publiés. (5
résultats)

Question 8. Lister par ordre décroissant les laboratoires en fonction du nombre d’articles qu’ils ont publiés.
(5 résultats)

Question 9. Quels sont les auteurs n’ayant annoté aucun de leurs propres articles ? (4 résultats)

Question 10. Quels sont les auteurs ayant le plus publié ? (2 résultats)

À retenir : Il est indispensable de maîtriser les requêtes permettant de formuler des


- questions de type au mois, au plus, aucun...

TP n◦ 7

Vous aimerez peut-être aussi