Solutions

Solution Exercice 1 :

La table viole la 1NF car les informations sur le client sont répétées. Pour la normaliser, il faut séparer les informations relatives au client et au produit dans deux tables distinctes.

Solution Exercice 2 :

1. Table Livres

Cette table stocke des informations sur les livres dans la bibliothèque. Chaque livre a un identifiant unique (id_livre), un titre, un auteur, et une date de publication.

CREATE TABLE Livres (
    id_livre INT AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(255),
    auteur VARCHAR(150),
    date_publication DATE
);
  • id_livre : Un identifiant unique pour chaque livre.

  • titre : Le titre du livre (chaîne de caractères jusqu'à 255 caractères).

  • auteur : Le nom de l'auteur (chaîne de caractères jusqu'à 150 caractères).

  • date_publication : La date de publication du livre (au format YYYY-MM-DD).

2. Table Emprunteurs

Cette table contient les informations sur les emprunteurs de la bibliothèque. Chaque emprunteur a un identifiant unique (id_emprunteur), un nom et un e-mail.

CREATE TABLE Emprunteurs (
    id_emprunteur INT AUTO_INCREMENT PRIMARY KEY,
    nom VARCHAR(100),
    email VARCHAR(100)
);
  • id_emprunteur : Un identifiant unique pour chaque emprunteur.

  • nom : Le nom de l'emprunteur (jusqu'à 100 caractères).

  • email : L'adresse e-mail de l'emprunteur (jusqu'à 100 caractères).

3. Table Emprunts

Cette table stocke les informations sur les emprunts réalisés par les emprunteurs. Chaque emprunt est lié à un livre et un emprunteur via des clés étrangères (id_emprunteur et id_livre), et inclut la date d'emprunt.

CREATE TABLE Emprunts (
    id_emprunt INT AUTO_INCREMENT PRIMARY KEY,
    id_emprunteur INT,
    id_livre INT,
    date_emprunt DATE,
    FOREIGN KEY (id_emprunteur) REFERENCES Emprunteurs(id_emprunteur),
    FOREIGN KEY (id_livre) REFERENCES Livres(id_livre)
);
  • id_emprunt : Un identifiant unique pour chaque emprunt.

  • id_emprunteur : Une clé étrangère reliant l'emprunt à l'emprunteur (référence à la table Emprunteurs).

  • id_livre : Une clé étrangère reliant l'emprunt au livre emprunté (référence à la table Livres).

  • date_emprunt : La date à laquelle l'emprunt a été effectué.

Explication des relations :

  • Un emprunteur peut emprunter plusieurs livres, et un livre peut être emprunté par plusieurs emprunteurs à des moments différents. La table Emprunts est donc la table qui gère la relation entre les emprunteurs et les livres.

  • La clé étrangère id_emprunteur dans la table Emprunts référence la colonne id_emprunteur de la table Emprunteurs, et la clé étrangère id_livre référence la colonne id_livre de la table Livres.

Last updated