Tp4 BDD2
Exercice 1
Q1.1
- Lycée(numLycee, nom)
- Lycéen(numLyceen)
- Visite(numVisite,titre ,date, ville, heuredebut, heurefin)
- UE(titre, numUE)
- Intervention(duree, salle, numInter)
- Inscription(motivation, date)
- Personne(nom, prenom, mail, numPersonne)
- Enseignant(numEnseignant)
- Lycéen(numLyceen)
- Etudiant(numEtudiant)
Q1.2
La relation :
Viste -> Intervention
Modifie la clé primaire d'intervention.
Les relations:
- UE -> Intervention
- Enseignant -> Visite
- Categorie -> UE
- Etudiant -> Intervention
- Personne -> Lycéen (can be null)
- Personne -> Etudiant (can be null)
Personne -> Enseignant (can be null)
Modifient les clés étrangères
Les relations:
- Enseignant -> UE
- Visite -> Lycéen
UE -> Etudiant
Créent des tables
Q1.3
Ordre :
- Visite -> Intervention
- on suit l'ordre du haut enft
Q1.4
- Intervention(numInter, #numVisite, duree, salle, #numUE, #numEtudiant)
- Visite(numVisite, titre, date, ville, heuredebut, heurefin, #numEnseignant)
- UE(numUE, titre, #numCategorie)
- Lyceen(numLyceen, #numPersonne, #numLycee)
- Etudiant(numEtudiant, #numPersonne)
- Enseignant(numEnseignant, #numPersonne)
- EnseignantUE((#numUE, #numEnseignant))
- VisiteLyceen((#numVisite, #numLyceen))
- UEEtudiant((#numUE, #numEtudiant))
- Personne(numPersonne, nom, prenom, mail)
- Inscription((#numVisite, #numEtudiant), date, motivation)
- Lycee(numLycee, nom)
- Catégorie(numCategorie, titre)
Exercice 2 et 3
drop table ueetudiant, visitelyceen, enseignantue, intervention, inscription, visite, ue, enseignant, etudiant, lyceen, lycee, personne, categorie; create table Lycee ( numLycee serial primary key, nom varchar(20) ); create table Personne ( numPersonne serial primary key, nom varchar(20), prenom varchar(20), email varchar(40) ); create table Categorie ( numCategorie serial primary key, nom varchar(20) ); create table Lyceen ( numLyceen serial primary key, numPers int references Personne(numPersonne) unique, numLycee int references Lycee(numLycee) ); create table Etudiant ( numEtudiant serial primary key, numPers int references Personne(numPersonne) unique, numLycee int references Lycee(numLycee) ); create table Enseignant ( numEnseign serial primary key, numPers int references Personne(numPersonne) unique ); create table UE ( numUE serial primary key, titre varchar(100), numCategorie int references Categorie(numCategorie) ); create table Visite ( numVisite serial primary key, titre varchar(100), date date, ville varchar(100), heure_debut varchar(5), heure_fin varchar(5), idLycee int references Lycee(numLycee), numEnseign int references Enseignant(numEnseign) ); create table inscription ( numVisite int references Visite(numVisite), numLyceen int references Lyceen(numLyceen), date date, motivation text , primary key (numVisite, numLyceen) ); create table Intervention( numInter serial, duree int, salle varchar(10), numVisite int references Visite(numVisite), numUE int references UE(numUE) not null, primary key (numInter, numVisite) ); create table EnseignantUE( numUE int references UE(numUE), numEnseign int references Enseignant(numEnseign), primary key (numUE, numEnseign) ); create table VisiteLyceen( numVisite int references Visite(numVisite), numLyceen int references Lyceen(numLyceen), primary key (numVisite, numLyceen) ); create table UEEtudiant ( numUE int references UE(numUE), numEtudiant int references Etudiant(numEtudiant), primary key (numUE, numEtudiant) ); insert into lycee (nom) values ('Bahut'), ('Céely'); insert into personne (nom, prenom, email) values ('Alcofribas', 'Nazier', 'alco.nazier@gargantua.com'), ('Calbuth', 'Raymond', 'raymond.calbuth@univ-lille.fr'), ('Rimbaud', 'Arthur', 'arthur.rimbaud@douai.fr'), ('Decaux', 'Franck', 'franck.decauxd@bateau.fr') ; insert into lyceen (numpers) values (4); insert into enseignant (numpers) values (1), (2); insert into etudiant (numpers, numlycee) values (3, 1); insert into categorie (nom) values ('langue'), ('programmation'), ('maths'); insert into ue (titre, numCategorie) values ('BDD2', 2), ('Maths Discrètes', 3), ('Anglais', 1); insert into enseignantue (numUE, numEnseign) values (1, 1), (1, 2), (2, 1), (3, 2); insert into visite (titre, date, ville, heure_debut, heure_fin, idLycee ,numEnseign) values ('Elles programment aussi !', '2025-12-06', 'Monjetour-les-Carbonnades', '00h00', '18h00',2, 1), ('Les matrices diagonalisables ? Trop facile :)', '2022-09-05', 'Bondeboug-lès-Valenciennes', '18h00', '18h05',1, 2); insert into intervention (duree, salle, numVisite, numUE) values (30, 'BA.8d_b3', 1, 2), (45, 'A3', 1, 3), (3, 'HA', 2, 2), (2, 'K8', 2, 1); insert into inscription (numvisite, numlyceen, date, motivation) values (1, 1, '2025-12-19', 'Etant fan de modélisation de bateaux, notamment les yuku-lili, je souhaite en savoir plus sur la programmation');