Kërkimi efektiv i varësive funksionale në bazat e të dhënave.

KĂ«rkimi i varĂ«sive funksionale nĂ« tĂ« dhĂ«na zbatohet nĂ« drejtim tĂ« ndryshĂ«m tĂ« analizĂ«s sĂ« tĂ« dhĂ«nave: menaxhimi i bazave tĂ« tĂ« dhĂ«nave, pastrimi i tĂ« dhĂ«nave, inxhinieria revers e bazave tĂ« tĂ« dhĂ«nave dhe eksplorimi i tĂ« dhĂ«nave. Ne tashmĂ« kemi publikuar pĂ«r vetĂ« varĂ«sitĂ«. artikull Anastasia Birillo dhe Nikita Bobrov. KĂ«tĂ« herĂ«, Anastasia — njĂ« diplomante e QendrĂ«s pĂ«r Shkencat e Kompjuterit tĂ« kĂ«tij viti — ndan zhvillimin e kĂ«tij punimi brenda NIR, qĂ« ajo e mbrojti nĂ« qendĂ«r.

Kërkimi efektiv i varësive funksionale në bazat e të dhënave.

Zgjedhja e detyrës

GjatĂ« studimeve nĂ« qendrĂ«n CS, fillova tĂ« studioj nĂ« thellĂ«si bazat e tĂ« dhĂ«nave, nĂ« veçanti, kĂ«rkimin e varĂ«sive funksionale dhe diferenciale. Kjo temĂ« ishte e lidhur me temĂ«n e kursit tim nĂ« universitet, kĂ«shtu qĂ« gjatĂ« punĂ«s mbi kursin fillova tĂ« lexoj artikuj pĂ«r varĂ«si tĂ« ndryshme nĂ« bazat e tĂ« dhĂ«nave. Kam shkruar njĂ« pĂ«rmbledhje tĂ« kĂ«saj fushe — njĂ« nga punimet e mia tĂ« para. artikull nĂ« gjuhĂ«n angleze dhe e dĂ«rgova nĂ« konferencĂ«n SEIM-2017. Ishte njĂ« kĂ«naqĂ«si e madhe kur mĂ«sova se ishte pranuar, dhe vendosa tĂ« thellohem nĂ« temĂ«. Koncepti vetĂ« nuk Ă«shtĂ« i ri — u aplikua pĂ«r herĂ« tĂ« parĂ« nĂ« vitet '90, por ende gjen pĂ«rdorim nĂ« shumĂ« fusha.

Në semestrin e dytë të studimeve në qendër, fillova një projekt kërkimor për përmirësimin e algoritmeve të kërkimit të varësive funksionale. Punova mbi të sëbashku me doktorantin e SPbGU, Nikita Bobrov, në bazën e JetBrains Research.

Kostoja kompjuterike e kërkimit të varësive funksionale.

Problemi kryesor — kostoja kompjuterike. Numri maksimal i varĂ«sive minimale dhe jo-triviale Ă«shtĂ« i kufizuar me vlerĂ«n KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave.index KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave. — numri i atributeve tĂ« tabelĂ«s. Koha e ekzekutimit tĂ« algoritmeve varet jo vetĂ«m nga numri i atributeve, por edhe nga numri i rreshtave. NĂ« vitet '90, algoritmet pĂ«r kĂ«rkimin e varĂ«sive funksionale nĂ« njĂ« PC tĂ« zakonshĂ«m mund tĂ« pĂ«rpunonin grupe tĂ« dhĂ«nash qĂ« pĂ«rmbanin deri nĂ« 20 atribute dhe dhjetra mijĂ«ra rreshta, pĂ«r disa orĂ«. Algoritmet moderne, qĂ« punojnĂ« nĂ« procesorĂ« me shumĂ« bĂ«rthama, zbulojnĂ« varĂ«si pĂ«r grupe tĂ« dhĂ«nash qĂ« pĂ«rmbajnĂ« qindra atribute (deri nĂ« 200) dhe qindra mijĂ«ra rreshta, afĂ«rsisht nĂ« tĂ« njĂ«jtin kohĂ«. MegjithatĂ«, kjo nuk Ă«shtĂ« e mjaftueshme: njĂ« kohĂ« e tillĂ« Ă«shtĂ« e papranueshme pĂ«r shumicĂ«n e aplikacioneve reale. Prandaj, ne zhvilluam qasje pĂ«r tĂ« pĂ«rshpejtuar algoritmet ekzistuese.

