{"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\/et\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh","title":{"rendered":"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Andmete funktsionaalsete seoste otsimine rakendatakse erinevates andmeanal\u00fc\u00fcsi suundades: andmebaaside haldamine, andmete puhastus, andmebaaside p\u00f6\u00f6rdt\u00f6\u00f6tlemine ja andmete uurimine. Me oleme juba avaldanud teavet nende seoste kohta. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/JetBrains-education\/blog\/473882\/\">artiklile<\/a><\/noindex> Anastasia Birillo ja Nikita Bobrov. Seekord Anastasia \u2014 selle aasta Computer Science Centeri l\u00f5petaja \u2014 jagab selle t\u00f6\u00f6 arengut uurimist\u00f6\u00f6 raames, mille ta keskusel kaitses. <\/p>\n<p><img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" 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>\u00dclesande valik <\/h3>\n<p>\nCS keskuses \u00f5ppimise ajal hakkasin s\u00fcgavamalt uurima andmebaase, nimelt funktsionaalsete ja erinevate seoste otsimist. See teema oli seotud minu \u00fclikooli kursuse teemaga, seega alustasin oma kursuse k\u00e4igus erinevate andmebaaside seoste kohta artiklite lugemist. Kirjutasin \u00fclevaate sellest valdkonnast \u2014 \u00fche oma esimestest. <noindex><a rel=\"nofollow\" href=\"https:\/\/seim-conf.org\/media\/materials\/2017\/proceedings\/SEIM-2017_Full_Papers.pdf#page=44\">artiklites<\/a><\/noindex> ingliskeelsena ja esitasin selle SEIM-2017 konverentsile. Olin v\u00e4ga r\u00f5\u00f5mus, kui sain teada, et see siiski vastu v\u00f5eti, ja otsustasin teemas s\u00fcgavale minna. Kontseptsioon ise ei ole uus \u2014 seda on hakatud rakendama juba 90ndatel, kuid see leiab endiselt rakendust paljudes valdkondades. <\/p>\n<p>Teisel \u00f5ppesemestril alustatud teadusprojekti raames t\u00f6\u00f6tasin funktsionaalsete s\u00f5ltuvuste otsimise algoritmide t\u00e4iustamise kallal. T\u00f6\u00f6 k\u00e4is koos SPbGU doktorandi Nikita Bobrovi ja JetBrains Researchi p\u00f5hjal. <\/p>\n<h3>Funktsionaalsete s\u00f5ltuvuste otsimise arvutuslik keerukus<\/h3>\n<p>\nPeamine probleem on arvutuslik keerukus. V\u00f5imalike minimaalseid ja mittetriviaalseid s\u00f5ltuvusi piirab \u00fclemine v\u00e4\u00e4rtus <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/bdd1d2928000d8128ba21920e9b4c765.jpg\" style=\"display:block;margin: 0 auto;\" \/>, kus <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/6211a4051b8b98e32312948027b4a5f3.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 tabeli atribuutide arv. Algoritmide t\u00f6\u00f6aeg s\u00f5ltub mitte ainult atribuutide arvust, vaid ka ridade arvust. 90ndatel suudsid funktsionaalsete s\u00f5ltuvuste leidmise algoritmid tavalistel lauaarvutitel hallata andmestikke, mis sisaldasid kuni 20 atribuuti ja k\u00fcmneid tuhandeid ridu, mitme tunni jooksul. Kaasaegsed algoritmid, mis t\u00f6\u00f6tavad mitme tuumaga protsessoritel, tuvastavad s\u00f5ltuvusi andmestikes, mis koosnevad sadade (kuni 200) atribuudist ja sadadest tuhandetest ridadest, enam-v\u00e4hem sama ajaga. Sellegipoolest ei piisa sellest: selline aeg on enamikus reaalsetes rakendustes vastuv\u00f5etamatu. Seet\u00f5ttu t\u00f6\u00f6tasime v\u00e4lja meetodeid olemasolevate algoritmide kiirendamiseks. <\/p>\n<h3>Vahepartitsioonide vahem\u00e4lustruktuurid<\/h3>\n<p>\nT\u00f6\u00f6 esimeses osas t\u00f6\u00f6tasime v\u00e4lja vahem\u00e4lustruktuurid algoritmide klassile, mis kasutavad vahepartitsioonide meetodit. Atribuudi vahepartitsioon esindab loendite kogumit, kus iga loend sisaldab rida numbreid, millel on antud atribuudi jaoks samad v\u00e4\u00e4rtused. Iga sellist loendit nimetatakse klastriks. Paljud kaasaegsed algoritmid kasutavad vahepartitsioone, et m\u00e4\u00e4rata, kas s\u00f5ltuvus on s\u00e4ilitatud v\u00f5i mitte, j\u00e4rgides, nimelt, lemma: S\u00f5ltuvus <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/fa2667dcc78cded2d42bbf0a415d4de6.jpg\" style=\"display:block;margin: 0 auto;\" \/> s\u00e4ilitatakse, kui <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/b314fd0e7dbd225098198e48d5b28d38.jpg\" style=\"display:block;margin: 0 auto;\" \/>. Siin <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/ef197235c0b8f15673c5179423349e21.jpg\" style=\"display:block;margin: 0 auto;\" \/> partitsioon on m\u00e4\u00e4ratud ja kasutatakse partitsiooni suuruse m\u00f5istet \u2014 klastrite arvu selles. Algoritmid, mis kasutavad partitsioone, lisavad s\u00f5ltuvuse rikkumise korral vasakusse osasse t\u00e4iendavad atribuudid, mille j\u00e4rel nad seda arvutavad, teostades partitsioonide ristamise operatsiooni. Seda operatsiooni nimetatakse artiklites spetsialiseerimiseks. Kuid oleme m\u00e4rganud, et s\u00f5ltuvuste jaoks, mida hoitakse alles p\u00e4rast mitmeid spetsialiseerimise rounde, saab partitsioone aktiivselt uuesti kasutada, mis v\u00f5ib oluliselt v\u00e4hendada algoritmide t\u00f6\u00f6aega, kuna ristamisoperatsioon on kulukas. <\/p>\n<p>Seet\u00f5ttu pakkusime \u00fclesande, mis p\u00f5hineb Shannon'i entropial ja Ginny ebakindlusel, ning meie meetril, mida oleme nimetanud Tagasip\u00f6\u00f6rdumine Entropia. See on v\u00e4ike modifikatsioon Shannon'i entropiast ja t\u00f5useb koos andmekogumi ainulaadsuse suurenemisega. Pakutud heuristika on j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/4d9750c9f41679ae013ee7118928566b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Siit <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/f3e620ccc932916349b338f613723542.jpg\" style=\"display:block;margin: 0 auto;\" \/> \u2014 hiljuti arvutatud partitsiooni unikaalsuse aste <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/4a43e7b49fc30d8a928fb365567c724a.jpg\" style=\"display:block;margin: 0 auto;\" \/>, ja <img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/c21371f6b9ec89f5d93917e3c3c7df07.jpg\" style=\"display:block;margin: 0 auto;\" \/> on unikaanide keskmine aste, mis on m\u00e4\u00e4ratud \u00fcksikute atribuutide jaoks. Unikaalsuse m\u00f5\u00f5dikuna prooviti v\u00e4lja kolme \u00fclaltoodud m\u00f5\u00f5dikut. Samuti v\u00f5ib t\u00e4hele panna, et heuristikas on kaks modifikaatorit. Esimene n\u00e4itab, kui l\u00e4hedane on praegune partitsioon peamisele v\u00f5tmele ja v\u00f5imaldab suuremas ulatuses vahem\u00e4lu sellele partitsioonile, mis on kaugel v\u00f5imalusest v\u00f5tme. Teine modifikaator v\u00f5imaldab j\u00e4lgida vahem\u00e4lu kasutust ja seel\u00e4bi stimuleerida rohkemate partitsioonide lisamist vahem\u00e4llu, kui ruumi on piisavalt. Selle probleemi edukas lahendamine on v\u00f5imaldanud kiirendada algoritmi PYRO 10-40% v\u00f5rra s\u00f5ltuvalt andmestikust. Tasub m\u00e4rkida, et algoritm PYRO on sel alal k\u00f5ige edukam. <\/p>\n<p>Allolevalt jooniselt on n\u00e4ha ettepaneku heuristika rakendamise tulemusi v\u00f5rreldes aluseks oleva l\u00e4henemisega, mis p\u00f5hineb m\u00fcndi viskamisel. X-telg on logaritmiline.<\/p>\n<p><img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/3d6fe6a57237b27e76e6833965dc9c93.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Alternatiivne viis partitsioonide salvestamiseks<\/h3>\n<p>\nSeej\u00e4rel pakkusime alternatiivset viisi partisjonide salvestamiseks. Partisioonid moodustavad klastrite komplekti, kus iga\u00fches hoitakse vahemike numbreid, millel on teatud atribuutide j\u00e4rgi sarnased v\u00e4\u00e4rtused. Need klastrid v\u00f5ivad sisaldada pikki j\u00e4rjestusi numbrite kohta, n\u00e4iteks juhul, kui tabelis andmed on j\u00e4rjestatud. Seet\u00f5ttu pakkusime kompressiooniskeemi partisjonide salvestamiseks, nimelt vahepealsete v\u00e4\u00e4rtuste salvestamist partisjoni klastrites:<\/p>\n<p>$$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$$<\/p>\n<p>See meetod suutis v\u00e4hendada m\u00e4lu tarbimist TANE algoritmi t\u00f6\u00f6tamise ajal 1 kuni 25%. TANE algoritm on klassikaline algoritm FN leidmiseks ja kasutab oma t\u00f6\u00f6s partisjone. Praktika raames valiti just TANE algoritm, kuna vahepealsete v\u00e4\u00e4rtuste salvestamine oli sellesse integreerida oluliselt lihtsam kui n\u00e4iteks PYRO-s, et hinnata, kas pakkutud l\u00e4henemine t\u00f6\u00f6tab. Saadud tulemused on esitatud alloleval joonisel. X telg on logaritmiline.<\/p>\n<p><img decoding=\"async\" alt=\"Andmebaaside funktsionaalsete s\u00f5ltuvuste t\u00f5hus leidmine\" src=\"\/wp-content\/uploads\/2020\/06\/609a547d3d19b6e2c54ed70481ff6cdb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Konverents ADBIS-2019<\/h3>\n<p>\nSeptembri 2019. aasta uurimistulemuste p\u00f5hjal esitasin artikli <noindex><a rel=\"nofollow\" href=\"https:\/\/link.springer.com\/chapter\/10.1007\/978-3-030-30278-8_7\">Smart Caching for Efficient Functional Dependency Discovery<\/a><\/noindex> 23. Euroopa andmebaaside ja infotehnoloogia konverentsil (ADBIS-2019). Kogu ettekande ajal m\u00e4rkas t\u00f6\u00f6d Bernhard Thalheim, olulise isiku andmebaaside valdkonnas. Uuringutulemused p\u00f5hinesid minu magistrit\u00f6\u00f6l matemaatika ja mehaanika erialal SPbGU-s, mille k\u00e4igus rakendati m\u00f5lemad pakutud l\u00e4henemisviisid (vahem\u00e4lu ja tihendamine) m\u00f5lemas algoritmis: TANE ja PYRO. Tulemused n\u00e4itasid, et pakutud l\u00e4henemisviisid on universaalsed, kuna m\u00f5lema algoritmi puhul t\u00e4heldati m\u00f5lema l\u00e4henemise korral m\u00e4rgatavat m\u00e4lutarbimise v\u00e4henemist ja samuti m\u00e4rgatavat algoritmide t\u00f6\u00f6tamise aja v\u00e4henemist.<br \/>\n<br \/>Allikas: <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 4.9.10 - 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. \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\" \/>\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\/et\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47T\u00f5hus funktsionaalsete s\u00f5ltuvuste otsimine andmebaasides | ProHoster","description":"Andmete funktsionaalsete s\u00f5ltuvuste otsimine rakendatakse erinevates andmeanal\u00fc\u00fcsi suundades: andmebaaside haldamine, andmete puhastamine, andmebaaside p\u00f6\u00f6rdinjineerimine ja andmete uurimine. Funktsionaalsete s\u00f5ltuvuste kohta oleme juba avaldanud artikli Anastasia Birillo ja Nikita Bobrova poolt. Seekord jagab Anastasia \u2014 t\u00e4navuse aasta arvutiteaduse keskuse l\u00f5petaja \u2014 selle t\u00f6\u00f6 arengut teadusliku uurimist\u00f6\u00f6 raames, mille ta","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/effektivnyj-poisk-funkczionalnyh-zavisimostej-v-bazah-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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. \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","og:url":"https:\/\/prohoster.info\/et\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/86335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=86335"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/86335\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/86336"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=86335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=86335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=86335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}