Andmete funktsionaalsete seoste otsimine rakendatakse erinevates andmeanalĂŒĂŒsi suundades: andmebaaside haldamine, andmete puhastus, andmebaaside pöördtöötlemine ja andmete uurimine. Me oleme juba avaldanud teavet nende seoste kohta. Anastasia Birillo ja Nikita Bobrov. Seekord Anastasia â selle aasta Computer Science Centeri lĂ”petaja â jagab selle töö arengut uurimistöö raames, mille ta keskusel kaitses.

Ălesande valik
CS keskuses Ă”ppimise ajal hakkasin sĂŒgavamalt uurima andmebaase, nimelt funktsionaalsete ja erinevate seoste otsimist. See teema oli seotud minu ĂŒlikooli kursuse teemaga, seega alustasin oma kursuse kĂ€igus erinevate andmebaaside seoste kohta artiklite lugemist. Kirjutasin ĂŒlevaate sellest valdkonnast â ĂŒhe oma esimestest. ingliskeelsena ja esitasin selle SEIM-2017 konverentsile. Olin vĂ€ga rÔÔmus, kui sain teada, et see siiski vastu vĂ”eti, ja otsustasin teemas sĂŒgavale minna. Kontseptsioon ise ei ole uus â seda on hakatud rakendama juba 90ndatel, kuid see leiab endiselt rakendust paljudes valdkondades.
Teisel Ôppesemestril alustatud teadusprojekti raames töötasin funktsionaalsete sÔltuvuste otsimise algoritmide tÀiustamise kallal. Töö kÀis koos SPbGU doktorandi Nikita Bobrovi ja JetBrains Researchi pÔhjal.
Funktsionaalsete sÔltuvuste otsimise arvutuslik keerukus
Peamine probleem on arvutuslik keerukus. VĂ”imalike minimaalseid ja mittetriviaalseid sĂ”ltuvusi piirab ĂŒlemine vÀÀrtus
, kus
â tabeli atribuutide arv. Algoritmide tööaeg sĂ”ltub mitte ainult atribuutide arvust, vaid ka ridade arvust. 90ndatel suudsid funktsionaalsete sĂ”ltuvuste leidmise algoritmid tavalistel lauaarvutitel hallata andmestikke, mis sisaldasid kuni 20 atribuuti ja kĂŒmneid tuhandeid ridu, mitme tunni jooksul. Kaasaegsed algoritmid, mis töötavad mitme tuumaga protsessoritel, tuvastavad sĂ”ltuvusi andmestikes, mis koosnevad sadade (kuni 200) atribuudist ja sadadest tuhandetest ridadest, enam-vĂ€hem sama ajaga. Sellegipoolest ei piisa sellest: selline aeg on enamikus reaalsetes rakendustes vastuvĂ”etamatu. SeetĂ”ttu töötasime vĂ€lja meetodeid olemasolevate algoritmide kiirendamiseks.
Vahepartitsioonide vahemÀlustruktuurid
Töö esimeses osas töötasime vÀlja vahemÀlustruktuurid algoritmide klassile, mis kasutavad vahepartitsioonide meetodit. Atribuudi vahepartitsioon esindab loendite kogumit, kus iga loend sisaldab rida numbreid, millel on antud atribuudi jaoks samad vÀÀrtused. Iga sellist loendit nimetatakse klastriks. Paljud kaasaegsed algoritmid kasutavad vahepartitsioone, et mÀÀrata, kas sÔltuvus on sÀilitatud vÔi mitte, jÀrgides, nimelt, lemma: SÔltuvus
sÀilitatakse, kui
. Siin
partitsioon on mÀÀratud ja kasutatakse partitsiooni suuruse mĂ”istet â klastrite arvu selles. Algoritmid, mis kasutavad partitsioone, lisavad sĂ”ltuvuse rikkumise korral vasakusse osasse tĂ€iendavad atribuudid, mille jĂ€rel nad seda arvutavad, teostades partitsioonide ristamise operatsiooni. Seda operatsiooni nimetatakse artiklites spetsialiseerimiseks. Kuid oleme mĂ€rganud, et sĂ”ltuvuste jaoks, mida hoitakse alles pĂ€rast mitmeid spetsialiseerimise rounde, saab partitsioone aktiivselt uuesti kasutada, mis vĂ”ib oluliselt vĂ€hendada algoritmide tööaega, kuna ristamisoperatsioon on kulukas.
SeetĂ”ttu pakkusime ĂŒlesande, mis pĂ”hineb Shannon'i entropial ja Ginny ebakindlusel, ning meie meetril, mida oleme nimetanud Tagasipöördumine Entropia. See on vĂ€ike modifikatsioon Shannon'i entropiast ja tĂ”useb koos andmekogumi ainulaadsuse suurenemisega. Pakutud heuristika on jĂ€rgmine:

