Créer en SQL la vue v_questionnaire permettant d'afficher tous les questionnaires avec leurs questions sous la forme suivante.
questionnaire | number | label |
|---|---|---|
Questionnaire BDD | 1 | Aimez vous l'UML ? |
Questionnaire BDD | 2 | Aimez vous le Relationnel ? |
Questionnaire BDD | 3 | Aimez vous le SQL ? |
Questionnaire DW | 1 | Aimez vous le dimensionnel ? |
Questionnaire DW | 2 | Aimez vous le relationnel-objet ? |
... |
Les questions d'un même questionnaire doivent se suivre et être dans l'ordre croissant de leur numéro number.
CREATE VIEW v_questionnaire AS
SELECT questionnaire, number, labelFROM questionORDER BY questionnaire, number
Écrire en algèbre relationnel et en SQL la requête permettant d'afficher toutes les questions avec les logins des utilisateurs qui y ont répondu et leur réponse.
number | label | login | value |
|---|---|---|---|
1 | Aimez vous l'UML ? | nf17p001 | -1 |
1 | Aimez vous l'UML ? | nf17p002 | 2 |
1 | Aimez vous l'UML ? | nf17p003 | -1 |
... | |||
2 | Aimez vous le Relationnel ? | nf17p001 | 1 |
2 | Aimez vous le Relationnel ? | nf17p002 | 2 |
... |
Projection (
Jointure (answer, question, question=number AND questionnaire=questionnaire),number,label,login,value)
SELECT q.number, q.label, a.login, a.value
FROM answer a JOIN question q
ON a.question=q.number AND a.questionnaire=q.questionnaire
Écrivez en SQL la requête permettant d'obtenir la moyenne pour chaque question de la base de données. [1pt]
questionnaire | question | label | moyenne |
|---|---|---|---|
Questionnaire BDD | 1 | Aimez vous l'UML ? | -1.2 |
Questionnaire BDD | 2 | Aimez vous le Relationnel ? | 1.9 |
Questionnaire BDD | 3 | Aimez vous le SQL ? | 0.1 |
Questionnaire DW | 1 | Aimez vous le dimensionnel ? | 1.1 |
Questionnaire DW | 2 | Aimez vous le relationnel-objet ? | -1.2 |
... |
SELECT a.questionnaire, q.number, q.label, avg(a.value)
FROM answer a JOIN question q
ON a.question=q.number AND a.questionnaire=q.questionnaire
GROUP BY a.questionnaire, q.number, q.label
ORDER BY a.questionnaire, q.number