Il s'agit d'un projet de base de donnée de l'UE INF403 pour le parcours Informatiqe de déuxième année à l'université Grenoble Alpes.
- Aperçu
- Installation de l'environnement
- Préparation du projet
- Utilisation
- Notre Travail
- Author
- Acknowledgments
Une haute entreprise de commerce de parfums a informatisé ses données :
produits en stock, magasins, clients, promotions, etc. La base de données a été
construite sous la forme suivante :
Les Magasins :
Cette entreprise possède plusieurs magasins répartis sur différentes régions,
chaque magasin est connu par un code le désignant, et une adresse postale. Il
possède un certain stock de parfums et ses clients.
Les Parfums : Le parfum est reconnu par un nom unique. Chaque parfum a une marque, un volume, un prix, et un magasin où il est présent en une certaine quantité. Le parfum peut figurer plusieurs fois, mais dans différents magasins et/ou sous différents volumes.
Les Clients : Un client est identifié par son nom et son prénom, auquel on ajoute sa date de naissance et son adresse. Il fréquente un ou plusieurs magasins. On note la date de sa dernière fréquentation par magasin. Chaque client peut déclarer ou non un parfum préféré (pour par exemple être notifié en cas de réapprovisionnement des stocks, ou d’une nouvelle version exclusive du parfum entrant sur le marché). Un client est enregistré dans la base de données après une première visite dans un des magasins.
Les Promotions : Tous les magasins appliquent ou non des promotions sur ces produits (au sein de l’entreprise entière). La promotion est identifiée par un code PROMO, un pourcentage, le nom du produit/parfum sur lequel la promotion est applicable. Un produit possède un code promo maximum (pourcentage et validité modifiable) et chaque code promo présent dans la base de donnée est valide (suppression automatique en fin de validité).
Les Marques : Les grandes marques sont reconnues à part, par leurs noms, avec leurs adresses, leurs numéros de téléphone et les délais de livraison en jours (ce qui facilite le placement de commandes).
- Live UML en Visual Paradigm : here
- Le fichier de Modèle Relationnel : here
Installer Python 3 avec l'installeur disponible sur le site officiel:
- 64 bits (à préférer): https://www.python.org/ftp/python/3.9.2/python-3.9.2-amd64.exe
- 32 bits (au cas où): https://www.python.org/ftp/python/3.9.2/python-3.9.2.exe
Suivre les étapes de l'installeur. S'assurer que l'option "Ajouter à la variable d'environnement PATH" est bien cochée.
Dans un terminal:
sudo apt install -y python3 libsqlite3-dev
Une fois Python installé, il faut installer les dépendances du projet (module Python SQLite3). Dans un terminal, une fois dans le dossier extrait de l'archive source:
pip install --user -r requirements.txt
Il est possible d'utiliser le code de ce projet de deux façons.
Dans un terminal:
python3 main.py
Cela va exécuter la méthode main contenue dans le script main.py
.
Dans un terminal, on peut exécuter python3
, puis entrer le code nécessaire à
l'exécution des différentes requêtes. C'est pratique pour faire des tests
rapides:
$ python3
Python 3.9.2 (default, Feb 20 2021, 00:00:00)
[GCC 10.2.1 20201125 (Red Hat 10.2.1-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import main
>>> from utils import db
>>> db_file = "data/voile.db"
>>> conn = db.creer_connexion(db_file)
>>> main.select_tous_les_bateaux(conn)
(1, '2013-04-13', 'Pirate', 1005)
(2, '2011-04-07', 'Pirate', 1006)
(3, '2017-04-07', 'Classique', 1007)
>>>
Vous pouvez travailler avec un IDE pour rendre plus facile la prise en main et production de code.
On vous conseille PyCharm (version libre Community) : https://www.jetbrains.com/pycharm/ Pour faire la liaison entre PyCharm et Python:
Add New Configuration -> Python:
Clicker sur Play pour exécuter le programme:
Ici, dans ce fichier creation_tableaux.sql on a crée la base de données en respectant les contraintes imposés dans le UML ci-dessus .
Dans ce fichier insert_ok.sql on a testé la base de données crées en insérant des données correctement.
Et ici dans ce fichier insert_not_ok.sql, on a testé la base de données crées en insérant des données incorrectement, pour vérifier que les contraintes imopsées sont bien respectées.
Après lier notre base de données avec Python, dans ce fichier reqeutes.py on a fait des requetes en les écrivant dans des fonctions qui sont appelées dans ce fichier main.py.
Ici, dans ce fichier update_donnee.py , on a créé des requetes dans des fonctions pour mettre la possibilité de mettre à jour les données à travers Python.
Ibrahim Alsabr
Bastien Riado