{"id":86335,"date":"2020-06-24T07:42:54","date_gmt":"2020-06-24T05:42:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh"},"modified":"2020-06-24T07:42:54","modified_gmt":"2020-06-24T05:42:54","slug":"effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh","title":{"rendered":"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>K\u00ebrkimi i var\u00ebsive funksionale n\u00eb t\u00eb dh\u00ebna zbatohet n\u00eb drejtim t\u00eb ndrysh\u00ebm t\u00eb analiz\u00ebs s\u00eb t\u00eb dh\u00ebnave: menaxhimi i bazave t\u00eb t\u00eb dh\u00ebnave, pastrimi i t\u00eb dh\u00ebnave, inxhinieria revers e bazave t\u00eb t\u00eb dh\u00ebnave dhe eksplorimi i t\u00eb dh\u00ebnave. Ne tashm\u00eb kemi publikuar p\u00ebr vet\u00eb var\u00ebsit\u00eb. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/JetBrains-education\/blog\/473882\/\">artikull<\/a><\/noindex> Anastasia Birillo dhe Nikita Bobrov. K\u00ebt\u00eb her\u00eb, Anastasia \u2014 nj\u00eb diplomante e Qendr\u00ebs p\u00ebr Shkencat e Kompjuterit t\u00eb k\u00ebtij viti \u2014 ndan zhvillimin e k\u00ebtij punimi brenda NIR, q\u00eb ajo e mbrojti n\u00eb qend\u00ebr. <\/p>\n<p><img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/5c88e821622e91c2058b0c11b6718bc9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Zgjedhja e detyr\u00ebs <\/h3>\n<p>\nGjat\u00eb studimeve n\u00eb qendr\u00ebn CS, fillova t\u00eb studioj n\u00eb thell\u00ebsi bazat e t\u00eb dh\u00ebnave, n\u00eb ve\u00e7anti, k\u00ebrkimin e var\u00ebsive funksionale dhe diferenciale. Kjo tem\u00eb ishte e lidhur me tem\u00ebn e kursit tim n\u00eb universitet, k\u00ebshtu q\u00eb gjat\u00eb pun\u00ebs mbi kursin fillova t\u00eb lexoj artikuj p\u00ebr var\u00ebsi t\u00eb ndryshme n\u00eb bazat e t\u00eb dh\u00ebnave. Kam shkruar nj\u00eb p\u00ebrmbledhje t\u00eb k\u00ebsaj fushe \u2014 nj\u00eb nga punimet e mia t\u00eb para. <noindex><a rel=\"nofollow\" href=\"https:\/\/seim-conf.org\/media\/materials\/2017\/proceedings\/SEIM-2017_Full_Papers.pdf#page=44\">artikull<\/a><\/noindex> n\u00eb gjuh\u00ebn angleze dhe e d\u00ebrgova n\u00eb konferenc\u00ebn SEIM-2017. Ishte nj\u00eb k\u00ebnaq\u00ebsi e madhe kur m\u00ebsova se ishte pranuar, dhe vendosa t\u00eb thellohem n\u00eb tem\u00eb. Koncepti vet\u00eb nuk \u00ebsht\u00eb i ri \u2014 u aplikua p\u00ebr her\u00eb t\u00eb par\u00eb n\u00eb vitet '90, por ende gjen p\u00ebrdorim n\u00eb shum\u00eb fusha. <\/p>\n<p>N\u00eb semestrin e dyt\u00eb t\u00eb studimeve n\u00eb qend\u00ebr, fillova nj\u00eb projekt k\u00ebrkimor p\u00ebr p\u00ebrmir\u00ebsimin e algoritmeve t\u00eb k\u00ebrkimit t\u00eb var\u00ebsive funksionale. Punova mbi t\u00eb s\u00ebbashku me doktorantin e SPbGU, Nikita Bobrov, n\u00eb baz\u00ebn e JetBrains Research. <\/p>\n<h3>Kostoja kompjuterike e k\u00ebrkimit t\u00eb var\u00ebsive funksionale.<\/h3>\n<p>\nProblemi kryesor \u2014 kostoja kompjuterike. Numri maksimal i var\u00ebsive minimale dhe jo-triviale \u00ebsht\u00eb i kufizuar me vler\u00ebn <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/bdd1d2928000d8128ba21920e9b4c765.jpg\" style=\"display:block;margin: 0 auto;\" \/>index <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/6211a4051b8b98e32312948027b4a5f3.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 numri i atributeve t\u00eb tabel\u00ebs. Koha e ekzekutimit t\u00eb algoritmeve varet jo vet\u00ebm nga numri i atributeve, por edhe nga numri i rreshtave. N\u00eb vitet '90, algoritmet p\u00ebr k\u00ebrkimin e var\u00ebsive funksionale n\u00eb nj\u00eb PC t\u00eb zakonsh\u00ebm mund t\u00eb p\u00ebrpunonin grupe t\u00eb dh\u00ebnash q\u00eb p\u00ebrmbanin deri n\u00eb 20 atribute dhe dhjetra mij\u00ebra rreshta, p\u00ebr disa or\u00eb. Algoritmet moderne, q\u00eb punojn\u00eb n\u00eb procesor\u00eb me shum\u00eb b\u00ebrthama, zbulojn\u00eb var\u00ebsi p\u00ebr grupe t\u00eb dh\u00ebnash q\u00eb p\u00ebrmbajn\u00eb qindra atribute (deri n\u00eb 200) dhe qindra mij\u00ebra rreshta, af\u00ebrsisht n\u00eb t\u00eb nj\u00ebjtin koh\u00eb. Megjithat\u00eb, kjo nuk \u00ebsht\u00eb e mjaftueshme: nj\u00eb koh\u00eb e till\u00eb \u00ebsht\u00eb e papranueshme p\u00ebr shumic\u00ebn e aplikacioneve reale. Prandaj, ne zhvilluam qasje p\u00ebr t\u00eb p\u00ebrshpejtuar algoritmet ekzistuese. <\/p>\n<h3>Skemat e ruajtjes p\u00ebr nd\u00ebrprerjen e particioneve.<\/h3>\n<p>\nN\u00eb pjes\u00ebn e par\u00eb t\u00eb pun\u00ebs, ne zhvilluam skemat e caching p\u00ebr klas\u00ebn e algoritmeve q\u00eb p\u00ebrdorin metod\u00ebn e nd\u00ebrprerjes s\u00eb particioneve. Nj\u00eb particion p\u00ebr nj\u00eb atribut p\u00ebrfaq\u00ebson nj\u00eb grup listash, ku secila list\u00eb p\u00ebrmban numrat e rreshtave me vlera t\u00eb nj\u00ebjta p\u00ebr k\u00ebt\u00eb atribut. \u00c7do list\u00eb e till\u00eb quhet klaster. Shum\u00eb algoritme bashk\u00ebkohore p\u00ebrdorin partit\u00eb p\u00ebr t\u00eb p\u00ebrcaktuar n\u00ebse mbahen var\u00ebsi apo jo, dhe ata specifikojn\u00eb lem\u00ebn: Var\u00ebsia <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/fa2667dcc78cded2d42bbf0a415d4de6.jpg\" style=\"display:block;margin: 0 auto;\" \/> ruhet n\u00ebse <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/b314fd0e7dbd225098198e48d5b28d38.jpg\" style=\"display:block;margin: 0 auto;\" \/>. K\u00ebtu <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/ef197235c0b8f15673c5179423349e21.jpg\" style=\"display:block;margin: 0 auto;\" \/> p\u00ebrcaktohet particioni dhe p\u00ebrdoret koncepti i madh\u00ebsis\u00eb s\u00eb particionit - numri i klastereve n\u00eb t\u00eb. Algoritmet q\u00eb p\u00ebrdorin partit\u00eb, kur var\u00ebsia \u00ebsht\u00eb shkelur, shtojn\u00eb atributet shtes\u00eb n\u00eb pjes\u00ebn e majt\u00eb t\u00eb var\u00ebsis\u00eb, pas s\u00eb cil\u00ebs e rip\u00ebrcaktojn\u00eb at\u00eb duke kryer operacionin e nd\u00ebrprerjes s\u00eb particioneve. Ky operacion n\u00eb artikuj quhet specializim. Por ne v\u00ebrejtem se partit\u00eb p\u00ebr var\u00ebsi q\u00eb do t\u00eb mbahen vet\u00ebm pas disa raundesh specializimi, mund t\u00eb p\u00ebrdoren aktivisht, \u00e7ka mund t\u00eb reduktoj\u00eb ndjesh\u00ebm koh\u00ebn e pun\u00ebs s\u00eb algoritmeve, pasi operacioni i nd\u00ebrprerjes \u00ebsht\u00eb i shtrenjt\u00eb. <\/p>\n<p>Prandaj ne propozoi nj\u00eb heuristik\u00eb, e cila bazohet n\u00eb Entropin\u00eb e Shannon-it dhe pasigurin\u00eb e Ginny-t, si dhe n\u00eb metrik\u00ebn ton\u00eb q\u00eb e quam Entropi e Kund\u00ebrt. Ajo \u00ebsht\u00eb nj\u00eb modifikim i vog\u00ebl i Entropis\u00eb s\u00eb Shannon-it dhe rritet nd\u00ebrsa rritet unik\u00ebsia e grupit t\u00eb dh\u00ebnave. Heuristika e propozuar duket si m\u00eb posht\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/4d9750c9f41679ae013ee7118928566b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>K\u00ebtu <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/f3e620ccc932916349b338f613723542.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 niveli i unik\u00ebsis\u00eb s\u00eb particionit q\u00eb sapo \u00ebsht\u00eb llogaritur <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/4a43e7b49fc30d8a928fb365567c724a.jpg\" style=\"display:block;margin: 0 auto;\" \/>, nd\u00ebrsa <img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/c21371f6b9ec89f5d93917e3c3c7df07.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u00ebsht\u00eb nj\u00eb metrik\u00eb mediane p\u00ebr shkall\u00ebn e unikateve p\u00ebr atribute t\u00eb ve\u00e7anta. Si metrik\u00eb unikate jan\u00eb provuar t\u00eb tre metrikat e p\u00ebrmendura m\u00eb lart. Gjithashtu, mund t\u00eb vihet re se n\u00eb heuristik\u00eb ka dy modifikator\u00eb. I pari tregon se sa af\u00ebr \u00ebsht\u00eb ndarja aktuale me \u00e7el\u00ebsin primar dhe lejon q\u00eb t\u00eb cache-ojm\u00eb m\u00eb shum\u00eb ato ndarjet q\u00eb jan\u00eb larg \u00e7el\u00ebsit potencial. Modifikatori i dyt\u00eb lejon t\u00eb monitorohet ngarkesa e cache-it dhe k\u00ebshtu inkurajon shtimin e m\u00eb shum\u00eb ndarjesh n\u00eb cache kur ka hap\u00ebsir\u00eb t\u00eb lir\u00eb. Zgjidhja e suksesshme e k\u00ebtij problemi ka lejuar t\u00eb p\u00ebrshpejtohet algoritmi PYRO me 10-40% var\u00ebsisht nga dataset-i. Duhet vler\u00ebsuar se algoritmi PYRO \u00ebsht\u00eb m\u00eb i suksesshmi n\u00eb k\u00ebt\u00eb fush\u00eb. <\/p>\n<p>N\u00eb diagramin m\u00eb posht\u00eb mund t\u00eb shihni rezultatet e aplikimit t\u00eb heuristik\u00ebs s\u00eb propozuar n\u00eb krahasim me qasjen baz\u00eb t\u00eb cache-it, e cila bazohet n\u00eb hedhjen e nj\u00eb monedhe. Osi X \u00ebsht\u00eb logaritmik.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/3d6fe6a57237b27e76e6833965dc9c93.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>M\u00ebnyra alternative e ruajtjes s\u00eb ndarjeve<\/h3>\n<p>\nThen\u00eb ne propozuam nj\u00eb m\u00ebnyr\u00eb alternative p\u00ebr ruajtjen e ndarjeve. Ndarjet p\u00ebrfaq\u00ebsojn\u00eb nj\u00eb grup klasteresh, ku secili p\u00ebrmban numrat e tuple-ve me vlera t\u00eb nj\u00ebjta p\u00ebr atribute t\u00eb caktuara. K\u00ebta klaster\u00eb mund t\u00eb p\u00ebrmbajn\u00eb sekuenca t\u00eb gjata numrash t\u00eb tuple-ve, p\u00ebr shembull, n\u00ebse t\u00eb dh\u00ebnat n\u00eb tabel\u00eb jan\u00eb t\u00eb renditura. Prandaj, ne propozuam nj\u00eb skem\u00eb kompresimi p\u00ebr ruajtjen e ndarjeve, e cila \u00ebsht\u00eb ruajtja intervalore e vlerave n\u00eb klaster\u00ebt e ndarjeve:<\/p>\n<p>$$display$$pi(X) = {{underbrace{1, 2, 3, 4, 5}_{Intervalli~e~par\u00eb}, underbrace{7, 8}_{Intervalli~i~dyt\u00eb}, 10}}\\ downarrow{Kompresimi}\\ pi(X) = {{underbrace{$, 1, 5}_{Intervalli~e~par\u00eb}, underbrace{7, 8}_{Intervalli~i~dyt\u00eb}, 10}}$$display$$<\/p>\n<p>Kjo metod\u00eb arriti t\u00eb zvog\u00ebloj\u00eb konsumimin e memories gjat\u00eb pun\u00ebs s\u00eb algoritmit TANE nga 1 deri n\u00eb 25%. Algoritmi TANE \u00ebsht\u00eb nj\u00eb algorit\u00ebm klasik p\u00ebr zbuluar FD-t\u00eb, ai p\u00ebrdor ndarjet gjat\u00eb procesit t\u00eb tij. P\u00ebr praktik\u00ebn, u zgjodh konkretisht algoritmi TANE, pasi implementimi i ruajtjes intervalore ishte shum\u00eb m\u00eb i leht\u00eb se, p\u00ebr shembull, n\u00eb PYRO, p\u00ebr t\u00eb vler\u00ebsuar n\u00ebse qasja e propozuar funksionon. Rezultatet e marra paraqiten n\u00eb diagramin m\u00eb posht\u00eb. Osi X \u00ebsht\u00eb logaritmik.<\/p>\n<p><img decoding=\"async\" alt=\"K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave.\" src=\"\/wp-content\/uploads\/2020\/06\/609a547d3d19b6e2c54ed70481ff6cdb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Konferenca ADBIS-2019<\/h3>\n<p>\nSipas rezultatave t\u00eb studimit n\u00eb Shtator 2019, un\u00eb kam prezantuar nj\u00eb artikull <noindex><a rel=\"nofollow\" href=\"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-030-30278-8_7\">Caching i men\u00e7ur p\u00ebr zbuluar var\u00ebsi funksionale efi\u00e7ente<\/a><\/noindex> n\u00eb konferenc\u00ebn 23rd European Conference on Advances in Databases and Information Systems (ADBIS-2019). Gjat\u00eb fjal\u00ebs s\u00eb tij, punimin e p\u00ebrmendi Bernhard Thalheim, nj\u00eb personazh i r\u00ebnd\u00ebsish\u00ebm n\u00eb fush\u00ebn e bazave t\u00eb t\u00eb dh\u00ebnave. Rezultatet e k\u00ebrkimeve sh\u00ebrbyen si baz\u00eb p\u00ebr disertacionin tim n\u00eb masterin e matematik\u00ebs dhe mekanik\u00ebs n\u00eb SPbGU, gjat\u00eb t\u00eb cilit t\u00eb dy qasjet e sugjeruara (kapja n\u00eb cache dhe kompresimi) u implementuan n\u00eb t\u00eb dy algoritmet: TANE dhe PYRO. N\u00eb k\u00ebt\u00eb rast, rezultatet treguan se qasjet e propozuara jan\u00eb universale, pasi n\u00eb t\u00eb dy algoritmet me t\u00eb dy qasjet u v\u00ebrejt nj\u00eb reduktim t\u00eb duksh\u00ebm t\u00eb memories s\u00eb p\u00ebrdorur, si dhe nj\u00eb reduktim t\u00eb ndjesh\u00ebm t\u00eb koh\u00ebs s\u00eb ekzekutimit t\u00eb algoritmeve.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/JetBrains-education\/blog\/507716\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0438\u0441\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u0432\u0451\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044d\u043a\u0441\u043f\u043b\u043e\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u043e \u0441\u0430\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u044b \u0443\u0436\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044e \u0410\u043d\u0430\u0441\u0442\u0430\u0441\u0438\u0438 \u0411\u0438\u0440\u0438\u043b\u043b\u043e \u0438 \u041d\u0438\u043a\u0438\u0442\u044b \u0411\u043e\u0431\u0440\u043e\u0432\u0430. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0410\u043d\u0430\u0441\u0442\u0430\u0441\u0438\u044f \u2014 \u0432\u044b\u043f\u0443\u0441\u043a\u043d\u0438\u0446\u0430 Computer Science Center \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u2014 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u041d\u0418\u0420, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86336,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0438\u0441\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u0432\u0451\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044d\u043a\u0441\u043f\u043b\u043e\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0438\u0441\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u0432\u0451\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044d\u043a\u0441\u043f\u043b\u043e\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-24T05:42:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-24T05:42:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47K\u00ebrkimi efektiv i var\u00ebsive funksionale n\u00eb bazat e t\u00eb dh\u00ebnave | ProHoster","description":"K\u00ebrkimi i var\u00ebsive funksionale n\u00eb t\u00eb dh\u00ebna aplikohet n\u00eb drejtimet e ndryshme t\u00eb analiz\u00ebs s\u00eb t\u00eb dh\u00ebnave: menaxhimi i bazave t\u00eb t\u00eb dh\u00ebnave, pastrimi i t\u00eb dh\u00ebnave, inxhinieria e reversit t\u00eb bazave t\u00eb t\u00eb dh\u00ebnave dhe esplorimi i t\u00eb dh\u00ebnave.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u041f\u043e\u0438\u0441\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u0432\u0451\u0440\u0441-\u0438\u043d\u0436\u0438\u043d\u0438\u0440\u0438\u043d\u0433 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044d\u043a\u0441\u043f\u043b\u043e\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-24T05:42:54+00:00","article:modified_time":"2020-06-24T05:42:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86335","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:17:33","updated":"2022-09-27 17:20:14","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/86335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=86335"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/86335\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/86336"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=86335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=86335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=86335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}