Conception d’une base de données relationnelle
Modèle E/R
Schéma relationnel :
Professeur(NumProf, NomProf, Salaire, Bureau)
Module(NumMod, NomMod, #NumProfRef) ;
NumProfRef : clé étrangère Professeur(NumProf)
Etudiant(NumEt, Nom, Prenom, DateNaiss)
Inscrit(#NumEtu, #NumMod, Note) ;
NumEtu : clé étrangère Etudiant(NumEtu)
NumMod : clé étrangère Module(NumMod)
1
Schéma de Base de données : CPI2
DDL
Professeur
NumProf NomProf Salaire Bureau
Module
NumMod NomMod NumProfRef
Etudiant
NumEtu Nom Prenom DateNaiss
Inscrit
NumEtu NomMod Note
2
Base de données : CPI2
DML
Professeur
NumProf NomProf Salaire Bureau
1 MAHBOUB 30000 E306
2 YOUSSFI 20000 E404
3 EL YOUNOUSSSI 15000 E302
Module
NumMod NomMod NumProfRef
1 JAVA 2
2 Base de données 3
3 PHP 1
4 UML 2
Etudiant
NumEtu Nom Prenom DateNaiss
103 TAQI NOUHA 01/12/2003
106 NAJIB MAROUA 10/11/2003
108 MIFTAH Omar 02/01/2004
110 ETTALBI AYMANE 05/06/2003
Inscrit
NumEtu NumMod Note
103 3 15
103 2 16
108 2 12
108 1 10
3
PARTIE I - DDL : Requête SQL qui permet de créer le schéma de la base de données
Création de la base de données :
CREATE DATABASE IF NOT EXISTS CPI2
Création de la table professeur :
CREATE TABLE Professeur(
NumProf INTEGER,
NomProf VARCHAR(50),
Bureau VARCHAR(10),
Salaire FLOAT
);
Pour créer la contrainte clé primaire sur la colonne "NumProf" alors que la table professeur
est déjà créée :
Alter TABLE professeur
ADD PRIMARY KEY(NumProf);
Création de la table module :
CREATE TABLE Module(
NumMod INTEGER PRIMARY KEY,
NomMod VARCHAR(50),
NumProfRef Integer,
FOREIGN KEY (NumProfRef) REFERENCES professeur(NumProf)
);
Création de la table etudiant :
CREATE TABLE Etudiant(
NumEtu INTEGER,
Nom VARCHAR(50),
Prenom VARCHAR(80),
DateNaiss DATE,
PRIMARY KEY(NumEtu)
);
Création de la table inscrit
CREATE TABLE Inscrit(
NumEtu INTEGER,
NumMod Integer,
Note FLOAT,
FOREIGN KEY (NumEtu) REFERENCES Etudiant(NumEtu),
FOREIGN KEY (NumMod) REFERENCES module(NumMod)
);
4
Ajouter la colonne "grade" dans la table professeur
ALTER TABLE professeur
ADD grade Varchar(20);
Modifier le type de la colonne "grade"
ALTER TABLE professeur
MODIFY grade Varchar(3);
Supprimer la colonne "grade" de la table professeur
ALTER TABLE professeur
DROP COLUMN grade;
PARTIE II - DML : Requête SQL qui permet d’ajouter des enregistrements dans la
base de données
Insérer des enregistrements dans la base de données :
INSERT INTO professeur (NumProf, NomProf, Salaire, Bureau)
VALUES(1, "MAHBOUB", 30000, "E306"),
(2, "YOUSSFI", 20000, "E404"),
(3, "EL YOUNOUSSSI", 15000, "E302");
INSERT INTO Module
VALUES(1, "JAVA", 2),
(2, "Base de données", 3),
(3, "PHP", 1),
(4, "UML", 2);
INSERT INTO étudiant
VALUES(103, "TAQI", "NOUHA", "2003-12-01"),
(106, "NAJIB", "MAROUA", "2003-11-10"),
(108, "MIFTAH", "Omar", "2004-01-02"),
(110, "ETTALBI", "AYMANE", "2003-06-05");
INSERT INTO Inscrit
VALUES(103, 3, 15),
(103, 2, 16),
(108, 2, 12),
(108, 1, 10);