Projet Système de Gestion de Base de Données Stephane Castelli & Kévin Gallienne & Sami Lachdhaf 12 décembre 2012 Enseirb-Matmeca 1 Informatique-I2
Table des matières Introduction 3 1 Modélisation de la base de données 3 1.1 Hypothèses................................................ 3 1.1.1 Tables de données........................................ 3 1.1.2 Tables de relations........................................ 3 1.2 Modèle conceptuel............................................ 4 1.2.1 Schema.............................................. 4 1.2.2 Relation d héritage........................................ 5 1.3 Modèle relationnel............................................ 5 2 Implémentation et interface 6 2.1 Exploitation des données stockées.................................... 6 2.1.1 Mise à jour des données..................................... 6 2.1.2 Consultations des données.................................... 7 2.1.3 Statistiques............................................ 7 2.2 Interface Perl............................................... 7 Conclusion 7 Enseirb-Matmeca 2 Informatique-I2
Introduction 1 Modélisation de la base de données 1.1 Hypothèses 1.1.1 Tables de données Une personne possède un nom et un prénom, la table personne est donc composée de trois champs : nompersonne, prenompersonne. Un élève possède, en plus des attributs d une personne, un login, une filière et une promotion. La table eleve est donc composée de quatre champs : login. promotion, filiere. Un adhérent possède, en plus des attributs d un élève, une date d adhésion et une date de séparation. La table adherent est donc composée de quatre champs : login. dateadhesion, dateseparation. Un membre du bureau possède, en plus des attributs d un adhérent, une date d entrée et une date de sortie. La table bureau est donc composée de quatre champs : idbureau. dateentree, datesortie. Un livre possède un numéro ISBN, un titre, une date d achat, un prix d achat, et est désigné comme empruntable ou non. La table livre est donc composée de cinq champs : empruntable. titre, dateachat, prixachat. Un éditeur possède seulement un nom, la table editeur est donc composée de deux champs : idediteur. nomediteur. Un jeu possède un nom, un état, une date d achat, un prix d achat, et un nombre de joueurs minimum/- maximum. La table jeu est donc composée de six champs : nomjeu. etat, dateachat, prixachat, joueursmin, joueursmax. Un evenement possède une date et un lieu, la table evenement est donc composée de trois champs : idevenement. dateevenement, lieu. 1.1.2 Tables de relations La table ecriture est une table représentant la rélation entre un livre et son(ses) auteur(s), elle est donc composée de deux champs : La table ecriture est une table représentant la rélation entre un livre et son(ses) auteur(s), elle est donc composée de deux champs : Enseirb-Matmeca 3 Informatique-I2
La table edite est une table représentant la rélation entre un livre et son(ses) editeur(s), elle est donc composée de deux champs : idediteur. La table emprunt est une table représentant la rélation entre un livre et son(ses) emprunteur(s), et elle possède en plus les date d emprunts et de retour du livre, elle est donc composée de quatre champs : dateemprunt. dateretour. La table participe est une table représentant la rélation entre un adhérent et un evenement auquel il participe, elle est donc composée de deux champs : idevenement. La table note est une table représentant les notes et commentaires des adherent à propos des jeux, elle est donc composée de quatre champs : nomjeu. note. commentaire. La table commente est une table représentant les commentaires des adherent à propos des evenement, elle est donc composée de quatre champs : idevenement. commentaire. 1.2 Modèle conceptuel 1.2.1 Schema Enseirb-Matmeca 4 Informatique-I2
1.2.2 Relation d héritage 1.3 Modèle relationnel Enseirb-Matmeca 5 Informatique-I2
2 Implémentation et interface Figure 1 Interface du programme Il a ensuite fallu choisir un langage de programmation afin d implémenter les requêtes SQL dans une interface graphique simple d utilisation. Le candidat le plus généralement choisi lorsqu il s agit d intéragir avec une base de données est le PHP, ensuite vient le Java. Dans un soucis de démarcation et afin d élargir le champ de nos connaissances il a été décidé d utiliser le Perl. Ce langage possède une bibliothèque très complète (DBI ) permettant d intéragir avec un serveur MySQL, Oracle SQL, PostgreSQL et d autres, et permet de faire des applications graphiques, par exemple avec la bibliothèque Tk. (figure 1) Quant au Système de Gestion de Base de Données, il a été décidé de se tourner vers MySQL car il est le plus répendu des systèmes libres et gratuits, ce qui permet de travailler sur les machines personnelles. Maintenant, tournons-nous vers l implémentation des diverses requêtes indispensables pour satisfaire le cahier des charges. 2.1 Exploitation des données stockées 2.1.1 Mise à jour des données Premièrement, il est présupposé que la base de donnée a été créée. Pour ce faire, il suffit de démarrer le serveur mysql (ceci dépend de votre système d exploitation) puis de lancer un script SQL depuis mysql ou phpmyadmin (par exemple). Ceci permet de créer une base de données contenant toutes les tables nécessaires tout en fixant les contraintes entre les clefs. À partir de maintenant, tout se fera par le biais de scripts Perl en mode graphique. Une fois connecté à la base de données, l utilisateur n a plus qu à utiliser l interface afin de la mettre à jour. Par mettre à jour, on entend ajouter, supprimer ou modifier des adhérents, des jeux, des membres du bureau ou des évènements. On pourra également commenter des jeux, faire passer un adhérent dans le bureau ou lui faire emprunter un livre par exemple. Dans le but de réaliser ceci, il est demandé à l utilisateur de préciser ce qu il veut faire, le cas échéant des informations supplémentaires lui sont demandées, puis ces données sont insérées dans des requêtes SQL envoyées au serveur. Ce dernier va modifier la base de données en conséquence. Il sera principalement utilisé les mots-clefs UPDATE, INSERT et DELETE. Par exemple, pour ajouter un nouvel adhérent : INSERT INTO adherent ( dateadhesion, l o g i n ) VALUES ( s t r t o d a t e ( $ [ 5 ], %d/%m/%y ), $ [ 4 ] ) ; Enseirb-Matmeca 6 Informatique-I2
Dans cet exemple, str to date est une fonction mysql servant à reformater une date correctement, $ [5] et $ [4] sont des variables Perl correspondant à la date et au login. 2.1.2 Consultations des données 2.1.3 Statistiques 2.2 Interface Perl Conclusion Enseirb-Matmeca 7 Informatique-I2