Siit
â hiljuti arvutatud partitsiooni unikaalsuse aste
, ja
on unikaanide keskmine aste, mis on mÀÀratud ĂŒksikute atribuutide jaoks. Unikaalsuse mÔÔdikuna prooviti vĂ€lja kolme ĂŒlaltoodud mÔÔdikut. Samuti vĂ”ib tĂ€hele panna, et heuristikas on kaks modifikaatorit. Esimene nĂ€itab, kui lĂ€hedane on praegune partitsioon peamisele vĂ”tmele ja vĂ”imaldab suuremas ulatuses vahemĂ€lu sellele partitsioonile, mis on kaugel vĂ”imalusest vĂ”tme. Teine modifikaator vĂ”imaldab jĂ€lgida vahemĂ€lu kasutust ja seelĂ€bi stimuleerida rohkemate partitsioonide lisamist vahemĂ€llu, kui ruumi on piisavalt. Selle probleemi edukas lahendamine on vĂ”imaldanud kiirendada algoritmi PYRO 10-40% vĂ”rra sĂ”ltuvalt andmestikust. Tasub mĂ€rkida, et algoritm PYRO on sel alal kĂ”ige edukam.
Allolevalt jooniselt on nĂ€ha ettepaneku heuristika rakendamise tulemusi vĂ”rreldes aluseks oleva lĂ€henemisega, mis pĂ”hineb mĂŒndi viskamisel. X-telg on logaritmiline.

Alternatiivne viis partitsioonide salvestamiseks
SeejĂ€rel pakkusime alternatiivset viisi partisjonide salvestamiseks. Partisioonid moodustavad klastrite komplekti, kus igaĂŒhes hoitakse vahemike numbreid, millel on teatud atribuutide jĂ€rgi sarnased vÀÀrtused. Need klastrid vĂ”ivad sisaldada pikki jĂ€rjestusi numbrite kohta, nĂ€iteks juhul, kui tabelis andmed on jĂ€rjestatud. SeetĂ”ttu pakkusime kompressiooniskeemi partisjonide salvestamiseks, nimelt vahepealsete vÀÀrtuste salvestamist partisjoni klastrites:
$$display$$pi(X) = {{underbrace{1, 2, 3, 4, 5}_{Esimene~vahemik}, underbrace{7, 8}_{Teine~vahemik}, 10}}\ downarrow{Kompressioon}\ pi(X) = {{underbrace{$, 1, 5}_{Esimene~vahemik}, underbrace{7, 8}_{Teine~vahemik}, 10}}$$display$$
See meetod suutis vÀhendada mÀlu tarbimist TANE algoritmi töötamise ajal 1 kuni 25%. TANE algoritm on klassikaline algoritm FN leidmiseks ja kasutab oma töös partisjone. Praktika raames valiti just TANE algoritm, kuna vahepealsete vÀÀrtuste salvestamine oli sellesse integreerida oluliselt lihtsam kui nÀiteks PYRO-s, et hinnata, kas pakkutud lÀhenemine töötab. Saadud tulemused on esitatud alloleval joonisel. X telg on logaritmiline.

Konverents ADBIS-2019
Septembri 2019. aasta uurimistulemuste pÔhjal esitasin artikli 23. Euroopa andmebaaside ja infotehnoloogia konverentsil (ADBIS-2019). Kogu ettekande ajal mÀrkas tööd Bernhard Thalheim, olulise isiku andmebaaside valdkonnas. Uuringutulemused pÔhinesid minu magistritööl matemaatika ja mehaanika erialal SPbGU-s, mille kÀigus rakendati mÔlemad pakutud lÀhenemisviisid (vahemÀlu ja tihendamine) mÔlemas algoritmis: TANE ja PYRO. Tulemused nÀitasid, et pakutud lÀhenemisviisid on universaalsed, kuna mÔlema algoritmi puhul tÀheldati mÔlema lÀhenemise korral mÀrgatavat mÀlutarbimise vÀhenemist ja samuti mÀrgatavat algoritmide töötamise aja vÀhenemist.
Allikas: habr.com
