Recherche efficace de dépendances fonctionnelles dans les bases de données.

La recherche de dĂ©pendances fonctionnelles dans les donnĂ©es est appliquĂ©e dans diffĂ©rents domaines de l'analyse des donnĂ©es : gestion de bases de donnĂ©es, nettoyage des donnĂ©es, rĂ©tro-ingĂ©nierie de bases de donnĂ©es et exploration des donnĂ©es. Nous avons dĂ©jĂ  publiĂ© sur ces dĂ©pendances. article Anastasia Birillo et Nikita Bobrov. Cette fois, Anastasia — diplĂŽmĂ©e du Computer Science Center de cette annĂ©e — partage le dĂ©veloppement de ce travail dans le cadre de son projet de recherche, qu'elle a prĂ©sentĂ© au centre.

Recherche efficace de dépendances fonctionnelles dans les bases de données.

Choix de la tĂąche

Pendant mes Ă©tudes au centre CS, j'ai commencĂ© Ă  Ă©tudier en profondeur les bases de donnĂ©es, plus prĂ©cisĂ©ment, la recherche de dĂ©pendances fonctionnelles et diffĂ©rentes dĂ©pendances. Ce sujet Ă©tait liĂ© au thĂšme de mon mĂ©moire Ă  l'universitĂ©, donc pendant que je travaillais sur le mĂ©moire, j'ai commencĂ© Ă  lire des articles sur les diffĂ©rentes dĂ©pendances dans les bases de donnĂ©es. J'ai rĂ©digĂ© une revue sur ce domaine — l'une de mes premiĂšres. articles en anglais et je l'ai soumise Ă  la confĂ©rence SEIM-2017. J'Ă©tais trĂšs heureuse d'apprendre qu'elle avait Ă©tĂ© acceptĂ©e, et j'ai dĂ©cidĂ© d'approfondir le sujet. Le concept lui-mĂȘme n'est pas nouveau — il a commencĂ© Ă  ĂȘtre appliquĂ© dĂšs les annĂ©es 90, mais il trouve encore des applications dans de nombreux domaines aujourd'hui.

Au deuxiĂšme semestre de mes Ă©tudes au centre, j'ai commencĂ© un projet de recherche sur l'amĂ©lioration des algorithmes de recherche de dĂ©pendances fonctionnelles. J'ai travaillĂ© dessus avec le doctorant de l'UniversitĂ© d'État de Saint-PĂ©tersbourg, Nikita Bobrov, chez JetBrains Research.

Complexité computationnelle de la recherche de dépendances fonctionnelles

Le principal problĂšme est la complexitĂ© computationnelle. Le nombre de dĂ©pendances minimales et non triviaux possibles est limitĂ© par la valeur Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es., oĂč Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es. — le nombre d'attributs dans la table. Le temps d'exĂ©cution des algorithmes dĂ©pend non seulement du nombre d'attributs, mais aussi du nombre de lignes. Dans les annĂ©es 90, les algorithmes de recherche de dĂ©pendances fonctionnelles sur un PC de bureau normal pouvaient traiter des ensembles de donnĂ©es contenant jusqu'Ă  20 attributs et des dizaines de milliers de lignes pendant plusieurs heures. Les algorithmes modernes, fonctionnant sur des processeurs multicores, dĂ©tectent des dĂ©pendances pour des ensembles de donnĂ©es composĂ©s de centaines d'attributs (jusqu'Ă  200) et de centaines de milliers de lignes, en un temps similaire. Pourtant, cela reste insuffisant : ce temps est inacceptable pour la plupart des applications rĂ©elles. C'est pourquoi nous avons dĂ©veloppĂ© des approches pour accĂ©lĂ©rer les algorithmes existants.

Schémas de mise en cache pour l'intersection des partitions

Dans la premiĂšre partie de notre travail, nous avons dĂ©veloppĂ© des schĂ©mas de mise en cache pour une classe d'algorithmes utilisant une mĂ©thode d'intersection des partitions. Une partition pour un attribut reprĂ©sente un ensemble de listes, oĂč chaque liste contient les numĂ©ros de ligne avec les mĂȘmes valeurs pour cet attribut. Chaque liste est appelĂ©e un cluster. De nombreux algorithmes modernes utilisent des partitions pour dĂ©terminer si une dĂ©pendance est maintenue ou non, en se basant sur le lemme : La dĂ©pendance Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es. est maintenue si Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es.. Ici Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es. la partition est dĂ©signĂ©e et on utilise le concept de taille de partition — le nombre de clusters qu'elle contient. Les algorithmes utilisant des partitions, lorsqu'une dĂ©pendance est rompue, ajoutent des attributs supplĂ©mentaires dans la partie gauche de la dĂ©pendance, puis la recalculent en effectuant une opĂ©ration d'intersection des partitions. Cette opĂ©ration est appelĂ©e spĂ©cialisation dans les articles. Cependant, nous avons remarquĂ© que les partitions pour les dĂ©pendances qui ne seront maintenues qu'aprĂšs plusieurs tours de spĂ©cialisation peuvent ĂȘtre activement rĂ©utilisĂ©es, ce qui peut considĂ©rablement rĂ©duire le temps de fonctionnement des algorithmes, car l'opĂ©ration d'intersection est coĂ»teuse.

