QUESTIONNAIRES
1. Quelle différence faites-vous entre fichier de données et fichier journaux?
Fichier de données : Ce type de fichier contient les données réelles utilisées par
une application ou un système.
Par exemple, dans un SGBD, un fichier de données stocke les tables, les
enregistrements, et autres objets de la base de données.
Fichier journaux : Également appelé fichier de log, il enregistre les transactions
et modifications effectuées sur les données.
Les fichiers journaux sont essentiels pour la récupération après sinistre et pour
assurer l'intégrité des transactions.
2. Quelle différence faites-vous entre la clé primaire et la clé étrangère?
Clé primaire (Primary Key) : C'est un champ (ou un ensemble de champs) dans une
table dont les valeurs sont uniques pour chaque enregistrement.
La clé primaire identifie de manière unique chaque enregistrement dans la table.
Elle ne peut pas contenir de valeurs nulles.
Clé étrangère (Foreign Key) : C'est un champ (ou un ensemble de champs) dans une
table qui établit un lien entre les données de deux tables.
Une clé étrangère dans une table fait référence à la clé primaire d'une autre
table, assurant ainsi l'intégrité référentielle entre les tables.
3. Définissez les expressions suivantes :
SGBD (Système de Gestion de Base de Données) : C'est un logiciel qui permet de
créer, gérer et manipuler des bases de données.
Il fournit des outils pour ajouter, modifier, supprimer et interroger les données
de manière efficace.
SGBDR (Système de Gestion de Base de Données Relationnelle) : C'est un type de SGBD
basé sur le modèle relationnel, où les données sont organisées en
tables reliées entre elles par des clés étrangères.
MLD (Modèle Logique de Données) : C'est une représentation abstraite de la
structure d'une base de données, détaillant les tables,
les champs, les types de données, et les relations entre les tables.
MCD (Modèle Conceptuel de Données) : C'est une représentation des concepts et des
relations du domaine d'application.
Il est généralement utilisé pour la modélisation des exigences de haut niveau avant
de passer au MLD.
MPD (Modèle Physique de Données) : C'est la représentation du MLD adaptée pour
l'implémentation dans un SGBD spécifique,
incluant les détails techniques comme les index, les contraintes de base de
données, et les types de données spécifiques au SGBD.
EXERCICE
1. Créer la base de données «GestionScolaire » sous SQL SERVER
CREATE DATABASE GestionScolaire;
GO
USE GestionScolaire;
GO
2. Créer toutes les tables issues du MLD
-- Table Classe
CREATE TABLE Classe (
code_class INT PRIMARY KEY,
libelle_class NVARCHAR(50) NOT NULL
);
-- Table Etudiant
CREATE TABLE Etudiant (
matri_et INT PRIMARY KEY,
nom_et NVARCHAR(50) NOT NULL,
prenom_et NVARCHAR(50) NOT NULL,
datenais_et DATE NOT NULL,
sexe_et CHAR(1) NOT NULL,
nationalite_et NVARCHAR(50) NOT NULL,
contact_et NVARCHAR(50),
code_class INT,
FOREIGN KEY (code_class) REFERENCES Classe(code_class)
);
-- Table Matiere
CREATE TABLE Matiere (
code_mat INT PRIMARY KEY,
libelle_mat NVARCHAR(50) NOT NULL
);
-- Table Noter
CREATE TABLE Noter (
matri_et INT,
code_mat INT,
note_et DECIMAL(5, 2),
PRIMARY KEY (matri_et, code_mat),
FOREIGN KEY (matri_et) REFERENCES Etudiant(matri_et),
FOREIGN KEY (code_mat) REFERENCES Matiere(code_mat)
);
-- Table Dispenser
CREATE TABLE Dispenser (
code_class INT,
code_mat INT,
coeff INT,
PRIMARY KEY (code_class, code_mat),
FOREIGN KEY (code_class) REFERENCES Classe(code_class),
FOREIGN KEY (code_mat) REFERENCES Matiere(code_mat)
);
3. Alimenter la base de données en insérant cinq lignes dans chaque table
-- Insérer des données dans la table Classe
INSERT INTO Classe (code_class, libelle_class) VALUES
(1, 'ANAPRO'),
(2, 'PROGI'),
(3, 'MATH'),
(4, 'PHYSICS'),
(5, 'CHEMISTRY');
-- Insérer des données dans la table Etudiant
INSERT INTO Etudiant (matri_et, nom_et, prenom_et, datenais_et, sexe_et,
nationalite_et, contact_et, code_class) VALUES
(1, 'Doe', 'John', '1995-06-15', 'M', 'Congolaise', '1234567890', 1),
(2, 'Smith', 'Jane', '1996-08-22', 'F', 'Congolaise', '0987654321', 2),
(3, 'Brown', 'Charlie', '1994-12-05', 'M', 'Congolaise', '4567890123', 3),
(4, 'Wilson', 'Anna', '1997-02-28', 'F', 'Congolaise', '7890123456', 4),
(5, 'Taylor', 'James', '1995-09-11', 'M', 'Congolaise', '3456789012', 5);
-- Insérer des données dans la table Matiere
INSERT INTO Matiere (code_mat, libelle_mat) VALUES
(1, 'Mathematics'),
(2, 'Physics'),
(3, 'Chemistry'),
(4, 'Biology'),
(5, 'Base de données');
-- Insérer des données dans la table Noter
INSERT INTO Noter (matri_et, code_mat, note_et) VALUES
(1, 1, 14.5),
(2, 2, 16.0),
(3, 3, 13.0),
(4, 4, 12.5),
(5, 5, 14.0);
-- Insérer des données dans la table Dispenser
INSERT INTO Dispenser (code_class, code_mat, coeff) VALUES
(1, 1, 3),
(2, 2, 4),
(3, 3, 3),
(4, 4, 4),
(5, 5, 3);
4. Exécuter les requêtes suivantes :
a. Lister tous les étudiants de « ANAPRO » (nom_et, prenom_et, libelle_class)
SELECT E.nom_et, E.prenom_et, C.libelle_class
FROM Etudiant E
JOIN Classe C ON E.code_class = C.code_class
WHERE C.libelle_class = 'ANAPRO';
b. Lister les matières dispensées en « PROGI » (Libelle_Mat, libelle_class, coeff)
SELECT M.libelle_mat, C.libelle_class, [Link]
FROM Dispenser D
JOIN Matiere M ON D.code_mat = M.code_mat
JOIN Classe C ON D.code_class = C.code_class
WHERE C.libelle_class = 'PROGI';
c. Lister les étudiants de nationalité congolaise (nom_et, prenom_et,
nationalite_et)
SELECT nom_et, prenom_et, nationalite_et
FROM Etudiant
WHERE nationalite_et = 'Congolaise';
d. Lister les étudiants ayant eu la note << 15 >> en << Base de données » (nom_et,
prenom_et, note_et, libelle_mat)
SELECT E.nom_et, E.prenom_et, N.note_et, M.libelle_mat
FROM Noter N
JOIN Etudiant E ON N.matri_et = E.matri_et
JOIN Matiere M ON N.code_mat = M.code_mat
WHERE N.note_et < 15 AND M.libelle_mat = 'Base de données';
e. Lister les matières de coefficient «4» (Libelle_mat, coeff)
SELECT M.libelle_mat, [Link]
FROM Dispenser D
JOIN Matiere M ON D.code_mat = M.code_mat
WHERE [Link] = 4;