Skemat e ruajtjes për ndërprerjen e particioneve.

NĂ« pjesĂ«n e parĂ« tĂ« punĂ«s, ne zhvilluam skemat e caching pĂ«r klasĂ«n e algoritmeve qĂ« pĂ«rdorin metodĂ«n e ndĂ«rprerjes sĂ« particioneve. NjĂ« particion pĂ«r njĂ« atribut pĂ«rfaqĂ«son njĂ« grup listash, ku secila listĂ« pĂ«rmban numrat e rreshtave me vlera tĂ« njĂ«jta pĂ«r kĂ«tĂ« atribut. Çdo listĂ« e tillĂ« quhet klaster. ShumĂ« algoritme bashkĂ«kohore pĂ«rdorin partitĂ« pĂ«r tĂ« pĂ«rcaktuar nĂ«se mbahen varĂ«si apo jo, dhe ata specifikojnĂ« lemĂ«n: VarĂ«sia KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave. ruhet nĂ«se KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave.. KĂ«tu KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave. pĂ«rcaktohet particioni dhe pĂ«rdoret koncepti i madhĂ«sisĂ« sĂ« particionit - numri i klastereve nĂ« tĂ«. Algoritmet qĂ« pĂ«rdorin partitĂ«, kur varĂ«sia Ă«shtĂ« shkelur, shtojnĂ« atributet shtesĂ« nĂ« pjesĂ«n e majtĂ« tĂ« varĂ«sisĂ«, pas sĂ« cilĂ«s e ripĂ«rcaktojnĂ« atĂ« duke kryer operacionin e ndĂ«rprerjes sĂ« particioneve. Ky operacion nĂ« artikuj quhet specializim. Por ne vĂ«rejtem se partitĂ« pĂ«r varĂ«si qĂ« do tĂ« mbahen vetĂ«m pas disa raundesh specializimi, mund tĂ« pĂ«rdoren aktivisht, çka mund tĂ« reduktojĂ« ndjeshĂ«m kohĂ«n e punĂ«s sĂ« algoritmeve, pasi operacioni i ndĂ«rprerjes Ă«shtĂ« i shtrenjtĂ«.

Prandaj ne propozoi një heuristikë, e cila bazohet në Entropinë e Shannon-it dhe pasigurinë e Ginny-t, si dhe në metrikën tonë që e quam Entropi e Kundërt. Ajo është një modifikim i vogël i Entropisë së Shannon-it dhe rritet ndërsa rritet unikësia e grupit të dhënave. Heuristika e propozuar duket si më poshtë:

Kërkimi efektiv i varësive funksionale në bazat e të dhënave.

