memoire

publicité
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
Téléchargement