Fannt effizient funktionell Ofhängegkeeten an Datenbanken

Funktionell Ofhängegkeeten an Daten ze fannen gëtt a verschiddene Beräicher vun der Dateanalyse benotzt: Datebankverwaltung, Datereinigung, Datebank ëmgedréint Ingenieur an Datefuerschung. Mir hu schonn iwwer d'Ofhängegkeete selwer publizéiert Artikel Anastasia Birillo an Nikita Bobrov. Dës Kéier deelt d'Anastasia, e Graduéierter vum Computer Science Center dëst Joer, d'Entwécklung vun dëser Aarbecht als Deel vun der Fuerschungsaarbecht, déi se am Zentrum verteidegt huet.

Fannt effizient funktionell Ofhängegkeeten an Datenbanken

Aufgab Auswiel

Wärend ech am CS-Zentrum studéiert hunn, hunn ech ugefaang Datenbanken an Déift ze studéieren, nämlech d'Sich no funktionell an Ënnerscheedabhängegkeeten. Dëst Thema war am Zesummenhang mat dem Thema vu menge Coursen op der Uni, also wärend ech un de Coursen geschafft hunn, hunn ech ugefaang Artikelen iwwer verschidde Ofhängegkeeten an Datenbanken ze liesen. Ech hunn eng Iwwerpréiwung vun dësem Gebitt geschriwwen - ee vun mengen éischten Artikelen op Englesch an huet et op d'SEIM-2017 Konferenz ofginn. Ech war ganz frou, wéi ech erausfonnt hunn, datt si schliisslech akzeptéiert ass, an decidéiert méi déif an d'Thema ze verdéiwen. D'Konzept selwer ass net nei - et huet ugefaang an den 90er Joren benotzt ze ginn, awer och elo gëtt et a ville Beräicher benotzt.

Wärend mengem zweete Semester am Zentrum hunn ech e Fuerschungsprojet ugefaang fir Algorithmen ze verbesseren fir funktionell Ofhängegkeeten ze fannen. Si geschafft op et zesumme mat St Petersburg State University Graduéierter Student Nikita Bobrov um JetBrains Fuerschung.

Berechnungskomplexitéit vun der Sich no funktionnelle Ofhängegkeeten

Den Haaptproblem ass computational Komplexitéit. D'Zuel vu méigleche minimalen an net-triviale Ofhängegkeete gëtt uewen duerch de Wäert limitéiert Fannt effizient funktionell Ofhängegkeeten an Datenbankenwou Fannt effizient funktionell Ofhängegkeeten an Datenbanken - Zuel vun Dësch Attributer. D'Betribszäit vun den Algorithmen hänkt net nëmmen vun der Unzuel vun den Attributer of, awer och vun der Unzuel vun de Reihen. An den 90er Joren, Féderalen Gesetz Sich Algorithmen op engem normale Desktop PC konnten Datesets mat bis zu 20 Attributer an Zéngdausende vu Reihen a bis zu e puer Stonnen veraarbecht. Modern Algorithmen, déi op Multi-Core Prozessoren lafen, erkennen Ofhängegkeete fir Datesets, déi aus Honnerte vun Attributer (bis zu 200) an Honnerte vun Dausende vu Reihen an ongeféier gläichzäiteg besteet. Wéi och ëmmer, dëst ass net genuch: sou eng Zäit ass inakzeptabel fir déi meescht real-Welt Uwendungen. Dofir hu mir Approche entwéckelt fir existent Algorithmen ze beschleunegen.

Caching Schemae fir Partition Kräizungen

Am éischten Deel vun der Aarbecht hu mir Caching Schemae fir eng Klass vun Algorithmen entwéckelt, déi d'Partitionskräizungsmethod benotzen. Eng Partition fir en Attribut ass eng Rei vu Lëschten, wou all Lëscht Zeilnummere mat de selwechte Wäerter fir e bestëmmten Attribut enthält. All esou Lëscht gëtt e Cluster genannt. Vill modern Algorithmen benotzen Partitionen fir ze bestëmmen ob eng Ofhängegkeet ofgehale gëtt oder net, nämlech hale se un de Lemma: Ofhängegkeet Fannt effizient funktionell Ofhängegkeeten an Datenbanken ofgehalen wann Fannt effizient funktionell Ofhängegkeeten an Datenbanken. Hei Fannt effizient funktionell Ofhängegkeeten an Datenbanken eng Partition gëtt bezeechent an d'Konzept vun der Partitiongréisst gëtt benotzt - d'Zuel vun de Stärekéip dran. Algorithmen déi Partitionen benotzen, wann d'Ofhängegkeet verletzt gëtt, addéiere zousätzlech Attributer op der lénker Säit vun der Ofhängegkeet, an berechent se dann, duerch d'Operatioun vun der Kräizung vun de Partitionen. Dës Operatioun gëtt Spezialisatioun an den Artikelen genannt. Awer mir hu gemierkt datt Partitionen fir Ofhängegkeeten, déi nëmmen no e puer Ronnen vun der Spezialisatioun erhale bleiwen, aktiv erëmbenotzt kënne ginn, wat d'Laafzäit vun den Algorithmen wesentlech reduzéiere kann, well d'Kräizungsoperatioun deier ass.

