2 Présentation générale de l’outil
2.1 Aperçu de l’organisation projet
Le projet est consitué de cinq couches listées ci-dessous dans l’ordre de leurs importances :
•Lecture/écriture des dépendances fonctionnelles
·Lire la relation FuncDep.
·Ajouter des dépendances fonctionnelles à la relation FuncDep.
·Supprimer des dépendances fonctionnelles de la relation FuncDep.
·Modifier des dépendances fonctionnelles de la relation FuncDep.
•Vérification des dépendances fonctionnelles
·Détecter les dépendances fonctionnelles non satisfaites.
·Distinguer les dépendances fonctionnelles qui sont une conséquence logique d’autres
dépendances fonctionnelles.
·Supprimer les dépendances fonctionnelles inutiles, incohérentes, non satisfaites ou
concernant des relations ou des attributs n’existant pas.
•Identification des clés/superclés
·Identifier les clés.
·Identifier les superclés.
•Vérification des normes 3NF & BCNF
·Vérifier si une relation est en 3NF.
·Vérifier si une relation est en BCNF.
·Exporter une base de données au format 3NF.
•Interface utilisateur
·Interface graphique.
2.2 Lecture/écriture des dépendances fonctionnelles
Cette couche est la première qui a été implémentée. C’est le noyau de l’application, elle
contient les fonctions basiques indispensables à toutes les couches supérieures. Voici la liste
exhaustive de celles-ci :
•La classe Funcdep : Cette classe représente une dépendance fonctionnelle. Elle contient
des outils basiques pour manipuler une dépendance fonctionnelle.
·Surcharge de la méthode __init__ : À l’initialisation, trois variables sont créées,
self.table : le nom de la table concernée par la dépendance fontionnelle, self.lhs et
self.rhs : respectivement les attributs de gauche et droite de la dépendance fonction-
nelle.
·Surcharge de la méthode __str__ : Une dépendance fonctionelle est représentée
sous forme de string comme "nom_table attribut1, ..., attributn->attribut1, ..., attributn".
·Surcharge de la méthode __eq__ : Deux dépendances fonctionnelles sont égales
ssi leurs noms de tables sont égaux et leurs attributs de gauche et droite sont égaux
deux à deux.
·La méthode generate_unique : Cette méthode génère les dépendances fonction-
nelles singulières à partir d’une dépendance fonctionnelle quelconque.
·La méthode format_db : Cette méthode formate la dépendance fonctionelle afin de
pouvoir introduire le résultat de cette méthode directement dans une requête SQL.
•La classe FdReader :
·La méthode get_table_list : Cette méthode retourne la liste des tables présentes
dans la base de données.
3