Implémentation relationnelle

Produire le modèle relationnel R correspondant au schéma UML Q.

Questionnaire(#name)
Question(#questionnaire=>Questionnaire, #number, label)
User(#login)
Answer(#questionnaire=>Questionnaire, #question=>Question, #user=>User, value, comment)

Énoncer la fermeture transitive des dépendances fonctionnelles. En déduire la forme normale respectée (en justifiant). Normaliser le schéma en 3NF.

Implémenter le modèle R en SQL.

On cherchera à implémenter toutes les contraintes spécifiées au niveau conceptuel.

CREATE TABLE user (
login VARCHAR PRIMARY KEY
);
CREATE TABLE questionnaire (
name VARCHAR PRIMARY KEY
);
CREATE TABLE question (
number INTEGER,
label VARCHAR,
questionnaire VARCHAR REFERENCES questionnaire(name),
PRIMARY KEY (number, questionnaire)
); 
CREATE TABLE answer (
question INTEGER, 
questionnaire VARCHAR,
login VARCHAR,
value INTEGER CHECK (value=0 OR value=-2 OR value=-1 OR value=1 OR value=2),
comment VARCHAR,
PRIMARY KEY (question,questionnaire,login),
FOREIGN KEY (login) REFERENCES user(login),
FOREIGN KEY (question,questionnaire) REFERENCES question(number,questionnaire)
);
AccueilExercices > Questions en question > Exercice : Implémentation relationnelle< PrécédentSuivant >