Dofir hu mir eng Heuristik proposéiert baséiert op Shannon Entropy a Ginny Uncertainty, souwéi eis Metrik, déi mir Reverse Entropy genannt hunn. Et ass eng liicht Ännerung vun der Shannon Entropie a geet erop wéi d'Eenzegaartegkeet vum Datesaz eropgeet. Déi proposéiert Heuristik ass wéi follegt:

Fannt effizient funktionell Ofhängegkeeten an Datenbanken

et ass Fannt effizient funktionell Ofhängegkeeten an Datenbanken - Grad vun Eenzegaartegkeet vun der kierzlech berechent Partition Fannt effizient funktionell Ofhängegkeeten an Datenbankenan Fannt effizient funktionell Ofhängegkeeten an Datenbanken ass de Median vun de Grad vun der Eenzegaartegkeet fir eenzel Attributer. All dräi hei uewen beschriwwen Metriken goufen als Eenzegaartegkeetsmetrik getest. Dir kënnt och bemierken datt et zwee Modifizéierer an der Heuristik sinn. Déi éischt weist wéi no der aktueller Partition un de primäre Schlëssel ass an erlaabt Iech zu engem gréissere Mooss déi Partitionen ze cache, déi wäit vum potenzielle Schlëssel sinn. Den zweeten Modifikateur erlaabt Iech d'Cachebesetzung ze iwwerwaachen an doduerch encouragéiert méi Partitionen un de Cache ze addéieren wann fräi Plaz verfügbar ass. Déi erfollegräich Léisung vun dësem Problem huet eis erlaabt de PYRO Algorithmus ëm 10-40% ze beschleunegen, jee no der Datesaz. Et ass derwäert ze notéieren datt de PYRO Algorithmus am meeschte Succès an dësem Beräich ass.

An der Figur hei drënner kënnt Dir d'Resultater vun der Uwendung vun der proposéierter Heuristik gesinn am Verglach mat enger Basis Mënz-Flip Caching Approche. D'X-Achs ass logarithmesch.

Fannt effizient funktionell Ofhängegkeeten an Datenbanken

Eng alternativ Manéier fir Partitionen ze späicheren

Mir hunn dunn eng alternativ Manéier proposéiert fir Partitionen ze späicheren. Partitionen sinn eng Rei vu Stärekéip, déi jidderee vun deenen Zuelen vun Tupelen mat identesche Wäerter fir bestëmmten Attributer späichert. Dës Stärekéip kënne laang Sequenzen vun Tupelzuelen enthalen, zum Beispill wann d'Donnéeën an enger Tabell bestallt sinn. Dofir hu mir e Kompressiounsschema proposéiert fir Partitionen ze späicheren, nämlech Intervalllagerung vu Wäerter a Cluster vu Partitionen:

$$display$$pi(X) = {{Underbrace{1, 2, 3, 4, 5}_{First Interval}, Underbrace{7, 8}_{Second Interval}, 10}}\ downarrow{Compression} \ pi(X) = {{Underbrace{$, 1, 5}_{First~Interval}, Underbrace{7, 8}_{Second~Interval}, 10}}$$display$$

Dës Method konnt de Gedächtnisverbrauch während der Operatioun vum TANE Algorithmus vun 1 op 25% reduzéieren. Den TANE Algorithmus ass e klassesche Algorithmus fir no Bundesgesetzer ze sichen, et benotzt Partitionen wärend senger Aarbecht. Als Deel vun der Praxis gouf den TANE Algorithmus gewielt, well et vill méi einfach war, Intervalllagerung dran ëmzesetzen wéi zum Beispill am PYRO fir ze evaluéieren ob déi proposéiert Approche funktionnéiert. D'Resultater kritt ginn an der Figur hei ënnendrënner presentéiert. D'X-Achs ass logarithmesch.

Fannt effizient funktionell Ofhängegkeeten an Datenbanken

Konferenz ADBIS-2019

Baséierend op d'Resultater vun der Fuerschung, am September 2019 hunn ech en Artikel publizéiert Smart Caching fir effizient funktionell Ofhängegkeet Entdeckung op der 23. Europäescher Konferenz iwwer Fortschrëtter an den Datenbanken an Informatiounssystemer (ADBIS-2019). Wärend der Presentatioun gouf d'Aarbecht vum Bernhard Thalheim, enger bedeitender Persoun am Beräich vun den Datenbanken, bemierkt. D'Fuerschungsresultater hunn d'Basis vu menger Dissertatioun an der Maîtrise an der Mathematik a Mechanik op der St Petersburg State University geformt, während deenen béid proposéiert Approche (Caching a Kompressioun) a béid Algorithmen ëmgesat goufen: TANE a PYRO. Ausserdeem hunn d'Resultater gewisen datt déi proposéiert Approche universell sinn, well op béide Algorithmen, mat béide Approche, eng bedeitend Reduktioun vum Gedächtnisverbrauch observéiert gouf, souwéi eng bedeitend Reduktioun vun der Operatiounszäit vun den Algorithmen.

Source: will.com

Setzt e Commentaire