Travail Personnel^{∗}— Prolog (ESSI2)

Michel Rueher 30 mars 1995

Gestion d’une bibliothèque

Soit une petite base de données pour la gestion d’une bibliothèque avec les transactions suivantes: 1. Emprunt / Retour d’un exemplaire d’un livre,

2. Ajout / Suppression d’un exemplaire d’un livre dans la bibliothèque,

3. Edition de la liste des livres pour un auteur ou pour un domaine particulier,

4. Edition de la liste des livres sortis par un emprunteur particulier,

5. Edition du dernier emprunteur d’un livre donné. Il y a deux types d’utilisateurs du système : les employés de la bibliothèque et les adhérents ordinaires. Les transactions 1, 2, 4 et 5 sont réservées aux employés; les adhérents ont toutefois la possibilité d’effectuer la transaction 4 pour les livres qu’ils ont empruntés. La base de données doit aussi satisfaire les contraintes suivantes:

• Tous les exemplaires d’un livre doivent être empruntés ou disponibles,

• Aucun exemplaire d’un livre ne doit être en même temps empruntés et disponible,

• Un emprunteur ne peut pas avoir emprunté plus qu’un nombre fixe de livres à un momemt donné. Définir une structure de données pour gérer une telle bibliothèque en Prolog. Justifiez votre choix. Ecrire les prédicats pour les différentes transactions.

Travail à rendre

Vous devez rendre une version papier ^{1} des documents suivants :

• Une courte description de votre solution (maximum 3 pages),

• Les programmes Prolog,

• Différents jeux de tests illustrant les fonctionnalités de votre solution. De plus, vous devez créer dans le repertoire ∼rueher/PROLOG/Proj95 un répertoire dont l’intitulé correspond à vos noms et y recopier —avant la date 13 Mai 1995— vos programmes et jeux de test. Vous devez impérativement me donner tous les droits d’acces utiles pour exécuter vos programmes.

∗à effectuer en binome ou seul 1à remettre à Annick Petit