165 составной атрибут из п значений. Поскольку реляционная модель данных не поддерживает составные атрибуты, то для реализации составного столбца используются несколько простых, а информация о том, какие столбцы реализуют хранение элементов куба, являющихся п-элементными множествами, хранится с помощью метаданных. Для реализации функций преобразования и слияния элементов feiem и fmerse используются функции, определяемые пользователем (user defined functions, UDF). Свертка. Выполняется операторами alter table <имя таблицы> add Определение нового столбца> update <имя таблицы> set <имя нового столбца>=<имя столбца свертки> Вызывает появление нового атрибута в таблице, представляющей гиперкуб. Новый атрибут является копией одного из уже существующих. Если до операции элементами гиперкуба были нули и единицы, то после нее элементы представляют собой одноэлементные множества. Если элементами гиперкуба уже были n-элементные множества, то после операции элементами гиперкуба являются множества с количеством элементов п+1. Поэтому после выполнения операции свертки вносятся изменения в метаданные, описывающие содержимое составных атрибутов. Развертка. Столбец составного атрибута, по которому производится развертка, становится самостоятельным измерением. При этом с самой таблицей ничего не происходит. Изменения вносятся только в метаданные, insert into hc_dimension (idjhypercube, id_dimension, id_aggregate_level attrib) values (идентификатор гиперкуба>, идентификатор измерения>, идентификатор измерения>) Удаление измерения. Операция приводит к удалению из таблицы атрибута, соответствующего удаляемому измерению. delete from hc_dimension where id_hypercube = идентификатор гиперкуба> and id_dimension = идентификатор измерения> |
4.1.3. Реализация аналитической обработки данных Реализация OLAP-анализа Основные операции OLAP-анализа, описанные в главе II, образуются путем сопоставления каждой из них конструкции на языке SQL. Ниже приведен способ выполнения каждой операции OLAP-анализа с помощью языка SQL. Для этого гиперкуб будет представляться в виде единственной таблицы, количество строк в которой будет совпадать с количеством строк в таблице фактов, а количество атрибутов равно количеству атрибутов всех таблиц измерений. Т.о., логический куб С, элементами которого являются числа 0 и 1, может быть представлен таблицей, имеющей к атрибутов и содержащей кортеж (с//,...,d*), если Е(С)(di,...,di)=l. Если гиперкуб имеет в качестве значений n-элементные множества, то таблица должна содержать составной атрибут из п значений. Поскольку реляционная модель данных не поддерживает составные атрибуты, то для реализации составного столбца используются несколько простых, а информация о том, какие столбцы реализуют хранение элементов куба, являющихся п-элементными множествами, хранится с помощью метаданных. Для реализации функций преобразования и слияния элементов f eiem и f merge используются функции, определяемые пользователем (user defined functions, UDF). Свертка. Выполняется операторами alter table <гшя таблицы> add <определение нового столбг(а> update <гшя таблицы> set <гшя нового столбца>=<имя столбца свертки> Вызывает появление нового атрибута в таблице, представляющей гиперкуб. Новый атрибут является копией одного из уже существующих. Если до операции элементами гиперкуба были нули и единицы, то после нее элементы представляют собой одноэлементные множества. Если элементами гиперкуба уже были п-элементиые множества, то после операции элементами гиперкуба являются множества с количеством элементов п+1. Поэтому после 116 выполнения операции свертки вносятся изменения в метаданные, описывающие содержимое составных атрибутов. 117 Развертка. Столбец составного атрибута, по которому производится развертка, становится самостоятельным измерением. При этом с самой таблицей ничего не происходит. Изменения вносятся только в метаданные. insert into hc_dimension (id_hypercube, id_dimension, id_aggregate_Ievel_attrib) values (<идентификатор гиперкуба>, идентификатор измерения>, идентификатор измерения>) Удаление измерения. Операция приводит к удалению из таблицы атрибута, соответствующего удаляемому измерению. delete from hc_dimension where id_hypercube = идентификатор гиперкуба> and id_dimension = идентификатор измерения> Ограничение. Эта операция реализуется с помощью оператора select, после ключевого слова where которого указывается условие, определяется ограничение. select *from <имя_таблицы> where P(D) Здесь, P(Dj) это предикат, задающий ограничение на значения выбранного измерения Д. При формировании условия пользователь может воспользоваться следующими средствами: знаками отношении <, >, <=, >=, о , =, для построения запросов вида select *from <имя_таблицы> where D,>X; агрегирующими функциями max, m/л, sum, avg, count для построения запросов вида select *from <гтя_таблицы> where Di in (select avg(Dj)from <гшя_таблицы>); t/DF-функциями, которые могут быть разработаны дополнительно, зарегистрированы в ХД, описаны в метаданных и предлагаться пользователю для построения условий. Эти |