Epektibo nga pagpangita sa mga dependency nga magamit sa mga database

Ang pagpangita sa functional dependencies sa data gigamit sa lain-laing mga bahin sa data analysis: database management, data cleaning, database reverse engineering ug data exploration. Gipublikar na namo ang mahitungod sa mga dependency mismo usa ka artikulo Anastasia Birillo ug Nikita Bobrov. Niining higayona, si Anastasia, usa ka gradwado sa Computer Science Center karong tuiga, nakigbahin sa pag-uswag niini nga trabaho isip bahin sa buhat sa panukiduki nga iyang gidepensahan sa sentro.

Epektibo nga pagpangita sa mga dependency nga magamit sa mga database

Pagpili sa buluhaton

Samtang nagtuon sa CS center, nagsugod ako sa pagtuon sa mga database sa giladmon, nga mao, ang pagpangita alang sa functional ug difference dependencies. Kini nga hilisgutan adunay kalabutan sa hilisgutan sa akong kurso sa unibersidad, mao nga samtang nagtrabaho sa kurso, nagsugod ako sa pagbasa sa mga artikulo bahin sa lainlaing mga dependency sa mga database. Nagsulat ako usa ka pagrepaso sa kini nga lugar - usa sa akong una mga artikulo sa English ug gisumite kini sa komperensya sa SEIM-2017. Nalipay kaayo ko sa dihang nahibal-an nako nga gidawat siya pagkahuman, ug nakahukom nga mag-deve sa hilisgutan. Ang konsepto mismo dili bag-o - nagsugod kini nga gigamit kaniadtong 90s, apan bisan karon gigamit kini sa daghang mga lugar.

Atol sa akong ikaduhang semestre sa center, nagsugod ko og research project aron mapaayo ang mga algorithm para sa pagpangita og functional dependencies. Gitrabaho niya kini kauban ang estudyante nga gradwado sa St. Petersburg State University nga si Nikita Bobrov sa JetBrains Research.

Computational complexity sa pagpangita alang sa functional dependencies

Ang nag-unang problema mao ang computational complexity. Ang gidaghanon sa posible nga gamay ug dili trivial nga mga dependency limitado sa ibabaw sa kantidad Epektibo nga pagpangita sa mga dependency nga magamit sa mga databasediin Epektibo nga pagpangita sa mga dependency nga magamit sa mga database - gidaghanon sa mga kinaiya sa lamesa. Ang oras sa pag-operate sa mga algorithm nagdepende dili lamang sa gidaghanon sa mga hiyas, kondili usab sa gidaghanon sa mga laray. Sa dekada 90, ang mga algorithm sa pagpangita sa balaod sa federal sa usa ka regular nga desktop PC makaproseso sa mga set sa datos nga adunay sulod nga 20 ka mga kinaiya ug napulo ka libo nga mga laray sulod sa pipila ka oras. Ang mga modernong algorithm nga nagdagan sa mga multi-core nga mga processor nakamatikod sa mga dependency alang sa mga set sa datos nga naglangkob sa gatusan ka mga hiyas (hangtod sa 200) ug gatusan ka libo nga mga laray sa halos parehas nga oras. Bisan pa, kini dili igo: ang ingon nga panahon dili madawat alang sa kadaghanan sa mga aplikasyon sa tinuud nga kalibutan. Busa, naghimo kami og mga pamaagi aron mapadali ang kasamtangan nga mga algorithm.

Mga laraw sa pag-cache alang sa mga interseksyon sa partisyon

Sa una nga bahin sa trabaho, naghimo kami mga laraw sa pag-cache alang sa usa ka klase sa mga algorithm nga naggamit sa pamaagi sa intersection sa partition. Ang partition para sa usa ka attribute kay usa ka set sa mga lista, diin ang matag lista adunay mga numero sa linya nga adunay parehas nga kantidad alang sa gihatag nga attribute. Ang matag ingon nga lista gitawag nga cluster. Daghang modernong mga algorithm ang naggamit sa mga partisyon aron mahibal-an kung ang usa ka dependency gihuptan o wala, nga mao, sila nagsunod sa lemma: Dependency Epektibo nga pagpangita sa mga dependency nga magamit sa mga database gipahigayon kon Epektibo nga pagpangita sa mga dependency nga magamit sa mga database. Dinhi Epektibo nga pagpangita sa mga dependency nga magamit sa mga database usa ka partisyon ang gitudlo ug ang konsepto sa gidak-on sa partisyon gigamit - ang gidaghanon sa mga pungpong niini. Ang mga algorithm nga naggamit sa mga partisyon, kung ang dependency nalapas, makadugang dugang nga mga hiyas sa wala nga bahin sa dependency, ug dayon kalkulahon kini pag-usab, nga naghimo sa operasyon sa intersection sa mga partisyon. Kini nga operasyon gitawag nga espesyalisasyon sa mga artikulo. Apan among namatikdan nga ang mga partisyon alang sa mga dependency nga magpabilin lamang human sa pipila ka hugna sa espesyalisasyon mahimong aktibong magamit pag-usab, nga makapakunhod pag-ayo sa oras sa pagdagan sa mga algorithm, tungod kay ang operasyon sa intersection mahal.

Busa, among gisugyot ang usa ka heuristic base sa Shannon Entropy ug Ginny Uncertainty, ingon man sa among metric, nga among gitawag nga Reverse Entropy. Kini usa ka gamay nga pagbag-o sa Shannon Entropy ug nagdugang samtang ang pagkatalagsaon sa data set nagdugang. Ang gisugyot nga heuristic mao ang mosunod:

Epektibo nga pagpangita sa mga dependency nga magamit sa mga database

kini mao ang Epektibo nga pagpangita sa mga dependency nga magamit sa mga database β€” ang-ang sa pagkatalagsaon sa bag-o lang nakalkula nga partisyon Epektibo nga pagpangita sa mga dependency nga magamit sa mga databaseug Epektibo nga pagpangita sa mga dependency nga magamit sa mga database mao ang median sa mga ang-ang sa pagkatalagsaon alang sa indibidwal nga mga hiyas. Ang tanan nga tulo nga mga sukatan nga gihulagway sa ibabaw gisulayan ingon usa ka sukatan sa pagkatalagsaon. Mamatikdan usab nimo nga adunay duha ka modifier sa heuristic. Ang una nagpakita kung unsa ka duol ang kasamtangan nga partisyon sa panguna nga yawe ug nagtugot kanimo sa pag-cache sa mas dako nga gidak-on sa mga partisyon nga layo sa potensyal nga yawe. Ang ikaduha nga modifier nagtugot kanimo sa pag-monitor sa pag-okupar sa cache ug sa ingon nag-awhag sa pagdugang sa dugang nga mga partisyon sa cache kung adunay libre nga luna. Ang malampuson nga solusyon niini nga problema nagtugot kanamo sa pagpadali sa PYRO algorithm sa 10-40%, depende sa dataset. Angay nga hinumdoman nga ang PYRO algorithm mao ang labing malampuson sa kini nga lugar.

Sa numero sa ubos imong makita ang mga resulta sa pagpadapat sa gisugyot nga heuristic itandi sa usa ka batakang coin-flip caching nga pamaagi. Ang X axis kay logarithmic.

Epektibo nga pagpangita sa mga dependency nga magamit sa mga database

Usa ka alternatibo nga paagi sa pagtipig sa mga partisyon

Gisugyot dayon namo ang alternatibong paagi sa pagtipig sa mga partisyon. Ang mga partisyon usa ka hugpong sa mga pungpong, nga ang matag usa nagtipig daghang mga tuple nga adunay parehas nga kantidad alang sa pipila nga mga kinaiya. Kini nga mga pungpong mahimong adunay tag-as nga mga han-ay sa mga numero sa tuple, pananglitan kung ang datos sa usa ka lamesa gi-order. Busa, gisugyot namo ang usa ka compression scheme alang sa pagtipig sa mga partisyon, nga mao ang interval storage sa mga kantidad sa mga cluster sa mga partisyon:

$$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$$

Kini nga pamaagi nakahimo sa pagpakunhod sa konsumo sa memorya sa panahon sa operasyon sa TANE algorithm gikan sa 1 ngadto sa 25%. Ang TANE algorithm usa ka klasiko nga algorithm alang sa pagpangita sa federal nga mga balaod; kini naggamit mga partisyon sa panahon sa pagtrabaho niini. Isip kabahin sa praktis, ang TANE algorithm gipili, tungod kay mas sayon ​​​​ang pagpatuman sa interval storage niini kay sa, pananglitan, sa PYRO aron masusi kung ang gisugyot nga pamaagi molihok. Ang mga resulta nga nakuha gipresentar sa hulagway sa ubos. Ang X axis kay logarithmic.

Epektibo nga pagpangita sa mga dependency nga magamit sa mga database

Komperensya ADBIS-2019

Pinasukad sa mga resulta sa panukiduki, kaniadtong Setyembre 2019 nagpatik ako usa ka artikulo Smart Caching para sa Episyente nga Functional Dependency Discovery sa 23rd European Conference on Advances in Databases and Information Systems (ADBIS-2019). Atol sa presentasyon, ang trabaho namatikdan ni Bernhard Thalheim, usa ka mahinungdanong tawo sa natad sa mga database. Ang mga resulta sa panukiduki nahimong basehan sa akong disertasyon sa master's degree sa mathematics ug mechanics sa St. Petersburg State University, diin ang duha ka gisugyot nga mga pamaagi (caching ug compression) gipatuman sa duha ka algorithm: TANE ug PYRO. Dugang pa, gipakita sa mga resulta nga ang gisugyot nga mga pamaagi kay unibersal, tungod kay sa parehas nga mga algorithm, nga adunay parehas nga mga pamaagi, usa ka hinungdanon nga pagkunhod sa konsumo sa panumduman ang naobserbahan, ingon man usa ka hinungdanon nga pagkunhod sa oras sa pag-operate sa mga algorithm.

Source: www.habr.com

Idugang sa usa ka comment