Académique Documents
Professionnel Documents
Culture Documents
I. TP1:
On considère les relations suivantes d'une base de données :
Auteur (codeAuteur, nom, prénom, nationalité).
Livre (codeLivre, titre, nbPages, année, prix).
Membre (codeMembre, nom, prénom, dateInscription).
Possède (codeLivre, codeAuteur).
Prêt (codePrêt, codeMembre, codeLivre, datePrêt, dateRetour).
Q5-
Q7-Diagramme de classe :
Q8- Création des tables :
Table Auteur :
create table auteur (
codeAuteur int constraint pk_auteur primary key,
nom VARCHAR (20),
prenom VARCHAR(20),
nationalite VARCHAR (20)) ;
Table Livre :
create table livre (
codeLivre int constraint pk_livre primary key,
titre VARCHAR (20),
nbPages number(4),
annee number(4),
prix number (4)) ;
Table Membre :
create table membre(
codeMembre int constraint pk_membre primary key,
nom VARCHAR(20),
prenom VARCHAR(20),
dateInscription DATE));
Table Possède :
create table possede(
codeAuteur int constraint fk_auteur references auteur(codeAuteur),
codeLivre int constraint fk_livre references livre(codeLivre),
constraint pk_possede primary key(codeAuteur,codeLivre));
Table Prêt :
create table pret(
codePret int constraint pk_pret primary key,
codeLivre int constraint fk_pret_livre references livre(codeLivre),
codeMembre int constraint fk_pret_membre references
membre(codeMembre),
datePret DATE,
dateRetour date);
Remarque : On ne peut pas créer un index sur une clé primaire d’une, puisqu’elle est indexe par
défaut.
Q19- Ajouter une contrainte à la table livre qui assure que titre de livre est une
valeur bien déterminée :
Titre du livre :
Q24- Ajouter la contrainte qui spécifie que dateRetour est >= datePret :
Q3-Diagramme de classe :
Q4-Construction des tables :
La table Etudiant :
create table etudiant(
codeEtudiant int constraint pk_etudiant primary key,
nom VARCHAR(20),
prenom VARCHAR(20),
dateNaissance DATE,
ville VARCHAR(10));
La table Cours :
create table cours(
codeCours int constraint pk_cours primary key,
nom VARCHAR(20),
nbHeurs number(2));
La table Enseignant :
create table enseignant(
codeEnseignant int constraint pk_enseignant primary key,
nom VARCHAR(20),
prenom VARCHAR(20),
specialite VARCHAR(20));
La table Résultat :
create table resultat(
codeEtudiant int constraint fk_resultat_etudiant references
etudiant(codeEtudiant),
codeCours int constraint fk_resultat_cours references cours(codeCours),
constraint pk_resultat primary key(codeEtudiant,codeCours),
note number(5,2));
La table Charge :
create table charge(
codeEnseignant int constraint fk_charge_enseignant references
enseignant(codeEnseignant),
codeCours int constraint fk_charge_cours references cours(codeCours),
constraint pk_charge primary key(codeEnseignant,codeCours));
LMD:
Q5-Insertion des données :
Table Etudiant :
Table Cours :
Table Enseignant :
Table Résultat :
Table Charge :
Q6-Faite des mises à jour :
Augmenter de 5% chaque note de chaque étudiant :
Changer le nom du cours 2 par 'SGBD' :
Supprimer le cours n° 5 :
LID :
Q7-Affichage des tables :
Q8-Affichage du nom et de la ville des étudiants :
Q9- Affichage du nom et de la ville des étudiants ordonnées par nom :
Q10-Donner la liste de noms des enseignants dont le nom contient 'i' à la fin :
On préférera que la première lettre du nom soit en majuscule et les autres
lettres soient en minuscules :
Q11-Donner le nom des enseignants qui assure plus de deux cours :
Q22- Afficher les enseignants qui assurent tous les cours sauf le cours de
réseaux :
select codeEnseignant,nom from Enseignant where codeEnseignant not in (select
codeEnseignant from cours natural join charge where nom = 'Reseau');
Q23- Vérifier que les enseignants ayant une charge, figurent bien dans la table
enseignant :
Q24-Creation de la vue :
create view vueetud as select codeEtudiant,nom,avg(note) as Moyenne from Etudiant
natural join Resultat where ville ='agadir' group by codeEtudiant,nom;
Q5- Donner le numéro, le nom et la ville de toutes les usines dont le nom
contient plast :
Q6- Donner les numéros des fournisseurs qui approvisionnent l'usine n°1 :
Q8- Donner les numéros des fournisseurs qui approvisionnent les usines n°1
ou n°2 :
Q9- Donner les numéros des usines qui ne reçoivent aucun produit du
fournisseur n°1 :
Q10- Donner les numéros des usines qui s'approvisionnent chez le fournisseur
n°3 :
Q1-Creation de l’utilisateur :
Q7- Vérifier si l'utilisateur TP5 peut exercer les droits accordés à la question
précédente :
Q8- Retirer de TP les droits accordés à la question 7 :
Q10-