- •Мукажанов нуржан какенұлы Əр түрлі құрылымды деректерді жедел аналитикалық өңдеу үдерістерінің ақпараттық-есептеуін қамтамасыз ету
- •6D070400 – Есептеу техникасы жəне бағдарламалық қамтамасыз ету Философия докторы (PhD)
- •Мазмұны
- •Деректерді аналитикалықөңдеудіңқазіргікездегіжай-күйі 14
- •Жедел аналитикалық өңдеулерүшінреляциялық жəне nosql деректерді бірыңғай құрылымға келтіру үлгілеріменəдістері 48
- •Бөлімбойыншатұжырым 80
- •Деректерді жедел аналитикалықөңдеугеарналған деректер қоймасына тиімді деректер құрылымынəзірлеу 81
- •Бөлімбойыншатұжырым 113
- •Əзірленген үлгілер,əдістержəнеалгоритмдердің ашық үкіметпорталыашықдеректерін аналитикалықөңдеудегіпрактикалықапробациясы 114
- •4 Бөлімбойыншатұжырым 131
- •Пайдаланылғанəдебиеттертізімі 133
- •Нормативтік сілтемелер
- •Анықтамалар
- •Белгілеулер мен қысқартулар
- •Диссертациялық жұмысты қорғауға келесі нəтижелер шығарылады
- •Деректерді аналитикалық өңдеудің қазіргі кездегі жай-күйі
- •Деректерді аналитикалық өңдеудің шешімдер қабылдауды қолдау жүйелеріндегі орыны менрөлі
- •Деректерді аналитикалық өңдеудің əдістері, технологиялары жəне платформалары
- •Деректерді көп өлшемді жедел аналитикалық өңдеудің мəселелері жəне зерттеу тапсырмаларыныңқойылымы
- •Бөлім бойыншатұжырым
- •Жедел аналитикалық өңдеулер үшін реляциялық жəне nosql деректерді бірыңғай құрылымға келтіру үлгілері менəдістері
- •Деректерді бірыңғай құрылымға келтіруəдістері
- •Деректер базалары моделдерініңерекшеліктері
- •Реляциялық жəне NoSql деректерді бірыңғай құрылымға келтіру əдісінəзірлеу
- •Бөлім бойыншатұжырым
- •Деректерді жедел аналитикалық өңдеуге арналған деректер қоймасына тиімді деректер құрылымын əзірлеу
- •Деректер қоймасы ішкі құрлымыныңұйымдастырылуы
- •Аналитикалық деректерді өңдеудің көп өлшемді индекстік деректер құрылымынұйымдастыру
- •Агрегациялық мəндерді есептеудің ағаш түріндегі құрылымын əзірлеу
- •Бөлім бойыншатұжырым
- •Əзірленген үлгілер, əдістер жəне алгоритмдердің ашық үкімет порталы ашық деректерін аналитикалық өңдеудегі практикалықапробациясы
- •Ақпараттық-аналитикалық жүйелердің мемлекеттік секторларда қолданылуы
- •Деректерді жедел аналитикалық өңдеудің мемлекеттік секторда қолданылуы
- •Ашық деректерді жедел аналитикалық өңдеудің ақпараттық- аналитикалық жүйесінəзірлеу
- •4 Бөлім бойынша тұжырым
- •Қорытынды
- •Пайдаланылған əдебиеттер тізімі
- •Қосымша а
- •Қосымша б
- •Қосымша в
- •Қосымша г
- •Қосымша д
Аналитикалық деректерді өңдеудің көп өлшемді индекстік деректер құрылымынұйымдастыру
Жинақталған үлкен көлемдегі деректер қоймасынан агрегациялық көрсеткіштерді жылдам есептеу, қалыптастыру, ұсыну, сақтау нақты уақытта жедел талдау жасау жүйелерінің басты талаптарының бірі. Көлемді деректер қоймасы деректерін жедел аналитикалық өңдеуде жоғары өнімділік пен тиімділікке қол жеткізудің бірден бір жолы алдын ала мүмкін болатын барлық агрегациялық көрсеткіштерді қалыптастыру жəне оларды сақтау мен қатынауда тиімді алгоритм, құрылым əзірлеу.
Гипертекше агрегациялық мəндері қосынды (sum), орташа мəн (avg), ең кіші мəн (min), ең үлкен мəн (max), дисперсия, ауытқулар (отклонение) жəне т.б. түрінде есептелінеді. Бұл зерттеу жұмысында агрегацияны қосындылау бойынша анықтауқарастырылады.
Агрегация дегеніміз – факт мəндері негізінде алдын ала есептелініп сақталған деректер құрылымы. Агрегациялық мəндердің көлемі бастапқы мəндерден біршама аз болады, сол себепті алдын ала есептелген агрегация деректеріне жасалатын сұраныстың орындалуы да жылдам болады. Сəйкестінше, агрегациядан деректерді алу сұраныстың өнімділігін жоғарылатады. Бірақ, қазіргі кезде көптеген көп өлшемді деректер базасымен жұмыс жасайтын құралдар (программалық өнімдер) мүмкін болатын барлық агрегациялық мəндерді толық есептемейді. Агрегациялық деректермен жұмыс жасау өнімділікті жоғарылататын болса, неліктен барлық өлшем көрсеткіштері бойынша мүмкін болатын барлық агрегациялық мəндерді алдын ала есептеп, көп өлшемді талдауда сұранысты тек алдын ала есептелген агрегациялық мəндерге жасамасқа? - деген заңды сұрақ туындайды. Басты мəселе, мүмкін болатын барлық агрегациялық көрсеткіштердің саны шамадын тыс үлкен болуы мүмкін, оны құру практикалық жағынан өте күрделі жəне үнемі оңтайлы бола бермейді. Жедел аналитикалық талдаулар кезінде барлық агрегациялық мəндер жедел жадыда сақталынатындықтан, агрегациялық мəндер санының шамадан тыс үлкен болуы жедел жадыдан қосымша ресурсты талап етеді.
Егер деректер көлемі аса үлкен емес, негізгі жадыда орналастыруға болатындай болса, онда алдын ала агрегациялық деректерді толық қалыптастырудың да қажеті аз. Себебі, жедел жады деректерге қатынау жылдамдығы сыртқы жадымен салыстырғанда орта есеппен 200 есеге жоғары, сонымен қатар аса үлкен емес деректерден агрегациялық мəндерді бірден есепту аса көп уақыт қажет етпейді. Бұл жағдайда көбінесе бөлшектеп агрегациялау қолданылады, яғни жиі пайдаланылатын өлшемдермен жəне жиі шақырылатын мөлшерлер бойыншақалыптастырылады.
Деректерді индекстеу құрлымыдары.Егер деректер қоймасы деректері көлемі ауқымды болып, жедел жады көлемі жеткіліксіз болса, онда барлық аналитикалық деректерді сыртқы жадыда сақтап, аналитикалық сұранымдарды тиімді орындау жолдары қарастырылады. Деректерді өңдеуде жоғары өнімділік пен тиімділікті қамтамасыз ететін алгоритмдер мен құрылымдар көптеп саналады. Ондай құрылымдардың бірі сыртқы жады деректеріне тиімді қатынауға арналған ағаш түріндегі құрылымдар. Олар деректер қоймасын
құрғаннан кейін бөлек қосымша құрылым ретінде əзірленеді. Кейбір заманауи ДББЖ-лернінде деректерге қатынау, сұранымдарды орындау жылдамдығын арттыру мақсатында индекстеу жəне индекстерге арнайы ағаш құрылымдарын жəне т.б. құрылымдарды пайдалану мүмкіндіктері кірістірілген. Мысалы, Microsoft SQL Server-де B++-ағашы, PostgreSQL-де B-ағашы жəне R-tree_GiST (сызықтық бөлу), Oracle - де B-ағашы, R-ағашы, Quadtree ағашы, MySQL- де B- ағашы жəне т.б.
Дегенмен, келтірілген деректерге тиімді қатынаудың индекстік құрылымдарының бірде бірі əмбебеп емес, индекстеу əдістері мен құрылымдарының басым көпшілігі жалпылама əзірленген, əсіресе, əр түрлі, күрделі жəне арнайы деректер типтеріне тиімді қатынау əдісін таңдау немесе жаңадан əзірлеу қажет. Деректердің көлемді жəне жасалынатын сұранымдардың күрделі болуы дəстүрлі деректер базаларына арналып əзірленген жəне бапталған индекстеу əдістеренің деректер қоймасы үшін көп жағадайда тиімсіз немесе жарамсыз екенін көрсетуде. Индекстеу əдістері мен құрылымдары жалпылама əзірленген. Жоғарыда келтірілген ДББЖ - де индекстеуде негізенен B–ағаш құрылымы қолданылатынын көруге болады. Бұл құрылым бір өлшемді индекске бағытталғандықтан көп өлшемді жəне көлемді деректерге алдын ала белгіленбеген сұранымдар жасауда B-ағашы тиімді бола бермейді [109]. Сырқы жадыда сақталынған көп өлшемді деректерге тиімді қатынаудың көп өлшемді индекстік құрлымдары əзірленген:spatial grid, R -ағаш, R* - ағаш, quad-ағаш, bitmap index, k-d-ағаш, partial index, join index жəне т.б.Көп өлшемді индестер бойынша жүргізілген талдаулар сыртқы жадыда сақталған көлемді көп өлшемді деректерге, соның ішінде OLAP – деректеріне қатынауда ең кең қолданылатын, тиімді жəне оңтайлы əдіс ретіндеK-D-ағаш,R-ағаш, R-ағашының түрлендірілген құрылымдарыекенін көрсетті [107-114].
k-d-ағашы –k-өлшемді кеңістіктегі нүктелерді реттеу үшін кеңістікті бөлудің деректер құрлымы. k-d-ағашы кілттердің көп өлшемді кеңістігінде іздеулер жүргізуге арналған қосымшаларда пайдаланылады. Бұл ағаш екілік іздеу ағашының ерекше түрі [108, 115].
k-d-ағашы құрылымының сипаттамасы. k-d-ағашы –
Rk-нүктелерін
сақтауға арналған іздеудің баланастандырылмаған ағашы. Кілттердің берілген аралығын іздеу R-ағашына ұқсас жұмыс жасайды [37]. k-d-ағашының біртекті жəне біртекті емес түрлері бар. Біртекті k-d-ағашында əр бір түйін жазба сақтайды. Ал, біртекті емес ағашта ішкі түйіндер тек кілттерді, жапырақтар жазбаларға сілтемелерді сақтайды.
Біртекті емесk-d-ағашында
Hi(t)(x1,x2,...,xi1,t,xi1,...,xk),1 ≤ i ≤ k
болғанда tнүктесінде(k-1)- өлшемді гиперкеңістіктің өстерінепараллелді.
Ағаш түбірі үшін нүктелерді
H1(t)
гиперкеңістігі арқылы мүмкіндігінше бірдей
екі үлкен нүктелер жиынына бөлу керек жəне түбіргеt-ны жазу, сол жаққа барлықx1< tнүктелер сақталынады, ал оң жаққа барлықx1> tнүктелер сақталынады. Сол жақ ішкі ағаш үшін нүктелерді "бөлінген кеңістікте" тағыда
жаңадан
H2(t)
бөлу, алtішкі түйінде сақталынады. Осы сол жақтабарық
барлықx2< tнүктелер сақталынады. Аталған қадамдар барлықкеңістікте
рекурсивті түрде жалғасады. k-d-ағашынқұрукүрделілігі O(N(klogN))
түрінде беріледі. Ағаш құрылымы бойынша қажет етілетін жады ресурысын, деректерді іздеу, қосу жəне өшіру операциялары үшін күрделілікті келесідегідей бағалауға болады[116]:
Қажет етілетін жады көлемі:O(N)
Түйінді іздеу:O(logN)Жаңа түйін қосу:O(logN)Түйінді өшіру:O(logN)
Келтірілген бағалаулар орташа жағдай бойынша алынған, ал ең нашар жағдайларда k-d-ағашының күрделілік көсеткіштері қажет етілетін жады көлемі, іздеу, жазба қосу, өшіру барлығыO(N)-ға тең.
Қазіргі уақытта k-d-ағашының оңтайландырылған k-d-ағаш, бейімделген k- d-ағаш, PR k-d-ағаш жəне т.б. түрлендірілген нұсқалары əзірленген.
R-ағашы (R-Tree)кеңістіктік деректерге қатынауға арналған индекстелген құрылым. Авторы А. Гуттман (Беркли, Калифорния университеті). R-ағашында деректерді қосу, өшіру жəне іздеу операциялары еркін жүргізіледі. Сонымен бірге бұл ағаш кез келген иерархиялық деректер құрылымына тəн маңызды қасиеттің бірі баланстандырылған болып табылады. R-ағашы құрылымы B+ ағашы құрылымына ұқсас, ағаш биіктігі бойынша баланстандырылып, түйін жапырақтары ақырғы объектілерге сілтемелерден тұрады. Егер индекстік құрылым қатты дискіде орналасқан болса, онда əр бір түйін дискілік бетке сəйкес келеді. Құрылым кеңістіктік іздеу барысында түйіндерге барынша аз қатынауды талап етуге əзірленген. Индекстік құрылым толықтайдинамикалық
қосу мен өшіру амалдары іздеу операциясымен бір уақытта орыналуы мүмкін жəне құрылымды қайта қайта ұйымдастыруды қажет етпейді. R-ағашындағы əр бір төбе – алдын ала белгіленген мөлшерден (макималды саны) аспайтан элементтер санынан, ішкі төбелер{MBR, ұрпақ_түйінге_сілтеме}– түріндегі құрлымдардан, ал жапырақ түйіндер{MBR, жазба_идентификаторы} –түріндегі құрылымдардан тұрады. Ағаш құрлымы 3.2-суретте берілген. Құрылымдардағы белгілеулердің сипаттамаларын[37]:
MBR (Minimum Bounding Rectangle)– бұлn-өлшемді тік төртбұрыш, жақтары координатаның параллелді өстерімен берілген, кеңістіктік объектіге арналған минималды қамтитын тік төртбұрыш. Əдітте, MBR келесідегідей түрдеберіледі:
MBR{I1I2I3...In}
(3.1)
мұндағы,n– мөлшерлік сан, алIi– сəйкесiөсі координатасы бойынша объекті мөлшерін сипаттайды.
Ұрпақ_түйінге_сілтеме– бұл R-ағашындағы төменгі деңгей түйінінің адресі.
Жазба_идентификаторы– ДБ-дағы жазбаға сілеме.
R-ағаш құрылымы бойынша қажет етілетін жады ресурысын, деректерді іздеу, қосу жəне өшіру операциялары үшін күрделілікті келесідегідей бағалауға болады [116]:
Қажет етілетін жады көлемі:O(N)
Іздеу:O(logmN)Жазба қосу:O(logmN)Өшіру:O(logmN)
Қазіргі уақытта R-ағашының түрлендірілген R* ағашы жəне R+ ағашы нұсқалары əзірленіп, қолданылуда.
-
R1
R2
R3
R10 |
R11 |
R12 |
|
R7 |
R8 |
R9 |
|
R4 |
R5 |
R6 |
|
-
A
B
C
Сурет
3.2 – R-ағашы құрылымы
R*-ағашыкеңістіктегі деректерді индекстеуге арналған R-ағашының бір нұсқасы. R-ағашынан негізгі айырмашылығы, R*-ағашын құру күрделірек, деректер қайталанып сақталуы мүмкін, бірақ нəтижесінде жұмыс жасау өнімділігі жоғарырақ болады. Басқа, жазба қосу мен өшіру операциялары күрделілігі R-ағашымен бірдей орындалады. Ағаштың толық құрлымы [37] - əдебиетте берілген.
R+-ағашыкеңістіктегі деректерді индекстеуге арналған R-ағашының бір нұсқасы ретінде беріледі. Құрлымы R-ағашы мен k-d-ағашының біріккен құрлымынан тұрады. R+-ағашы көбінесе(x,y)координаталары бойынша деректерді іздеуде қолданылады. R-ағашынан негізгі айырмашылығы бір индексті бірнеше түйінде сақтауы мүмкін [108].
Бұл жұмыста ары қарай бинарлы ағашының жəнеR-ағашының түрлендірілген нұсқалары əзірленетін болады. Алгоритм мен құрылымды өңделінетін деректер ерекшеліктеріне бағыттап əзірлеу арқылы тиімділікке қол жеткізуге болады. Əзірленген жүйелерде бірінші агрегациялық мəндер есептелінеді, содан кейін алынған мəндерге бойынша индексті құрылым əзірленеді. Ұсынылып отырған құрылымда есептеу мен индексті құрылымды ұйымдастыру бірге жүзеге асырылады. Деректерді сыртқы жадыда сақтау алынғандықтан, көлемді деректерді индекстеу құрылымын таңдауда, басты корсеткіш сұраным кезінде барлық кілттік өрістерді тура салыстырудағы
сыртқы жадыға жүгіну (қатынау) саны болып табылады. Сыртқы жады жұмыс жылдамдығы процессор жылдамдығынан жəне жедел жады жылдамдығынан бірнеше есе төмен болуына байланысты ондағы деректерге қатынауда аз жүгінетін құрылым мен алгоритм қажет.
Гипертекшені қалыптастыруда агрегациялық мəндерді тиімді қалыптастыру жəне қалыптастырылған көрсеткіштерге жедел аналитикалық талдау барысында оңтайлы қатынауды ұйымдастыру үшін пайдаланылатын деректер құрылымы жоғары өнімділікпен жұмыс істеуді қамтамасыз етуі тиіс. Агрегациялық деректерді алдын ала қалыптастырудың, гипертекше деректеріне тиімді қатынаудың индексті құрылымын əзірлеуде индекстердің мөлшері бір өлшемненn– өлшемдеге дейін қарастырылуы қажет. Себебі гипертекше деректеріне сұраным жасау кезінде өлшемдер саны кез келген мөлшерде болуы мүмкін. OLAP – технологиясы əзірлемелеріне қойылатын басты талаптардың бірі деректерге қатынауда динамикалық сұранымдарды орындау (Коддтың 9 талабы бойынша) жəне деректерге қатынау жылдамдығы өлшемдер саны артуына тəуелді емес (Коддтың 4-ші талабы), яғни деректер қоймасы көлемінің артуына байланысты аналитикалық сұранымдарды орындау жылдамдығы төмендемеуі қажет. Аналитик-қолданушының кез келген сұранымына жүйе жауап беруі жəне жауапты жылдам қайтаруы шарт. Осыған байланысты агрегациялық деректерді қалыптастыруда индексті деректер құрылымын бірден жəне тиімді жұмыс жасайтындай етіп құру маңызды. Кез-келген өлшемде, кез келген аналитикалық деректерге қатынауды жүзеге асыру үшін мүмкін болатын барлық мөлшерлердегі толық агрегациялық мəндерді есептеу жəне оларды индекстеу қарастырылады.
3.2.1 Гипертекше деректеріне арналған көп өлшемді инексті құрылым құру Жоғарыда аталған талаптарды қамтамасыз ету мақстандагипертекшені
тиімді қалыптастыруға арналған құрылымның жүзеге асырылу қадамдары:
1-қадам. Өлшем элементтерінің ішкі кілттері бойынша көп өлшемді индексті құрылым қалыптастыру. Индексті құрылымды қалыптастыру гипертекшені бірінші рет құрғанда орындалады. Егер текше бұған дейін құрылып, тек жаңарту қажет болса, онда жаңадан қосылған өлшемдер мен өлшем элементтерінің өстері мен координаталары анықталып, көп өлшемді индексті құрылымға жаңа индекс ретінде жазылады. Жаңадан элементтер қосылмаған жағдайда алдыңғы қалыптастырылған индекстік құрылым пайдаланылады. Деректер қоймасы тұжырымдамасы бойынша өлшемдер кестесі өзгермейтін немесе өте сирек өзгертілетін деректерден тұратынын [8] ескерсек бұл көп өлшемді индексті құрылымдағы индекстер сəйкесінше өзгермейді немесе өте сирек өзгереді. Əрине, өлшемдер кестесінде болған өзгеріс моделде де көрініс табуы тиіс. Бұл жағдайда жоғарыда айтылғандай индексті құрылымды жаңарту жүзегеасырылады.
2-қадам. Көп өлшемді индекс бойынша факт кестесі деректерінен индекстері сəйкес келетін сандық мəндерді іздеу жəне іздеу нəтижесінде табылған мəндерді бір массивқа біріктіру. 3.3-суретте индекстербойынша
сəйкес келетін мəндерді бір өлшемді массивтарға
x[1]][1][1]...[1],
x[1][1][1]...[2],
x[1][1][1]...[3]],...,
x[k1][k2][k3]...[kn]
біріктіру көрсетілген. Егер қандай да бір
индекске сəйкес бастапқы сандық мəн табылмаған жағадайда, сол индекстің құрылымына бос нұсқағыш(NULL)орналастырылады. Бұл дегеніміз қандайда бір өлшемдер элементтерінің қиылысу координатасындағы ұяшық мəніNULL- ға тең.
3-қадам. Массив элементтерінің қосындысын алу жəне қосындылау нəтижесінде алынған мəндерге сəйкес көп өлшемді индекстер бойынша нұсқағыштар орналастыру. Бұл қадамда бастапқы агрегациялық мəндерденn- өлшемдерге сəйкес келетін агрегациялық мəндер алынады, яғни көп өлшемді индекс арқылы факт кестесі бойынша біріктірілген массив элементтерінің
x[1][1,][1]...[1]1,2,3,...,j111...1,
x[1,1,1,...,2]1,2,3,...,j111...2,
x[1][1][1]...[3]
123 n
1,2,3,...,j111...3,…, x[k1][k2][k3]...[kn]1,2,3,...,jk k k...kқосынды мəндеріесептелініп, агрегациялық мəндер алынады.
Sall111...1Sall111...2Sall111...3
j111...1
xi[1][1][1]...[1]
i1
j111...2
xi[1][1][1]...[2]
i1
j111...3
xi[1][1][1]...[3]
i1
jk1k2k3...kn
(3.2)
(3.3)
(3.4)
...
Sall
k1k2k3...kn
xi[k1][k2][k3]...[kn]
123 n
i1(3.5)
мұндағы,
Sall111...1,
Sall111...2,Sall111...3
,...,
Sallk k k...k– қосындылау арқылы
алынған агрегациялық мəндер, ал
массивқа біріктірілген мəндер саны.
j111...1,
j111...2,j111 ...3,...,jk1k2k3...kn
бір
Есептелінген агрегациялық қосынды мəндер жеке құрылымда сақталынады жəне көп өлшемді индексті құрылымға агрегациялық қосынды мəннің адресіне нұсқағыш (pointer) орналастырылады. Бұл дегеніміз, бір көп өлшемді индекске уникальды бір ғана мəн сəйкес келеді. Гипертекшеде өлшемдер өстер, ал өлшем элементтері сəйкес өстің координаталары болып табылады. Егер агрегациялық мəндерді алдын ала есептемей бірден өлшем элементтерінің қиылысу координаталарына бастапқы мəндерді алатын болсақ, онда текшеде сандық мəндермен біркелкі толтырылмаған координаталар қиылыстары пайда болады. Текше координаталарының қиылыстарын матрица түрінде қарасатырсақ, онда бір бөлігінде бос ұяшықтар, ал енді бір бөлігінде сандық мəндер кездесетін сиретілген мəндерден тұратын матрица аламыз. Алдын ала агрегациялық мəндерді есептеу құрылымындасиретілген
элементтерден тұратын матрицадағы барлық 0-ге тең элементтері алынып тасталынады. Тек өлшем элементтерінің қиылысу координаталарында нақты мəнге сəйкес келетін элементтер ғана алынады жəне олар индекстер бойынша бірдей болса бір қосынды мəнге біріктіріледі. Алдын ала жасалынған агрегациялау арқылы жазбаның көлемін азайтамыз, ары қарай жүйенің жылдам жұмыс істеуін қамтамассыз етеміз жəне жедел жадыға қойылатын талаптарды да азайтамыз.
Сурет 3.3 – Көп өлшемді индексті құрылым жəнеn-өлшемді индекске сəйкес келетін агрегациялық мəндерді қалыптастыру сұлбасы
3.3-суретіндегі белгілеулер:
pi– агрегациялық мəндерге нұсқағыш (pointer)
xi[1]...[kn]– массив
j1...kn– массив элементтерінің саны
ki–сəйкес өлшемнің кілт мəні
Sall–массив элементтерінің қосындысы (агрегациялық қосындыны береді)
– сұлба компоненттері арасындағы байланыстар
4-қадам.n-өлшемді индекстерге сəйкес агрегациялық мəндерді есептеу аяқталғаннан кейін жалпы қорытынды мəн, бір өлшем бойынша, екі өлшемнің қиылысуларынан жəнеn-1өлшемдердің қиылысуларына дейін агрегациялық мəндерді есептеу жүргізіледі. Өлшемдердің қиылысуна байланыстыжеке
құрылымдар қалыптастырылады жəне жеке құрылымдардағы өлшем элементтерінің ішкі кілттері бойынша көп өлшемді индекс құрылады. Ары қарай əр бір мөлшердегі индекстер бойынша жеке-жеке салыстырулар жүргізіледі. Салыстырулар екі түрлі орындалады.
бірінші салыстыру, құрылған жеке құрылым бойынша индекстері бір мөлшерге үлкен алдын ала есептелінген агрегациялық құрылымға салыстыру жүргізіледі. Салыстыру кезінде əр бір көп өлшемді индекс жеке құрылым индекстеріменсалыстырылады.
екінші салыстыру, бастапқы агрегациялық мəндер жазылған файлмен (факт кестесі файлы) салыстыру жүргізіледі. Бұл қадамда барлық индекстермен салыстыру жүргізілмейді, тек индекс мөлшері тең жазбалармен ғана салыстыру орындалады. Тек индекс мөлшері тең жазбалармен ғана салыстыру уақыт үнемдеуге мүмкіндік береді жəне үлкен мөлшерлі индекске сəйкес келетін мəндер бұл мөлшерге дейін есептелініп қойылатындықтан олар екінші рет қайталанып алынбайды. Екінші салыстырудың себебі, бастапқы агрегациялық мəндерді есептеуде біз1-өлшемненn-өлшемдер аралығындағы барлық мөлшерді қарастырған болатынбыз. Салысытыру жүргізіліп жатқын индекс мөлшеріне тең немесе одан кіші мөлшерлер алдыңғы мөлшері үлкен индекстік құрылым бойынша іздеуде алынбайтындықтан жазбалар факт кестесінде болады. Олар тек индекс мөлшері тең мəндермен салысытырып іздеуде ғана алынады.
Екі салыстыруда да индекстер сəйкес келген жағдайда сандық мəндер бір массивқа жазылады жəне массив элементтерінің қосынды мəні есептелінеді. Массив элементтерін қосындылау нəтижесінде алынған агрегациялық мəндер жеке құрылымда сақталынады жəне сақталынған агрегациялық мəндерге жеке индекстік құрылымда сəйкесінше нұсқағыштар орналастырылады. Текше қиамаларын алу кезінде қимаға қолданылатын өлшем кілттерінен индекстік маска құрылып, маска бойынша алдын ала есептелінген агрегациялық мəндер алынады. Құрылымдар 3.4-суреттегіn-3, n-2, n-1, nбөліктерінде көрсетілген.
Гипертекше қималарына шығарылатын мəндерді агрегациялау ең төменгі деңгейден бастап, соңғы қорытынды мəндер алынғанға дейін бастапқы мəндерді массивтарға біріктіру жəне қосындылау арқылы жүзеге асырылады. Мысалы, екі өлшемдер бойынша алынатын агрегациялық мəндерді есептеу (3.4-суреттіңn-2бөліміне сəйкескеледі):
Sall11
Sall12
Sall13
j11
xi[1][1]
i1
j12
xi[1][2]
i1
j13
xi[1][3]
i1
(3.6)
(3.7)
(3.8)
…
Sall
k1k2
jk1k2
xi[k1][k2]
i1
(3.9)
Мұндағы,
Sall11,
Sall12,Sall13,…,Sallkk– екі өлшемдер бойынша
1 2
шығарылатын агрегациялық мəндер, ал біріктірілген мəндер саны.j11,
j12,j13
,…,
jk1k2– бір массивқа
Сурет 3.4 – Толық агрегациялық мəндерді есептеу сұлбасы
Келесі қадам, бір өлшем бойынша агрегациялық мəндерді есептеу. Егер гипертекше деректерін əр түрлі өлшемдерден тұратын қималар түрінде қарайтын болсақ, онда бір өлшем бойынша алынатын агрегациялық мəндер баған жəне жол бойынша шығарылатын (берілетін) қорытынды мəндерге сəйкескеледі.
Sall1
Sall2
j1
xi[1]
i1
j2
xi[2]
i1
(3.10)
(3.11)
Sall3
j3
xi[3]
i1
(3.12)
…
jk1
k
Sall1
xi[k1]
i1
(3.13)
Ең соңында агрегациялық мəндердің жалпы қорытынды қосындысы шығарылады (1-деңгейдегі) жəне келесі формуламен анықтауғаболады:
Sall
j
xi
i1
(3.14)
Мұндағы,
Sall- қорытынды қосынды мəн.
Əзірленген көп өлшемді индексті құрылым бойынша гипертекше деректерін түрлі қималар бойынша қарауға болады. Гипертекшені қалыптастыру кезінде барлық мүмкін болатын агрегациялық мəндерді есептеп, əр мəннің физикалық адресіне нұсқағыш орнатылады. Қиманы алу кезінде қолданылатын өлшемдердің қиылысуларына байланысты көп өлшемді индексті құрылымнан іздеу жүргізіледі. Қимаға шығарылатын деректерді индекс бойынша іздеу жылдам орындалады. Себебі өлшем элементтері ішкі кілттері қиылыстарына сəйкес нұсқағыштар бойынша жадыдан агрегациялық мəндер тікелей алынады.
