Ce sujet s’inspire du sujet 6 du bac de NSI 2024
Les personnels sont essentiellement des pompiers.
Un agrès est un équipage de véhicule prêt à intervenir un certain
jour.
Un agrès est composé uniquement de pompiers de gardes ou d’astreintes.
Dans un “agrès”, il y a entre 1 et 4 personnels (pompiers). Il y a
forcément un chef d’agrès et un conducteur. Le conducteur peut être le
chef d’agrès.
Cet équipage (agrès) peut faire partie des moyens utilisés sur une
intervention.
Une intervention se compose de moyens : 1 ou plusieurs agrès envoyé(s) sur l’intervention.
Dessiner le MCD qui correspond au Modèle logique ci-dessus ; Utiliser le fichier looping
Ajouter les clés étrangères et les clés primaires dans les tables du script ci-dessous en vous aidant du MCD/MLD.
Placer les instructions dans le bon ordre en tenant des clés étrangères.
DROP TABLE IF EXISTS xx;
DROP TABLE IF EXISTS xx;
DROP TABLE IF EXISTS xx;
DROP TABLE IF EXISTS xx;
-- Création de la table agres
CREATE TABLE agres (
INT, -- Identifiant de l'agrès
id_agres DATE NOT NULL, -- Jour où l'agrès se tient prêt
jour_pret VARCHAR(50) NOT NULL, -- Type de véhicule
type_vehicule INT NOT NULL, -- Identifiant du chef d'agrès (référence à personnel)
chef_agres INT NOT NULL, -- Identifiant du conducteur (référence à personnel)
conducteur INT, -- Identifiant du chef d'équipe (référence à personnel, si nécessaire, sinon NULL)
chef_equipe INT, -- Identifiant de l'équipier (référence à personnel, si nécessaire, sinon NULL)
equipier
);
-- Création de la table intervention
CREATE TABLE intervention (
INT, -- Identifiant de l'intervention
id_intervention DATE NOT NULL, -- Jour de début de l'intervention
jour_debut TIME NOT NULL -- Heure de début de l'intervention
heure_debut
);
-- Création de la table personnel
CREATE TABLE personnel (
INT, -- Matricule unique du pompier
matricule VARCHAR(255) NOT NULL, -- Nom du pompier
nom VARCHAR(50) NOT NULL, -- Qualification (codée)
qualification 1) NOT NULL -- 1 si actif, 0 si inactif
actif TINYINT(
);
-- Création de la table moyen
CREATE TABLE moyen (
INT, -- Identifiant de l'agrès appelé
id_agres INT, -- Identifiant de l'intervention
id_intervention
);
INSERT INTO moyen (id_agres, id_intervention) VALUES
0, 0),
(2, 3),
(2, 4),
(3, 4),
(4, 4),
(9, 5),
(17, 6),
(22, 7),
(23, 8),
(24, 8),
(24, 9);
(
INSERT INTO agres (id_agres, jour_pret, type_vehicule, chef_agres, conducteur, chef_equipe, equipier) VALUES
0, '2023-11-21', 'VSAV', 83, 9153, NULL, 10),
(2, '2024-02-15', 'VSAV', 2674, 4044, NULL, 8641),
(3, '2024-02-15', 'FPT', 9153, 5301, 8682, 2501),
(4, '2024-02-15', 'VSAV', 83, 4671, NULL, 7450),
(7, '2024-02-29', 'VSAV', 9153, 3004, NULL, 2501),
(9, '2024-03-02', 'FPT', 2674, 5301, 8682, 8641),
(12, '2024-03-21', 'VTU', 3004, 5301, NULL, NULL),
(17, '2024-03-27', 'VSAV', 3004, 8682, NULL, 10),
(18, '2024-03-27', 'VSAV', 9153, 5301, NULL, 10),
(22, '2024-05-31', 'FPT', 9153, 4044, 7450, 8641),
(23, '2024-06-11', 'VTU', 83, 2674, NULL, NULL),
(24, '2024-06-11', 'VSAV', 3004, 4044, NULL, 7450);
(
INSERT INTO intervention (id_intervention, jour_debut, heure_debut) VALUES
0, '2023-11-21', '12:32:21'),
(1, '2023-11-22', '22:20:00'),
(2, '2023-12-17', '23:17:30'),
(3, '2024-02-15', '01:44:06'),
(4, '2024-02-15', '12:15:00'),
(5, '2024-03-02', '04:58:12'),
(6, '2024-03-27', '13:07:18'),
(7, '2024-05-31', '05:17:12'),
(8, '2024-06-11', '05:38:17'),
(9, '2024-06-11', '15:08:56'),
(10, '2024-06-18', '07:42:33');
(
INSERT INTO personnel (matricule, nom, qualification, actif) VALUES
10, 'Sam', 31, 1),
(16, 'Charlot', 10, 1),
(31, 'Red', 230, 1),
(83, 'Vaillante', 71, 1),
(2501, 'Marco', 11, 1),
(2674, 'Aicha', 231, 1),
(3004, 'Fatou', 71, 1),
(4044, 'Abdel', 191, 1),
(4671, 'Mamadou', 171, 1),
(5301, 'Zoe', 171, 1),
(7450, 'Medhi', 31, 1),
(8641, 'Gaia', 11, 1),
(8678, 'Kevin', 170, 1),
(8682, 'Marie', 11, 1),
(9153, 'Fred', 231, 1); (
+----------------------+
| nbr_agres_2024_03_27 |
+----------------------+
| 2 |
+----------------------+
+---------------------------------+
| nbr_agres_2024_03_27_dans_moyen |
+---------------------------------+
| 1 |
+---------------------------------+
+-----------+
| nom |
+-----------+
| Aicha |
| Fred |
| Vaillante |
+-----------+
+-----------+-----------------+
| nom | nb_intervention |
+-----------+-----------------+
| Fatou | 2 |
| Vaillante | 1 |
+-----------+-----------------+
+----------------+----------+-------+
| nb_agres_inter | id_agres | nom |
+----------------+----------+-------+
| 1 | 17 | Fatou |
| 0 | 18 | Fred |
+----------------+----------+-------+
+-------+-----------------+
| nom | nb_intervention |
+-------+-----------------+
| Fatou | 2 |
+-------+-----------------+