C'est pourquoi nous avons proposé une heuristique basée sur l'Entropie de Shannon et l'incertitude de Gini, ainsi que notre métrique, que nous avons appelée Entropie Inversée. C'est une légÚre modification de l'Entropie de Shannon et elle augmente à mesure que l'unicité de l'ensemble de données croßt. L'heuristique proposée est la suivante :

Recherche efficace de dépendances fonctionnelles dans les bases de données.

Ici Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es. — le degrĂ© d'unicitĂ© de la partition rĂ©cemment calculĂ©e Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es., et Recherche efficace de dĂ©pendances fonctionnelles dans les bases de donnĂ©es. est la mĂ©diane des degrĂ©s d'unicitĂ© pour certains attributs. Pour la mĂ©trique d'unicitĂ©, toutes les trois mĂ©triques dĂ©crites ci-dessus ont Ă©tĂ© testĂ©es. On peut Ă©galement noter que l'heuristique contient deux modificateurs. Le premier indique Ă  quel point la partition actuelle est proche de la clĂ© primaire et permet de mettre en cache dans une plus grande mesure les partitions qui sont Ă©loignĂ©es de la clĂ© potentielle. Le second modificateur permet de suivre l'occupation du cache et incite ainsi Ă  ajouter plus de partitions dans le cache lorsqu'il y a de la place libre. La rĂ©solution rĂ©ussie de cette tĂąche a permis d'accĂ©lĂ©rer l'algorithme PYRO de 10 Ă  40 % selon le jeu de donnĂ©es. Il convient de noter que l'algorithme PYRO est le plus performant dans ce domaine.

La figure ci-dessous montre les résultats de l'application de l'heuristique proposée par rapport à l'approche de base de mise en cache, qui est basée sur le lancer de dés. L'axe X est logarithmique.

Recherche efficace de dépendances fonctionnelles dans les bases de données.

Méthode alternative de stockage des partitions

Nous avons ensuite proposĂ© une mĂ©thode alternative de stockage des partitions. Les partitions reprĂ©sentent un ensemble de clusters, dans chacun desquels sont stockĂ©s les numĂ©ros de tuples ayant les mĂȘmes valeurs pour certains attributs. Ces clusters peuvent contenir de longues sĂ©quences de numĂ©ros de tuples, par exemple, si les donnĂ©es du tableau sont ordonnĂ©es. Par consĂ©quent, nous avons proposĂ© un schĂ©ma de compression pour le stockage des partitions, Ă  savoir le stockage par intervalles des valeurs dans les clusters de partition :

$$display$$pi(X) = {{underbrace{1, 2, 3, 4, 5}_{Premier~intervalle}, underbrace{7, 8}_{DeuxiĂšme~intervalle}, 10}}\ downarrow{Compression}\ pi(X) = {{underbrace{$, 1, 5}_{Premier~intervalle}, underbrace{7, 8}_{DeuxiĂšme~intervalle}, 10}}$$display$$

Cette méthode a pu réduire la consommation de mémoire lors de l'exécution de l'algorithme TANE de 1 à 25 %. L'algorithme TANE est un algorithme classique de découverte de dépendances fonctionnelles, il utilise des partitions pendant son fonctionnement. Dans le cadre de la pratique, c'est précisément l'algorithme TANE qui a été choisi, car il était beaucoup plus simple d'y intégrer le stockage par intervalles que, par exemple, dans PYRO, afin d'évaluer si l'approche proposée fonctionne. Les résultats obtenus sont présentés dans la figure ci-dessous. L'axe X est logarithmique.

Recherche efficace de dépendances fonctionnelles dans les bases de données.

Conférence ADBIS-2019

Suite aux rĂ©sultats de la recherche en septembre 2019, j'ai prĂ©sentĂ© un article Caching Intelligent pour une DĂ©couverte Efficace des DĂ©pendances Fonctionnelles Lors de la 23e ConfĂ©rence EuropĂ©enne sur les AvancĂ©es dans les Bases de DonnĂ©es et les SystĂšmes d'Information (ADBIS-2019), Bernhard Thalheim, une figure marquante dans le domaine des bases de donnĂ©es, a soulignĂ© mon travail. Les rĂ©sultats de ma recherche ont servi de base Ă  ma thĂšse de maĂźtrise en mathĂ©matiques appliquĂ©es Ă  l'UniversitĂ© d'État de Saint-PĂ©tersbourg, au cours de laquelle les deux approches proposĂ©es (la mise en cache et la compression) ont Ă©tĂ© intĂ©grĂ©es dans les deux algorithmes : TANE et PYRO. Ces rĂ©sultats ont montrĂ© que les approches proposĂ©es sont universelles, car une rĂ©duction significative de la mĂ©moire utilisĂ©e et du temps d'exĂ©cution des algorithmes a Ă©tĂ© observĂ©e dans les deux cas.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster