Jwenn depandans fonksyonèl nan done yo itilize nan divès domèn analiz done: jesyon baz done, netwayaj done, jeni ranvèse baz done ak eksplorasyon done. Nou te deja pibliye sou depandans yo tèt yo
Seleksyon travay
Pandan m t ap etidye nan sant CS, mwen te kòmanse etidye baz done an pwofondè, sètadi rechèch la pou depandans fonksyonèl ak diferans. Sijè sa a te gen rapò ak sijè a nan kou mwen an nan inivèsite a, kidonk pandan y ap travay sou kou a, mwen te kòmanse li atik sou divès depandans nan baz done. Mwen te ekri yon revizyon nan zòn sa a - youn nan premye mwen
Pandan dezyèm semès mwen an nan sant la, mwen te kòmanse yon pwojè rechèch pou amelyore algoritm pou jwenn depandans fonksyonèl. Li te travay sou li ansanm ak etidyan gradye nan Inivèsite Leta St. Petersburg Nikita Bobrov nan JetBrains Research.
Konpleksite enfòmatik nan rechèch pou depandans fonksyonèl
Pwoblèm prensipal la se konpleksite enfòmatik. Kantite depandans posib minimòm ak ki pa trivial limite pi wo a pa valè a kote - kantite atribi tab la. Tan an fonksyone nan algoritm yo depann pa sèlman sou kantite atribi, men tou, sou kantite ranje. Nan ane 90 yo, algorithm rechèch lalwa federal sou yon òdinatè biwo regilye te kapab trete seri done ki genyen jiska 20 atribi ak dè dizèn de milye ranje nan jiska plizyè èdtan. Algoritm modèn k ap kouri sou processeur milti-nwayo detekte depandans pou seri done ki gen plizyè santèn atribi (jiska 200) ak dè santèn de milye ranje nan apeprè menm tan an. Sepandan, sa a se pa ase: yon tan konsa se akseptab pou pifò aplikasyon nan mond reyèl la. Se poutèt sa, nou devlope apwòch akselere algoritm ki egziste deja.
Caching rapid pou entèseksyon patisyon yo
Nan premye pati travay la, nou devlope plan kachèt pou yon klas algoritm ki itilize metòd entèseksyon patisyon an. Yon patisyon pou yon atribi se yon seri lis, kote chak lis gen nimewo liy ak menm valè yo pou yon atribi bay yo. Chak lis sa yo rele yon gwoup. Anpil algoritm modèn itilize patisyon pou detèmine si yon depandans fèt oswa ou pa, sètadi, yo respekte lem nan: Depandans. ki te fèt si . Isit la yo deziyen yon patisyon epi yo itilize konsèp gwosè patisyon an - kantite grap ki ladan l. Algoritm ki sèvi ak patisyon, lè depandans la vyole, ajoute atribi adisyonèl sou bò gòch nan depandans lan, ak Lè sa a, rekalkile li, fè operasyon an nan entèseksyon nan patisyon. Operasyon sa a rele espesyalizasyon nan atik yo. Men, nou remake ke patisyon pou depandans ki ta sèlman kenbe apre kèk jij nan espesyalizasyon ka aktivman reyitilize, sa ki ka siyifikativman diminye tan an kouri nan algoritm yo, depi operasyon an entèseksyon se chè.
Se poutèt sa, nou te pwopoze yon euristik ki baze sou Shannon Entropi ak Ginny Uncertainty, osi byen ke metrik nou an, ke nou te rele Reverse Entropy. Li se yon ti modifikasyon nan Shannon Entropy ak ogmante kòm inik nan seri done a ogmante. Euristik pwopoze a se jan sa a:
Isit la - degre nan singularité nan patisyon an dènyèman kalkile Ak se medyàn degre singularité pou atribi endividyèl yo. Tout twa paramèt ki dekri pi wo a yo te teste kòm yon metrik singularité. Ou ka remake tou ke gen de modifye nan eristik la. Premye a endike ki jan fèmen patisyon aktyèl la ak kle prensipal la epi li pèmèt ou kachèt nan yon pi gwo mezi patisyon sa yo ki lwen kle potansyèl la. Dezyèm modifye a pèmèt ou kontwole lokatè kachèt epi kidonk ankouraje ajoute plis patisyon nan kachèt la si espas gratis ki disponib. Solisyon an siksè nan pwoblèm sa a pèmèt nou pi vit algorithm PYRO a pa 10-40%, tou depann de dataset la. Li se vo anyen ke algorithm PYRO a ki gen plis siksè nan zòn sa a.
Nan figi ki anba a ou ka wè rezilta yo nan aplike euristik yo pwopoze a konpare ak yon apwòch debaz pyès monnen-flip kachèt. Aks X la se logaritmik.
Yon fason altènatif nan magazen Partitions
Lè sa a, nou pwopoze yon fason altènatif nan magazen Partitions. Patisyon yo se yon seri grap, chak nan ki estoke kantite tuples ak valè ki idantik pou sèten atribi. Gwoup sa yo ka genyen sekans long nimewo tuple, pou egzanp si done yo nan yon tablo yo bay lòd. Se poutèt sa, nou pwopoze yon konplo konpresyon pou estoke patisyon, sètadi depo entèval nan valè nan grap patisyon:
$$display$$pi(X) = {{anbrase{1, 2, 3, 4, 5}_{Premye entèval}, underbrace{7, 8}_{Dezyèm entèval}, 10}}\downarrow{ Konpresyon} \ pi(X) = {{anbrase{$, 1, 5}_{Premye ~entèval}, anba bra{7, 8}_{Dezyèm ~entèval}, 10}}$$montre$$
Metòd sa a te kapab diminye konsomasyon memwa pandan operasyon an nan algorithm nan TANE soti nan 1 a 25%. Algorithm TANE a se yon algorithm klasik pou chèche lwa federal; li itilize patisyon pandan travay li. Kòm yon pati nan pratik la, yo te chwazi algorithm TANE a, paske li te pi fasil aplike depo entèval ladan l pase, pou egzanp, nan PYRO yo nan lòd yo evalye si apwòch yo pwopoze a ap travay. Rezilta yo jwenn yo prezante nan figi ki anba a. Aks X la se logaritmik.
Konferans ADBIS-2019
Dapre rezilta rechèch la, nan mwa septanm 2019 mwen pibliye yon atik
Sous: www.habr.com