СОЗДАНИЕ ЗАПРОСОВ ДЛЯ ВЫПОЛНЕНИЯ ПО МНОГОМЕРНЫМ СТРУКТУРАМ ДАННЫХ
CONSTRUCTING QUERIES FOR EXECUTION OVER MULTI-DIMENSIONAL DATA STRUCTURES

УРОВЕНЬ ТЕХНИКИ
[0001] Воплощаемые с помощью компьютера приложения анализа бизнес-данных (BI) разработаны для облегчения обнаружения знания (например, бизнес-факта), которое может помочь бизнесу в достижении бизнес-цели. Более конкретно, пользователь приложения анализа бизнес-данных может формулировать запрос, который должен выполняться по данным, имеющим отношение к конкретному бизнесу. Традиционно, данные, имеющие отношение к бизнесу, структурированы как по меньшей мере одна реляционная база данных, которая содержит по меньшей мере одну двумерную таблицу.
[0002] Хотя обычные приложения BI обеспечивают адекватный интерфейс, чтобы помочь пользователям в получении бизнес-знания, когда данные, имеющие отношение к бизнесу, структурированы как реляционные базы данных, обычные приложения анализа бизнес-данных не столь хорошо подходят для обнаружения бизнес-знания из многомерной структуры данных (например, из куба данных, иногда называемого «гиперкубом»). В примере, когда данные, имеющие отношение к бизнесу, структурированы как куб данных, пользователь, который желает получить бизнес-знание с помощью запроса к кубу данных, должен иметь предварительное знание о содержимом куба. Дополнительно, пользователь должен быть знаком с языком запросов, который может использоваться для выполнения запросов по кубу данных. Кроме того, пользователь должен иметь знание о срезах и/или кубических элементах куба данных, которые представляют интерес, когда формулирует запрос. Таким образом, пользователь должен сформулировать окончательный запрос, который, возможно, не приводит к представлению желательного бизнес-знания.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Последующее является кратким изложением сущности изобретения, которое описано более подробно в данном документе. Это краткое изложение сущности не предназначено для ограничения объема притязаний формулы изобретения.
[0004] В данной работе описана вычислительная система, причем данная вычислительная система включает в себя процессор и память. Память включает в себя приложение анализа бизнес-данных (BI), которое выполняется с помощью процессора. Приложение BI конфигурируется для создания запроса, основываясь на пошаговых модификациях предыдущих версий запроса. Запрос представлен как последовательность этапов запроса, каждый этап в последовательности этапов запроса соответствует соответствующей пошаговой модификации из пошаговых модификаций. Приложение BI дополнительно конфигурируется для извлечения табличных данных из куба данных, основываясь на запросе.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0005] Фиг. 1 - функциональная структурная схема примерной системы, которая облегчает создание запроса для выполнения по многомерной структуре данных.
[0006] Фиг. 2 - последовательность операций, показывающая примерную методологию создания запроса для выполнения по многомерной структуре данных.
[0007] Фиг. 3 - последовательность операций, показывающая примерную методологию усовершенствования запроса, основываясь на требовании сжатия или расширения атрибутов по меньшей мере одной размерности многомерной структуры данных.
[0008] Фиг. 4 - последовательность операций, которая показывает примерную методологию объединения по меньшей мере двух многомерных структур данных для создания объединенной структуры данных.
[0009] Фиг. 5-16 примерные графические интерфейсы пользователя, которые облегчают создание запроса, который может выполняться по многомерной структуре данных.
[0010] Фиг. 17 - примерная вычислительная система.
ПОДРОБНОЕ ОПИСАНИЕ
[0011] Различные технологии, имеющие отношение к созданию запроса по последовательности стадий, причем запрос конфигурируется для выполнения по многомерной структуре данных, далее описаны со ссылкой на чертежи, причем одинаковые ссылочные символы используются для ссылки на одинаковые элементы по всему документу. В последующем описании для целей объяснения многочисленные конкретные подробности сформулированы для обеспечения полного понимания одного или большего количества аспектов. Может быть очевидно, однако, что такой аспект (ы) может применяться без этих конкретных подробностей. В других случаях известные структуры и устройства показаны в форме структурной схемы для облегчения описания одного или большего количества аспектов. Дополнительно, нужно подразумевать, что функциональные возможности, которые описаны, как выполняемые с помощью одного компонента системы, могут выполняться с помощью множества компонентов. Точно так же, например, компонент может конфигурироваться для выполнения функциональных возможностей, которые описаны, как выполняемые с помощью множества компонентов.
[0012] Кроме того, термин «или» означает включающее «или», а не исключающее «или». Таким образом, если не определено иначе или не ясно из контекста, то фраза «X использует A или B» означает любую из естественных включающих комбинаций. Таким образом, фраза «X использует A или B» удовлетворяет любой из следующих случаев: X использует A; X использует B; или X использует и A, и B. Кроме того, неопределенные артикли «a» и «an» в данной заявке и в прилагаемой формуле изобретения должны в общем случае рассматриваться, как означающие «один или большее количество», если не определено иначе или не ясно из контекста, что они направлены на единственную форму.
[0013] Дополнительно, в данной работе термины «компонент» и «система» охватывают считываемое с помощью компьютера хранилище данных, которое конфигурируется с помощью выполняемых с помощью компьютера команд, которые приводят к выполнению определенных функциональных возможностей, когда они выполняются с помощью процессора. Выполняемые с помощью компьютера команды могут включать в себя алгоритм, функцию и т.п. Нужно также подразумевать, что компонент или система могут локально располагаться на одном устройстве или могут быть распределены по нескольким устройствам. Дополнительно, в данной работе термин «примерный» означает служить иллюстрацией или примером чего-нибудь, а не указывает предпочтение.
[0014] В данной работе описаны различные технологии, имеющие отношение к созданию запроса, который конфигурируется для выполнения по многомерной структуре данных (например, кубу, который может также упоминаться как гиперкуб, куб данных и т.д.). Куб описывается через набор связанных с ним таблиц, например, используя схему «звезд» или «снежинка», которая содержит по меньшей мере одну таблицу фактов и группу таблиц размерности (также называют «размерностями»), относящихся к таблице фактов. Строки фактов (строки в таблице фактов) могут группироваться по «атрибутам» размерности (например, по столбцам таблиц размерности). «Измерения» являются агрегатными функциями, применяемыми по отношению к столбцам набора строк фактов (например, функцией суммирования по значениям в наборе строк фактов).
[0015] Более конкретно, таблица фактов куба содержит результаты измерений, показатели или факты бизнес-процесса, и она расположена в центре схемы «звезда» или «снежинка» и окружена размерностями. Размерности обеспечивают структурированную маркированную информацию для иначе неупорядоченных числовых измерений. Соответственно, размерности включают в себя соответствующие отдельные неперекрывающиеся элементы данных. Размерности обычно используются в связи с фильтрацией, группировкой и маркировкой данных. Термин «получение среза» относится к фильтрации данных из куба, в то время как термин «получение кубических элементов» относится к группированию данных в кубе. Часто размерности имеют атрибуты размерности, которые организованы иерархически. Например, размерность может представлять время, с несколькими возможными иерархическими атрибутами. Например, размерность может включать в себя атрибуты размерности «дни», «недели», «месяцы» и «годы». Атрибут «дни» может группироваться (сжиматься) в «месяцы», которые могут сжиматься в «годы». Точно так же дни могут сжиматься в «недели», которые могут сжиматься в «годы», и т.д. Наконец, измерение куба является свойством, по которому могут выполняться вычисления, причем такие вычисления включают в себя суммирование, подсчет, усреднение, определение минимума и максимума.
[0016] Данные куба могут быть представлены в одной одноуровневой таблице, которая содержит атрибуты и приложения измерений - эта одноуровневая таблица может упоминаться как «таблица фактов». Операции куба «уменьшаются» до представления, выраженного на основе операторов отношения. «Таблица размерности» относится к таблице, которая включает в себя столбец для каждого атрибута размерности. Члены каждого атрибута размерности могут вычисляться, что приводит к перекрестному произведению членов атрибутов размерности. Различные примеры, относящиеся к кубам, будут сформулированы в данной работе.
[0017] Далее, ссылаясь на фиг. 1, показана примерная система 100, которая облегчает создание запроса, который может выполняться по многомерной структуре данных (упомянутой в данной работе как куб). Дополнительно, система 100 может облегчать создание запроса при постадийном подходе, при котором запрос может усовершенствоваться, когда пользователю (или вычислительному устройству) представляют такие данные, что запрос усовершенствуется, основываясь на пользовательском анализе представленных данных или на компьютерном анализе представленных данных. Система 100 включает в себя хранилище 102 данных, которое содержит куб 104. Хотя показано, что хранилище 102 данных включает в себя куб 104, нужно подразумевать, что куб 104 может быть распределен по множеству хранилищ данных. Кроме того, куб 104 может представлять комбинацию нескольких кубов, потенциально имеющих различные соответствующие структуры.
[0018] Система 100 может дополнительно содержать вычислительное устройство-сервер 106, который конфигурируется с помощью выполняемых с помощью компьютера команд, которые предоставляют возможность вычислительному устройству-серверу 106 выполнять запросы по кубу 104 и выводить данные в ответ на выполнение запросов по кубу.
[0019] Система 100 может дополнительно включать в себя клиентское вычислительное устройство 108, которое может конфигурироваться для приема и/или создания запроса для выполнения по кубу 104, основываясь на вводимой информации от пользователя 110 или компьютерной программы. Клиентское вычислительное устройство 108 связано с вычислительным устройством-сервером 106 и может передавать запрос к вычислительному устройству-серверу 106. Клиентское вычислительное устройство 108 может быть любым подходящим вычислительным устройством, которое включает в себя настольное вычислительное устройство, портативное вычислительное устройство, планшетное вычислительное устройство (планшет), мобильный телефон, трансформируемое вычислительное устройство, носимое вычислительное устройство (например, часы, головной убор или т.п.), телефон-планшет, консоль видеоигр или подобное устройство, но не ограничено ими.
[0020] Клиентское вычислительное устройство 108 содержит процессор 111 и память 112, причем процессор 111 может выполнять команды в памяти 112. Как показано, память 112 включает в себя приложение 114 анализа бизнес-данных (BI), которое выполняется с помощью процессора 111. Приложение 114 BI конфигурируется для выделения бизнес-знания из куба 104 и представления данного бизнес-знания пользователю 110 (например, визуализации бизнес-знания). В примерном варианте осуществления приложение 114 BI может быть приложением электронной таблицы или его может включать в себя приложение электронной таблицы. Хотя приложение 114 BI показано, как выполняемое в клиентском вычислительном устройстве 108, нужно подразумевать, что приложение 114 BI может выполняться в вычислительном устройстве, к которому может получать доступ клиентское вычислительное устройство 108 посредством сетевого соединения. Например, клиентское вычислительное устройство 108 может иметь браузер или другое подходящее приложение, выполняющееся на нем, причем, например, браузер может быть направлен к удаленно расположенному вычислительному устройству, которое выполняет приложение 114 BI. Таким образом, приложение 114 BI может быть веб-приложением или предлагаться в качестве веб-службы. Дополнительно, нужно подразумевать, что хранилище 102 данных, вычислительное устройство-сервер 106 и/или клиентское вычислительное устройство 108 могут располагаться на одном вычислительном устройстве; таким образом архитектура системы 100 является примерной по природе и не предназначена для ограничения.
[0021] Приложение 114 BI включает в себя компонент 115 приема вводимой информации, который принимает от пользователя 110 (или выполняемой с помощью компьютера программы) вводимую информацию, относящуюся к кубу 104 данных. Например, компонент 115 приема вводимой информации может принимать вводимую информацию, которая указывает желание загрузить содержимое куба 104 (по меньшей мере часть куба 104) в часть памяти 112 клиентского вычислительного устройства 108, которая выделена приложению 114 BI. Дополнительно или альтернативно, для увеличения производительности в ответ на прием с помощью компонента 115 приема вводимой информации указания, что желательно получить доступ к кубу 104, приложение 114 BI может конфигурироваться для открытия канала связи с вычислительным устройством-сервером 106, так что весь куб 104 не загружается в память 112 клиентского вычислительного устройства 108.
[0022] Приложение 114 BI дополнительно включает в себя компонент 116 создания запроса, который создает запрос, основываясь на вводимой информации, принятой с помощью компонента 115 приема вводимой информации. Например, в ответ на то, что компонент 115 приема вводимой информации принимает требование загрузки куба 104 в память 112, компонент 116 создания запроса может генерировать запрос, который, когда он выполняется с помощью вычислительного устройства-сервера 106 по кубу 104, приводит к тому, что весь куб 104 извлекается из хранилища 102 данных и загружается в память 112 клиентского вычислительного устройства 108 (например, где они представлены как данные 117). Как указано ранее, приложение 114 BI может конфигурироваться для генерации запросов, которые могут выполняться по множеству различных типов многомерных структур. Соответственно, как будет описано более подробно в данной работе, компонент 116 создания запроса может первоначально генерировать запрос на относительно высокоуровневом языке, который является общим для кубов всех типов, для поддержания которых приложение 114 BI конфигурируется. Такой запрос может упоминаться как «высокоуровневый» запрос. Компонент 116 создания запроса может включать в себя компонент 118 преобразования запроса, который может преобразовывать высокоуровневый запрос в запрос, который поддерживается вычислительным устройством-сервером 106. Поэтому, в примере, в котором приложение 114 BI конфигурируется для поддержания запроса по трем различным типам кубов, пользователь 110 не изучает три различных языка запросов для запросов по кубам трех различных типов. Вместо этого компонент 116 создания запроса и компонент 118 преобразования запроса конфигурируются для обработки создания запросов на языке запросов, который соответствует кубу, к которому получают доступ.
[0023] Приложение 114 BI дополнительно включает в себя компонент 120 представления, который конфигурируется для представления данных 117 в памяти 112, например, на устройстве отображения клиентского вычислительного устройства 108. В соответствии с примером, когда компонент 116 создания запроса создает запрос, основываясь на вводимой информации, принятой с помощью компонента 115 приема вводимой информации, компонент 116 создания запроса может конфигурироваться для передачи запроса к вычислительному устройству-серверу 106.
[0024] Вычислительное устройство-сервер 106 включает в себя процессор 122 сервера и память 124 сервера, причем память 124 сервера содержит компоненты, которые могут выполняться с помощью процессора 122 сервера. Память 124 сервера включает в себя компонент 126 выполнения запроса, который принимает запрос от клиентского вычислительного устройства 108 и выполняет запрос по кубу 104 в хранилище 102 данных. Память 124 сервера дополнительно включает в себя компонент 128 обеспечения данных, который принимает данные из куба 104, основываясь на запросе, выполняемом с помощью компонента 122 выполнения запроса, и компонент 124 обеспечения данных обеспечивает такие данные 117 к клиентскому вычислительному устройству 108, где они помещаются в часть памяти 112, доступную для приложения 114 BI. Компонент 120 представления извлекает данные 117 из памяти 115 и представляет такие данные пользователю 110 (например, в табличном формате).
[0025] После того, как ему представлены данные, пользователь 110 может обеспечивать дополнительные вводимые данные по отношению к представленным данным. Например, пользователь 110 может пожелать, чтобы ему были представлены измерения, соответствующие конкретному атрибуту размерности (например, атрибуту размерности «день» для размерности, которая представляет время). В другом примере пользователь 110 может пожелать отфильтровать измерения, основываясь конкретных атрибутах размерности (например, пользователь 110 может пожелать исключить определенные дни, представленные в данных 117). В другом примере пользователь может пожелать расширить атрибут размерности, так что более детализированный атрибут показывается на экране устройства отображения (таким образом увеличивая количество строк в данных, представленных пользователю 110). Более того, пользователь 110 может пожелать сократить атрибут размерности, так что более крупный атрибут показывается на экране устройства отображения (таким образом уменьшая количество строк в данных, представленных пользователю 110). Компонент 114 приема вводимой информации может принимать такую вводимую информацию, и компонент 116 создания запроса может усовершенствовать вышеупомянутый запрос, основываясь на вводимой информации. Запрос передается с помощью клиентского вычислительного устройства 108 к вычислительному устройству-серверу 106, и компонент 126 выполнения запроса вычислительного устройства-сервера 106 выполняют усовершенствованный запрос по кубу 104. Компонент 128 обеспечения данных обеспечивает выдачу данных, основываясь на выполнении запроса по кубу 104, к клиентскому вычислительному устройству 108, где они помещаются в память 112 как данные 117. Компонент 120 представления представляет данные 117 в табличной форме пользователю 110. Пользователь 110 может затем опционально обеспечивать дополнительную вводимую информацию по отношению к представленным данным или предыдущим стадиям запроса для дополнительного усовершенствования запроса.
[0026] Поэтому может быть установлено, что пользователь 110 может побуждать создание запроса по множеству стадий (или этапов), причем пользователю 110 можно представлять табличные данные, извлекаемые из выполнения запроса к кубу, и он может затем выбирать дополнительные операции, которые должны выполняться по табличным данным, для усовершенствования запроса. Таким образом пользователь 110 может создавать или усовершенствовать запрос с помощью просмотра данных и последующего определения дополнительных операций для выполнения по данным. Это отличается от обычных подходов, при которых у пользователя 110 должно быть знание языка запросов, поддерживаемого компонентом 126 выполнения запроса, он должен иметь знание о части куба, которая представляет интерес для пользователя 110, и должен затем создавать запрос для извлечения части куба, которая представляет интерес, причем запрос находится на языке запросов, на который ссылаются выше. При обычных подходах, когда созданный запрос не приводит к представлению желательных данных пользователю 110, пользователь 110 должен создавать новый запрос (например, с самого начала), а не через подход «запроса по образцу», сформулированный в данной работе. Таким образом, используя аспекты, описанные в данной работе, пользователь 110 может легко исследовать содержимое куба 104 для получения бизнес-знания.
[0027] Далее сформулированы различные примеры, имеющие отношение к работе системы 100. Как указано ранее, куб 104 может быть представлен в качестве одноуровневой таблицы, которая содержит атрибуты размерности и приложения измерений, причем одноуровневая таблица может упоминаться как таблица «фактов». Запрос, который будет выполняться по кубу 104, может «уменьшаться» до представления, выраженного с точки зрения операторов отношения, таким образом предоставляя возможность пользователю 110 взаимодействовать с кубом 104, не будучи вынужденным изучать специфичные языки запросов. В общем случае оператор отношения является конструкцией, которая тестирует или определяет отношение между двумя объектами. Примерные операторы отношения включают в себя фильтры строк, выбор столбца, сортировку, среди других, но не ограничены ими.
[0028] Таблица размерности является таблицей, которая включает в себя столбец для каждого атрибута размерности. Таким образом, например, таблица размерности «время» может включать в себя отдельные столбцы для года, месяца, недели, дня и так далее. В таблице размерности члены каждого атрибута размерности подсчитываются, что приводит к перекрестному произведению членов атрибутов размерности. Например, таблица «потребители» для размерности «география клиентов» сформулирована ниже в таблице 1:
Таблица 1
География потребителей. Страна
География потребителей. Штат - область
География потребителей. Город
1
Австралия
Новый Южный Уэльс
Александрия
2
Австралия
Новый Южный Уэльс
Кофс-Харбор
3
Австралия
Новый Южный Уэльс
Дарлингхерст
4
Австралия
Новый Южный Уэльс
Гоулберн
5
Австралия
Новый Южный Уэльс
Лейн Коув
6
Австралия
Новый Южный Уэльс
Лавендер-Бэй
7
Австралия
Новый Южный Уэльс
Малабар
8
Австралия
Новый Южный Уэльс
Матравилл
9
Австралия
Новый Южный Уэльс
Милсонс Пойнт
10
Австралия
Новый Южный Уэльс
Ньюкасл
[0029] Концептуально, таблица фактов имеет таблицу размерности, относящуюся к ней посредством соединений («расширенных» размерностей) или вложенных соединений («сжатых» размерностей). Например, таблица фактов с «географией потребителей» и «продуктом» в качестве сжатых размерностей показана в таблице 2:
Таблица 2
География потребителей <- ->
Продукт <- ->
1
Таблица
Таблица
Эта таблица приводит к вложенному соединению таблицы фактов с каждой из этих таблиц размерности, например:
,
где, ссылаясь на параметры по порядку, «factTable» - таблица фактов, «{}» - левосторонние ключи, «#ʹCustomer Geographyʹ» - таблица размерности, «{}» - правосторонние ключи, и «география потребителей» - название столбца, который будет создан, в котором следует поместить вложенные таблицы. Каждая строка в таблице фактов представляет координату, которая выбирает некоторый поднабор данных в кубе. В этом случае, с нефильтрованным и нерасширенным набором размерностей, все данные в кубе 104 будут выбираться для данной одной (и только) строки в таблице фактов. Приложение 114 BI может действовать для фильтрации содержимого для отображения, таким образом выводя уровень отображения. Этот уровень отображения может скрывать сжатые размерности (например, для обеспечения лучшего и менее запутывающего взаимодействия пользователя с приложением). Нужно подразумевать, что каждую отдельную размерность не нужно представлять таким образом, но вместо этого размерности, которые были «затронуты» пользователем 110, могут быть представлены, когда пользователь 110 работает с кубом 104.
[0030] Как указано ранее, таблица размерности может расширяться для создания более подробных координат, и компонент 116 создания запроса может создавать запрос, который приводит к возникновению такого расширения. Например, расширение размерности «география потребителей» и выбор атрибутов «страна», «область» и «город» приводит к перекрестному произведению этих расширенных атрибутов и строк таблицы фактов, как показано в таблице 3:
Таблица 3
География потребителей. Страна
География потребителей. Штат - область
География потребителей. Город
Продукт
1
Австралия
Новый Южный Уэльс
Александрия
Таблица
2
Австралия
Новый Южный Уэльс
Кофс-Харбор
Таблица
3
Австралия
Новый Южный Уэльс
Дарлингхерст
Таблица
4
Австралия
Новый Южный Уэльс
Гоулберн
Таблица
5
Австралия
Новый Южный Уэльс
Лейн Коув
Таблица
6
Австралия
Новый Южный Уэльс
Лавендер-Бэй
Таблица
7
Австралия
Новый Южный Уэльс
Малабар
Таблица
8
Австралия
Новый Южный Уэльс
Матравилл
Таблица
9
Австралия
Новый Южный Уэльс
Милсонс Пойнт
Таблица
10
Австралия
Новый Южный Уэльс
Ньюкасл
Таблица
В примере это может моделироваться как расширение столбца «Customer Geography», которое является результатом вложенного соединения, представленного выше, например:
В данном случае параметр «Customer Geography» идентифицирует столбец для расширения; также обеспечен список столбцов для выделения из таблицы. Это также эквивалентно (одноуровневому) соединению между собой таблицы фактов и таблиц размерности, например:
,
где «factTable» идентифицирует таблицу фактов, «{}» представляет левосторонние ключи, «#"Customer Geography"» является таблицей размерности, и «{}» - правосторонние ключи. Можно отметить, что размерность «продукта» остается сжатой и может скрываться от представления. Каждая строка может выбирать поднабор данных в кубе 104, соответствующий отмеченной координате, например, строка 3 может выделять все данные для города Дарлингхерст в Новом Южном Уэльсе, Австралия, для всех продуктов.
[0031] Как указано ранее, измерение может моделироваться, как вычисленный столбец по координате размерности для строки. Это столбец, который является результатом той же самой функции, которая применяется к каждой строке в таблице. Например, применение измерения «Internet Sales Amt.» приводит к добавлению вычисленного столбца, как показано в таблице 4:
Таблица 4
География потребителей. Страна
География потребителей. Штат - область
География потребителей. Город
Продукт
Количество продаж через Интернет.
1
Австралия
Новый Южный Уэльс
Александрия
Таблица
нуль
2
Австралия
Новый Южный Уэльс
Кофс-Харбор
Таблица
235454
3
Австралия
Новый Южный Уэльс
Дарлингхерст
Таблица
155010
4
Австралия
Новый Южный Уэльс
Гоулберн
Таблица
310875
5
Австралия
Новый Южный Уэльс
Лейн Коув
Таблица
220083
6
Австралия
Новый Южный Уэльс
Лавендер-Бэй
Таблица
195122
7
Австралия
Новый Южный Уэльс
Малабар
Таблица
176905
8
Австралия
Новый Южный Уэльс
Матравилл
Таблица
216564
9
Австралия
Новый Южный Уэльс
Милсонс Пойнт
Таблица
187075
10
Австралия
Новый Южный Уэльс
Ньюкасл
Таблица
245936
В ответ на то, что компонент 115 приема вводимой информации принимает требование вычисления вышеупомянутого измерения, компонент 116 создания запроса может создавать следующий запрос, который приводит к вычислению измерения:
В этом примере измерение «#"Internet Sales Amount"» («количество продаж через Интернет» применяется по отношению к записи, созданной из доступных координат размерности. В примере, сформулированном выше, отдельные члены (зависящие от строки) атрибутов размерности «география потребителей» могут передаваться к каждому вызову измерения, в то время как весь сжатый набор членов «продукт» может передаваться к каждому вызову измерения. Таким образом измерение применяют к поднабору куба 104, описанному этой строкой. Например, строка 3 в приведенной выше таблице 4 применяет измерение «количество продаж через Интернет» к поднабору куба 104 для всех продуктов в географической области Дарлингхерст, Новый Южный Уэльс, Австралия.
[0032] Конечный уровень проектирования может размещаться поверх таблицы куба 104, которая скрывает сжатые столбцы размерности, таким образом они не мешают пользователю 110 или не смущают пользователя 110. Проектирование может выполняться, используя оператор, который конфигурируется для удаления столбцов из таблицы (например, Table.RemoveColumns).
[0033] Дополнительно, компонент 116 создания запроса может создавать запрос, который приводит к «перемещению» измерения, когда указывают, что требуется расширение или сжатие размерности. Например, пользователи ожидают, что выбранные измерения применяют к текущему набору координат размерности, и для измерений, которые должны обновляться, когда координаты размерности изменяются. Например, если измерение «количество продаж через Интернет» применяют к полностью сжатому кубу, может быть представлена следующая примерная таблица:
Таблица 5
Количество продаж через Интернет
1
29358677
Компонент 115 приема вводимой информации может принимать требование расширения атрибута «страна» размерности «география потребителей», и компонент 116 создания запроса может создавать запрос, который приводит к представлению таблицы, которую пользователь 110 ожидает увидеть:
Таблица 6
Количество продаж через Интернет
География потребителей. Страна
1
9061000
Австралия
2
1977844
Канада
3
2644017
Франция
4
2894312
Германия
5
3391712
Соединенное Королевство
6
938789
Соединенные Штаты
Это упоминается как «перемещение» измерений. Как указано ранее, компонент 116 создания запроса может идентифицировать требование вычисления измерения и может размещать это вычисление в созданном запросе в точке после выбора релевантного атрибута размерности.
[0034] В другом примере столбец может быть вычисленным столбцом, причем вычисленный столбец переносит функцию, которая использовалась для создания столбца. Например, пользователь может просматривать таблицу 6 и запрашивать функцию, используемую для вычисления столбца «количество продаж через Интернет»:
Если новый столбец должен создаваться с этой функцией, то будет обеспечиваться точная копия исходного столбца.
[0035] Вычисленные столбцы могут использоваться для перемещения измерения. Всякий раз, когда применяется операция куба, которая изменяет размерность куба (например, размерность добавляется, размерность расширяется или размерность сжимается), все измерения могут «перемещаться» таким образом, чтобы измерения повторно вычислялись по отношению к правильному набору координат размерности. Система 100 может выполнять многошаговый процесс для «перемещения» измерения соответствующим образом. Более конкретно, сначала компонент 116 создания запроса может собирать выражения для вычисленных столбцов таблицы, которые представляют приложения измерения. После этого компонент 116 создания запроса может удалять вычисленные столбцы для приложений измерений из таблицы. Размерность таблицы может затем обновляться, например, с помощью добавления измерения, расширения размерности или сжатия размерности. Выражения приложения измерения корректируются для внедрения новой размерности, и новые выражения приложения измерения применяют к таблице. Таким образом приложения измерения могут переупорядочиваться, чтобы казалось, как будто они произошли после того, как размерность куба была откорректирована.
[0036] Например, если пользователь 119 начинает с того, что измерение «количество продаж через Интернет» применяет только к атрибуту размерности «страна», и расширяет размерность «география потребителей» так, чтобы она включала в себя атрибут «город», то может происходить следующий процесс (относится к таблице 6). Сначала компонент 116 создания запроса может выделять выражение для вычисленного столбца:
После этого компонент 116 создания запроса может создавать запрос таким образом, чтобы вычисленный столбец был удален:
Таблица 7 иллюстрирует результирующую таблицу (где вычисленный столбец в таблице 6 удален).
Таблица 7
География потребителей. Страна
1
Австралия
2
Канада
3
Франция
4
Германия
5
Соединенное Королевство
6
Соединенные Штаты
[0037] Впоследствии может применяться изменение размерности: например:
Это расширение показано в таблице 1.
[0038] Компонент 116 создания запроса корректирует выражение для измерения так, чтобы оно включало в себя новую размерность:
В данном случае, тогда выражение для измерения рассматривает атрибут «город» размерности «география потребителей».
[0039] Наконец, компонент 116 создания запроса может повторно применять новое измерение:
Например, это может привести к таблице 8, генерируемой с помощью компонента 126 выполнения запроса.
Таблица 8
Количество продаж через Интернет
География потребителей. Страна
География потребителей. Штат - область
География потребителей. Город
1
Нуль
Австралия
Новый Южный Уэльс
Александрия
2
235454
Австралия
Новый Южный Уэльс
Кофс-Харбор
3
155010
Австралия
Новый Южный Уэльс
Дарлингхерст
4
310875
Австралия
Новый Южный Уэльс
Гоулберн
5
220083
Австралия
Новый Южный Уэльс
Лейн Коув
6
195122
Австралия
Новый Южный Уэльс
Лавендер-Бэй
7
176905
Австралия
Новый Южный Уэльс
Малабар
8
216564
Австралия
Новый Южный Уэльс
Матравилл
9
187075
Австралия
Новый Южный Уэльс
Милсонс Пойнт
10
245936
Австралия
Новый Южный Уэльс
Ньюкасл
[0040] Это «перемещение» столбцов измерения создает впечатление недостаточно функциональной и итерационной композиции. Другими словами, дополнительные этапы в запросе, которые изменяют размерность таблицы куба (и таким образом перемещают измерения), могут продолжать накапливаться, без необходимости возвращаться назад и корректировать любой из предыдущих этапов в цепочке.
[0041] Система 100 дополнительно поддерживает операторы куба, которые могут использоваться для управления данными куба. Такие операторы могут быть надстройками над существующими реляционными примитивами, за исключением того, что операторы добавляют другие операции для перемещения измерений вокруг основной реляционной операции. Для законченности ниже введена функция FactRowsExist, которая выбирает только комбинации координат из перекрестного произведения всех размерностей, которые фактически выбирают некоторые строки фактов из данных в базовом кубе 104. Подобный фильтр может использоваться для сохранения правильной семантики операций куба, когда они уменьшаются до реляционного пространства.
[0042] Сначала описан оператор «AddDimension», который добавляет размерность к таблице. Этот оператор принимает идентификатор таблицы фактов, идентификатор имени столбца таблицы размерности и идентификатор таблицы размерности в качестве вводимой информации. Например: AddDimension (factTable, dimensionColumnName, dimensionTable) может внедрять (возможно, отфильтрованную) таблицу размерности в таблицу фактов, используя вложенное соединение. Этот оператор может изменять размерность куба, если таблица размерности была отфильтрована. Можно отметить, что фильтрация таблицы размерности может выполняться посредством оператора, который выбирает строки в таблице (например, Table.SelectRows). Уменьшенная реляционная форма примерного оператора сформулирована ниже:
[0043] Оператор «ExpandDimension» расширяет атрибуты ранее присоединенной (например, посредством оператора AddDimension) таблицы размерности и изменяет размерность куба. Этот примерный оператор использует таблицу фактов, идентификатор названия столбца размерности и идентификатор по меньшей мере одного названия атрибута в качестве вводимой информации; например, ExpandDimension (factTable, dimensionColumnName, {dimensionAttributeName1, …}). Примерная уменьшенная реляционная форма этого оператора сформулирована ниже:
[0044] Оператор «CollapseDimension» сжимает атрибуты ранее расширенной размерности и изменяет размерность куба. Примерный оператор CollapseDimension использует таблицу фактов и идентификатор по меньшей мере одного названия атрибута в качестве вводимой информации; например, CollapseDimension (factTable, {dimensionAttributeName1, …}). Можно отметить, что возможно добавлять фильтр по отношению к членам размерности (и измерений) посредством оператора, который выбирает строки до сжатия размерности. Например, можно создавать срез по отношению к размерности, и его можно использовать для воплощения поперечной фильтрации размерностей и измерений (например, фильтр, который ссылается на множество размерностей сразу в операторе «или»). Примерная уменьшенная реляционная форма оператора CollapseDimension показана ниже:
[0045] Оператор «AddMeasure» применяет измерение к таблице фактов, причем запись координаты размерности может иметь форму, показанную в более ранних примерах. Оператор AddMeasure использует в качестве вводимой информации factTable, идентификатор названия столбца и идентификатор функции измерения, которая должна применяться; например, AddMeasure (factTable, columnName, measureFunction). Примерная уменьшенная реляционная форма оператора AddMeasure показана ниже:
[0046] Запросы, выраженные в формах, указанных выше, могут преобразовываться и обеспечиваться в любом порядке (например, с помощью компонента 116 создания запроса и/или компонента 126 выполнения запроса) в запрос, который может выполняться по отношению к целевому кубу 104. Описание, сформулированное ниже, предполагает знакомство с абстрактными деревьями синтаксиса (AST) и/или деревьями выражений, и дополнительно предполагает знакомство с нормализацией таких деревьев к стандартным формам. Концептуально, процесс преобразования запроса сформулирован ниже. Сначала пользователь 110 (или программа) выражает операции с точки зрения куба и операторов отношения. После этого операции куба «уменьшают» до операторов отношения и перемещают измерения. Впоследствии выражения нормализуют для переупорядочивания операторов и устанавливают в соответствии с нормализованными образцами дерева выражений. Затем нормализованные образцы дерева выражений можно «увеличивать» до «выражения куба», чтобы соответствовать ожиданиям серверов куба - например, таким образом, чтобы компонент 126 выполнения запроса мог выполнять запрос. Выражение куба может затем преобразовываться в определенный для сервера синтаксис.
[0047] Далее формулируются примерные правила нормализации запроса, которые могут применяться с помощью компонента 116 создания запроса. Например, выбор столбца и фильтры строки могут помещаться настолько далеко вниз в дерево выражений, насколько возможно. Вложенное соединение, которое расширяется, может преобразовываться в одноуровневое соединение; например, ExpandTableColumn(NestedJoin(x,y),{all cols of y}) -> Join(x,y). Удаление добавленного столбца происходит так, как будто столбец никогда не добавлялся: например, RemoveColumn(AddColumn(x),x) -> no-op. Группирование поверх одноуровневого соединения может преобразовываться во вложенное соединение в определенных случаях: например, Group(Join(x,y),{all cols of x},{table of y}) -> NestedJoin(x,y).
[0048] Далее сформулированы примерные действия, имеющие отношение к преобразованию «выражения куба», которое может выполняться с помощью компонента 116 создания запроса. Специфичные нормализованные образцы могут обнаруживаться в пределах уменьшенного выражения запроса и преобразовываться в «выражение куба» - дерево выражений, которое близко соответствует грамматике языков многомерных запросов. В примере одноуровневое соединение с таблицей размерности добавляет атрибуты размерности к выражению куба: например, Join(factTable, {}, dimensionTable, {}) преобразовывается к следующему виду:
[0049] В другом примере вложенное соединение с отфильтрованной таблицей размерности помещает фильтр по атрибутам размерности (например, срез) в подзапрос выражения куба. Например, NestedJoin(factTable, {}, SelectRows(dimensionTable, (r) => r[City]="Seattle")) преобразуется к следующему виду:
[0050] В еще одном примере приложение измерения добавляет ссылку измерения на выражение куба. Например,
преобразовывается в:
[0051] В еще одном примере фильтр строк (например, SelectRows) может преобразовываться в выражение для фильтра по измерениям и размерностям. Таким образом, например, Table.SelectRows(factTable, each [Internet Sales Amount] > 500) преобразуется к следующему виду:
[0052] В еще одном примере группа всех других размерностей преобразуется в операцию «сжатия» остающейся размерности. Сжатая размерность может помещаться в подзапрос в выражении куба, и другие размерности остаются во внешнем выражении куба. Поэтому, например, Table.Group(factTable, {"dim2", "dim3"}, {"collapsed dim1", (rows) => rows[dim1]}) преобразуется к следующему виду:
[0053] Компонент 116 создания запроса может преобразовывать выражение куба на ожидаемые язык и синтаксис целевого сервера куба. Многочисленные примеры сформулированы ниже для разъяснения действий, описанных выше.
Пример 1 - добавление размерности:
[0054] Следующий запрос может быть представлен пользователем или программой:
Компонент 116 создания запроса может уменьшать запрос к следующему виду:
Для этого примерного запроса не выполняется нормализация, и приведенное выше преобразуется в пустое выражение куба (так как нет операции куба, которая будет выполняться). Дополнительно, запрос не преобразуется на язык сервера куба, так как нет запроса, который будет выполняться по кубу 104. Результатом является выдача пустой таблицы.
Пример 2 - расширение размерности:
[0055] В последующих примерах формат выражения куба является следующим: «From» («из») относится к входному кубу; «Dimensions» («размерности») относятся к размерностям, которые будут расширяться; «Measures» («измерения») являются измерениями, которые будут применяться; и фильтр, на который ссылаются в приведенных в качестве примера фильтрах, приводит к строкам, основываясь на его предикатах. Следующий запрос может быть представлен пользователем или программой:
Компонент 116 создания запроса может уменьшать запрос следующим образом:
Компонент 116 создания запроса может затем нормализовать уменьшенное выражение, помещая ExpandTableColumn через SelectRows, и затем преобразуя образец ExpandTableColumn (NestedJoin) в одноуровневое соединение следующим образом:
[0056] Компонент 116 создания запроса может затем преобразовывать нормализованное выражение в выражение куба:
Компонент 116 создания запроса и/или компонент 126 выполнения запроса могут преобразовывать выражение куба на язык, поддерживаемый для запрашивания куба 104. Компонент 128 обеспечения данных может затем обеспечивать таблицу 1 к клиентскому вычислительному устройству 108 для отображения.
Пример 3: добавление измерения
[0057] Следующий запрос может быть представлен пользователем или программой:
Компонент 116 создания запроса может уменьшать такой запрос к следующему виду:
Компонент 116 создания запроса может затем преобразовывать выражение так, чтобы оно имело одноуровневое соединение, как в предыдущем примере:
[0058] Компонент 116 создания запроса может затем преобразовывать нормализованное выражение в выражение куба:
Компонент 116 создания запроса и/или компонент 126 выполнения запроса могут преобразовывать выражение куба на язык и/или синтаксис, соответствующий кубу 104. Таблица, являющаяся результатом выполнения такого запроса, показана в таблице 4.
Пример 4: фильтры
[0059] Следующий запрос может быть представлен пользователем или программой:
Компонент 116 создания запроса может уменьшать такой запрос к следующему виду:
Компонент 116 создания запроса может затем нормализовать приведенное выше выражение так, чтобы оно имело одноуровневое соединение. Компонент 116 создания запроса может также принудительно устанавливать фильтр «строк» атрибута размерности «город» ниже соединения с таблицей размерности «география потребителей», как показано в данной работе:
Компонент 116 создания запроса может затем преобразовывать нормализованное выражение в выражение куба:
Компонент 116 создания запроса и/или компонент 126 выполнения запроса могут преобразовывать вышеупомянутое выражение на язык и/или синтаксис, который может использоваться для запроса по кубу 104. Выполнение этого запроса может приводить к получению следующей таблицы:
Таблица 9
География потребителей. Страна
География потребителей. Штат - область
География потребителей. Город
Количество продаж через Интернет
1
Соединенные Штаты
Вашингтон
Сиэтл
75164
Пример 5: сжатие
[0060] Следующий запрос может быть представлен пользователем или программой:
Нужно отметить, что фильтр измерений, присутствующий в предыдущих примерах в данной работе, опущен для краткости. Компонент 116 создания запроса может уменьшать этот запрос к следующему виду:
[0061] Добавление операций для «перемещения» измерения следует отметить, так как размерность таблицы изменяется. Дополнительно, можно отметить, что приложение измерения откорректировано, чтобы основываться на новом наборе размерностей (страна). Можно дополнительно отметить, что используется операция Group, которая группирует остающиеся атрибуты размерности, которые не сжимаются. Сначала ExpandTableColumn (NestedJoin) заменяется одноуровневым соединением, как в предыдущих примерах:
Фильтр по размерности «город» принудительно устанавливается для таблицы размерности:
Пара RemoveColumns (AddColumn) также исключается, поскольку удаленный столбец больше не является необходимым. Можно отметить, что это является ключевой частью «перемещения» измерений и делает этот запрос эффективным для оценки после нормализации:
[0062] Наконец, компонент 116 создания запроса может нормализовать комбинацию Group(Join) в NestedJoin:
Компонент 116 создания запроса может затем преобразовывать данное выражение в выражение куба:
Компонент 116 создания запроса и/или компонент 126 выполнения запроса могут преобразовывать запрос на язык и/или синтаксис, которые могут использоваться для выполнения запросов по кубу 104. Следующую таблицу можно извлекать, основываясь на запросе:
Таблица 10
География потребителей. Страна
Количество продаж через Интернет
1
Соединенные Штаты
75165
[0063] Фиг. 2-4 показывают примерные методологии, относящиеся к созданию запроса для выполнения по кубу. Хотя методологии показаны и описаны, как являющиеся последовательностью действий, которые совершаются последовательно, следует понять и признать, что методологии не ограничены этим порядком последовательности. Например, некоторые действия могут происходить в другом порядке, чем тот, который описан в данной работе. Кроме того, действие может происходить одновременно с другим действием. Дополнительно, в некоторых случаях не все действия могут быть обязаны воплощать методологию, описанную в данной работе.
[0064] Кроме того, действия, описанные в данной работе, могут быть выполняемыми с помощью компьютера командами, которые могут воплощаться с помощью одного или большего количества процессоров и/или сохраняться на считываемом с помощью компьютера носителе или носителях. Выполняемые с помощью компьютера команды могут включать в себя алгоритм, подпрограмму, программы, поток выполнения и/или т.п. Более того, результаты действий методологий могут сохраняться на считываемом с помощью компьютера носителе, отображаться на устройстве отображения и/или т.п.
[0065] Далее, ссылаясь на фиг. 2, показана последовательность операций, показывающая примерную методологию 200 создания запроса, который может выполняться по кубу. Методология 200 начинается на этапе 202, и на этапе 204 принимают куб. На этапе 206 принимают выбор по меньшей мере одного атрибута размерности и по меньшей мере одного измерения в кубе. В примере куб может включать в себя данные, которые идентифицируют продажи по расположению и по времени. В таком примере продажи являются измерением, а расположение и время являются размерностями. Атрибуты размерности расположения могут быть городом, штатом и страной, в то время как атрибуты размерности времени могут быть неделями, месяцами и годами.
[0066] На этапе 208 создают запрос, основываясь на выборе по меньшей мере одного атрибута размерности и по меньшей мере одного измерения. В примере, если выбор был выполнен для атрибута размерности расположения «город», и выбранным измерением является «продажи», то созданный запрос может конфигурироваться для извлечения продаж по городам из куба.
[0067] На этапе 210 принимают данные, основываясь на запросе. В частности, запрос выполняют по кубу, и принимают данные, генерируемые, основываясь на выполнении запроса по кубу. Данные могут быть представлены пользователю в табличной форме на устройстве отображения вычислительного устройства. На этапе 212 принимают вводимую информацию по отношению к представленным данным. Такая вводимая информация может быть требованием фильтрации представленных данных, основываясь на конкретном значении атрибута, сжатия атрибута размерности, расширения атрибута размерности, добавления атрибута размерности, добавления измерения и т.д. Далее формулируются примеры этого типа вводимой пользователем информации. Продолжая пример, где пользователь получил цифры продаж по атрибуту размерности «город», пользователь может пожелать, чтобы ему были обеспечены цифры продаж в городах, которые начинаются с символа «A». Вводимая информация, таким образом, может быть требованием фильтрации городов, основываясь на вводимом символе «A». В другом примере, для сжатия атрибута размерности «расположение», пользователь может пожелать, чтобы ему были обеспечены цифры продаж по штату, а не по городу. Вводимая информация, принятая на этапе 212, таким образом, может быть требованием сжатия атрибута размерности «расположение» от «города» к «штату». В еще одном примере расширения атрибута размерности «расположение» пользователь может пожелать, чтобы ему были обеспечены цифры продаж по избирательному округу, а не по городу. Вводимая информация, принятая на этапе 212, может поэтому быть требованием расширения атрибута размерности «расположение» от «города» к «избирательному округу». В еще одном примере пользователь может пожелать, чтобы ему была обеспечена информация о прибыли вместе с данными по продажам. Пользователь может требовать, чтобы выдавали эту прибыль, так что пользователю обеспечивают и продажи по городу, и прибыль по городу. Это является примером добавления измерения. Дополнительно или альтернативно, пользователь может пожелать удалить измерение.
[0068] На этапе 214 запрос обновляют, основываясь на вводимой информации, принятой на этапе 212. На этапе 216 принимают дополнительные данные, основываясь на запросе, обновленном на этапе 214. Таким образом, обновленный запрос выполняется по кубу, и результаты такого выполнения принимают и представляют пользователю на экране устройства отображения. Поэтому, пользователь создает запрос, просматривая данные и идентифицируя по меньшей мере одну операцию, которая будет выполняться по данным. Этот процесс может продолжаться до тех пор, пока не будут получены данные, желаемые пользователем. На этапе 218 определяют, обеспечивает или нет пользователь дополнительную вводимую информацию. Если пользователь обеспечивает дополнительную вводимую информацию, то способ возвращается на этап 212, иначе способ завершается на этапе 220.
[0069] Далее, ссылаясь на фиг. 3, показана примерная методология 300, которая облегчает создание запроса для выполнения по кубу. Методология 300 начинается на этапе 302, и на этапе 304 принимают куб. На этапе 306 выбирают по меньшей мере один атрибут размерности (например, атрибут «дни» для размерности «время») и принимают по меньшей мере одно измерение. На этапе 308 создают запрос, основываясь на выборе по меньшей мере одного атрибута размерности и по меньшей мере одного измерения. На этапе 310 принимают данные, основываясь на данном запросе. Как описано выше, запрос, созданный на этапе 308, может выполняться по кубу, что приводит к обеспечению данных, которые могут быть представлены в табличной форме на устройстве отображения. На этапе 312 принимают требование сжатия или расширения по меньшей мере одной размерности, представленной в табличных данных. Сжатие размерности относится к созданию более крупномасштабных координат для более укрупненного атрибута, в то время как расширение размерности относится к созданию более подробных координат для более детализированного атрибута. На этапе 314 запрос усовершенствуется, основываясь на требовании сжатия или расширения по меньшей мере одной размерности.
[0070] Дополнительно, вычисление по меньшей мере одного измерения «перемещается» в запросе, например, так, чтобы измерение не вычислялось, пока не будут извлечены значения атрибута для соответствующих атрибутов размерности. Это происходит автоматически, несмотря на то, что пользователь на предыдущей стадии создания запроса требовал вычисление этого измерения (например, перед требованием расширения или сжатия атрибута размерности). Перемещение вычисления измерения может выполняться с помощью идентификации требования вычисления измерения и сдвига команды вычисления измерения в запросе в такое положение, чтобы вычисление измерения происходило после того, как идентифицирован атрибут размерности.
[0071] Нужно отметить, что это действие отличается, например, от добавления команды к концу запроса. Например, начальный примерный запрос может иметь следующую форму: DIMENSION=TIME; ATTRIBUTE=DAYS; MEASURE=SALES. Данные, извлекаемые, основываясь на таком запросе, могут быть продажами за день. Когда запрос повторно формулируется, запрос может иметь форму: DIMENSION=TIME; ATTRIBUTE=DAYS; ATTRIBUTE=WEEKS; MEASURE=SALES. Таким образом, выбор атрибута размещается перед командой вычисления измерения - вычисление измерения «перемещается». Снова, это является отличием от добавления выбора атрибута к концу запроса, следующим образом: DIMENSION=TIME; ATTRIBUTE=DAYS; MEASURE=SALES; ATTRIBUTE=WEEKS. Методология 300 завершается на этапе 316.
[0072] Далее, ссылаясь на фиг. 4, показана примерная методология 400, которая облегчает объединение кубов. Методология 400 начинается на этапе 402, и на этапе 404 принимают требование объединения первого куба из первого источника (необязательно, первого формата) со вторым кубом из второго источника (и необязательно, второго формата). На этапе 406 первый куб объединяют со вторым кубом для генерации объединенного куба. На этапе 408 запрос выполняют по объединенному кубу. Таким образом кубы из различных источников данных могут объединяться, и один запрос может выполняться по объединенному кубу. Методология 400 завершается на этапе 410.
[0073] Далее, ссылаясь на фиг. 5, показан примерный графический пользовательский интерфейс 500, который облегчает создание запроса, который будет выполняться по кубу. Графический пользовательский интерфейс 500 содержит графический значок 502, который представляет куб (например, куб 104). В ответ на выбор графического значка 502 может быть представлено множество значков 504-512, причем значки 504-512 представляют объекты в кубе, представленном с помощью значка 502. В примере графический значок 506 может представлять объекты, относящиеся к потребителям бизнеса. Выбор графического значка 506 может приводить к представлению графических значков 514 и 516, причем графические значки 514 и 516 представляют размерности в кубе 104. Выбор графического значка 516 может приводить к представлению множества графических значков 518-524, причем такие графические значки 518-524 представляют соответствующие атрибуты размерности, представленной значком 516. Числа, показанные в соответствии со значками в графическом пользовательском интерфейсе 500, могут указывать пользователю количество объектов ниже значка. Например, размерность, представленная с помощью значка 516, имеет четыре атрибута, и число (4) обозначено графически связанным со значком 516. Пользователь 110 может перемещаться по объектам и выбирать атрибуты размерности и измерения куба 104, которые представляют интерес для пользователя 110.
[0074] Далее, ссылаясь на фиг. 6, показан другой примерный графический пользовательский интерфейс 600, причем графический пользовательский интерфейс 600 изображает выбор пользователем 110 определенных атрибутов размерности и измерений. В ответ на получение выбора значка 512 показано множество значков 602 и 604, которые идентифицируют две группы измерений (измерения, относящиеся к покупкам, и измерения, относящиеся к продуктам, соответственно). В ответ на выбор значка 602 представлено множество выбираемых значков 606-610, причем значки 606-610, соответственно, представляют измерения. Примерные измерения, показанные на фиг. 6 под группой «покупки», включают в себя «заказанное количество», «полученное количество» и «стоимость». Дополнительно, в ответ на выбор значка 508 представляют значки 612 и 614, и в ответ на выбор значка 614 отображают значок 616. Значки 612 и 614 представляют размерности, относящиеся к продукту (например, «ИД продукта» и «название категории»), и значок 616 представляет атрибут «название категории» для размерности «название категории», представленной значком 614.
[0075] Как показано в примерном графическом пользовательском интерфейсе 600, выбран значок 606, и таким образом выбрано измерение, идентифицирующее заказанное количества товаров (например, «заказанное количество»). Дополнительно, выбраны атрибуты «город» и «страна» размерности «имя потребителя», и выбран атрибут «название категории» размерности «название категории». Когда пользователь 110 выбрал желательные атрибуты размерности и измерения, пользователь 110 может выбирать кнопку 618 «загрузка». Компонент 115 приема вводимой информации (фиг. 1) может принимать выбор атрибутов размерности и измерений (например, в ответ на выбор кнопки 618 «загрузка»), и компонент 116 создания запроса создает запрос, основываясь на вводимой информации, принятой с помощью компонента 115 приема вводимой информации. Вычислительное устройство-сервер 106 принимает запрос, и компонент 126 выполнения запроса выполняет запрос по кубу 104. Компонент 128 обеспечения данных принимает данные, выдаваемые, основываясь на выполнении запроса по кубу 104, и передает данные к клиентскому вычислительному устройству 108, где их помещают в память 112, как данные 117.
[0076] Далее, ссылаясь на фиг. 7, показан примерный графический пользовательский интерфейс 700, который включает в себя рабочую таблицу, причем компонент 120 представления представляет данные 117, извлеченные, основываясь на созданном запросе, в табличном формате. Графический пользовательский интерфейс 700 включает в себя табличные данные 702, которые включает в себя столбцы для выбранных соответствующих атрибутов размерности и строки для измерений значений атрибутов размерности. Таким образом, продолжая приведенные в качестве примера выборы пользователя, описанные выше со ссылкой на графический интерфейс пользователя 600, табличные данные 702 включают в себя первый столбец 704, который представляет атрибут «город» для размерности «имя потребителя», второй столбец 706, который представляет атрибут «страна» для размерности «имя потребителя», и третий столбец 708, который представляет атрибут «название категории» для размерности «название категории». Четвертый столбец 710 представляет измерение «заказанное количество», и значения в четвертом столбце 710 представляют заказанные количества продукта, показывающие соответствующие атрибуты в столбцах 704, 706 и 708.
[0077] Далее, ссылаясь на фиг. 8, показан примерный графический пользовательский интерфейс 800 средства редактирования запроса, которое облегчает создание и редактирование запроса. Например, в ответ на то, что ему представлены данные в рабочей таблице, показанной на фиг. 7, пользователь 110 может пожелать создать запрос, который приводит к тому, что различные данные представляют пользователю 110. Графический пользовательский интерфейс 800 включает в себя поле 802, которое формулирует список этапов, которые были выполнены для получения данных, показанных в графическом пользовательском интерфейсе 700. Поле 804 изображает данные, извлеченные из куба 104, основываясь на этапах, показанных в поле 802. Например, этап «источник» в поле представляет выбор куба 104, представленного значком 502. Этап «расширение dim1 (размерности 1)», показанный в поле 802, представляет выбор атрибутов размерности «город» и «страна» размерности «имя потребителя». Этап «расширение dim2 (размерности 2)» представляет выбор атрибута размерности «название категории» для размерности «название категории». Как будет описано в данной работе, этапы, показанные в поле 802, можно выбирать, и данные, представленные в поле 804, изменяются, когда выбираются различные этапы.
[0078] Далее, ссылаясь на фиг. 9, показан другой примерный графический пользовательский интерфейс 900 средства редактирования запроса. В этом примере пользователь 110 выбрал этап «расширение dim1» из списка этапов, изображенных в поле 802. В ответ на то, что выбран этап «расширение dim1», приложение BI может обновлять содержимое, показанное в поле 804, так что показаны значения атрибута для атрибутов размерности «город» и «страна» из размерности «имя потребителя», но значения атрибута для атрибута размерности «название категории» и измерения не изображены в поле 804.
[0079] Далее, ссылаясь на фиг. 10, показан другой примерный графический пользовательский интерфейс 1000 средства редактирования запроса. В данном случае, пользователь 110 выбрал третий этап («расширение dim2»), используемый для создания запроса, из поля 802, и содержимое поля 804 обновляется для представления данных, когда запрос создан, основываясь на первых трех этапах (но не на этапе «добавление измерения 1»). Таким образом, компонент 116 создания запроса создает запрос, основываясь на первых трех этапах, и компонент 126 выполнения запроса выполняет такой запрос по кубу 104. Поскольку третий этап относится к расширению названия категории, представлен третий столбец 708. Фиг. 9 и 10 представлены, чтобы показать, что пользователь 110, создавая и/или редактируя запрос через поэтапный подход, описанный в данной работе, может перейти назад, чтобы вставить новый этап запроса, изменить ранее выполненный этап запроса и т.д.
[0080] Далее, ссылаясь на фиг. 11, представлен другой примерный графический пользовательский интерфейс 1100 средства редактирования запроса, в котором пользователь 110 выбрал этап создания запроса «добавление измерения 1», который представляет выбор измерения «заказанное количество». Содержимое поля 804 обновляется в ответ на вышеупомянутый этап, выбираемый для представления значения измерения для значений атрибутов размерности. Снова, пользователь может вставлять этапы создания запроса между этапами, показанными в поле 802, может удалять этапы создания запроса из этапов, показанных в поле 802, добавлять этапы создания запроса после последнего этапа создания запроса, показанного в поле 802, и т.д.
[0081] Далее, ссылаясь на фиг. 12, отображен примерный графический пользовательский интерфейс 1200, который может использоваться для формулирования текстовой версии запроса, созданного посредством средства редактирования запроса. Редактируя текст, показанный на фиг. 12, пользователь 110 может захотеть изменить созданный запрос посредством вставки текста, удаления текста и т.д. Текстовый редактор может особенно хорошо подходить для пользователей, которые знакомы с языком запросов, используемым приложением 112 анализа бизнес-данных.
[0082] Далее, ссылаясь на фиг. 13, изображен примерный графический пользовательский интерфейс 1300, который показывает сжатие атрибута размерности. Как показано на фиг. 11, измерение «заказанное количество» вычислено по отношению к размерности «имя потребителя» для атрибутов размерности «город» и «страна», причем атрибут размерности «город» более детализированный, чем атрибут размерности «страна». Возвращаясь к фиг. 13, сжатие размерности от «города» к «стране» приводит к свертыванию значения измерения «заказанное количество» к атрибуту размерности «страна». Это представляет этап «сжатие dim1» в поле 802.
[0083] Создание запроса, используя подход «этап за этапом», описанный в данной работе, когда атрибуты размерности сжимаются или расширяются, является нетривиальным процессом, поскольку функция сжатия или расширения атрибутов размерности не может применяться последовательно с предыдущими этапами создания запроса. Компонент 116 создания запроса создает запрос, как описано выше, с помощью «перемещения» вычисления измерения назад в выражении запроса. Этому подходу нет аналога в параметрах реляционной базы данных. Таким образом, удаление столбцов из таблицы в параметрах реляционной базы данных не приводит к удалению строк.
[0084] Продолжая этот пример, компонент 116 создания запроса создает запрос (перед этапом «сжатие dim1») с помощью сначала определения первого выражения, которое извлекает идентифицированные атрибуты размерности, и затем определения второго выражения, которое вычисляет идентифицированное измерение для значений атрибута идентифицированных атрибутов размерности. Если компонент 116 создания запроса пытается определить третье выражение, которое сжимает размерность атрибута, где выполняется третья функция, то после первой и второй функций (например, соответствующих порядку этапов в поле 802), измерение все еще будет вычисляться по более подробному атрибуту размерности («город»), а не по желательному (более грубому) атрибуту размерности «страна». В случае сжатий и расширений, вместо того, чтобы последовательно добавлять выражения, выражение для вычисления измерения «перемещается» к внешней области запроса, так что выражение выполняется после того, как идентифицированы желательные размерности атрибута. Результирующая таблица 1302, показанная в поле 804, включает в себя два столбца; первый столбец 1304, соответствующий атрибуту размерности «страна» для размерности «имя потребителя», и второй столбец 1306, который идентифицирует значения измерений, вычисленные для значений атрибута, показанных в первом столбце 1304.
[0085] Со ссылкой на фиг. 14, представлен другой примерный графический пользовательский интерфейс 1400. Можно определить, что пользователь 110 выбрал предыдущий этап создания запроса в поле 802 (например, этап «добавление измерения 1»). Таким образом, например, пользователь 110 может пожелать модифицировать запрос перед запросом, который приводит к сжатию атрибута размерности «город» в атрибут размерности «страна». Например, пользователь 110 может выбирать конкретную ячейку 1402, которая имеет первое значение, в первом столбце 704, что может приводить к тому, что пользователю 110 будет представлено всплывающее окно 1404. Всплывающее окно 1404 может включать в себя выбираемые опции для фильтрации результатов табличных данных 702. Например, пользователь 110 может указывать, что он желает отфильтровать любые строки в табличных данных 702, имеющие первое значение, из табличных данных 702. В другом примере пользователь 110 может указывать, что он желает, чтобы ему были обеспечены только строки в табличных данных 702, которые имеют первое значение, среди других возможностей фильтрации. Операция фильтрации, выбранная пользователем 110 из всплывающего окна 1404, может затем добавляться в качестве этапа в процессе создания запроса в поле 802, и может быть представлена сразу после выбранного этапа (например, после этапа «добавление измерения 1», но до этапа «сжатие dim1 (размерности 1)»). Компонент 116 создания запроса, в ответ на то, что компонент 114 приема вводимой информации принимает указание, что пользователь 110 выбрал фильтрацию, может обновлять созданный запрос.
[0086] Что касается фиг. 15, пользователь 110 может затем выбирать последний этап в этапах запроса, показанных в поле 802 (например, этап «сжатие dim1»), что может приводить к тому, что компонент 116 создания запроса передает усовершенствованный запрос к компоненту 126 выполнения запроса, который выполняет усовершенствованный запрос по кубу 104. Компонент 128 обеспечения данных выдает данные 117, которые сохраняют в памяти 112 клиентского вычислительного устройства 108. Компонент 120 представления представляет данные 117 в табличном формате в поле 804, причем табличные данные 1502 показывают данные, выдаваемые при выполнении запроса. Например, значение в ячейке 1504 обновлено (по сравнению с соответствующим значением в ячейке, показанной на фиг. 13) из-за этапа фильтрации, который включает в себя запрос.
[0087] Что касается фиг. 16, показан другой примерный графический пользовательский интерфейс 1600 текстового средства редактирования запроса. Графический пользовательский интерфейс 1600 изображает текстовое представление запроса, созданного, как сформулировано выше.
[0088] Далее сформулированы различные примеры.
[0089] Пример 1: вычислительная система, содержащая: процессор; и память, которая содержит приложение анализа бизнес-данных (BI), которое выполняется с помощью процессора, приложение BI конфигурируется для: создания запроса, основываясь на пошаговых модификациях предыдущих версий запроса, запрос представлен как последовательность этапов запроса, каждый этап в последовательности этапов запроса соответствует соответствующей пошаговой модификации в пошаговых модификациях; и извлечения табличных данных из куба данных, основываясь на этом запросе.
[0090] Пример 2: вычислительная система согласно примеру 1, приложение BI содержит компонент создания запроса, который принимает пошаговую модификацию и создает запрос, основываясь на: пошаговой модификации и последовательности ранее принятых пошаговых модификаций, причем компонент создания запроса выражает запрос как множество операторов отношения.
[0091] Пример 3: вычислительная система согласно примеру 2, компонент создания запроса нормализует множество операторов к предопределенным образцам дерева выражений.
[0092] Пример 4: вычислительная система согласно примеру 1, приложение BI содержит компонент создания запроса, который принимает пошаговую модификацию запроса, пошаговая модификация запроса является требованием одного из расширения размерности в кубе или сжатия размерности в кубе, компонент создания запроса создает запрос, основываясь на пошаговой модификации.
[0093] Пример 5: вычислительная система согласно примеру 4, запрос содержит вторую пошаговую модификацию, вторая пошаговая модификация является требованием вычисления измерения для размерности, компонент создания запроса создает запрос таким образом, чтобы измерение вычислялось после атрибута выбранной размерности.
[0094] Пример 6: вычислительная система согласно примеру 5, вторая пошаговая модификация происходит перед пошаговой модификацией.
[0095] Пример 7: вычислительная система согласно любому из примеров 1-6, дополнительно содержащая компонент представления, который представляет табличные данные, извлеченные из куба данных, на устройстве отображении, компонент представления дополнительно представляет запрос на устройстве отображения.
[0096] Пример 8: вычислительная система согласно примеру 7, компонент представления представляет последовательность этапов запроса на устройстве отображения.
[0097] Пример 9: вычислительная система согласно примеру 8, приложение BI содержит компонент приема вводимой информации, который принимает выбор предыдущего этапа запроса в этапах запроса, причем в ответ на то, что компонент приема вводимой информации принимает выбор, компонент представления представляет на устройстве отображения вторые табличные данные из куба данных, вторые табличные данные извлекают, основываясь на запросе на предыдущем этапе в этапах запроса.
[0098] Пример 10: вычислительная система согласно примеру 9, компонент приема вводимой информации принимает промежуточную пошаговую модификацию после того, как компонент приема вводимой информации принимает выбор предыдущего этапа запроса, компонент создания запроса создает запрос для добавления другого этапа запроса после предыдущего этапа запроса и перед последним этапом запроса в последовательности этапов запроса.
[0099] Пример 11: вычислительная система согласно любому из примеров 1-10, содержащая вычислительное устройство-сервер, к которому можно получать доступ посредством веб-браузера.
[00100] Пример 12: способ, выполняемый с помощью процессора компьютера, данный способ содержит этапы, на которых: представляют табличные данные на устройстве отображения, табличные данные извлекают из куба данных, основываясь на этапе ранее выданного запроса; принимают последующий этап запроса; создают запрос, основываясь на этапе ранее выданного запроса и последующем этапе запроса; извлекают обновленные табличные данные из куба данных, основываясь на запросе; и представляют обновленные табличные данные на устройстве отображения в ответ на извлечение обновленных табличных данных.
[00101] Пример 13: способ согласно примеру 12, этап ранее выданного запроса приводит к вычислению измерения по первому атрибуту размерности, и последующий этап запроса приводит к вычислению измерения по второму атрибуту размерности.
[00102] Пример 14: способ согласно примеру 13, дополнительно содержащий: в ответ на прием последующего этапа запроса создают запрос таким образом, чтобы измерение вычислялось по второму атрибуту размерности после того, как второй атрибут размерности указан в запросе.
[00103] Пример 15: способ согласно любому из примеров 12-14, дополнительно содержащий представление последовательности этапа запроса на устройстве отображения, последовательность этапов запроса содержит этап ранее выданного запроса и последующий этап запроса, каждый этап запроса в последовательности этапов запроса можно выбирать.
[00104] Пример 16: способ согласно примеру 15, дополнительно содержащий: прием выбора этапа запроса в последовательности этапов запроса; создание запроса, основываясь на этапе выбора запроса в последовательности этапов запроса; и представление табличных данных, которые соответствуют запросу до выбранного этапа запроса.
[00105] Пример 17: способ согласно любому из примеров 12-16, последующий этап запроса является требованием сжатия или расширения по меньшей мере одной размерности, способ содержит усовершенствование запроса, основываясь на требовании сжатия или расширения по меньшей мере одной размерности.
[00106] Пример 18: способ согласно любому из примеров 12-17, причем создание запроса содержит: преобразование предыдущего этапа запроса и последующего этапа запроса во множество операторов отношения; и нормализацию множества операторов отношения, основываясь на предопределенном образце.
[00107] Пример 19: способ согласно любому из примеров 12-18, дополнительно содержащий: прием множества пошаговых модификаций запроса; и для каждой пошаговой модификации: создание запроса; и извлечение табличных данных, основываясь на соответствующей пошаговой модификации.
[00108] Пример 20: считываемый с помощью компьютера носитель данных, содержащий команды, которые, когда выполняются с помощью процессора, побуждают процессор совершать действия, содержащие: прием запроса; в ответ на прием запроса извлечение табличных данных из куба данных; в ответ на извлечение табличных данных из куба данных представление табличных данных и последовательности этапов запроса на устройстве отображения, последовательность этапов запроса представляет запрос, табличные данные содержат вычисленное измерение по первому атрибуту размерности в кубе данных; прием пошаговой модификации запроса, пошаговая модификация является требованием вычисления измерения по второму атрибуту размерности в кубе данных; и в ответ на прием пошаговой модификации запроса извлечение вторых табличных данных, основываясь на пошаговой модификации запроса, вторые табличные данные содержат измерение, вычисленное по второму атрибуту размерности.
[00109] Пример 21: воплощаемая с помощью компьютера система, содержащая: средство для представления табличных данных на устройстве отображения, табличные данные извлекают из куба данных, основываясь на этапе ранее выданного запроса; средство для приема последующего этапа запроса; средство для создания запроса, основываясь на этапе ранее выданного запроса и последующем этапе запроса; средство для извлечения обновленных табличных данных из куба данных, основываясь на данном запросе; и средство для представления обновленных табличных данных на устройстве отображения в ответ на извлечение обновленных табличных данных.
[00110] Далее, ссылаясь на фиг. 17, показана высокоуровневая иллюстрация примерного вычислительного устройства 1700, которое может использоваться в соответствии с системами и методологиями, раскрытыми в данной работе. Например, данное вычислительное устройство 1700 может использоваться в системе, которая поддерживает создание и усовершенствование запроса для выполнения по кубу данных. Посредством другого примера вычислительное устройство 1700 может использоваться в системе, которая поддерживает представление данных, выделенных из куба. Вычислительное устройство 1700 включает в себя по меньшей мере один процессор 1702, который выполняет команды, которые хранятся в памяти 1704. Команды могут быть, например, командами для воплощения функциональных возможностей, описанных, как выполняемые с помощью одного или большего количества компонентов, обсуждаемых выше, или командами для воплощения одного или большего количества способов, описанных выше. Процессор 1702 может получать доступ к памяти 1704 посредством системной шины 1706. В дополнение к хранению выполняемых команд память 1704 может также хранить таблицы фактов, таблицы размерности, иерархическую информацию и т.д.
[00111] Вычислительное устройство 1700 дополнительно включает в себя хранилище 1708 данных, к которому может получать доступ процессор 1702 посредством системной шины 1706. Хранилище 1708 данных может включать в себя выполняемые команды, куб, срез куба и т.д. Вычислительное устройство 1700 также включает в себя входной интерфейс 1710, который предоставляет возможность внешним устройствам осуществлять связь с вычислительным устройством 1700. Например, входной интерфейс 1710 может использоваться для приема команд от внешнего компьютерного устройства, от пользователя и т.д. Вычислительное устройство 1700 также включает в себя выходной интерфейс 1712, который соединяет вычислительное устройство 1700 с одним или большим количеством внешних устройств. Например, вычислительное устройство 1700 может отображать текст, изображения и т.д. посредством выходного интерфейса 1712.
[00112] Предполагается, что внешние устройства, которые осуществляют связь с вычислительным устройством 1700 через входной интерфейс 1710 и выходной интерфейс 1712, может включать в себя оборудование, которое обеспечивает по существу любой тип пользовательского интерфейса, с которым может взаимодействовать пользователь. Примеры типов пользовательского интерфейса включают в себя графические пользовательские интерфейсы, естественные пользовательские интерфейсы и т.д. Например, графический пользовательский интерфейс может принимать вводимую пользователем информацию, используя устройство (а) ввода данных, такое как клавиатура, мышь, пульт дистанционного управления или подобное устройство, и обеспечивать вывод на устройство вывода, такое как устройство отображения. Дополнительно, естественный пользовательский интерфейс может предоставлять возможность пользователю взаимодействовать с вычислительным устройством 1700 способом, свободным от ограничений, налагаемых устройством ввода данных, таким как клавиатура, мышь, пульт дистанционного управления и т.п. Вместо этого естественный пользовательский интерфейс может основываться на распознавании речи, распознавании касания и пера, распознавании жестов и на экране, и рядом с экраном, жестов в воздухе, отслеживании положения головы и глаз, голосе и речи, зрении, касании, жестах, искусственном интеллекте и т.д.
[00113] Дополнительно, хотя показано как одна система, нужно подразумевать, что вычислительное устройство 1700 может быть распределенной системой. Таким образом, например, несколько устройств могут осуществлять связь посредством сетевого соединения и могут коллективно выполнять задачи, описанные, как выполняемые с помощью вычислительного устройства 1700.
[00114] Различные функции, описанные в данной работе, могут воплощаться в аппаратных средствах, программном обеспечении или в любой их комбинации. Если воплощаются в программном обеспечении, то функции могут сохраняться или передаваться как одна или большее количество команд или код на считываемом с помощью компьютера носителе. Считываемый с помощью компьютера носитель включает в себя считываемые с помощью компьютера носители данных. Считываемые с помощью компьютера носители данных могут быть любыми доступными носителями данных, к которым можно получать доступ с помощью компьютера. Посредством примера, а не в качестве ограничения, такие считываемые с помощью компьютера носители данных могут содержать ОП (оперативную память), ПЗУ (постоянное запоминающее устройство), ЭСППЗУ (электрически стираемое программируемое ПЗУ), CD-ROM (ПЗУ на компакт-диске) или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для переноса или хранения желательного кода программы в форме команд или структур данных, и к которому можно получать доступ с помощью компьютера. В данной работе оптический диск и магнитный диск включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и диск Blu-ray (BD), причем магнитные диски обычно воспроизводят данные магнитным способом, а оптические диски обычно воспроизводят данные оптически с помощью лазеров. Дополнительно, объем считываемых с помощью компьютера носителей данных не включает в себя распространяемый сигнал. Считываемый с помощью компьютера носитель также включает в себя средство связи, включающее в себя любую передающую среду, которая облегчает перемещение компьютерной программы с одного места в другое. Соединение, например, может быть средством связи. Например, если программное обеспечение передается с веб-сайта, сервера или другого удаленного источника, используя коаксиальный кабель, оптоволоконный кабель, витую пару, цифровую абонентскую линию (DSL) или беспроводные технологии, такие как инфракрасные, радио- и микроволновые, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радио- и микроволновые, включает в себя определение средства связи. Объем считываемого с помощью компьютера носителя должен также включать в себя комбинации вышеупомянутого.
[00115] Альтернативно или дополнительно, то, что функционально описано в данной работе, может выполняться, по меньшей мере частично, с помощью одного или большего количества аппаратных логических компонентов. Например, и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут использоваться, включают в себя программируемые пользователем вентильные матрицы (FPGA), специализированные интегральные схемы (СпИС), ориентированный на программу стандартный продукт (ASSP), системы «система на чипе» (SOC), сложные программируемые логические устройства (CPLD) и т.д.
[00116] То, что описано выше, включает в себя примеры одного или большего количества вариантов осуществления. Конечно, невозможно описать все возможные модификации и изменения вышеуказанных устройств или методологий в целях описания вышеупомянутых аспектов, но специалист может признать, что возможно множество дополнительных модификаций и преобразований различных аспектов. Соответственно, описанные аспекты охватывают все такие изменения, модификации и вариации, которые находятся в пределах объема и формы прилагаемой формулы изобретения. Кроме того, в тех случаях, когда термин «включает в себя» используется или в описании подробностей, или в формуле изобретения, такой термин является включающим, аналогично термину «содержащий», как «содержащий» интерпретируется при использовании в качестве переходного слова в формуле изобретения.