Pour répondre à vos questions, voici les requêtes SQL correspondantes :
Lister tous les romans:
sql Copy code SELECT * FROM Livre WHERE Id_type = (SELECT Id_type FROM Type_Format WHERE libelle_type = 'Roman'); Quels sont les livres les plus lus? sql Copy code SELECT Titre, COUNT(Id_emprunt) AS Nombre_emprunts FROM Livre LEFT JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre GROUP BY Livre.Id_livre ORDER BY Nombre_emprunts DESC; Quels sont les livres les moins lus? sql Copy code SELECT Titre, COUNT(Id_emprunt) AS Nombre_emprunts FROM Livre LEFT JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre GROUP BY Livre.Id_livre ORDER BY Nombre_emprunts ASC; Quels sont les livres qui n'ont jamais été lus? sql Copy code SELECT Titre FROM Livre LEFT JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre WHERE Empunt.Id_emprunt IS NULL; Qui est le meilleur lecteur (emprunteur)? sql Copy code SELECT Nom, Prenoms, COUNT(Id_emprunt) AS Nombre_emprunts FROM Emprunteur LEFT JOIN Empunt ON Emprunteur.Id_emprunteur = Empunt.#Id_emprunteur GROUP BY Emprunteur.Id_emprunteur ORDER BY Nombre_emprunts DESC LIMIT 1; Quels sont les emprunteurs qui ne lisent que des romans? sql Copy code SELECT Nom, Prenoms FROM Emprunteur WHERE Id_emprunteur NOT IN ( SELECT DISTINCT E.Id_emprunteur FROM Emprunteur E JOIN Empunt ON E.Id_emprunteur = Empunt.#Id_emprunteur JOIN Livre ON Empunt.#Id_livre = Livre.Id_livre WHERE Livre.#Id_type <> (SELECT Id_type FROM Type_Format WHERE libelle_type = 'Roman') ); Lister tous les emprunteurs qui ne lisent pas de romans? sql Copy code SELECT Nom, Prenoms FROM Emprunteur WHERE Id_emprunteur NOT IN ( SELECT DISTINCT E.Id_emprunteur FROM Emprunteur E JOIN Empunt ON E.Id_emprunteur = Empunt.#Id_emprunteur JOIN Livre ON Empunt.#Id_livre = Livre.Id_livre WHERE Livre.#Id_type = (SELECT Id_type FROM Type_Format WHERE libelle_type = 'Roman') ); Quels sont les auteurs qui ont édité et publié leurs propres œuvres? sql Copy code SELECT A.Nom_auteur FROM Auteur A JOIN Livre ON A.Idauteur = Livre.#Id_auteur JOIN Editeur ON A.Idauteur = Editeur.Id_editeur; Lister tous les livres publiés par leurs auteurs? sql Copy code SELECT Titre FROM Livre WHERE #Id_auteur = (SELECT Idauteur FROM Auteur WHERE Idauteur = Livre.#Id_auteur); Lister tous les auteurs en activité sql Copy code SELECT * FROM Auteur WHERE Date_deces IS NULL; Lister tous les livres non encore rendus et passibles de pénalité sql Copy code SELECT Titre FROM Livre JOIN Empunt ON Livre.Id_livre = Empunt.#Id_livre WHERE Date_rendu IS NULL AND Date_retour < CURRENT_DATE; Pour la transformation du modèle en format documentaire (JSON) et l'utilisation de MongoDB, cela nécessiterait la création d'une structure BSON (Binary JSON) et l'insertion des données dans des collections MongoDB. Cependant, la transformation complète et la rédaction des requêtes MongoDB peuvent être un processus complexe et dépendent de la version spécifique de MongoDB que vous utilisez. Si vous avez une version spécifique de MongoDB en tête, je pourrais vous fournir des exemples de requêtes MongoDB basées sur votre modèle relationnel.