KĂ«tu KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave. — niveli i unikĂ«sisĂ« sĂ« particionit qĂ« sapo Ă«shtĂ« llogaritur KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave., ndĂ«rsa KĂ«rkimi efektiv i varĂ«sive funksionale nĂ« bazat e tĂ« dhĂ«nave. Ă«shtĂ« njĂ« metrikĂ« mediane pĂ«r shkallĂ«n e unikateve pĂ«r atribute tĂ« veçanta. Si metrikĂ« unikate janĂ« provuar tĂ« tre metrikat e pĂ«rmendura mĂ« lart. Gjithashtu, mund tĂ« vihet re se nĂ« heuristikĂ« ka dy modifikatorĂ«. I pari tregon se sa afĂ«r Ă«shtĂ« ndarja aktuale me çelĂ«sin primar dhe lejon qĂ« tĂ« cache-ojmĂ« mĂ« shumĂ« ato ndarjet qĂ« janĂ« larg çelĂ«sit potencial. Modifikatori i dytĂ« lejon tĂ« monitorohet ngarkesa e cache-it dhe kĂ«shtu inkurajon shtimin e mĂ« shumĂ« ndarjesh nĂ« cache kur ka hapĂ«sirĂ« tĂ« lirĂ«. Zgjidhja e suksesshme e kĂ«tij problemi ka lejuar tĂ« pĂ«rshpejtohet algoritmi PYRO me 10-40% varĂ«sisht nga dataset-i. Duhet vlerĂ«suar se algoritmi PYRO Ă«shtĂ« mĂ« i suksesshmi nĂ« kĂ«tĂ« fushĂ«.

Në diagramin më poshtë mund të shihni rezultatet e aplikimit të heuristikës së propozuar në krahasim me qasjen bazë të cache-it, e cila bazohet në hedhjen e një monedhe. Osi X është logaritmik.

Kërkimi efektiv i varësive funksionale në bazat e të dhënave.

Mënyra alternative e ruajtjes së ndarjeve

Thenë ne propozuam një mënyrë alternative për ruajtjen e ndarjeve. Ndarjet përfaqësojnë një grup klasteresh, ku secili përmban numrat e tuple-ve me vlera të njëjta për atribute të caktuara. Këta klasterë mund të përmbajnë sekuenca të gjata numrash të tuple-ve, për shembull, nëse të dhënat në tabelë janë të renditura. Prandaj, ne propozuam një skemë kompresimi për ruajtjen e ndarjeve, e cila është ruajtja intervalore e vlerave në klasterët e ndarjeve:

$$display$$pi(X) = {{underbrace{1, 2, 3, 4, 5}_{Intervalli~e~parë}, underbrace{7, 8}_{Intervalli~i~dytë}, 10}}\ downarrow{Kompresimi}\ pi(X) = {{underbrace{$, 1, 5}_{Intervalli~e~parë}, underbrace{7, 8}_{Intervalli~i~dytë}, 10}}$$display$$

Kjo metodë arriti të zvogëlojë konsumimin e memories gjatë punës së algoritmit TANE nga 1 deri në 25%. Algoritmi TANE është një algoritëm klasik për zbuluar FD-të, ai përdor ndarjet gjatë procesit të tij. Për praktikën, u zgjodh konkretisht algoritmi TANE, pasi implementimi i ruajtjes intervalore ishte shumë më i lehtë se, për shembull, në PYRO, për të vlerësuar nëse qasja e propozuar funksionon. Rezultatet e marra paraqiten në diagramin më poshtë. Osi X është logaritmik.

Kërkimi efektiv i varësive funksionale në bazat e të dhënave.

Konferenca ADBIS-2019

Sipas rezultatave të studimit në Shtator 2019, unë kam prezantuar një artikull Caching i mençur për zbuluar varësi funksionale efiçente në konferencën 23rd European Conference on Advances in Databases and Information Systems (ADBIS-2019). Gjatë fjalës së tij, punimin e përmendi Bernhard Thalheim, një personazh i rëndësishëm në fushën e bazave të të dhënave. Rezultatet e kërkimeve shërbyen si bazë për disertacionin tim në masterin e matematikës dhe mekanikës në SPbGU, gjatë të cilit të dy qasjet e sugjeruara (kapja në cache dhe kompresimi) u implementuan në të dy algoritmet: TANE dhe PYRO. Në këtë rast, rezultatet treguan se qasjet e propozuara janë universale, pasi në të dy algoritmet me të dy qasjet u vërejt një reduktim të dukshëm të memories së përdorur, si dhe një reduktim të ndjeshëm të kohës së ekzekutimit të algoritmeve.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster