REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université Mouloud Mammeri de Tizi-ouzou Faculté de Génie Electrique et Informatique Département d’Informatique MEMOIRE Pour obtenir le diplôme de MAGISTER Option : Systèmes Informatiques Présenté et soutenu publiquement par Mr. RAHMANI Rabah Découverte d’associations sémantiques dans les bases de données relationnelles par des méthodes de Data Mining Proposé et dirigé par Mr. DJOUADI Yassine-Mansour Maître de Conférences JURY : Mr. RASSOUL Idir Maître de conférences Classe A, UMMTO Président Mr. DJOUADI Yassine-Mansour Maître de conférences Classe A, UMMTO Rapporteur Mme. AMIROUCHE Fatiha Maître de conférences Classe B, UMMTO Examinatrice Mr. SADI Bachir Maître de conférences Classe A, UMMTO Examinateur 1 Table des matières Introduction ............................................................................................................................ 4 Chapitre 1 Introduction à l’extraction de connaissances......................................................................... 6 1.1 Introduction ...................................................................................................................... 7 1.2 Processus général du KDD............................................................................................... 7 1.3 Les tâches du Data-Mining. ........................................................................................... 11 1.4 Les outils du Data-Mining.............................................................................................. 12 1.5Conclusion....................................................................................................................... 18 Chapitre 2 Le modèle relationnel............................................................................................................. 19 2.1 Les concepts du modèle ................................................................................................ 20 2.2 Algèbre relationnelle ..................................................................................................... 23 2.3 Conclusion..................................................................................................................... 26 Chapitre 3 Découverte de règles d’associations et de dépendances fonctionnelles. ............................ 27 3.1. Introduction. ................................................................................................................. 28 3.2. Découverte de règles d’association basées sur les fréquents. ...................................... 28 3.3 Découverte de dépendances fonctionnelles................................................................... 31 3.4 Conclusion..................................................................................................................... 34 Chapitre 4 Découverte de dépendances multivaluées. ........................................................................... 35 4.1 Introduction. ................................................................................................................... 36 4.2 Définition et propriétés des dmvs................................................................................... 39 4.3 Stratégies de découverte de dmv. ................................................................................... 41 4.4 Conclusion...................................................................................................................... 51 Chapitre 5 Proposition d’une méthode découverte de dépendances multivaluées.............................. 52 5.1 Introduction ................................................................................................................... 53 2 5.2 Présentation de la méthode............................................................................................. 53 5.3 Enumération des dmvs candidates. ................................................................................ 54 5.4 Description de la proposition. ........................................................................................ 56 5.5 Conclusion...................................................................................................................... 69 Conclusion............................................................................................................................... 70 Bibliographie........................................................................................................................... 71 3 Introduction L’apparition du modèle relationnel de données, (Codd, 1970), a constitué une avancée méthodologique décisive pour les informaticiens dans leur métier de conception et de réalisation d’applications, à tel point qu’il est pratiquement le seul à être utilisé de nos jours. Ce modèle fournit, pour la première fois, grâce à ses fondements mathématiques solides, la possibilité de dissocier nettement et de façon sûre leur effort de représentation des données de celui d’écriture des programmes de traitements car il offre simultanément le moyen de représentation des données, la relation, et le moyen de leur manipulation, l’algèbre relationnelle, assurant ainsi ce qui était recherché à l’époque: l’indépendance entre données et traitements. Dès lors, l’effort de représentation des données constitua la part prépondérante dans la construction d’une base de données et la recherche s’orienta alors vers l’enrichissement du modèle de représentation, lui exigeant d’être de plus en plus fidèle à la réalité représentée ; en quelque sorte d’être plus «sémantique». C’est ainsi que les années 1970 et 1980 virent la proposition de plusieurs modèles sémantiques (Codd, 1979) (Hammer, 1978) (Peckham, 1988) (Smith, 1977) etc. Dans ce mémoire on s’intéressera au premier niveau de sémantique, capté à travers les contraintes entre les valeurs des attributs, donnant naissance à la notion de dépendances entre données. CODD, lui-même, énonça les premières associations sémantiques de son modèle en établissant les dépendances fonctionnelles et la notion de normalisation de relations (Codd, 1972). D’autres dépendances furent ensuite proposées : dépendances multivaluées dépendances de jointure, etc. (Fagin, 1977) (Fagin, 1979). Typiquement, la construction d’une base de données commence par l’élaboration de son schéma conceptuel. Cette activité, intuitive au départ, puis plus ou moins formalisée dans ses étapes suivantes, consiste à déduire de la réalité à modéliser des attributs à regrouper sous forme de relations. Ce regroupement est effectué en se fondant sur certaines propriétés générales concernant les valeurs des attributs ; ce sont les énoncés de dépendance (fonctionnelle, multivaluée, de jointure, etc.). Les données factuelles sont alors progressivement ajoutées, modifiées ou supprimées dans la base de données répondant à ce schéma par le biais d’un système de gestion de bases de données. La qualité et la durée de vie d’une base de données obtenue grâce à cette démarche sont tributaires, non seulement de la sagacité de son concepteur mais aussi de l’évolution de la réalité qui est difficile à maîtriser. Le concepteur a-t-il oublié une dépendance ? A-t-il utilisé une dépendance démentie par la réalité des données ? C’est lorsque l’on constate des anomalies d’insertion, de mise à jour, de suppression, que l’on est amené à se poser ces questions. Un moyen d’y répondre est de « fouiller » dans les données factuelles de la base de données afin de découvrir ces dépendances. C’est pour cela que ce travail entre dans le cadre général de ce qui est désigné par « découverte de connaissances dans les données ». L’intitulé de ce domaine suggère, qu’à partir de données de plus en plus nombreuses et faciles d’accès, on peut extraire quelques «pépites» précieuses que sont les connaissances. 4 Plus précisément, la découverte de connaissances dans les données, est maintenant un domaine bien établi et délimité ; il possède ses propres méthodes et fait appel à des outils bien précis. Aussi, notre travail concerne la découverte de dépendances multivaluées entre attributs d’une relation déjà enregistrée. Outre cette introduction et une conclusion, ce mémoire comporte cinq chapitres. Le premier est une introduction au processus de découverte de connaissances dans les données avec sa définition et ses différentes étapes. Dans le deuxième chapitre on décrira le modèle relationnel de données en mettant l’accent sur les dépendances fonctionnelles. Le chapitre trois introduit quelques méthodes de découverte de dépendances fonctionnelles et de règles d’association. Le chapitre quatre donne le détail sur les dépendances multivaluées et sur deux méthodes de leur découverte. Enfin le chapitre cinq concerne notre contribution à la découverte de dépendances multivaluées par la présentation de notre algorithme 5 Chapitre 1 : Introduction à l’extraction de connaissances Chapitre 1 Introduction à l’extraction de connaissances Sommaire 1.1 Introduction ................................................................................................................... 7 1.2 Processus général du KDD ........................................................................................... 7 1.3 Les tâches du Data-Mining......................................................................................... 11 1.3.1 Classification. ............................................................................................................. 11 1.3.2 Règles d’association. ................................................................................................... 11 1.3.3 Segmentation ……………………………………………………………………….. 11 1.3.2 Recherche de séquences.…………………………………………………………......11 1.4 Les outils du Data-Mining .......................................................................................... 12 1.4.1 Les réseaux de neurones.............................................................................................. 12 1.4.2 Les séries temporelles. ................................................................................................ 14 1.4.3 Réseaux bayésiens...................................................................................................... 15 1.4.4 Arbres de décision. ...................................................................................................... 17 1.5 Conclusion.................................................................................................................... 18 6 Chapitre 1 : Introduction à l’extraction de connaissances 1.1 Introduction A l’origine, ‘’ Data-Mining’’ était un terme utilisé par les statisticiens pour désigner l’usage abusif des données dans le but de tirer des conclusions qui s’avéraient souvent invalides. Les statisticiens savent qu’en présence de nombreuses conclusions certaines d’entre elles sont vraies pour des raisons purement statistiques. Un exemple fameux (Ullman, 2000). Dans les années 1950, à l’université de Duke1, David Rhine parapsychologue, a testé des étudiants pour isoler ceux d’entre eux doués de ‘’perception extra-sensorielle’’ en leur faisant deviner la couleur de 10 cartes. Il trouva, qu’environ 1/1000 d’entre eux ont deviné la couleur de la totalité de ces cartes. Au lieu de réaliser que ce résultat est tout à fait prévisible de façon purement aléatoire, il en conclut que ces étudiants avaient le don de ‘’perception extrasensorielle’’. Quand, plus tard, il les testera de nouveau pour la même expérience, il trouva qu’ils ne firent pas mieux que la moyenne des étudiants. Il en conclut que le fait d’apprendre aux gens qu’ils avaient le don de ‘’perception extrasensorielle’’ leur faisait perdre ce don ! Une définition du Data- Mining (Ullman, 2000) C’est la découverte de résumés utiles de données. Une autre définition (Pasquier, 1999) C’est la phase de recherche de connaissances dans le processus plus général de découverte de connaissances dans les données ( KDD : Knowledge Discovery in Data). Ce qui nous mène à cette définition du KDD (Pasquier, 1999) Processus non trivial, semi-automatique, composé de plusieurs étapes allant de la préparation des données jusqu’à l’interprétation des résultats en passant par la découverte proprement dite, le Data-Mining. 1.2 Processus général du KDD Dans (HB-DM, 2005) on décrit le processus de découverte de connaissances comme un processus interactif et itératif comportant 9 étapes (figure 1). Ce processus est itératif globalement et au niveau de chaque étape. La première étape consiste à fixer les objectifs de la découverte selon la connaissance que l’on a du domaine, la dernière est l’obtention puis l’implémentation des connaissances. découvertes. 1 Durham, Caroline du nord, USA. 7 Chapitre 1 : Introduction à l’extraction de connaissances 8 Evaluation et interprétation. 5,6,7 9 connaissances découvertes. Visualisation et intégration. Data mining. 4 Transformation. 3 Prétraitement et nettoyage des données. 2 Datamining Sélection et addition. actif Données pré-traitées Données transformées Modèle Données Données sélectionnées 1 Domaine et objectif Figure1. Processus général de KDD 1. Fixation des objectifs selon la compréhension du domaine. Les connaissances à découvrir sont plus ou moins indiquées par l’utilisateur. Les personnes en charge de ce processus (parmi eux des informaticiens) doivent dès cette étape prendre des décisions en fonction de leur compréhension de ces objectifs du domaine de départ. Ces décisions concernent, entre autre, les transformations à apporter aux données, les nouvelles représentations à adopter en fonction du but poursuivi et les algorithmes à utiliser. 8 Chapitre 1 : Introduction à l’extraction de connaissances En fonction de l’évolution dans cette étape il peut même y avoir une révision de l’un des choix préalablement pris. Ayant compris les objectifs de la découverte, le pré-traitement des données peut commencer. C’est l’objet des 3 étapes suivantes. 2. Création des données concernées par la découverte. Dans cette étape on effectue l’inventaire de toutes les données dont on dispose. En fonction des objectifs de la découverte on peut juger utile de rajouter d’autres données sous forme d’attributs. La création de cet ensemble de données initial est crucial pour la suite du processus puisque c’est de lui que dépendent les connaissances à découvrir. C’est pour cela qu’il s’effectue aussi de façon interactive et itérative. 3. Pré-traitement et nettoyage des données. Cette étape s’occupe de la fiabilité des données créées durant l’étape précédente. Cette fiabilité peut être remise en cause par les valeurs inconnues, les valeurs aberrantes et les valeurs bruitées. Assurer la fiabilité de ces données est une tâche non triviale puisqu’elle peut faire appel à des méthodes de prédiction de paramètres, des méthodes de détection de valeurs aberrantes etc. 4.Transformation des données Cette étape prépare les données pour le Data-Mining en transformant les données de l’étape précédente de façon à ce que cette tâche se fasse avec des complexités ‘raisonnables’. Cette transformation concerne essentiellement deux aspects : - réduction de dimension et extraction de ‘résumés’ de données, - discrétisation des attributs numériques et transformations fonctionnelles. Cette étape peut être cruciale pour la totalité du projet de découverte de connaissances; et les transformations à effectuer sur les données sont souvent spécifiques au domaine considéré. Ainsi, en médecine on s’intéresse plus souvent aux rapports entre les résultats d’analyse qu’aux résultats pris isolément. Dans l’analyse des achats d’une ménagère le nom du préposé à la caisse est de peu d’intérêt, etc. Cependant, même si une bonne transformation n’a pas été effectuée, on s’en apercevra plus tard en observant les résultats obtenus ; lesquels seront une indication sur la transformation à effectuer. Ayant achevé les 4 étapes précédentes, les 4 étapes suivantes vont effectuer la partie ‘Data-Mining’ proprement dite. L’intérêt sera porté sur l’aspect algorithmique à employer pour chaque projet. 9 Chapitre 1 : Introduction à l’extraction de connaissances 5.Choix de la tâche appropriée de Data-Mining Les objectifs qui ont guidé tout le processus depuis les premières étapes sont maintenant en mesure de nous indiquer la tâche de Data-Mining à entreprendre. Ces objectifs peuvent se classer en 2 groupes généraux : la prédiction et la classification. La prédiction est souvent appelée tâche supervisée et la classification tâche non supervisée. Les deux sont basées sur un modèle qui utilise des exemplaires de données test pour leur élaboration et supposent que ce modèle reste valide pour d’autres exemplaires de données réelles. 6.Choix de l’algorithme de Data-Mining. Parmi plusieurs algorithmes, lesquels choisir pour accomplir nôtre tâche ? A ce stade le choix est guidé par le degré de précision recherché par rapport à la facilité d’interprétation des connaissances extraites. Si l’on recherche la précision ; alors les réseaux de neurones sont recommandés ; si l’on désire plus de clarté, alors on opte pour les arbres de décision. Etc. 7.Mise en œuvre de l’algorithme. Finalement, l’algorithme de Data-Mining est implémenté en utilisant un ou plusieurs langages de programmation. On peut être amené à faire des ‘réglages’ sur les paramètres de l’algorithme en le faisant tourner plusieurs fois, jusqu’à l’obtention des résultats désirés. 8.Evaluation. A ce stade on évalue les résultats obtenus (et acceptés) par l’algorithme. On les interprète à la lumière des objectifs fixés durant la première étape. On peut ainsi reconsidérer les premières étapes pour voir leurs effets sur l’algorithme (par exemple en ajoutant des éléments à l’étape 4 et en recommençant à partir de là). Les connaissances obtenues sont finalement documentées pour utilisation à l’étape 9. 9.Utilisation des connaissances découvertes. Les connaissances découvertes sont jugées pertinentes et utiles. Elles deviennent ‘actives’ en ce sens qu’elles seront injectées dans le système pour voir leurs effets. C’est par exemple le cas quand on redéfinit le schéma d’une base de données relationnelle après découverte de dépendances. 10 Chapitre 1 : Introduction à l’extraction de connaissances 1.3 Les tâches du Data-Mining. La méthodologie de fouille dans les données est plus ou moins établie à l’heure actuelle ; elle est caractérisée par les tâches de Data Mining dont on peut citer. 1.3.1 Classification. Etant donné un ensemble prédéfini de classes d’objets, affecter un objet à une classe, selon une certaine mesure de proximité est le rôle de la classification. Les techniques de classification commencent par définir un ‘plan d’expérience’ ou un ensemble de données d’apprentissage’ sur lequel on applique les ‘méthodes de classification. Puis, pour mesurer leur pouvoir de classement correct, on applique les mêmes méthodes sur un jeu d’essai (‘testing set’). 1.3.2 Règles d’association. Une règle d’association est un énoncé du type ‘ 60% des clients qui achètent du lait achètent aussi du pain’. Le domaine d’application classique des règles d’association concerne l’analyse du ‘panier de la ménagère’ par les grandes surfaces de distribution. Ces règles leur permettent de réorganiser la disposition de leurs produits dans les rayons, d’offrir des promotions en fonction des habitudes d’achat découvertes , etc. L’assise formelle des règles d’association est donnée dans le papier fondateur de Agrawal et Srikant qui exhibe l’algorithme A-priori (Agrawal, 1994) pour la découverte de ces règles. Deux étapes sont nécessaires pour cette découverte. 1. découverte des fréquents, 2. affichage des règles d’association. Les règles d’association seront considérées plus en détail dans le chapitre suivant. 1.3.3 Segmentation ( Clustering ) La segmentation a pour but de découvrir dans les données des groupes, non identifiés à l’avance, ayant les mêmes caractéristiques ; ce sont les clusters. 1.3.4 Recherche de séquences Une séquence est une liaison entre événements sur une certaine période de temps. Ces séquences sont par exemple du type « celui qui achète un téléviseur achètera une caméra numérique d’ici 2 ans ». Ceci permet d’anticiper l’arrivée d’événements. 11 Chapitre 1 : Introduction à l’extraction de connaissances 1.4 Les outils du Data-Mining Sous ce vocable sont regroupées les méthodes mathématiques et algorithmiques permettant d’effectuer les tâches de Data Mining. On peut citer. 1.4.1 Les réseaux de neurones Les réseaux de neurones sont des modèles de calcul tendant à imiter le fonctionnement, tel que compris par les biologistes, des neurones animales et spécialement humaines. Initialement, le représentant du neurone humain était appelé ‘perceptron’, dont le modèle de calcul est le suivant. xd ∑ f y d sortie = f( ∑ wixi) i=1 x1 Figure 1.1. Fonctionnement d’un neurone Un réseau de neurones est constitué de plusieurs perceptrons interconnectés de différentes façons. On distingue. 1. le réseau de neurones multicouches ou ‘multilayer perceptron’ les neurones de ce type de réseau sont regroupés en couches dont, une d’entrée, une de sortie et une ou plusieurs intermédiaires (fig1.2). Dans la figure 1.2 le réseau à 3 couches, où tous les adjacentes sont connectés, les sorties sont reliées aux entrées par neurones de 2 couches y = f2 (w2 f1 (w1x)). 12 Chapitre 1 : Introduction à l’extraction de connaissances Sortie(Y) Couche de sortie Couche intermédiaire Couche d’entrée Entrées(X) Figure 1.2. Réseau multicouche 2. Réseau de Hopfield. C’est un réseau à une seule couche avec interconnectivité complète (figure 1.3). 1 W21 W12 2 W23 W31 W13 3 W32 Figure 1.3. Réseau de Hopfield à 3 neurones. Un réseau de Hopfield est caractérisé par son fonctionnement en fonction du temps selon les équations. n-1 ui(t) = ∑ wij xj(t) + vi . j=1 j≠i xi(t+1) = sign(ui(t)) . avec sign(x) = 1 -1 si x ≥ 0 sinon. ui(t) est l’état du neurone du neurone i à l’instant t xi(t) est la sortie du neurone i. vi est le seuil du neurone i. 13 Chapitre 1 : Introduction à l’extraction de connaissances A chaque instant un tel réseau est caractérisé globalement par son énergie définie par. E(t) = ½ U(t)TWU(t) – V(t). U et V sont des vecteurs et W la matrice des poids des connections. AT dénote la transposée de la matrice A. Il a été montré que cette énergie décroît, en fonction du temps jusqu’à atteindre un point fixe. Les états des différents neurones dans cet équilibre sont interprétés comme des mémoires associatives (adressables par le contenu). Il existe d’autre structures de réseau de neurones que nous ne présentons pas. Le lecteur intéressé peut se rapporter à (HB-DM, 2005). 1.4.2 Les séries temporelles. Les séries temporelles représentent la mesure de certaines caractéristiques en fonction du temps. Les statisticiens ont établi ce concept et ses propriétés depuis plus d’un siècle (HB-DM, 2005); mais leurs techniques s’avèrent insuffisantes pour les énormes quantités de données des séries temporelles réelles. En tant qu’outil de Data-Mining les ‘grandes’ séries temporelles sont traitées selon plusieurs aspects. Elles sont d’abord représentées de telle sorte à ce que l’on puisse définir une mesure de similarité entre séries. Puis on les manipule pour plusieurs utilisations. - Indexation : trouver les séries temporelles les plus similaires. - Clustering : trouver des groupes de séries temporelles similaires à partir des données brutes sans fixer les groupes au préalable. - Classification : étant données des classes prédéfinies, affecter une série temporelle à une classe. - Prédiction : étant donnée une série temporelle discrète de n points, prédire la valeur de la caractéristique au temps n+1. - Résumé : étant donnée une série temporelle Q comportant n points de données, avec n extrêmement grand ; créer une approximation de Q de dimension beaucoup plus petite. - Détection d’anomalie : étant donnée une série temporelle Q supposée ‘normale’ et une autre série R non analysée, trouver toutes les sections de R qui contiennent des anomalies par comparaison avec Q. 14 Chapitre 1 : Introduction à l’extraction de connaissances - Segmentation : partition d’une série temporelle Q de n points en K segments ( K << n ) qui définissent Q’ proche de Q. 1.4.3 Réseaux bayésiens. Les réseaux bayésiens sont fondés sur le concept de probabilité conditionnelle, entre événements aléatoires, du révérend Thomas Bayes qui a posé l’expression suivante. P(A|B) P(B) = P(A∩B) = P(B|A) P(A). Dans laquelle A et B sont des événements aléatoires. P(A|B) (P(B|A)) se lit probabilité de A sachant B (probabilité de B sachant A). P(A∩B) est la probabilité de l’occurrence simultanée de A et de B. De cette expression il vient P(A|B) = P(B|A) P(A) ⁄ P(B) et P(B|A) = P(A|B) P(B) ∕ P(A). Un réseau bayésien se compose de 2 éléments. - Un graphe orienté acyclique. Une distribution de probabilité. Les sommets du graphe représentent des variables aléatoires et les arcs représentent des probabilités conditionnelles indiquant des dépendances directes entre variables. Dans un réseau bayésien, le but est d’identifier le meilleur réseau de dépendances. La construction d’un réseau bayésien s’appuie sur un en ensemble de données d’apprentissage décrites par des valeurs prises par des attributs considérées comme des variables aléatoires. Des connaissances a-priori sur le domaine permettent de valider ces dépendances stochastiques sur la base des données d’apprentissage. 15 Chapitre 1 : Introduction à l’extraction de connaissances Nbvoit Ad_mal Genre Ad_fem Origine Chambr Région Logis Enfants Durée Poss Etat Age Figure 1.4. Exemple de réseau bayésien. La figure 1.4 ci-dessus montre un réseau bayésien construit à partir de données recensées entre Avril 1996 et Mars 1997 par le British Office of National Statistics de Grande Bretagne et concerne une enquête menée sur la vie des ménages. Ces statistiques sont résumées dans treize variables dont la description est donnée ci-dessous. Variable Description Valeurs Région Région de naissance du chef de famille Angleterre, Ecosse, Pays de Galle Ad_fem Nombre d’adultes femmes dans la famille Ad_mal Nombre d’adultes hommes dans la famille 0, 1, ≥ 2 Enfants Nombre d’enfants 0, 1, ≥ 2 Age Age du chef de famille 0, 1, 2, 3, ≥ 4 17-36, 36-50, 50-66, 66-98 Genre Genre du chef de famille M, F Logis Type de logement Chambre, Appartement, Maison, Autre Chambr Nombre de chambres à coucher Nbvoit Nombre de voitures du ménage 1, 2, 3, ≥ 4 Poss Mode de possession du logis Durée Durée de résidence (en mois) Origin Origine ethnique du chef de famille Caucasien, Chinois, Noir, Indien, Autre Etat Etat d’activité du chef de famille Actif, Inactif, Retraité 1, 2, 3, ≥ 4 Location, Propriété, Secteur social 0-3, 3-9, 9-19, ≥ 19 16 Chapitre 1 : Introduction à l’extraction de connaissances 1.4.4 Arbres de décision. Les arbres de décision sont essentiellement utilisés pour effectuer des tâches de classification. Un arbre de décision se compose d’une racine, de nœuds internes et de feuilles. Les feuilles sont les supports de décision. Les nœuds internes partitionnent les individus, décrits par les données, en deux ou plusieurs groupes. Utiliser un arbre de décision consiste à placer un nouvel individu dans une feuille. Idéalement un arbre de décision possède des feuilles pures, ce qui signifie qu’il n y a pas d’ambiguïté dans le choix de la feuille qui recevra le nouvel individu. Mais l’obtention d’un tel arbre est tributaire du choix de la variable de partitionnement à partir des données d’apprentissage. Intuitivement une variable à peu de valeurs constitue une bonne variable de partitionnement et on peut considérer l’arbre de décision comme une classification à partir des données. Des techniques plus formelles permettent de mesurer la ‘’variabilité’’ des données comme par exemple l’entropie. Figure 1.5. Exemple d’arbre de décision pour l’octroi de prêt 17 Chapitre 1 : Introduction à l’extraction de connaissances 1.5 Conclusion Nous venons de présenter tâches principales du Data Mining ainsi que les principaux outils utilisés pour les effectuer. Il faut noter qu’à l’heure actuelle le choix de l’outil par rapport a une tâche donnée dépend fortement du domaine considéré. L’un des défis du Data Mining est de rendre systématique ce choix. 18 Chapitre 2 : Le modèle relationnel Chapitre 2 Le modèle relationnel Sommaire 2.1 Les concepts du modèle.................................................................................................... 20 2.1.1 Introduction ................................................................................................................. 20 2.1.2 Définition formelle des relations................................................................................. 21 2.1.3 Dépendances fonctionnelles. ....................................................................................... 21 2.1.4 Définition de la dépendance fonctionnelle. ................................................................. 22 2.1.5 Implication logique de dépendances fonctionnelles………………………………... 23 2.2 Algèbre relationnelle ........................................................................................................ 23 2.2.1 sélection....................................................................................................................... 24 2.2.2 Projection. ................................................................................................................... 24 2.2.3 La jointure. ................................................................................................................. 25 2.3 Conclusion......................................................................................................................... 26 19 Chapitre 2 : Le modèle relationnel Le modèle relationnel est un modèle de données fondé sur la notion mathématique de relation entre ensembles. Il a été proposé, en 1970 par E.F. Codd (Codd, 1970), et a constitué le modèle qui a concrétisé l’idée qui existait à cette époque de rendre définitivement indépendants les traitements et les données ; ce qui n’était pas le cas avec les modèles en usage alors, à savoir les modèles à pointeurs : hiérarchique et réseau. 2.1Les concepts du modèle 2.1.1 Introduction Dans le modèle relationnel, les données sont représentées sous forme de tables dont les lignes ont la même sémantique ; chacune d’elles est censée décrire un objet ou une association du monde réel. Considérons un exemple pour fixer les idées : la gestion des examens dans un département d’université. Un examen a un ordre dans l’année ( EMD1,EMD2 ,…). Il concerne une année d’étude dont on connaît le nombre d’étudiants qui seront tous des candidats potentiels à l’examen. L’examen a lieu dans un endroit (amphi, salle, laboratoire,…) dont on connaît le nombre de places. Il se déroule à une date et heure données et possède une durée. De plus, des enseignants sont affectés dans tous les endroits d’examination pour en assurer le bon déroulement. Il est inutile, pour le sujet qui nous concerne, de s’attarder sur une quelconque méthode de conception d’un modèle de données pour cette réalité. Supposons pour les besoins de notre propos que nous ne percevons que la relation universelle et qu’une seule table est utilisée (table 2.1). AN EF MD EX DT HR DR EN PL 3AI 117 Syst1 EMD1 3AI 117 Syst1 3AI 117 Syst1 20/02/09 8h30 1h30 Amphi 90 Ali EMD1 20/02/09 8h30 1h30 Amphi 90 Omar EMD1 20/02/09 8h30 1h30 30 Zina 4AI 80 Comp 90 Said EMD1 21/02/09 10h30 2h00 salle1 Amphi SR Table 2.1 AN : EF : MD : EX : DT : HR : DR : EN : PL : SR : Année d’étude Effectif de l’année d’étude Module examiné Ordre de l’examen dans l’année Date de l’examen Heure de l’examen. Durée de l’examen Endroit de l’examen Nombre de places de l’endroit Nom de l’enseignant surveillant. 20 Chapitre 2 : Le modèle relationnel 2.1.2 Définition formelle des relations. Soient D1, D2, … , Dm des ensembles, au sens classique, finis ou dénombrables, appelés domaines. Soient A1, A2, …, An d’autres ensembles prenant leurs valeurs Dans les domaines Di et distingués ainsi parce que Ai et Aj (i≠j) peuvent prendre leurs valeurs dans le même domaine Dk. Définition du schéma de relation Toute famille R = Al…Ad d’éléments, distincts, des ensembles Ai constitue un schéma de relation. Les Ai sont appelés attributs de la relation. On convient de dénoter par une lettre de la fin de l’alphabet (X,Y… ) une famille d’attributs et on note R(X,Y) un schéma de relation et par une lettre du début de l’alphabet ( A, B,…) un attribut élémentaire. Définition de la relation. Une relation r de schéma R est un sous-ensemble du produit cartésien des attributs de R. Les éléments de r sont appelés tuples. Quand une relation est représentée sous forme de table, les lignes constituent les tuples et les colonnes les attributs de la relation. Remarque : Dans une application informatique utilisant une base de données relationnelle, la relation constitue l’interface utilisateur. Celui-ci agit sur cette base en ajoutant, supprimant et modifiant des tuples. Mais l’aspect le plus intéressant d’une base de données à plusieurs relations est son interrogation afin d’y chercher une information. Cette interrogation est effectuée à l’aide d’un langage basé sur l’algèbre relationnelle dont nous donnons plus loin les opérateurs principaux. 2.1.3 Dépendances fonctionnelles. Si on observe la relation de la table 2.1 on constate, par exemple, que les deux premiers tuples sont identiques, à la valeur d’un attribut près (SR), et eux-mêmes identiques au troisième, aux valeurs de trois attributs près. Ainsi, pour ajouter un nouveau surveillant à la relation, on doit rajouter toutes les autres informations concernant l’examen et qui ont déjà été mémorisées lors de l’ajout d’un surveillant antérieurement. D’autre part, si pour une raison ou une autre on décide de supprimer un tuple concernant un examen qui est le seul à se dérouler dans un certain endroit, on perd du même coup le nombre de places de cet endroit. Ce genre de situations indésirables est appelé anomalies de manipulation de données. Le concept de dépendances entre valeurs de données est né de la volonté d’éliminer ces anomalies. Le premier type de dépendance à être établi est la dépendance fonctionnelle. 21 Chapitre 2 : Le modèle relationnel 2.1.4 Définition de la dépendance fonctionnelle. Etant données 2 familles X et Y, distinctes, d’un ensembles d’attributs R, on dit que la dépendance fonctionnelle, notée X → Y, est vérifiée si, et seulement si, dans une relation de schéma R(… ,X,…,Y ,…), lorsque 2 tuples ont la même valeur en X, ils ont aussi la même valeur en Y. Il faut signaler que l’énoncé de dépendance fonctionnelle concerne 2 familles d’attributs quelles que soient leurs valeurs, prises dans leurs domaines respectifs. En ce sens c’est une vérité générale vérifiée par toute relation qui contient ces 2 familles d’attributs dans son schéma. On dit aussi que les dépendances fonctionnelles sont un type de contraintes sémantiques inhérentes à la compréhension que nous avons de la réalité modélisée. Dans la réalité concernant le déroulement d’un examen, modélisée par la relation dont une partie est visible dans la table 2.1 on peut abstraire les dépendances suivantes (parmi d’autres). AN → EF AN MD EX → DT HR AN MD EX → DR EN → PL SR DT HR→ EN EN DT HR → EX MD AN Avant de voir l’utilité de ces dépendances fonctionnelles dans la correction des anomalies citées ci-dessus, rappelons la notion de décomposition de relation. Etant donnée une relation r de schéma R = A1A2…An, une décomposition de r en m relations est la donnée des relations r1, r2, …, rm tel que chacune des ri est de schéma Ri = Ai1…Aik et Ri ⊆ R. Les Ail et Ajp ne sont pas forcément disjoints. En termes d’algèbre relationnelle ri est la projection de r sur Ri . Cette décomposition est dite sans perte d’information (ou simplement sans perte) si la jointure des ri est égale à r. Evidemment dans la réalité, seules les décompositions sans perte sont recherchées. Une dépendance fonctionnelle X → Y dans une relation r de schéma R = XYZ fournit une condition suffisante pour décomposer r en r1 de schéma R1 = XY et r2 de schéma R2 = XZ sans perte (Nicolas, 1979). Les 6 dépendances fonctionnelles de notre exemple permettent une décomposition en 6 relations dont on donne pour chacune un échantillon. On voit aisément que cette décomposition remédie aux anomalies citées. En particulier, même si un endroit n’est pas utilisé, sa capacité en nombre de places est mémorisée; c’est le cas de la salle2. 22 Chapitre 2 : Le modèle relationnel AN MD EX DT HR 3 AI 4AI Syst EMD1 22/02/09 Comp EMD1 21/02/09 AN 8h30 10h30 3AI 4AI r1 MD EX Syst Comp EMD1 EMD1 DR 1h30 2h00 r2 EN PL SR Amphi Salle1 Salle2 90 30 40 Ali Omar Zina Said r3 DT HR EN 20/02/09 21/02/09 20/02/09 20/02/09 8h30 10h30 8h30 8h30 Amphi Amphi Amphi Salle1 MD AN Syst Comp Syst 3AI 4AI 3AI r5 AN EF EN DT HR EX 3AI 4AI 117 80 Amphi Amphi Salle1 20/02/09 21/02/09 20/02/09 8h30 10h30 8h30 EMD1 EMD1 EMD1 r4 r6 Table 3.2. Relations obtenues par décomposition. 2.1.5 Implication logique de dépendances fonctionnelles (Ullman, 1983). Des dépendances fonctionnelles peuvent être logiquement impliquées par d’autres. Par exemple, si nous avons perçu les deux dépendances fonctionnelles A → B et B → C, on peut tout de suite en déduire la dépendance fonctionnelle A → C. Pour preuve, considérons deux tuples, t et u ; s’ils ont la même valeur selon A et des valeurs différentes selon B alors la dépendance fonctionnelle A → B n’est pas valide. D’un autre coté, s’ils ont la même valeur selon B et des valeurs différentes selon C, ce serait la dépendance fonctionnelle B → C qui ne serait pas valide. En conséquence, si l’on est sûr que A → B et B → C sont valides, alors il en est sûrement de même pour A → C. Un certain nombre d’axiomes pour l’implication de dépendances fonctionnelles a été établi par Armstrong (Armstrong, 1974). Une dépendance fonctionnelle qui ne peut pas être déduite d’autres est dite minimale. Un certain nombre de propriétés de schémas de relations vis-à-vis des dépendances fonctionnelles qu’ils renferment ont été définies, ce sont les formes normales. Les plus significatives d’entre elles sont la « troisième forme normale » et la « forme normale de Boyce-Codd » qui garantissent que la plupart des anomalies de manipulation sont évitées. 2.2Algèbre relationnelle Parmi les nombreux opérateurs de l’algèbre relationnelle, nous allons en présenter 3, la sélection, la projection et la jointure. Le lecteur intéressé par les autres opérateurs peut se référer à (Maïer, 1985) 23 Chapitre 2 : Le modèle relationnel Nous considérons des schémas R = A1 A2 … An et S = B1 B2 … Bm sur lesquels sont construites de relations r, s, etc. 2.2.1 Sélection. Quand on applique l’opérateur de sélection à une relation r(R) on obtient une autre relation s (R) sous-ensemble de r. L’opérateur de sélection, noté σ, effectue la sélection selon la notation suivante. σA=a( r ) = s = { t ∈ r ∣ t ( A ) = a} . Exemple. Considérons la relation r6 précédente. La relation r6’ donnée par σEN = Amphi ( r6 ) = r6’ est la suivante EN DT HR EX MD AN Amphi 20/02/09 8h30 EMD1 Syst 3AI Amphi 21/02/09 10h30 EMD1 Comp 4AI On voit que cet opérateur permet de restituer les examens qui se déroulent dans un endroit particulier ; ici l’amphi. Plus généralement, puisque s est un sous-ensemble de r, l’opérateur de sélection permet de choisir le critère selon lequel est défini ce sous-ensemble. On peut de plus appliquer l’opérateur de sélection selon plusieurs attributs de la façon suivante. σA1=a1,A2=a2,...,Ak=ak ( r ) . 2.2.2 Projection. La projection s’applique aussi à une relation r pour obtenir une autre relation, s, qui n’est pas un sous-ensemble de r en général. La relation s est construite à l’aide d’un sous-ensemble d’attributs de r et elle est notée comme suit. ΠX( r ). Où X est un sous-ensemble de R. Exemple. Π{EN,DT,HR} ( r6 ) = r6’ donnée ci-dessous. EN DT HR Amphi 20/02/09 8h30 Amphi 21/02/09 10h30 Salle1 20/02/09 8h30 r6’ 24 Chapitre 2 : Le modèle relationnel Ici, on observe que l’opération de projection permet d’obtenir l’occupation de tous les endroits d’examination. On peut combiner l’opérateur de projection avec l’opérateur de sélection. Par exemple si seule l’occupation de l’amphi nous intéresse on écrirait. Π{EN=Amphi,DT,HR} ( r6 ) = r6’’ donnée ci- dessous. EN DT HR Amphi 20/02/09 8h30 Amphi 21/02/09 10h30 r6’’ 2.2.3 La jointure. Alors que les opérations de sélection et de projection s’appliquent à une seule relation, et de ce fait sont appelées opérations unaires, la jointure s’applique à 2 relations. Si, pour éliminer les anomalies de manipulation de données, on éclate la relation universelle en plusieurs relations, on perd en revanche la correspondance entre attributs ainsi éparpillés. C’est le rôle de l’opération de jointure d’effectuer ce regroupement. La jointure d’une relation r (R) avec une relation s ( S ) est une relation q (T ), avec T = RS, telle que pour tout tuple t de q il existe un tuple tr de r et un tuple ts de S tels que tr = t ( R ) et ts = t ( S ). Puisque R ∩ S est un sous-ensemble aussi bien de R que de S, il s’ensuit que tr ( R ∩ S ) = ts (R ∩ S ). Par conséquent chaque tuple de q est la combinaison d’un tuple de r et d’un tuple de s ayant la même valeur selon R ∩ S. L’opération de jointure est notée. q = r ⊳⊲ s. Si R ∩ S = Ø alors r ⊳⊲ s est le produit cartésien de r par s. Exemple. Considérons les relations r4 et r6 précédentes. La relation r4r6 = r4 ⊳⊲ r6 suivante. EN DT HR EX MD AN EF Amphi 20/02/09 8h30 EMD1 Syst 3AI 117 Amphi 21/02/09 10h30 EMD1 Comp Salle1 20/02/09 8h30 EMD1 Syst 4AI 3AI est la 80 117 r4r6 25 Chapitre 2 : Le modèle relationnel Si nous effectuons maintenant une autre jointure entre r3 et r4r6 nous obtenons la relation r3r4r6 suivante. EN DT HR EX MD AN EF PL 3AI 117 90 80 90 Amphi 20/02/09 8h30 EMD1 Syst Amphi 21/02/09 10h30 EMD1 Comp Salle1 20/02/09 8h30 EMD1 Syst 4AI 3AI 117 30 r3r4r6. L’idée derrière ces 2 jointures est d’obtenir une relation qui regroupe l’effectif d’une année pour un module donné avec le nombre de places des différents endroits qui accueillent l’examen correspondant. On pourra ainsi vérifier si le nombre de places cumulées des différents endroits d’examination est suffisant pour contenir l’effectif des années par module. Par exemple, l’amphi est suffisant (90) pour contenir l’effectif des 4AI (80) pour l’ EMD1 de compilation. Le cumul des places de l’amphi (90) et de celles de la salle1 (30) est suffisant (120) pour contenir l’effectif des 3AI (117) pour l’examen de système. 2.3 Conclusion Nous espérons avoir illustré, à travers ce court exemple, la capacité de représentation et de manipulation de données du modèle relationnel. Nous avons mis l’accent sur la simplicité intuitive de l’appréhension de la réalité à travers ce modèle puis nous avons donné un aperçu de ses aspects plus formels comme la notion de dépendance fonctionnelle et la notion induite de décomposition de relations permettant d’éviter les anomalies de manipulation de données. Enfin nous avons abordé les opérateurs les plus importants de l’algèbre relationnelle en insistant sur leur capacité à reconstruire notre représentation intuitive de départ. 26 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles Chapitre 3 Découverte de règles d’associations et de dépendances fonctionnelles. Sommaire 3.1 Introduction. ..................................................................................................................... 28 3.2 Découverte de règles d’association basées sur les fréquents. ....................................... 28 3.2.1 Position du problème................................................................................................... 28 3.2.2 Les fréquents. .............................................................................................................. 29 3.2.3 Les fréquents maximaux. ............................................................................................ 30 3.2.4 Les fréquents fermés. .................................................................................................. 30 3.3 Découverte de dépendances fonctionnelles. ................................................................... 31 3.3.1 Introduction. ................................................................................................................ 31 3.3.2.Tane. ............................................................................................................................ 31 3.3.3 Dep-miner.................................................................................................................... 32 3.3.4 Critique de dep-miner.................................................................................................. 33 3.4 Conclusion......................................................................................................................... 34 27 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles 3.1. Introduction. Une règle d’association est une règle du type ‘’ 70 % de clients qui achètent du lait achètent aussi du pain ‘’. C’est donc, à l’origine, une association entre articles du ‘’ panier de la ménagère ‘’ des grandes surfaces de distribution qui mémorisent toutes les transactions de caisse. Les techniques d’extraction de règles d’association possèdent 2 étapes dissymétriques dans leur complexité. a. recherche d’ensembles ayant une certaine fréquence dans la table des transactions. b. Exhibition des règles d’association. L’étape a étant, de loin la plus complexe, une multitude de travaux lui a été consacré à partir de l’article fondateur (Agrawal, 1994) où le premier algorithme de découverte de fréquents a été introduit, l’algorithme A-priori. Depuis, la notion de fréquent a été étudiée plus en profondeur pour donner les fréquent fermés (Zaki, 2002), (Pasquier, 1999) et les fréquents maximaux (Kedem, 1998). Dans ce chapitre nous introduisons aussi la découverte de dépendances fonctionnelles dans une base de données relationnelle. Les dépendances fonctionnelles s’apparentent quelque peu aux règles d’association mais leurs techniques de découverte diffèrent fondamentalement comme on le verra. 3.2. Découverte de règles d’association basées sur les fréquents. 3.2.1. Position du problème. Tel que posé par (Agrawal, 1994) le problème est le suivant. Soit I = { i1, i2, …, im } un ensemble de littéraux appelés articles ou items. Soit D un ensemble de transactions tel que chaque T de D est un sous-ensemble de I. On dira qu’une transaction T contient X, un sous-ensemble de I, si X ⊆T. Une règle d’association est une implication de la forme X => Y où X ⊂I, Y ⊂I et X ∩ Y = Ø. Si s% des transactions de D contiennent X U Y, on dira que cette règle a le support s. Considérons maintenant les seules transactions de D qui contiennent X. Si c% d’entre elles contiennent aussi Y, on dira que cette règle a la confiance c. Si supp() et conf() désignent le support et la confiance, respectivement, ces 2 paramètres se formulent comme suit. supp( X => Y ) = │⋃i { Ti ∈ D et X ⊆Ti et Y ⊆Ti }│ / │⋃j { Tj ∈ D }│= s. conf( X => Y ) = supp ( X => Y )/ supp ( X ) = s / supp ( X ) = c. Les règles d’association extraites de l’ensemble des transactions D sont celles choisies par l’utilisateur qui fixe 2 seuils minimum, minsup pour le support et minconf pour la confiance. Ensuite seules sont extraites les règles dont le support est supérieur ou égal à minsup et la confiance supérieure ou égale à minconf. 28 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles On peut maintenant d’association. préciser les 2 étapes du processus de découverte de règles 1. Découvrir les ensembles d’items, appelés itemsets, de support supérieur ou égal à minsup. 2. Utiliser ces itemsets pour extraire les règles d’association. On peut d’ores et déjà expliciter l’étape 2, c'est-à-dire la façon dont les règles sont trouvées. Soit un des ensembles découverts à l’étape1. Pour chacun des sous-ensembles a, non vide, de on exhibera la règle a => ( - a ) si le rapport supp( ) / supp ( a ) est au moins égal à minconf. Dans la suite nous explicitons l’étape 1 selon le type d’itemsets que l’on veut découvrir. 3.2.2. Les fréquents. Dans (Agrawal, 1994) les ensembles extraits à l’étape1 étaient appelés ‘’large itemsets’’, nom qui a été changé en ‘’frequent itemsets’’ dans leur papier suivant (Agrawal, 1996). C’est ce dernier, adopté par la communauté des Data-Miners, que nous utilisons. La cardinalité des fréquents dont on peut extraire des règles d’association étant au minimum de 2 et au maximum de │ I │, l’algorithme A-priori les découvre progressivement des plus petits aux plus grands (algorithme A-priori ). 1. L1 = { frequent 1-itemsets } /* trouvés dans la base des transactions */ 2. for ( k = 2 ; Lk-1 ≠ Ø ; k++ ) do begin 3. Ck = apriori-gen( Lk-1 ); /* nouveaux candidats */ 4. forall transaction t ∈ D do begin 5. Ct = subset ( Ck , t ); /* candidats existent dans les transactions */ 6. forall candidate c ∈ Ct 7. c.count++ ; 8. end ; 9. Lk = { c ∈ Ck│ c.count >= minsup }; 10. end; 11. Answer = ⋃kLk; Algorithme A-priori. Dans cet algorithme un itemset de cardinalité i est dénoté i-itemset. L’algorithme commence par lire la base des transactions à la recherche des 1-itemsets fréquents, puis construit progressivement les i-itemsets fréquents, i ≥ 2, grâce à la fonction apriori-gen qui fait la jointure de 2 (i-1)-itemsets fréquents qui ne diffèrent que par un seul item, en vérifiant que cet i-itemset existe bien dans les transactions, grâce à la fonction subset(). Cette façon de procéder est basée sur les intuitions, démontrées dans (Pasquier, 2000), suivantes. - Tous les sous-ensembles d’un itemset fréquent sont eux-mêmes fréquents. 29 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles - Tous les sur-ensembles d’un itemset non fréquent sont non fréquents. On peut considérer que l’algorithme A-priori va rechercher le premier i-itemset non fréquent, en parcourant tous ses sous-ensembles fréquents, puis s’arrête. 3.2.3. Les fréquents maximaux. Y a-t-il un moyen de trouver rapidement cet i-itemset non fréquent sans considérer ces sous-ensembles? Cette idée est à la base des fréquents maximaux (Kedem, 1998) qui sont caractérisés par leur recherche dans les transactions en combinant, sous forme de co-routines, une recherche ascendante, pour les itemsets de plus en plus grands, et une recherche descendante, pour les itemsets de plus en plus petits. Le principe de leur recherche est le suivant. Si, par le biais de la recherche descendante, un itemset a été classé fréquent, il est inutile de poursuivre la recherche vers ses sous-ensembles dont on est sûr qu’ils sont fréquents. D’un autre côté, si par le biais de la recherche ascendante, un itemset a été classé non fréquent, il est inutile de poursuivre la recherche vers ses sur-ensembles dont on est sûr qu’ils sont non fréquents. 3.2.4. Les fréquents fermés. Toujours dans leur tentative de réduire l’espace de recherche des fréquents, certains travaux (Pasquier, 1999) (Zaki, 2002) (Agrawal, 1996)ont introduit la notion de fermé (donc de fermé fréquent). Ceci est effectué en considérant, simultanément, l’ensemble des items et l’ensemble des transactions. Cette idée a été entrevue sans être explicitée par (Agrawal, 1996) dans leur nouvel algorithme A-prioriTid, mais les résultats fondés sont dans (Pasquier, 1999). Le fondement théorique de la caractérisation des fermés est le suivant. Si l’on met en correspondance, grâce à une fonction f, l’ensemble des items avec l’ensemble des transactions où ils apparaissent. Puis on met en correspondance, grâce à une fonction h, l’ensemble des transactions avec l’ensemble des items qu’elles contiennent, on arrive à caractériser les fermés comme étant les éléments identiques obtenus par (fog) et (gof) (Pasquier, 1999). L’ensemble des fermés, munis de la relation d’inclusion forment un treillis de Galois. Un résultat important de (Pasquier, 1999) dit que l’ensemble des fréquents maximaux est identique à l’ensemble des fréquents maximaux fermés. 30 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles 3.3 Découverte de dépendances fonctionnelles. 3.3.1 Introduction. Parmi les diverses méthodes (Flach, 2000) (Lopes, 2000), (Huhtala, 1998) de découverte de dépendances fonctionnelles, nous en décrivons 2 qui utilisent le partitionnement de le relation r en classes d’équivalence, selon les valeurs des attributs de r. Soit X = X1 X 2 … Xn un sous-ensemble d’attributs de R. Deux tuples, t et u, sont dits équivalents par rapport à X si ∀ i on a t [ Xi ] = u [ Xi ] . L’ensemble des classes d’équivalences par rapport à X est une partition de r selon X ; elle est notée ΠX. Exemple. Soit la relation r de schéma R = ABCDE suivante (Lopes, 2000). No de tuple A B C D E 1 1 1 85 b 5 2 1 5 94 a 12 3 2 2 92 i 2 4 3 2 98 i 2 5 4 3 98 g 2 6 5 1 75 b 5 7 6 5 88 a 12 Les partitions selon chacun des attributs sont. ΠA = { {1,2},{3},{4},{5},{6},{7} }. ΠB = { {1,6},{2,7},{3,4},{5} }. ΠC = { {1},{2},{3},{4,5},{6},{7} } ΠD = { {1,6},{2,7},{3,4},{5} }. ΠE = { {1,6},{2,7},{3,4,5} }. 3.3.2. Tane. (Huhtala, 1998) Tane exploite la propriété de raffinement entre partitions pour inférer des dépendances fonctionnelles. 31 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles Une partition Π raffine une partition Π’ si chaque classe d’équivalence de Π est un sousensemble d’une classe d’équivalence de Π’. Les dépendances fonctionnelles sont découvertes grâce aux deux lemmes suivants. Lemme1. X -> A est valide dans r si et seulement si ΠX raffine ΠA. Lemme2. X -> A est valide dans r si et seulement si │ΠX│ = │ΠAUX│. 3.3.3 Dep-miner. (Lopes, 2000) Dep-miner utilise la notion d’ensemble en accord défini pour 2 tuples t et u différents, comme étant l’ensemble des attributs pour lesquels t et u ont les mêmes valeurs. Un ensemble en accord est noté ag (t,u ) = { A ∈ R / t [ A ] = u [ A ] } Pour une relation r, on définit aussi un ensemble en accord comme étant Ag ( r ) = { ag ( t, u ) / t,u ∈ r, t ≠ u }. Avant de voir l’utilité de l’ensemble en accord pour une relation, signalons que son calcul utilise les classes d’équivalence telle que l’on vient de les voir. On introduit d’abord la notion de partition élaguée, qui est une partition sans singleton. Pour l’exemple ci-dessus les partitions élaguées sont. ΠeA = { {1,2}. ΠeB = { {1,6},{2,7},{3,4} } ΠeC = {{4,5} } ΠeD = { {1,6},{2,7},{3,4} } ΠeE = { {1,6},{2,7},{3,4,5} }. La réunion des partition élaguée donne re , en général différente de r. On définit ensuite les classes d’équivalence maximales comme étant MC = Max (⊆) { c ∈ ΠeA / ΠeA ∈ re } Pour notre exemple MC = {{1,2},{1,6},{2,7},{3,4,5} }. Les ensembles en accord de la relation r sont reliés aux classes d’équivalences 32 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles maximales, c, par le Lemme1 r étant une relation, on a ag ( r ) = Uc∈ MC ag ( c ). Une autre notion est définie vis-à-vis des dépendances fonctionnelles. Il s’agit des ensembles maximaux. Un ensemble maximal est un ensemble d’attributs, X, qui ne détermine pas un certain attribut, A, mais dont tout sur-ensemble strict le détermine dans une relation r. Il est noté et défini comme max ( dep( r ), A ) = { X⊆ R / r|≠ X -> A et ∀ Y ⊂R, X⊂ Y , r |= Y-> A}. On note aussi, pour toute la relation MAX ( dep ( r ) ) = UA∈R max ( dep(r), A). Les ensembles maximaux sont reliés aux ensembles en accord par le Lemme 2 Max(dep(r),A) = Max⊂{ X ∈ ag(r) / A ¬∈ X }. Pour découvrir les parties gauches des dépendances fonctionnelles dont la partie droite est A, l’idée de (Lopes, 2000) est de trouver des sur ensembles minimaux de max(dep ( r ), A ). Pour cela il construit d’abord ce qu’il appelle le complément des ensembles maximaux, noté cmax ( dep ( r ), A ). Par définition, la réunion d’un élément de max ( dep ( r ), A) avec son homologue de cmax(dep( r ), A) donne un Y tel que Y -> A, mais comment être sûr qu’il n’existe pas de Y’ tel que Y’ ⊂Y et Y’ -> A de telle sorte à assurer que les dépendances obtenues sont minimales? Pour ce faire (Lopes, 2000) s’appuie sur un résultat de (Mannila, 1994a) et (Mannila, 1994b) qui, établissant que les éléments de cmax(dep ( r ), A) forment un hypergraphe simple (Berge, 1976) , montrent que les parties gauches minimales sont les transversaux minimaux de cet hypergraphe. 3.3.4. Critique de dep-miner et de Tane L’ensemble des partitions élaguées peut être vide; dans ce cas l’algorithme depminer est indéterminé. Cette situation correspond au cas où tous les tuples sont différents selon tous les attributs, comme sur l’exemple ci-dessous. No tuple 1 2 3 A B C 1 4 7 2 5 8 3 6 9 33 Chapitre 3 : Découverte de règles d’association et de dépendances fonctionnelles Pour cet exemple ΠA = ΠB = ΠC = { {1},{2},{3} } et ΠeA = ΠeB = ΠeC = Ø. A notre connaissance, il n’y a rien qui indique que ce cas est impossible en pratique ou qu’il est d’une quelconque rareté. Il est donc nécessaire de le prévoir. D’un autre coté nous avons téléchargé tout l’environnement d’utilisation de Tane, sous UNIX (Linux), à partir de http://www.cs.helsinki.fi/research/fdk/datamining/tane. En soumettant plusieurs fois le même exemple à ce programme nous avons eu des messages d’erreurs différents à chaque test alors qu’il fonctionne normalement pour d’autres cas. Signalons que ce cas indique que toutes les dépendances fonctionnelles entre 2 attributs quelconques sont vérifiées. 3.4 Conclusion Une étude synthétique et structurelle de la découverte de règles d’association basée sur les fréquents fermés se trouve dans (Ben Yahia, 2006). Les algorithmes de découverte de règles d’association et les algorithmes de découverte de dépendances fonctionnelles ont été découverts indépendamment les uns des autres. Cependant un effort de généralisation (Mannila, 1997) les a mis dans le même cadre théorique. 34 Chapitre 4 : Découverte de dépendances multivaluées Chapitre 4 Découverte de dépendances multivaluées. Sommaire 4.1 Introduction................................................................................................................... 36 4.1.1 Rappels sur les ensembles ordonnés ………………………………………………...36 4.1.2 Notion de dépendance multivaluée ………………………………………………….37 4.2 Définition et propriétés des dmvs. ............................................................................ 39 4.2.1 Définition (Maïer, 1985) ............................................................................................ 39 4.2.2 Propriétés des dépendances multivaluées………......................................................39 4.2.3 Utilité des dépendances multivaluées………………………………………….. ….39 4.3 Stratégies de découverte de dmv. .............................................................................. 41 4.3.1 Introduction. ................................................................................................................ 41 4.3.2 Stratégie de découverte de Flach et Savnik (Flach, 2000). ......................................... 42 4.3.3 Stratégie de découverte de Yan et Fu (Men Hin Yan, 2001) ...................................... 49 4.4 Conclusion....................................................................................................................... 51 35 Chapitre 4 : Découverte de dépendances multivaluées 4.1 Introduction. 4.1.1 Rappels sur les ensembles ordonnés. Nous avons jugé utile de rappeler quelques définitions concernant les ensembles ordonnés, et les treillis parce que ces notions sont utilisées dans une des méthodes de découverte de dépendances multivaluées. Ces définitions sont extraites de (Pasquier, 2000). Ensembles ordonnés Soit E un ensemble. Un ordre ou ordre partiel sur l’ensemble E est une relation binaire ≤ sur les éléments de E telle que pour tous x,y,z de E nous avons les propriétés suivantes : 1. Réflexivité : x ≤ x, 2. Antisymétrie : x ≤ y et y ≤ x ⇒ x=y, 3. Transitivité : x ≤ y et y ≤ z ⇒ x ≤ z. Un ensemble E muni d’une relation binaire d’ordre ≤, noté (E, ≤), est appelé ensemble ordonné. Relation de couverture Soit (E, ≤) un ensemble ordonné et x,y de E. La relation de couverture entre les éléments de E, notée ⋖, est définie par : x⋖y si et seulement si x≤y et il n’existe pas d’élément z de E tel que x≤ z≤ y pour z≠x et z≠y. Si x⋖y, nous disons que y couvre x ou bien que y est un successeur immédiat de x. Join et Meet Soit un sous-ensemble S ⊆ E de l’ensemble (E, ≤). Un élément u de E est un majorant, ou upper-bound, de S si pour tout élément s de S nous avons s ≤ u. L’ensemble des majorants de S est noté UB(S). De façon duale, un élément v de E est un minorant, ou lowerbound, de S si pour tout élément s de S nous avons v ≤ s. L’ensemble des minorants de S est noté LB(S). UB(S) = { u ∈ S | ∀s ∈ S, s ≤ u } LB(S) = { v ∈ S | ∀s ∈ S, v ≤ s } Le plus petit majorant d’un ensemble S, s’il existe, est le plus petit élément de l’ensemble UB(S) des majorants de S. Cet élément est noté Join(S). Le plus grand des minorants d’un ensemble S, s’il existe, est le plus grand élément de l’ensemble LB(S) des minorants de S. Cet élément est noté Meet(S). Join(S) = Min≤(UB(S)) Meet(S) = Max≤(LB(S)) Treillis Un ensemble ordonné (E, ≤) non vide est un treillis si pour tout couple d’éléments x et y de E l’ensemble {x, y} de E possède un plus petit majorant noté Join({x, y}) et un plus grand minorant noté Meet({x, y}). L’ensemble ordonné (E, ≤) est un treillis complet si pour tout sous-ensemble S ⊆ E les éléments Join(S) et Meet(S) existent. 36 Chapitre 4 : Découverte de dépendances multivaluées 4.1.2 Notion de dépendance multivaluée La dépendance fonctionnelle X→ Y où X et Y sont des ensembles d’attributs est interprétée comme suit : à une certaine valeur de X correspond toujours la même valeur de Y. Mais qu’en est-il de l’énoncé : à une certaine valeur de X correspondent toujours les mêmes valeurs de Y ? Ceci constituerait une sorte de généralisation de la dépendance fonctionnelle que l’on avait appelée dépendance multivaluée. Assurons nous d’abord que la réalité à modéliser nous offre à observer une telle situation. Pour cela exhibons un exemple (Date, 1986) pris dans la modélisation d’une réalité concernant les enseignements dans une université. Limitons nous à modéliser ces enseignements à l’aide de 3 attributs, le cours (C), l’enseignant (E) et le livre de référence (L). En considérant, pour des besoins de clarté, une relation non normalisée, on pourrait avoir la relation de l’exemple 4.1. C E L Physique Prof Ali Prof Omar Mécanique rationnelle Math Prof Ali Traité de trigonométrie Exemple 4.1 relation non normalisée Cette même relation, normalisée, apparaît dans l’exemple 4.2 C Physique Physique Math E Prof Ali Prof Omar Prof Ali L Mécanique rationnelle Mécanique rationnelle Traité de trigonométrie Exemple 4.2 relation normalisée On peut remarquer qu’il y a autant de tuples ayant la même valeur de l’attribut C qu’il y a de valeurs différentes de l’attribut E ; la valeur ( unique ) de l’attribut L étant répétée autant de fois. Avant de passer à la définition formelle de la dépendance multivaluée ( dmv ), prenons un autre exemple (Maïer, 1985) pour illustrer que dire : « à une valeur d’attribut 37 Chapitre 4 : Découverte de dépendances multivaluées correspondent toujours les mêmes valeurs d’un autre attribut » n’est pas suffisant pour caractériser complètement la notion de dmv. Considérons la relation de l’exemple 4.3 Vol Jour Avion 106 106 106 106 204 204 Lundi Jeudi Lundi Jeudi Mercredi Mercredi 747 747 1011 1011 707 727 Exemple 4.3. Il est clair que cette relation prend en compte le fait qu’à un vol correspondent toujours les mêmes jours de la semaine. Décomposons cette relation en 2 de ses projections comme sur l’exemple 4.4. Vol Jour Vol Avion 106 106 204 Lundi Jeudi Mercredi 106 106 204 204 747 1011 707 727 Exemple 4.4 Si nous faisons la jointure des 2 relations de l’exemple 4.4, nous obtenons la relation de l’exemple 4.3. Considérons maintenant la relation de l’exemple 4.5. Vol Jour Avion 106 106 106 204 204 Lundi Jeudi Jeudi Mercredi Mercredi 747 747 1011 707 727 Exemple 4.5. La relation de l’exemple 4.5 a les mêmes projections que la relation de l’exemple 4.3. Et pourtant leur jointure ne donne pas la relation d’origine. Cet aspect est essentiel dans la caractérisation, donc la définition, d’une dmv. 38 Chapitre 4 : Découverte de dépendances multivaluées 4.2Définition et propriétés des dmvs. 4.2.1 Définition (Maïer, 1985) Soit R un schéma d’une relation r. X , Y et Z des sous-ensembles de R tels que Z = RXY1 . On dit que r satisfait la dmv, notée X ->-> Y, si, et seulement si, pour n’importe quels 2 tuples t1 et t2 de r tels que t1[X] = t2[X], il existe un tuple t3 tel que, t3[X] = t1[X] et t3[Y ] = t1[Y] et t3[Z] = t2[Z]. Ceci suffit à la définition, mais en remarquant le rôle symétrique joué par t1 et t2 , on infère qu’il existe aussi un tuple t4 tel que t4[X] = t2[X] et t4[Y] = t2[Y] et t4[Z] = t1[Z]. Proposition : Si une relation r( R ) satisfait la dmv X ->-> Y et si Z = R- XY alors r satisfait aussi la dmv X ->-> Z. Preuve : Il suffit de remarquer que si Z = R - XY alors Y = R - XZ d’une part et le rôle symétrique joué par t3 et t4 dans la définition d’autre part.□ Cette proposition met en exergue une différence fondamentale entre la caractérisation d’une dépendance fonctionnelle et celle d’une dépendance multivaluée. Constater une dépendance fonctionnelle X → Y nécessite l’observation des valeurs de X et Y seuls ; par contre décréter qu’une dépendance multivaluée X ->-> Y est vérifiée nécessite l’observation de tous les autres attributs du schéma, à savoir X, Y et Z = R –XY. 4.2.2 Propriétés des dmvs. De la définition de la dmv sont inférées un certain nombre de propriétés, appelées axiomes dans (Maïer, 1985), que nous citons. Soit r une relation de schéma R et W, X, Y, Z des sous-ensembles de R. M1. Réflexivité. r satisfait toujours X ->-> X. 1 Dans un premier temps (Maïer, 1985) exigeait que tous ces sous-ensembles soient disjoints, avant de remarquer que cette condition était superflue. 39 Chapitre 4 : Découverte de dépendances multivaluées M2. Augmentation. Si r satisfait X ->-> Y alors r satisfait XZ ->-> Y. M3. Additivité. Si r satisfait X ->-> Y et X ->-> Z alors r satisfait X ->-> YZ. M4. Projectivité. Si r satisfait X ->-> Y et X ->-> Z alors r satisfait X ->-> Y∩Z et X ->-> Y-Z. M5. Transitivité. Si r satisfait X ->-> Y et Y ->->Z alors r satisfait X ->-> Z – Y. M6. Pseudo-transitivité. Si r satisfait X ->-> Y et YW ->-> Z alors r satisfait XW ->-> Z – YW. M7. Complémentation. Si r satisfait X ->-> Y et si Z = R – XY alors r satisfait X ->-> Z. Cet axiome est déjà démontré dans la proposition. De l’axiome M1 et de la proposition on infère X ->-> R – X. Introduisons maintenant un théorème qui indique qu’une dmv nécessite tous les attributs pour être caractérisée. Théorème (démontré dans (Maïer, 1985) ) Soit r une relation de schéma R = XYZ, r1 et r2 2 relations obtenues en projetant r sur R1 = XY et R2 = XZ respectivement. La relation r satisfait la dmv X ->-> Y si, et seulement si, elle coïncide avec la jointure de r1 et r2. Ce théorème, bien que fournissant une méthode constructive pour la découverte de dmv, n’est pas utilisé en pratique en raison de son coût prohibitif. Il y a une autre méthode constructive ne nécessitant ni projection ni jointure et qui résulte d’un corollaire au théorème ci-dessus. Corollaire. Soit c, c1, c2 le nombre de tuples de r, r1, r2, respectivement, qui ont tous la même valeur X = x. La dmv X ->-> Y est verifiée dans r si, et seulement si, on a c = c1*c2. 40 Chapitre 4 : Découverte de dépendances multivaluées C’est cette propriété qui est utilisée dans Yan, 2001) . l’algorithme de découverte de (Men Hin Considérons enfin les cas particuliers suivants. Ø étant l’ensemble vide, on convient (Maïer, 1985) que pour tout tuple t, t( Ø ) = λ, une même valeur. Citons les résultats suivants. a. la dmv X ->-> Ø (donc X ->-> R ) est vérifiée par toute relation. b. la dmv Ø ->-> Y est vérifiée par une relation r de schéma R = YZ si r coïncide avec le produit cartésien de la projection de r sur Y avec la projection de r sur Z. Les axiomes et les propriétés que nous venons de citer sont utilisés ( en partie ) par les stratégies de découverte de dmv que nous présentons maintenant. 4.2.3 Utilité des dépendances multivaluées. L’absence du tuple Vol 106 Jour Avion Lundi 1011 dans la relation de l’exemple 4.5 est la raison pour laquelle la jointure des deux relations de l’exemple 4.4 ne donne pas cette relation. C’est la présence de ce tuple, comme dans l’exemple 4.3., qui permet de déclarer que la dépendance multivaluée Vol ->-> Jour (donc Vol ->-> Avion) est vérifiée par cette relation, autorisant ainsi sa décomposition sans perte en les deux relations de l’exemple 4.4. De façon générale, pour une relation r, de schéma R=XYZ, la présence de la dépendance multivaluée X ->-> Y (donc X ->-> Z) est une condition nécessaire et suffisante pour la décomposer sans perte en deux de ses projections : πXY(r) et πXZ(r) (Nicolas, 1979). La prise en compte des dépendances multivaluées en même temps que les dépendances fonctionnelles permet définir une quatrième forme normale pour les schémas de relations. 4.3Stratégies de découverte de dmv. 4.3.1 Introduction. La découverte de dmvs, quelle que soit la stratégie utilisée, est une tâche de Data- Mining ; elle part de l’ensemble des données présentes dans les relations prises en considération. De la réalité ainsi représentée, on s’interdit de considérer son processus de modélisation ni d’abstraire une quelconque propriété générale. On peut même, à la limite, ignorer le sens de la réalité représentée. 41 Chapitre 4 : Découverte de dépendances multivaluées En ce sens, on parle, à l’instar des auteurs anglo-saxons de ‘’reverse engineering’’ ; expression qui suggère une sorte de modélisation ‘’à l’envers’’, c'est-à-dire une fois les données acquises. La seule réalité est dans les données enregistrées. Le problème de découverte de dmvs peut donc se poser comme suit. On dispose d’une relation r de schéma R et on se propose de découvrir toutes les dmvs vérifiées par r. Le principe général de la découverte de dmvs comporte 2 étapes principales. I. II. Choisir une dmv candidate. Tester cette dmv vis-à-vis de la relation r. La première étape énumère les parties gauches ( X ) et les parties droites ( Y ) de dmvs X - >-> Y. Toutes les parties gauches et parties droites possibles sont des sous-ensemble de R et sont listés dans leur treillis d’inclusion (exemple 4.6). AB A B AC ABC Ø C D AD BC BD ABD ACD BCD CD ABCD Exemple 4.6. Treillis d’inclusion des sous-ensembles de R = ABCD. Le nombre d’éléments de ce treillis est de 2│R│. Si on considère qu’un de ces éléments peut être aussi bien partie gauche que partie droite de dmv, le nombre de dmvs possibles est de 22│R│. Les propriétés de dmvs indiquent que toutes les dmvs possibles ne sont pas forcément testées vis-à-vis de la relation r. Les différentes stratégies de découverte exploitent ce fait pour réduire le nombre de dmvs à tester, puisque c’est ce test qui est le plus coûteux en temps. Elles utilisent le même principe ; une fois qu’une certaine dmv est testée elle servira de fait pour inférer d’autres dmvs éventuelles. Dans la suite nous présentons deux stratégies de découverte de dmvs. 4.3.2 Stratégie de découverte de Flach et Savnik (Flach, 2000). Pour inférer des dmvs valides dans r (R ), Flach et Savnik se suffisent de 2 axiomes, à savoir, Augmentation : ( X ->-> Y ) ^ ( Z ⊂ R ) │= XZ ->-> Y. Additivité : ( X ->-> Y, X ->-> Z ) │= X ->-> YZ. 42 Chapitre 4 : Découverte de dépendances multivaluées 4.3.2.1. Bases de dépendances multivaluées F étant un ensemble de dmvs sur un schéma R, pour un sous-ensemble X de R la base de dépendances multivaluées est définie comme G (X) = {Y | Y⊂ R ^ F |= X ->-> Y}. C’est l’ensemble des parties droites de toutes les dmvs valides ayant X comme partie gauche. On montre dans (Maïer, 1985) qu’il existe une base minimale, unique, notée mdsb( G( X )) pour ‘’minimal disjoint set basis ‘’. Cette base est minimale au sens qu’il n’existe pas de G’ ⊂ mdsb( G ). 4.3.2.2 Les sentences. Nous gardons le terme anglais, sentence, défini comme suit. Une sentence, S, est l’expression : S = ( X, G( X )). Une sentence est donc le regroupement, pour une dmv, de sa partie gauche et de (toutes ou partie) de ses parties droites. Le treillis des sentences. Pour un G( X ) donné, l’existence d’un unique mdsb(g( X )) suggère la structure algébrique de treillis à l’ensemble des sentences. Cette structure est établie dans (Flach, 2000) par la définition d’une relation d’ordre entre sentences et explicitée comme suit. raffinement : G( X ) raffine G’( X’ ) si chaque élément de G’( X’ ) est la réunion d’éléments de G( X ). ordre partiel entre sentences. Une sentence S = ( X,G( X )) est plus générale qu’une sentence S’ = ( Y,G( Y )) si les deux conditions suivantes sont réunies : - X ⊆ Y et - G( X )\ Y raffine G( Y ). Avec G( X )\ Y = { Zi | Xi ∈ G( X ) ^ ( Zi = Xi – Y )}. Exemple. S1 = (A, {B, C, D, EFG}) est plus générale que S2 = (ADF, {BC, EG}). 43 Chapitre 4 : Découverte de dépendances multivaluées On note S1 ≤ S2 pour S1 plus générale que S2. La notion inverse est: S2 plus spécifique que S1. Il est aisé de remarquer que l’ordre ≤ est partiel en observant deux sentences S1=(X,G( X)) et S2 = (Y,G(Y)) dans lesquels ni X ⊆Y ni Y ⊆X, ces 2 sentences ne sont donc pas comparables. Mais même si X ⊆Y ou Y ⊆X ces 2 sentences peuvent aussi ne pas être comparables. Pour le constater, il suffit d’exhiber un exemple. Prenons S1 = (A, {B, CDE}) et S2 = (AB, {CD, E}). Même si A ⊆AB, {B, CDE}\ AB ne raffine pas {CD, E}. Mais il existe S tel que S ≤ S1 et S ≤ S2 en prenant S = (A, {B, CD, E}). S est appelée borne supérieure de S1 et S2. Vis-à-vis du treillis il existe une plus petite borne supérieure (least upper bound : lub) et une plus grande borne inférieure ( greatest lower bound : glb). A partir d’une sentence S=(X,{X1, …,Xn}) nous obtenons les sentences plus spécifiques que S suivantes : S1= (XXi,{X1, …,Xi-1,Xi+1, …,Xn}) par augmentation et S2= (X, {X1, …, Xi-1, Xi+1, …, Xj-1,Xj+1, …, XiXj, …, Xn}) par additivité. Telles qu’elles sont définies les sentences donnent lieu aux propriétés suivantes. Propriété 1. Si S1 ≤ S2 et si S1 est vraie dans r(R) alors S2 aussi est vraie dans r(R). Propriété 2. Si S1 ≤ S2 et si S2 est fausse dans r(R) alors S1 aussi est fausse dans r(R). Une sentence étant vraie dans r(R) si toutes les dmvs qu’elle contient sont valides dans r(R) et fausse sinon. Dans l’ensemble des sentences, les plus générales qui sont vraies en constituent la bordure positive notée Β+ et les plus spécifiques qui sont fausses, la bordure négative notée B-. Maintenant que cette théorie est posée, comment l’utiliser pour découvrir des dmvs valides dans une relation ? Plus précisément, comment choisir les sentences en exploitant leur structure de treillis, puis comment tester leur validité ou leur non validité dans la relation ? Les algorithmes du paragraphe suivant répondent à ces questions. 4.3.2.3 Algorithmes. Les propriétés du treillis des sentences permettent la construction de la bordure B+ qui est, rappelons le, le but de la découverte de dmvs dans une relation. Ainsi, le premier algorithme introduit par (Flach, 2000) est l’algorithme de test de la relation ≤ entre 2 sentences (algorithme 1 ). Nous reproduisons les algorithmes dans leur écriture en anglais. Input : sentences S1 = ( X, { X1, … , Xn }) and S2 = ( Y, { Y1, … , Ym }) Output : true if S1 ≤ S2, false otherwise. Method: 1. begin 2. if ( X ⊂Y ) then 44 Chapitre 4 : Découverte de dépendances multivaluées 3. Z=Y–X;D=Ø; 4. foreach ( Xi in DEP ( X )) do 5. add (Xi –Z ) to D ; 6. od ; 7. if ( refines ( D, DEP( X ))) then 8. return true and exit; 9. fi 10. fi 11. return false; 12. end; Algorithme 1. test de la relation ≤ La réponse par true de cet algorithme permet de tirer les conclusions suivantes. Si S1 est vraie alors S2 l’est aussi. Si S2 est fausse alors S1 l’est aussi. Ce qui signifie qu’il est suffisant de tester une seule des sentences. La réponse par false ne permet de tirer aucune conclusion. Dans (Flach, 2000) on propose 2 algorithmes pour le test des sentences. L’un s’appuyant sur leur validité et appelé Top-Down algorithm et l’autre sur leur fausseté et appelé Bottom-up algoritm. Input : A relation r defined over a schema R. Output: A set of more general sentences valid in r(R). Method: 1. begin 2. B+ = Ø; 3. H = { Ø, R }; 4. while ( H not empty ) do 5. pick S from H; 6. if ( S is true in r ) do 7. add S to B+ ; 8. else 9. Hs = { all immediate specializations of S }; 10. H = H U Hs; 11. fi; 12. od; 13. end; Algorithm 2. Top-down algorithm. Cet algorithme donne les sentences valides les plus générales. Notons toutefois que le test de validité ( ligne 6 ) n’est pas précisé dans (Flach, 2000). Il reste que c’est le test le plus coûteux en temps. 45 Chapitre 4 : Découverte de dépendances multivaluées Input : A relation r defined over a schema R. Output: The negative cover B- of a set of sentences which are false in r. Method: 1. begin 2. B- = Ø; 3. foreach ( t1,t2 € r ) do 4. X = { A │ A € R ^t1[ A ] = t2[ A ]}; Y = R – X; 5. foreach ( Z ⊂Y ) do 6. if ( not exist t3^t4 | ( t3, t4 € r) ^ (t1[ X ] = t3[ X ] ^ t1[ X ] = t4[ X ]) => 7. ( t3[ Y ]= t1[ Y ] ^ t3[ Y – Z ] = t2[ Y – Z ] ) ^ 8. ( t4[ Y ] = t2[ Y ] ^ t4[ Y – Z ] = t1[ Y – Z ])) then 9. S = ( X, { Z, Y – Z }) ; 10. if ( S is not covered by B- ) then 11. add S to B- ; 12. remove all generalizations of S from B- ; 13. fi ; 14. fi ; 15. od , 16. od; 17. end; Algorithme 3. Construction de la bordure négative. La bordure négative construite par l’algorithme3 sera utilisée par l’algorithme Bottom-up. Input: A relation r defined over a schema R. Output: Positive border B+ of the sentences over R. Method: 1. begin 2. compute B- using algorithm3; 3. B+ = {( Ø, R )}; 4. foreach ( Sn € B- ) do 5. foreach ( Sp € B+ contradicted by Sn ) do 6. delete Sp from B+ ; 7. foreach ( S’p which is the closest specialization 8. of Sp not contradicted by Sn ) do 9. if ( S’p not covered by B+ ) then 10. add S’p to B+ ; 11. fi; 12. od; 13. od; 14. od; 15. end; Algorithme 4. Bottom-up algorithm. 46 Chapitre 4 : Découverte de dépendances multivaluées Cet algorithme est basé sur le fait que si une sentence n’est pas fausse, elle est vraie. Disposant de la bordure négative B-, il construit B+ par élimination des sentences fausses couvertes ( au sens du treillis des sentences ) par B-. L’implémentation de ces algorithmes nécessite une représentation efficace des bordures de sentences. Dans (Flach, 2000) on représente les sentences dans une structure de données appelée arbre dmv( mvd tree ). Définition. Etant donné un schéma de relation R et un ensemble S de sentences, l’arbre mvd de S est un arbre défini comme suit. Pour chaque sentence ( X, DB ) ∈ S, il existe un chemin vers le nœud A ; ce chemin contient tous les attributs de X et A correspond au dernier attribut de X. Un label G de chaque nœud A contient une sentence qui est soit la plus petite borne supérieure, soit la plus grande borne inférieure de toute les sentences représentées par le sousarbre de racine A. Un label E de chaque nœud A un ensemble de bases de dépendances DBi de sentences (X, DBi ), tel que le chemin correspondant à X se termine au nœud A. L’ arbre des dmvs est utilisé soit pour représenter la bordure positive, soit la bordure négative d’un ensemble de sentences. Il y a 2 façons d’ajouter une sentence à un arbre dmv, soit en exploitant la structure de treillis, soit après test vis-à-vis de la relation r. L’exploitation de la structure de treillis lors de l’ajout d’une sentence S = (X, DB) consiste à modifier le label G ‘’concerné ‘’ par cette sentence en le remplaçant soit par le lub soit par le glb entre sa valeur actuelle et celle de S c'est-à-dire DB. De cette façon, chaque label G des nœuds A sur le chemin correspondant à X contient une sentence qui borne (soit par lub soit par glb ) toutes les sentences représentées par le sousarbre dont la racine est A. Les nœuds intermédiaires aboutissant au dernier attribut A de X ont leur label E vide ; seul le label E de A contient DB. Si la sentence S n’est comparable à aucune sentence de l’arbre alors on est obligé de la tester vis à vis de la relation r. Racine G = (Ø,{ A, B, C, D, E}) E = {} A G= ( A, {B, CDE}) E = { B, CDE} B G = ( AB,{CD,E}) E={CD, E} D B G = (B, {AD, C, E}) E= {} G=(BD,{A,C,E}) E={A, C, E} E D G=(DE, {AB,C}) E= {} G=(BE, {AD, C}) E={AD, C} E G=(DE, {AB,C}) E={AB, C} 47 Chapitre 4 : Découverte de dépendances multivaluées Figure 4.1. Exemple d’arbre mvd. Les dmvs candidates ne sont testées vis-à-vis de la relation r que si on échoue à trouver une sentence plus générale (ou plus spécifique) que la sentence qui les contient dans l’arbre mvd correspondant. Après ce test elles seront placées dans cet arbre. Dans la figure 4.1, l’arbre mvd contient les sentences suivantes, sur R = ABCDE, (AB,{CD,E}), (A,{B,CDE}), (BD,{A,C,E}), (BE,{AD,C}), (DE,{AB,C}). Dans (Flach, 2000) les sentences sur R sont énumérées systématiquement en commençant par la sentence la plus générale au sens de la relation ≤. L’algorithme d’énumération ( algorithme 5 ) requiert une autre représentation des sentences ; une sentence S = ( X, { X1, …, Xn}) est représentée par S’ = ( X’, X1’, …, Xn’ ) dans laquelle les Xj’ ne sont rien d’autre que les Xi cités dans l’ordre alphabétique ; et X’ = { ØX }où Ø est l’ensemble vide considéré comme étant le premier attribut dans cet ordre. Input : A sentence S = ( X0, …, Xi, …, Xn ). Output: Sentences that are more specific than S. Method: 1. procedure enum( sentence S ): 2. begin 3. i = S.marker ; 4. foreach ( j € [ i .. ( n-1)]) do 5. foreach ( k ∈ [ (j+1) .. n]) do 6. if ( last (Xj) < first ( Xk )) then 7. Y = Xj U Xk ; 8. S = ( X0, …, Xj-1, Y, Xj+1, … ); 9. output ( S ); 10. enum ( S ); 11. fi; 12. od; 13. od; 14. end; Algorithme 5. Enumération des sentences. Dans cet algorithme la fonction first (X) ( resp. last (X)) donne le premier (resp. le dernier) attribut du sous-ensemble X d’attributs. Les 2 boucles foreach indiquent une énumération en largeur ; l’appel récursif indique une énumération en profondeur. 48 Chapitre 4 : Découverte de dépendances multivaluées Remarque. Nous nous permettons de signaler une petite erreur de détail contenue dans l’écriture de cet algorithme dans l’article (Flach, 2000) dans lequel la ligne 4 est écrite comme suit. 4 foreach ( j ∈ [ i .. n ]) do or si l’on considère la ligne 5 5 foreach ( k ∈ [ (j + 1 ) .. n ] do on s’aperçoit que lorsque j=n alors k commence par n+1. Comme il n y a aucun Xn+1 cela constitue une erreur que nous avons corrigée. 4.3.3 Stratégie de découverte de Yan et Fu (Men Hin Yan, 2001) 4.3.3.1. Introduction. Cette stratégie se base sur ce qui a été déjà fait pour la découverte de dépendances fonctionnelles. Elle part de la partition de la relation r en classes d’équivalence selon les valeurs des attributs comme cela a été déjà vu au chapitre 3. Les dmv ne sont pas regroupées en partie gauche et partie droite pour construire, comme dans (Flach, 2000) quelque chose d’explicite et représentable dans une structure de données sur la base des axiomes concernant les dmvs. Les propriétés dérivées de ces axiomes sont plutôt diluées à l’intérieur de l’algorithme de découverte pour réduire le nombre de dmvs dont il faut tester la validité. Les dmvs candidates sont extraites du treillis d’inclusion des attributs de R comme nous le décrivons dans le paragraphe suivant. 4.3.3.2. Méthode de découverte. Etant donnée une relation r de schéma R = XYZ avec Z = R – X – Y, Xj une classe d’équivalence de la partition πX │Xj│ sa taille en nombre de tuples, Θ (Y, Xj ) le nombre de valeurs différentes de l’attribut Y dans les tuples de Xj. La méthode de découverte est basée sur le lemme suivant. Lemme. La dépendance multivaluée X ->-> Y est vérifiée dans la relation r de schéma R si, et seulement si, pour chaque classe d’équivalence de πX, le nombre de valeurs différentes de Y, Θ ( Y, Xj ), multiplié par le nombre de valeurs différentes de Z, Θ ( Z, Xj ), est égal à │Xj│. Autrement dit. Θ ( Y, Xj ) x Θ ( Z, Xj ) = │Xj│. 49 Chapitre 4 : Découverte de dépendances multivaluées 4.3.3.3. Enumération des dmvs. Les dmvs à tester sont énumérées selon un double parcours, l’un pour la partie gauche, l’autre pour la partie droite. Ceci est effectué à l’aide de 2 boucles imbriquées. La boucle la plus interne concerne la partie gauche et débute par un attribut élémentaire pour être augmenté progressivement d’un attribut. La boucle externe ( la plus lente ) fonctionne selon même principe mais pour la partie droite. Comme nous l’avons déjà vu ce double parcours génère 22│R│dmvs possibles. Ce nombre est réduit en utilisant les propriétés des dmvs, découlant des axiomes, aussi bien pour la partie gauche que pour la partie droite de la dmv. Ces propriétés sont exprimées sous forme de règles appelées règles d’élagage. 4.3.3.4. Règle d’élagage pour la partie gauche. Règle1. Une fois la dmv X ->-> Y validée, il n’est plu besoin de tester la validité des dmvs ayant pour partie droite Y et pour partie gauche un sur-ensemble de X. Cette règle est la conséquence directe de l’axiome d’augmentation. 4.3.3.5. Règle d’élagage pour la partie droite. Règle 2. Une dmv X ->-> Z n’est pas testée si la dmv X ->-> Y, avec Z = R – X – Y, l’a déjà été. Ceci est la conséquence directe de l’axiome de complémentation. dmv. 4.3.3.6. Règles d’élagage utilisant les propriétés mixtes dépendance fonctionnelle et Les trois règles ci-dessous sont la conséquence de l’axiome de réplication (voir Chapitre 5). Règle 3. Il est inutile de tester la validité d’une dmv dont la partie gauche a été identifiée comme clé ou sur-ensemble de clé. Règle 4. Si l’une des dépendances fonctionnelles X → Y ou X → Z, avec Z = R – X – Y, a été validée, il est inutile de la dmv X ->-> Y ou la dmv X ->-> Z. Règle 5. La vérification de la dmv candidate X ->-> Y n’est pas nécessaire si Z = R – X – Y et Y est clé et │ πX │≠│πXZ│. 50 Chapitre 4 : Découverte de dépendances multivaluées 4.4 Conclusion Nous venons de présenter deux méthodes de découverte de dépendances multivaluées. La première n’utilise que les axiomes propres à ce genre de dépendances, la deuxième y ajoute, quoique que de façon non explicite et non systématique l’axiome de réplication Dans le chapitre suivant, nous proposons notre propre algorithme de découverte en empruntant ‘’ce qu’il y a de mieux’’ dans ces deux méthodes. 51 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées Chapitre 5 Proposition d’une méthode découverte de dépendances multivaluées Sommaire 5.2 Présentation de la méthode.............................................................................................. 53 5.3 Enumération des dmvs candidates. ................................................................................ 54 5.3.1 Principe........................................................................................................................ 54 5.3.2. Propriétés générales.................................................................................................... 55 5.4 Description de la proposition. ......................................................................................... 56 5.4.1 Principe........................................................................................................................ 56 5.4.2. Données utilisées........................................................................................................ 56 5.4.3. Algorithme ................................................................................................................. 57 5.4.4. Déroulement de l’algorithme sur un exemple. ........................................................... 58 5.5 Conclusion......................................................................................................................... 69 52 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées 5.1 Introduction Le coût du test d’une dépendance multivaluée, X ->-> Y, peut s’avérer prohibitif car il utilise les partitions πX, πY et πR-XY qui peuvent être très grandes. Une méthode de découverte qui puisse éviter le plus possible ce test est donc à rechercher. C’est dans cet esprit que nous avons construit notre propre méthode en évitant dès que possible le traitement sur les données de la relation. Pour ce faire, nous avons d’abord supposé que les dépendances fonctionnelles aient été découvertes au préalable pour bénéficier de l’axiome suivant, appelé réplication dans (Maïer, 1985). Axiome de réplication. Si une relation r de schéma R satisfait la dépendance fonctionnelle X -> Y alors elle satisfait la dépendance multivaluée X ->-> Y (donc X ->-> (R-XY)). Pour découvrir les df nous privilégions les algorithmes qui utilisent les partitions de r (Men Hin Yan, 2001) (Lopes, 2000) (Huhtala, 1998) puisque nous les utiliserons aussi pour découvrir les dmvs. Pour découvrir les dmv nous utilisons les deux méthodes présentées au chapitre précédent. 5.2 Présentation de la méthode Notre méthode de découverte aspire à réduire, autant qu’il nous semble possible, le nombre de tests de validité des dmv directement sur les données de la relation. Nous avons vu au chapitre 4 comment les axiomes concernant les dmv permettent d’inférer la validité de dmv connaissant la validité d’autres. Nous avons vu aussi comment la notion de sentence sous-tend un treillis dont la relation d’ordre partiel résume tous ces axiomes. Nous utilisons donc la relation d’ordre, ≤, et le résultat suivant de : Théorème 1. (Flach, 2000) Soient S1 et S2 deux sentences telles que S1 ≤ S2. On a, 1. Si S1 est vraie alors S2 est vraie, 2. Si S2 est fausse alors S1 est fausse □ Nous gardons donc la caractérisation des dmvs par les sentences ainsi que l’utilisation des arbres de dmvs pour supporter la structure de treillis de ces sentences . Par contre nous n’utiliserons pas l’énumération des « sentences » de (Flach, 2000) pour lister les dmvs candidates. Nous adoptons la méthode de (Men Hin Yan, 2001) qui utilise les cardinalités des partitions pour tester la validité d’une dmv candidate. Nous utilisons deux arbres de dmvs. L’un pour représenter les « sentences » valides dans r, l’autre les « sentences » non vérifiées dans r. 53 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées L’arbre de dmv contenant les sentences valides sera initialisé par des dfs découvertes auparavant comme suit. Une df X -> Y sera convertie en la sentence S = ( X, { Y, (R – ( XY )}) Qui sera insérée dans l’arbre dmv des sentences valides. Le fait que les dfs découvertes soient minimales (cf. chapitre 2, § 2.1.5) nous garantit que n’importe quelles 2 sentences en résultant ne sont pas ordonnées selon la relation d’ordre du treillis des sentences ; l’insertion de ces sentences initiales se fait donc systématiquement. 5.3 Enumération des dmvs candidates. 5.3.1 Principe. Pour énumérer les dmvs candidates, nous partons du treillis d’inclusion de l’ensemble des attributs élémentaires de R. Nous exploitons les propriétés des dmvs dans l’utilisation de ce treillis Pour illustrer notre idée, considérons un exemple. Soit un schéma R = ABCDE. Le treillis d’inclusion est indiqué dans la figure 5.1. 5 4 ABCDE ABCD ABCE ABDE ACDE BCDE 3 ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE 2 AB AC AD AE BC BD BE CD CE DE 1 0 A B C D E Ø Fig. 5.1. Treillis d’inclusion des attributs ABCDE. Les éléments de ce treillis sont regroupés en 6 niveaux numérotés de 0 à 5. Ces niveaux serviront à fixer l’ordre du choix des parties gauches et droites des dmvs candidates. Le numéro de chaque niveau est égal à la cardinalité des éléments du treillis d'inclusion placés dans ce niveau. Puisque la dmv X ->-> Ø est toujours vérifiée, les éléments de niveaux 4 et 5 n’ont pas à être pris ni comme partie gauche ni d’une dmv candidate. Pour la même raison, l’élément de niveau 5 n’a pas à être pris comme partie droite. Ceci résulte du fait que si la somme des cardinalités de la partie gauche et de la partie droite de la dmv est supérieure à 4 cette dmv est triviale. On en conclut que les éléments de niveau 3 54 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées ne peuvent simultanément servir de partie gauche et de partie droite, ainsi que leur combinaison avec les éléments de niveau 2. A partir de ces observations nous indiquons les propriétés générales. 5.3.2. Propriétés générales. Etant donné un schéma R = A1A2…An ainsi que le treillis d’inclusion des Ai dans lequel on distingue n + 1 niveaux numérotés de 0 à n. Propriété 1. Une dmv dont la somme des cardinalités des parties gauche et droite est supérieure à n – 1 n’est pas prise comme candidate au test de validité. Propriété 2. Le treillis des sentences construit à partir de ce treillis d’inclusion est tel que, pour une sentence S = (X, {Y}); on peut toujours trouver p sentences Si = (Xi, {Yi}) telles que S1 ≤ S2 ≤ … S ≤ … ≤ Sp à condition que |X1| ≤ |X2| ≤ … ≤|Xp|. Cette propriété suggère que les parties droites de dmv, dont la partie gauche est X avec |X| = m ; doivent être recherchées en profondeur d’abord dans le parcours du treillis d’inclusion pour «profiter» au mieux de la relation d’ordre induite et éviter au maximum le test de la dépendance. Ainsi, pour le test de validité, les parties droites de cette dmv doivent être recherchées dans les niveaux du treillis d’inclusion tel que m ≤ ≤ n – m – 2. Propriété 3.cas particuliers. lemme a) Soit t le nombre total de tuples de la relation r de schéma R = A1A2…An ; et |πAi| le nombre de valeurs différentes selon l’attribut Ai, dans r. Si ∀i, i ∈ {1,2,…,n} on a : |πAi| * |πR-Ai| = t (1). alors toutes les dépendances multivaluées sont vérifiées dans r. Il est donc inutile de les énumérer par l’algorithme. b) toutes les dmv sont trivialement vérifiées par une relation à 2 attributs. preuve a) L’expression (1) implique la validité de la dmv Ø ->-> Ai qui correspond à la sentence vraie (Ø,{Ai, (R-Ai)}). Si (1) est vraie pour tout i ∈ {1, …,n} alors la sentence S=(Ø,{A1,…,An}) est vraie, assurant ainsi la validité de toutes les dmv Ai ->-> Aj pour tout i∈{1,…,n}et pour tout j∈{1,…,n}. 55 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées b) Nous savons que la dmv X ->-> Ø (donc X ->-> (R-X)) est vérifiée pour tout schéma R. En particulier si R=A1A2 la dmv Ai ->-> Ø étant toujours vérifiée il en est de même pour Ai ->-> Aj ; i étant égal à 1 ou 2, j étant égal à 2 ou 1. □ 5.4 Description de la proposition. 5.4.1 Principe. Notre algorithme se base sur les remarques et propriétés citées précédemment. Ainsi, il suppose que les dépendances fonctionnelles éventuelles, vérifiées par la relation r, ont déjà été trouvées. De plus cette relation est représentée par ses partitions selon les attributs élémentaires de R. Il emprunte à (Flach, 2000) la notion de « sentences » pour regrouper les parties gauches et droites des dmv et utiliser la relation d’ordre du treillis induit. Ces « sentences sont représentées dans 2 arbres de dmv ; l’un représentant les « sentences » valides, l’autre les « sentences » fausses. En nous appuyant sur la propriété 2 et la propriété des « sentences » qui dit qu’une sentence fausse falsifie toutes celles qui lui plus générales et qu’une « sentence » vraie valide toutes celles qui lui sont plus spécifiques, notre algorithme teste alternativement les « sentences » en partant des plus spécifiques pour leur fausseté et des plus générales pour leur vérité. Les « sentences » les plus spécifiques sont insérées dans l’arbre des dmvs fausses si elle sont fausses et dans l’arbre des dmvs vraies si elle sont vraies. Les sentences les plus générales ne seront pas insérées dans l’arbre des dmvs fausses si elles sont fausses ; par contre si elles sont vraies elles seront insérées dans l’arbre des dmvs vraies. 5.4.2. Données utilisées. Données concernant la relation r. Le schéma R = A1…An. Les partitions ПX X⊆R de r. Le nombre de tuples de r. Les dépendances fonctionnelles minimales vérifiées par r. Données nécessaires à l’algorithme. B+ : l’arbre dmv des «sentences» vraies : B- : l’arbre dmv des «sentences» fausses niveau_partiegauche_s, niveau_partiegauche_g : numéros du niveau dans le treillis d’inclusion, où sont prises les parties gauches des dmv candidates aussi bien pour les sentences spécifiques que pour les sentences générales. 56 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées rang_s, rang_g : numéros de la partie gauche dans les niveaux respectivement pour les sentences spécifiques et les sentences générales. partie_droite : élément du treillis d’inclusion servant de partie droite à une dmv candidate. 5.4.3. Algorithme TrDmv Entrée : A1,…,An les attributs de r Les partitions ПX de r. tr le nombre de tuples de r. DF l’ensemble des dépendances fonctionnelles vérifiées par r. Sortie : DMV l’ensemble des dmv vérifiées par r. Méthode : 1. begin 2. if ( ( n == 2 ) or ( ∀i, i ∈ {1,…,n}, ||ПAi|| * ||ПR-Ai|| = = tr )) then 3. DMV = « toutes les dmv sont vérifiées » ; // cas particuliers du lemme 4. else 5. begin // cas général où l’on effectue le test des dmv 6. D = Ø ; B- = Ø ; niveau_partie_gauche_s = n-2 ; niveau_partie_gauche_g = 0 ; 7. rang_s = 0 ; rang_g = 0 ; Initialiser B+ avec DF; 8. repeat 9. begin 10. if (niveau▁partie▁gauche_s ≠ niveau▁partie▁gauche_g) then 11. // pour ne pas le faire 2 fois en cas de parité de n. 12. begin //boucle de test des sentences spécifiques 13. partie▁gauche_s = choix ( rang_s, niveau▁partie▁gauche_s) ; 14. for all ( partie_droite, partie_gauche_s ) // les parties droites possibles sont choisies en profondeur sur tous les niveaux du treillis d’inclusion. 15. test_s_dmv (partie_gauche_s,partie_droite) ; 16. end; 17. rang_s++; 18. if ( fin ( rang_s, niveau_partie_gauche_s)) then 19. begin 20. niveau_partie_gauche_s --; 21. rang_s = 0 ; 22. end ; 23. end ; //boucle de test des sentences générales 24. partie▁gauche_g = choix ( rang_g, niveau▁partie▁gauche_g) ; 25. for all ( partie_droite, partie_gauche_g ) 26. test_g_dmv (partie_gauche_s,partie_droite) ; 57 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées 27. end; 28. rang_g++; 29. if ( fin ( rang_g, niveau_partie_gauche_g)) then 29 begin 30. niveau_partie_gauche_g ++; 31. rang_g = 0 ; 32. end ; 33. end ; 34. until (niveau_partie_gauche_s < niveau_partie_gauche_g ) ; 35. DMV = B+ ; 36. end. Algorithme 5.1 Algorithme TrDmv Les procédures test_s_dmv et test_g_dmv réalisent le test effectif de dmv incluse dans les sentences spécifiques pour la première et dans les sentences générales pour la deuxième. procedure test_s_dmv (partie_gauche, partie_droite) ; 1. begin 2. S = sentence ( partie_gauche, partie_droite) ; 3. if ( ( not subsume_g ( B+, S)) and ( not subsume_s ( B-, S))) then 4. if vérifiée (S) then 5. rajouter S à B+ ; 6. else 7. 8. fi 9. fi 10 end. rajouter S à B- ; procedure test_g_dmv (partie_gauche, partie_droite) ; 1.begin 2. S = sentence ( partie_gauche, partie_droite) ; 3. if ( ( not subsume_g ( B+, S)) and ( not subsume_s ( B-, S))) then 4. if vérifiée ( S ) then 5. rajouter S à B+ ; 6. fi 7. fi 8. end Algorithme 5.2 Procédures de test de dmv 58 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées Nous donnons ci-dessous le rôle des fonctions utilisées. - sentence ( partie_gauche,partie_droite) renvoie la sentence - S = ( partie_gauche,{partie_droite, R-partie_droite)}) subsume_g ( B+,S) renvoie vrai si il existe S’ dans B+ tel que S’ ≤ S faux sinon - subsume_s ( B-,S) renvoie vrai si il existe S’ dans B- tel que S ≤ S’ faux sinon - choix ( rang_x, niveau▁partie▁gauche_x) x étant soit s, soit g, renvoie la partie gauche de la dmv candidate située dans le niveau▁partie▁gauche_x à la place rang_x - vérifiée ( S ) renvoie vrai si la dmv contenue dans S est valide dans la relation r. faux sinon. Théorème 2 : l’algorithme TrDmv, appliqué à une relation r de schéma R, est valide et complet. La validité signifie que si X ->-> Y a été mise dans B+ par l’algorithme alors elle est vérifiée par la relation r, et la complétude signifie que si X ->-> Y est vérifiée par la relation r, alors elle sera insérée dans B+ par l’algorithme. Preuve : Validité. Deux types de dmv sont insérées dans B+. Celles qui résultent de l’axiome de réplication et celles qui sont téstées directement ou résultent du théorème1. Dans les deux cas ces dmv sont vérifiées par la relation r. Complétude. En raison du (double) parcours exhaustif du treillis d’inclusion, aussi bien pour la partie gauche que pour la partie droite, effectué par l’algorithme, la dmv X ->-> Y sera nécessairement considérée par l’algorithme. Elle donne lieu à la sentence S=(X, {Y, (R-XY)}) qui sera considérée uniquement selon 3 possibilités : a. il existe S1 dans B+ tel que S1≤S, b. il existe S2 dans B- tel que S≤S2, c. aucun des 2 cas précédents ne se présente. Considérons d’abord le cas b. B- étant initialement vide, le seul moyen d y insérer S2 est le test sur la relation ou l’application du théorème1 concluant, dans les deux cas, à sa fausseté. L’application de nouveau du théorème1 empêche l’insertion de S dans B-. Pour le cas a., dire qu’il existe S1≤S c’est dire que S1 a, soit été testée directement sur la relation r (ce qui démontre le cas c.), soit découle de l’application du théorème1, laquelle valide aussi S. 59 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées 5.4.4. Déroulement de l’algorithme sur un exemple. L’exemple est pris de (Men Hin Yan, 2001) et la relation prise est décrite ci-dessous. No.tuple A B C D 1 1 1 2 3 2 1 2 1 4 3 1 2 2 2 4 1 1 1 4 5 1 1 2 2 6 1 2 2 3 7 2 3 1 3 8 2 3 2 4 Table 5.1. Exemple de relation. La seule dépendance fonctionnelle vérifiée par cette relation est B → A. Nous en tirons la sentence S = (B, {A, CD}) que nous enregistrons dans l’arbre B+ lequel sera comme suit. B G = ( B, { A, CD}). E = { A, CD }. Figure 5.1. Arbre B+ initial Nous estimons nécessaire de reproduire le treillis d’inclusion pour R = ABCD avec ses 5 niveaux numérotés de 0 0 ……………………………… Ø 1 ……………….. A 2 …….. AB AC 3 ……………. ABC B AD ABD C BC ACD D BD CD BCD 4 …………………………. ABCD Figure5.2. Treillis d’inclusion avec numérotation des niveaux 60 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées De plus, les parties gauches (et droites) des dmvs ont au plus 3 attributs; par conséquent seules les partitions à 1, 2 ou à 3 attributs sont nécessaires. Les voici ; avec, pour les partitions à un attribut, le nombre de leurs classes d’equivalence. πA = { { 1,2,3,4,5,6 }, { 7,8 } } = { αA1, αA2 } ||πA|| = 2 πB = { { 1,4,5}, {2,3,6}, {7,8} } = { αB1, αB2, αB3} ||πB|| = 3 πC = { {1,3,5,6,8}, {2,4,7} } = { αC1, αC2 } ||πC|| = 2 πD = { {1,6,7}, {2,4,8}, {3,5} } = { αD1, αD2, αD3} ||πD|| = 3 πAB = { {1,4,5}, {2,3,6}, {7,8} } = { αAB1, αAB2, αAB3} πAC = { {1,3,5,6} {2,4}, {7}, {8} } = { αAC1, αAC2, αAC3, αAC4 } πAD = { {1,6} {2,4} {3,5}, {7}, {8} } = { αAD1, αAD2, αAD3, αAD4, αAD5 } πBC = { {1,5}, {3,6}, {2}, {4}, {7}, {8} } = { αBC1, αBC2, αBC3, αBC4, αBC5, αBC6} πBD = { {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8} } = { αBD1, αBD2, αBD3, αBD4, αBD5, αBD6 , αBD7, αBD8 } πCD = { {1,6}, {2,4}, {3,5}, {6}, {7}, {8} } = { αCD1, αCD2, αCD3, αCD4, αCD5, αCD6 } πABC = { {1, 5}, {2}, {3, 6}, {4}, {7}, {8} } πABD = { {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8} } πACD = { {1, 6}, {2, 4}, {3, 5}, {7}, {8} } πBCD = { {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8} } Le nombre d’attributs n= 4, étant supérieur à 2 et (par exemple) ||ПA|| * ||ПBCD||, 16, étant différent de tr, 8, il s’ensuit que nous ne sommes pas dans l’un des 2 cas particuliers où toutes les dmvs sont valides. Nous devons donc effectuer la recherche des dmvs en «entrant» dans le corps de l’algorithme. Nous entrons donc dans la grande boucle de l’algorithme qui contient elle-même 2 boucles en cascade après avoir initialisé les niveaux où doivent être prises les parties gauches des dmv, à savoir, niveau▁partie▁gauche_s = 4 - 2 = 2, pour les sentences spécifiques, et niveau▁partie▁gauche _g = 0, pour les sentences générales. Nous rappelons que la notation θ(X, αYi) représente le nombre de valeurs différentes selon les attributs X dans la partition αYi , selon les attributs Y, de la relation. Première boucle : sentences spécifiques. 61 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées Nous listons maintenant les dmvs qui correspondent aux sentences spécifiques ; ce qui est effectué dans la première des 2 boucles internes. AB ->-> C qui correspond à la sentence S = (AB, {C, D}). Puisque B- est vide, S n’y est pas subsumée. B+ contient S’ = (B, {A, CD}) qui ne se compare pas à S. Nous devons donc tester la sentence S. |αAB1| = 3 θ(C, αAB1) = 2 et θ(D, αAB1) = 3 et leur produit est 6, différent de 3. On peut donc conclure que AB ->-> C n’est pas vérifiée dans r et mettre la sentence S dans B. dmv suivante. AC ->-> B qui correspond à la sentence S = (AC, {B, D}). On la confronte à B- qui contient S’ = (AB, {C, D}) qui ne lui est pas comparable. On la confronte ensuite à B+ qui contient S’ = (B, {A, CD}) qui ne lui est pas comparable non plus. Nous sommes donc obligés de la tester. | αAC1| = 4. θ( B, αAC1) = 2 ; θ( D, αAC1) = 2 et leur produit est 4 cardinalité de αAC1. |αAC2| = 2. θ( B, αAC2) = 2 ; θ( D, αAC2) = 1 et leur produit est 2 cardinalité de αAC2. Les 2 classes d’équivalences suivantes étant des singletons, la formule est trivialement vérifiée. On en conclut que AC ->-> B est vérifiée et on rajoute la sentence (AC, {B, D}) dans B+ dont la nouvelle forme apparait dans la figure 5.3. A B G = (B,{A,CD} E = {A,CD} C G = (AC,{B,D}) E = {B,D} dmv suivante. Figure 5.3. Nouvel arbre B+ . AD ->-> B qui correspond à la sentence S = (AD, {B, C}). On la confronte à B- qui contient (AB, {C, D}) et qui ne lui est pas comparable. 62 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées On la confronte ensuite à B+ qui contient (B, {A, CD}) et (AC, {B, D}) auxquelles elle n’est pas comparable ; on est donc obligés de la tester. | αAD1| = 2 θ( B, αAD1) = 2 ; θ( C, αAD1) = 1 et leur produit est 2, cardinalité de αAD1. | αAD2| = 2 θ( B, αAD2) = 2 ; θ( C, αAD2) = 1 et leur produit est 2, cardinalité de αAD1. | αAD3| = 2 θ( B, αAD3) = 2 ; θ( C, αAD3) = 1 et leur produit est 2, cardinalité de αAD1. Les 2 classes d’équivalences suivantes étant des singletons, la formule est trivialement vérifiée. On en conclut que AD ->-> B est vérifiée et on rajoute la sentence (AD, {B, C}) dans B+ dont la nouvelle forme apparait dans la figure 5.4. A D G = (AD,{B,C}) E = {B,C} B G = (B,{A,CD} E = {A,CD} C G = (AC,{B,D}) E = {B,D} Figure 5.4. Nouvelle forme de l’arbre B+. dmv suivante. BC ->-> A qui correspond à la sentence S = (BC, {A, D}). On la confronte à B- qui contient (AB, {C, D}) et qui ne lui est pas comparable. On la confronte ensuite à B+ qui contient (B, {A, CD}) et (AC, {B, D}). On constate qu’elle est vraie puisque subsumée par (B, {A, CD}), c'est-à-dire que l’on a (B, {A, CD}) ≤ S Il est donc inutile, ni de la tester ni de la rajouter à B+. dmv suivante. BD ->-> A qui correspond à la sentence S = (BD, {A, C}). On la confronte à B- qui contient (AB, {C, D}) et qui ne lui est pas comparable. On la confronte ensuite à B+ qui contient (B, {A, CD}) et (AC, {B, D}). 63 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées On constate qu’elle est vraie puisque subsumée par (B, {A, CD}), c'est-à-dire que l’on a (B, {A, CD}) ≤ S Il est donc inutile, ni de la tester ni de la rajouter à B+. dmv suivante. CD ->-> A qui correspond à la sentence S = (CD, {A, B}). On la confronte à B- qui contient (AB, {C, D}) et qui ne lui est pas comparable. On la confronte ensuite à B+ qui contient (B, {A, CD}) et (AC, {B, D}) et les 2 ne lui sont pas comparables. On est donc obligé de la tester. |αCD1| = 2 θ(A, αCD1) = 1 ; θ(B, αCD1) = 2 et leur produit est 2, cardinalité de αCD1. |αCD2| = 2. θ(A, αCD2) = 1 ; θ(B, αCD2) = 2 et leur produit est 2, cardinalité de αCD2. |αCD3| = 2. θ(A, αCD3) = 1 ; θ(B, αCD3) = 2 et leur produit est 2, cardinalité de αCD3. Il est inutile de considérer les classes d’équivalences suivantes ; ce sont des singletons pour lesquels la formule est donc trivialement vérifiée. On en conclut que CD ->-> A est vérifiée et on ajoute S = (CD, {A, B}) à B+ dont la nouvelle forme apparait dans la figure 5.5. A D G = (AD,{B,C}) E = {B,C} B G = (B,{A,CD}) E = {A,CD} C G = (AC,{B,D}) E = {B,D} C D G = (CD,{A,B}) E = {A,B} Figure 5.5. Nouvelle forme de l’arbre B+. Deuxième boucle : sentences générales. Nous listons maintenant les dmvs qui correspondent aux sentences générales; ce qui est effectué dans la deuxième des 2 boucles internes. 64 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées Quand la partie gauche d’une dmv est vide la cardinalité de la partition πØ est égale à toute la relation r et la formule de test de cette dmv devient, étant donné Ø ->-> X, à laquelle correspond la sentence (Ø, {X, (R – X)}): |πX| * |πR-X| = tr. Le lecteur peut vérifier qu’aucune de ces dmvs n’est vérifiée. Cependant les variables sont modifiées : niveau_partie_gauche_s est diminuée de 1 et devient égale à 1, et niveau_partie_gauche_g est augmentée de 1 et devient aussi égale à 1. Cette égalité de valeurs empêche le passage de nouveau dans la boucle concernant les sentences spécifiques et l’algorithme effectue un dernier passage dans la boucle des sentences générales où les parties gauches dmvs sont de cardinalité 1. Nous les énumérons ci-dessous. A ->-> B qui correspond à la sentence S = (A, {B, CD}). On la confronte aux sentences plus spécifiques de B- à savoir (AB, {C, D}) avec laquelle elle n’est pas comparable. On la confronte aux sentences plus générales de B+. il n’y en a pas. On est donc obligés de la tester. |αA1| = 6. θ(B, αA1) = 2 ; θ(CD, αA1) = 3 et leur produit est 6. |αA2| = 2. θ(B, αA2) = 1 ; θ(CD, αA2) = 2 et leur produit est 2. On en conclut que A ->-> B est vérifiée et on insère la sentence (A, {B, CD}) dans B+ en y supprimant les sentences qui lui sont plus spécifiques comme sur la figure 5.6. A G = (A,{B,CD}) B G = (B,{A,CD}) E= {B,CD} E = {A,CD} D G = (AD,{B,C}) E = {B,C} C D G = (CD,{A,B}) E = {A,B} Figure 5.6. Nouvelle forme de l’arbre B+. dmv suivante. A ->-> C qui correspond à la sentence S = (A, {C, BD}). 65 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées On la confronte à la sentence (AB, {C, D}) de B- et on constate que S ≤ (AB, {C, D}). On en conclut que S est fausse sans la mettre dans B-. dmv suivante. A ->-> D qui correspond à la sentence S = (A, {D, BC}). Ici aussi, en la confrontant à B-, on constate que S ≤ (AB, {C, D}). On en conclut que S est fausse sans la mettre dans B-. On passe à la dmv suivante. B ->-> A qui correspond à la sentence S = (B, {A, CD}). On la confronte à B- et on constate qu’elle n’est pas comparable à (AB, {C, D}). On la confronte à B+ et on s’aperçoit qu’elle y existe déjà. dmv suivante. B ->-> C qui correspond à la sentence S = (B, {C, AD}). On la confronte à B- et on constate que S ≤ (AB, {C, D}). On en conclut que S est fausse sans la mettre dans B-. dmv suivante. B ->-> D qui correspond à la sentence S = (B, {D, AC}). On la confronte à B- et on constate que S ≤ (AB, {C, D}). On en conclut que S est fausse sans la mettre dans B-. dmv suivante. C ->-> A qui correspond à la sentence S = (C, {A, BD}). On la confronte à B- et on constate que S n’est pas comparable à (AB, {C, D}). On la confronte à B+ qui contient (B, {A, CD}) et (AC, {B,D}) qui ne lui sont pas comparables. On est donc obligé de la tester. |αC1| = 5 θ(A, αC1) = 2 et θ(BD, αC1) = 3 et leur produit est 6, différent de 5. 66 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées |αC1| = 3 θ(A, αC2) = 2 et θ(BD, αC2) = 3 et leur produit est 6, différent de 3. On en conclut que S est fausse et on la rajoute à B- qui contient maintenant (AB, {C, D}) et (C, {A, BD}). dmv suivante. C ->-> B qui correspond à la sentence S = (C, {B, AD}). On la confronte à B- et on constate que S n’est comparable ni à (AB, {C, D}) ni à (C, {A, BD}). On la confronte à B+ qui contient (B, {A, CD}) et (AC, {B, D}). On constate que la première sentence ne lui est pas comparable et la seconde lui est plus spécifique. On est donc obligé de la tester. |αC1| = 5 θ(B, αC1) = 3 et θ(AD, αC1) = 3 et leur produit est 9, différent de 5. On en conclut qu’elle est fausse et on la rajoute à B- qui contient maintenant (AB, {C, D}), (C, {A, BD}) et (C, {B, AD}). dmv suivante. C ->-> D qui correspond à la sentence S = (C, {D, AB}). On la confronte à B- et on constate que S n’est pas comparable à (AB, {C, D}) et (C, {A, BD}) et (C, {B, AD}). On la confronte à B+ qui contient (B, {A, CD}) et (AC, {B, D}). On constate que la première sentence ne lui est pas comparable et la seconde lui est plus spécifique. On est donc obligé de la tester. |αC1| = 5 θ(D, αC1) = 3 et θ(AB, αC1) = 3 et leur produit est 9, différent de 5. On en conclut qu’elle est fausse et on la rajoute à B- qui contient maintenant (AB, {C, D}) , (C, {A, BD}) , (C, {B, AD}) et (C, {D, AB}). dmv suivante. D ->-> A qui correspond à la sentence S = (D, {A, BC}). On la confronte à B- et on constate que S n’est pas comparable à aucune des sentences qui s y trouvent. On la confronte à B+ qui contient (B, {A, CD}) et (AC, {B, D}) auxquelles S n’est pas comparable. 67 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées On est donc obligé de la tester. |αD1| = 3 θ(A, αD1) = 2 et θ(BC, αD1) = 3 et leur produit est 6, différent de 3 . On en conclut qu’elle est fausse et on la rajoute à B- qui contient maintenant (AB, {C, D}), (C, {A, BD}), (C, {B, AD}), (C, {D, AB}) et (D, {A, BC}). dmv suivante. D ->-> B qui correspond à la sentence S = (D, {B, AC}). On la confronte à B- et on constate que S n’est comparable à aucune des sentences qui s y trouvent. On la confronte à B+ qui contient (B, {A, CD}) et (AC, {B, D}) auxquelles S n’est pas comparable. On est donc obligé de la tester. |αD1| = 3 θ(B, αD1) = 3 et θ(AC, αD1) = 2 et leur produit est 6, différent de 3. On en conclut qu’elle est fausse et on la rajoute à B- qui contient maintenant (AB, {C, D}), (C, {A, BD}), (C, {B, AD}), (C, {D, AB}), (D, {A, BC}) et (D, {B, AC}). dmv suivante (la dernière). D ->-> C qui correspond à la sentence S = (D, {C, AB}). On la confronte à B- et on constate que S n’est comparable à aucune des sentences qui s y trouvent. On la confronte à B+ qui contient (B, {A, CD}) et (AC, {B, D}) auxquelles S n’est pas comparable. On est donc obligé de la tester. |αD1| = 3 θ(C, αD1) = 2 et θ(AB, αD1) = 3 et leur produit est 6, différent de 3. On en conclut qu’elle est fausse et on la rajoute à B- qui contient maintenant (AB, {C, D}), (C, {A, BD}), (C, {B, AD}), (C, {D, AB}), (D, {A, BC}), (D, {B, AC}) et (D, {C, AB}). Les dépendances multivaluées découvertes dans cet exemple sont résumées figure 5.6. 68 Chapitre 5 : Proposition d’une méthode de découverte de dépendances multivaluées 5.5 Conclusion. Nous avons présenté notre méthode de découverte de dépendances multivaluées en nous appuyant sur le treillis des sentences de (Flach, 2000). Notre première contribution a été de considérer que les dépendances fonctionnelles aient été découvertes au préalable pour bénéficier de l’axiome de réplication. Ceci n’est pas contraignant à notre sens car il nous semble peu réaliste de ne pas découvrir systématiquement les dépendances fonctionnelles dans une base de données relationnelle. Notre deuxième contribution a été le double parcours, en profondeur d’abord, du treillis d’inclusion des attributs lors de l’énumération des dmv candidates, afin de bénéficier dès que possible de la relation d’ordre du treillis des sentences. Enfin nous avons distingué deux cas particuliers qui évitent le déroulement de l’algorithme. 69 Conclusion Conclusion La fouille de données ou Data Mining, comme nous l’avons entrevu dans ce mémoire, tend à suppléer l’absence ou l’imperfection des modèles déterministes de la réalité. C’est pour cela que ce domaine a été initialement l’apanage des statisticiens qui, eux, utilisent des modèles stochastiques. Si la classification et la prédiction ont longtemps constitué les tâches privilégiées du Data Mining, nous assistons de nos jours à l’émergence de la tâche de génération d’ensembles, élément par élément. Ainsi la découverte de dépendances dans une base de données relationnelle est un problème de génération. L’utilisation de ces dépendances pour la construction du schéma est cruciale car elle évite les anomalies de manipulation des données de la base. Nous avons signalé comment le Data Mining était utilisé pour découvrir ces dépendances dans les données enregistrées au fil du temps dans la base en remarquant qu’il était impossible dans la pratique de les découvrir toutes lors de la conception du schéma. La littérature offre nombre de méthodes de découverte de ce genre de dépendances et nous en avons étudié quatre avec un degré de détail assez poussé ; deux concernent la découverte de dépendances fonctionnelles et deux la découverte de dépendances multivaluées. Nous avons remarqué que ces méthodes de découverte de dépendances fonctionnelles étaient prises en défaut par un cas particulier réel et réaliste et signalé comment y remédier. De plus, nous inspirant des méthodes de découverte des dépendances multivaluées, nous avons synthétisé leurs aspects les plus intéressants pour proposer notre propre méthode. Nous pouvons considérer les perspectives de ce travail sous deux aspects qui nous semblent importants. D’une part, nous estimons opportun d’approfondir certains points intrinsèques à ce mémoire. Nous pensons notamment à implémenter notre méthode pour l’utiliser sur des benchmarks disponibles. Bien que nous ayons illustré que notre méthode est intuitivement de moindre complexité que celles étudiées (Flach, 2000) (Men Hin Yan, 2001), nous estimons que nous devons confirmer cette intuition par l’établissement de sa complexité théorique. Par rapport aux méthodes que nous avons rencontrées pour la découverte de dépendances fonctionnelles, nous avons mis en évidence des cas réels et réalistes qui mettent en défaut les algorithmes Dep-Miner et Tane. Bien que ce soit fait dans ce mémoire, nous pensons communiquer plus explicitement à la communauté ces cas de défauts et les solutions adoptées. Enfin nous jugeons intéressant de généraliser les résultats obtenus dans ce mémoire aux bases de données avec valeurs manquantes ou incertaines. Nous signalons que ce type de bases de données est très fréquemment rencontré. 70 Bibliographie Bibliographie Agrawal, R., Srikant, R. 1994. Fast Algorithms for Mining Association Rules. Santiago Chile : Proceedings of the 20th VLDB Conference, 1994. —. 1996. Mining Generalized Association Rules. Zurich, Switzerland : Proceedings of the 21st VLDB Conference, 1996. Armstrong, W.,W. 1974. Dependency structures of data base relationships. : Proc. 1974 IFIP Congress,pp 580-583, North Holland, Amsterdam, 1974. Ben Yahia, S., Hamrouni, T. Mephu Nguifo, E. 2006. Frequent Closed Itemset Based Algorithms: A Thorough Structural and Analytical Survey. SIGKDD Explorations 8(1)., 2006. Berge, C. 1976. Graphs and hypergraphs. North-Holland Mathematical Library 6, American Elsevier 2d. rev. edition, 1976. Codd, E., F. 1970. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM. 1970, Vol. 13, 6. —. 1979. Extending the Database Relational Model to Capture More Meaning. ACM TODS v.4, n.4, p.397-434, Dec. 1979, 1979. —. 1972. Further Normalization of Database Relational Model. Rustin, R., ed. Prentice Hall, 1972. Date, C., J. 1986. An Introduction To Database Systems. Addison-Wesley, Fourth edition, 1986. Fagin, R. 1977. A Complete Axiomatization for Functional and Multivalued Dependencies in Database Relations. Toronto : Proc. ACM SIGMOD, D.C.P. Smith editor, 1977. 71 Bibliographie —. 1977. Multivalued Dependencies and a new normal form for reletional databases. ACMTODS. 1977, Vol. 2, 3 (sept. 1977). —. 1979. Normal Forms and Relational Database Operators. Proc. of the ACM-SIGMOD 79 conf. Boston, Mass. 1979. Flach, P., A, Savnik, I. 2000. Discovery of Multivalued Dependencies from Relations. Freiburg : Tecnical Report. UMI Order Number: report00135, Albert-Ludwigs University, 2000. Flach, P., A., Savnik, I. 1993. Bottom-up Induction of Functional Dependencies from Relations. Proc. AAAI'93 Workshop on Knowledge Discovery In Database. G. PiatsekyShapiro ed., 1993. —. 1999. Database Dependency Discovery: a Machine Learning Approach. Communications 12(3), 1999. AI Hammer, M., McLeod, D. 1978. The Semantic Data Model: a Modelling Mechanism for Database Applications. Austin, Texas. : Proc. of the 1978 ACM SIGMOD Conf. on Management of Data, May 31-June 02 1978. HB-DM. 2005. Data Mining and Knowledge Discovery Handbook. Springer Science + Business Media, Inc., 2005. Huhtala, Y., Kärkkäinen, J., Porkka, P., Toivonen, H. 1998. Efficient Discovery of Functional and Approximate Dependencies using Partitions. Orlando, Florida : 4th International Conference on Data Mining (ICDE'98), 1998. Jian Pei Jiawei, Han Runying Mao. CLOSET: An efficient Algorithm for Mining Frequent Closed Itemsets. Kedem, Z., Dao-Lin. 1998. Pincer-Search : An Efficient Algorithm for Discovering the Maximum Frequent Set. Valencia, Spain : 6th International Conference on Extending Database Technology, 1998. Lopes, S., Petit, J-M., Lakehal, L. 2000. Dep-Miner: un algorithme d'extraction des dépendances fonctionnelles. Techniques et sciences informatiques. Vol. 19, No. 10/2000, 2000. Maïer, D. 1985. The Theory of Relational Databases. Copyright David Maïer 1985. Used with permission. 72 Bibliographie Mannila, H., Räihä, K.-J. 1994a. The design of relational databases,. Addison- Wesley 1994a. Mannila, H., Räihä,K.-J. 1994b. Algorithms for infering functional dependancies from relations. Data and Knowledge Engineering, vol. 12, no. 1, p. 83-99., 1994b. Mannila, H., Toivonen, H. 1997. Levelwise Search and Boarders of Theories in Knowledge Discovery. Data Mining and Knowledge Discovery. 1, 241-258, 1997. Men Hin Yan, Ada Wai Thee Fu. 2001. Algorithm for Discovering Multivalued Dependencies. Atlanta, Georgia, USA : CIKM'01, 2001. Nicolas, J,-M. 1979. Contributions à l'étude théorique des bases de données. Apports de la logique mathématique. Toulouse France : Thèse de Doctorat ès-Sciences. Université Paul Sabatier, 1979. Pasquier, N. 2000. Data Mining: Algorithmes d'Extraction et de Réduction des Règles d'Association dans les Bases de Données. Université de Clermont-Ferrand II. : Thèse de Doctorat d'Université., 2000. Pasquier, N., Bastide, Y., Taouil, R., Lakehal, L. 1999. Efficient Mining of Association Rules using Closed Itemsets Lattices. Information Systems. 1999, Vol. 24, 1, pp.25-46. Peckham, J., Maryanski, F. 1988. Semantic Data Models. ACM Computing Surveys, v.20, n.3, p.153-189, Sept. 1988, 1988. Smith, J., M., Smith, D., C., P. 1977. Database Abstractions: Aggregation and Generalization. ACM TODS, v.2, n.2, p. 105-133, June 1977, 1977. Ullman, J., D. 2000. http://infolab.stanford.edu/~ullman/mining/overview.pdf. 2000. —. 1983. Principles of Database Systems. Computer Science Press, 2nd edition., 1983. Zaki, M., J., Hsiao, C-J. 2002. CHARM : An Efficient Algorithm for Closed Association Rule Mining. Arlington, USA : Proceedings of the 2nd SIAM International Conference On Data Mining, 2002. 73