Поддержка olap в Oracle

Вид материалаРеферат

Содержание


II. OLAP технология.
1.Особенности Oracle9i OLAP.
2.Компоненты Oracle9i OLAP.
3.Oracle9i OLAP в приложениях.
Представления SQL для аналитических рабочих областей
Доступ к аналитическим рабочим областям с использованием PL/SQL
4.Описание некоторых функций.
Пример: Получить все заказы и информацию о сумме ближайшего предыдущего заказа. SELECT товар_шифр, дата, сумма, LAG
Кс12 04-jan-01 1896 27000 пс01 12-oct-01 27000 3978
Кс12 29-jan-02 632 24750 д01 30-jan-02 24750 22500
2001 Зди [null] 7254 ->
2001 Зсм [null] 60396
2002 Зди [null] 28495
2001 Зди [null] 7254
2001 [null] кс12 1896
2002 Зсм [null] 68132
5.Возможности Oracle10g OLAP.
Подобный материал:

Министерство образования и науки РФ

Государственное образовательное учреждение

Высшего профессионального образования

Удмуртский Государственный Университет

Физический факультет

Кафедра высшей математики


Реферат:

«Поддержка OLAP в Oracle».


Выполнил: Бегешев А.Ю. гр.38-41

Проверил: Вотинцев А.А.


Ижевск 2006

Содержание


I. Понятие OLAP 3

II. OLAP технология 4

III. Поддержка OLAP в Oracle 5

1.Особенности Oracle 9i OLAP 5

2.Компоненты Oracle9i OLAP 6

3.Oracle9i OLAP в приложениях 7

4.Описание некоторых функций 9

5.Возможности oracle10g OLAP 11

IV.Заключение 13

V. Список Литературы 14


I.Понятие OLAP.


Многие из тех, кто работал с базами данных, сталкивались с понятием структурированный язык запросов (SQL). До недавнего времени, речь шла только о планарных реляционных базах данных. Но в современном мире информации нередко требуется получить сведения о конкретном подмножестве данных (например, узнать о заказах только в одной стране или сравнить данные о продажах только в конкретном месяце, но в разные годы) и отобразить не просто суммарные значения, а какие-то другие статистические данные (например, среднеквадратичное отклонение). Далеко не всегда подобные срезы данных можно получить, просто манипулируя имеющимися планарными БД и средствами SQL. Практически во всех промышленных OLAP-средствах, включая и Analysis Services, для получения нестандартных срезов данных требуется отдельный непроцедурный язык для формулирования запросов к многомерным базам данных.

Информационные системы масштаба предприятия, как правило, содержат несколько типов автоматизированных рабочих мест для различных категорий пользователей. Особое место среди них занимают приложения, применяемые менеджерами высшего звена и руководителями различных уровней и предназначенные обычно для комплексного многомерного анализа данных, их динамики, тенденций и в конечном итоге — для содействия принятию решений. Подобные приложения, как правило, отличаются по своему интерфейсу от обычных автоматизированных рабочих мест, предназначенных для ввода данных, и в большинстве случаев обладают средствами получения агрегатных данных (сумм, средних, максимальных и минимальных значений для различных выборок).

Технология комплексного многомерного анализа данных получила название OLAP.

OLAP — это ключевой компонент организации хранилищ данных (Data warehousing), то есть сбора, отсеивания и предварительной обработки данных с целью предоставления результирующей информации пользователям для статистического анализа и создания отчетов. Концепция OLAP была описана в 1993 году Е.Ф.Коддом, известным исследователем баз данных и автором реляционной модели данных.

OLAP (On Line Analytical Processing) можно перевести как “средства поддержки принятия решений”, т. е. информационное обеспечение той функции, которая присуща любой организации. Необходимость принятия решений всегда была и будет одним из основных элементов управления вне зависимости от технологий. В современных условиях принятие решений чаще всего поддерживается смесью бумажных и компьютерных технологий. OLAP есть не что иное, как более удобная технология, разработанная для той же цели. Воспользуемся определением OLAP, предложенным в материалах OLAP Council: OLAP — это программная технология, позволяющая аналитикам, менеджерам и управляющим сформировать свое собственное видение данных, используя быстрый, единообразный, оперативный доступ к разнообразным формам представления информации. Функциональное назначение OLAP заключается в обеспечении многомерного динамического анализа консолидированных данных предприятия. OLAP поддерживает следующие аналитические и навигационные виды деятельности пользователя:

1.Вычисления и моделирование, использующие информацию об иерархиях;

2.Аанализ временных тенденций показателей;

3.Формирование срезов многомерного представления для просмотра на экране;

4.Переход к более глубоким уровням детализации;

5.Доступ к исходным данным;

II. OLAP технология.

Технология многомерного анализа реализуется специальным компонентом Oracle OLAP, входящим в состав СУБД Oracle Database. Он позволяет хранить и обрабатывать многомерную информацию на том же сервере баз данных, где находится реляционное хранилище. По функциональным возможностям эта подсистема сравнима с многомерной СУБД Oracle Express. Средства OLAP поддерживают в полном объеме основной язык сервера Express (сейчас этот язык переименован в DML — язык обработки многомерных данных — и получил ряд функциональных расширений для использования возможностей СУБД Oracle).

Основа OLAP-технологии — логическая многомерная модель данных, с помощью которой можно определять такие понятия, как измерения, иерархии, многомерные показатели и т. п., и работать с ними. Все определения и описания таких многомерных объектов хранятся в репозитории OLAP Catalog, который представляет собой специально выделенную схему Oracle.

Каждый логический объект в каталоге описывается набором параметров. Например, для измерения указываются его имя и атрибуты, определяются возможные иерархии, а при определении куба задается имя, состав показателей, набор измерений, от которых зависят все эти показатели, типы агрегирования и т. д. Кроме того, для каждого логического объекта задается ссылка на «физический» объект, содержащий собственно данные. В простейшем случае такие «физические» объекты — столбцы обычных реляционных таблиц. Это соответствует ситуации, когда логическая многомерная модель реализуется обычной схемой «звезда» или «снежинка». Предусмотрена и другая возможность хранения многомерных объектов — в виде объектов аналитического пространства. Аналитическое пространство — это многомерная база Oracle Express, хранящаяся внутри базы данных Oracle Database в виде LOB-полей.

Для работы с описанными в каталоге OLAP многомерными объектами в состав Oracle OLAP включен набор Java-классов — Oracle OLAP API, реализующий все операции создания, модификации многомерных объектов и манипулирования ими (сам Oracle OLAP также реализован на базе Oracle OLAP API). Этот программный интерфейс позволяет разработчикам на Java создавать различные приложения, работающие с многомерной информацией.

Доступ к многомерной информации возможен не только из Java-приложений, но и из приложений, ориентированных на SQL. Если данные физически находятся в реляционных таблицах, то с ними можно работать непосредственно из любого языка, включающего SQL. В случае аналитического пространства существует возможность создать набор реляционных представлений (view), реализующих доступ к объектам аналитического пространства. Такие представления автоматически генерируются с помощью специальных хранимых процедур, использующих объектно-ориентированные возможности СУБД Oracle и технологию табличных функций.


III. Поддержка OLAP в Oracle.

1.Особенности Oracle9i OLAP.

Сервер Oracle Express много лет был ведущим сервером OLAP в отрасли, предлагая беспрецедентные функциональные возможности, производительность запросов и поддержку приложений. В версии Oracle9i корпорация Oracle взяла лучшие возможности сервера Oracle Express и встроила их в ядро базы данных.

Перейдя к Oracle9i OLAP, заказчики могут воспользоваться преимуществами повышенной производительности приложений, масштабируемости, готовности и управляемости при сохранении большинства сделанных ими ранее инвестиций в технологии Oracle Express.

Oracle9i OLAP полностью интегрирован в реляционную базу данных, все данные и метаданные хранятся и управляются в среде Oracle9i, обеспечивающей превосходную масштабируемость, устойчивую среду управления, а также готовность и защищенность промышленного уровня. К ключевым особенностям Oracle9i OLAP относятся:

1.Возможность поддерживать сложные, многомерные вычисления

2.Поддержка прогнозирующих функций типа прогнозов, моделей, неаддитивных агрегирований и распределений и управления сценариями (what if)

3.Java OLAP API

4.OLAPадминистрированиеИнтегрированное

Поддержка базами данных Oracle существующего OLAP

С тех самых пор как появился Oracle8i, корпорация Oracle включила функциональные возможности OLAP в базу данных, чтобы поддержать реляционный OLAP (ROLAP). Аналитические функции типа RANK, LAG/LEAD, FIRST/LAST и операторы агрегирования типа CUBE и ROLLUP, дают возможность пользователям выполнять сложные вычисления OLAP, используя стандартные запросы SQL. Чтобы сократить время отклика, для построения итогов и ускорения запросов способом, являющимся прозрачным для инструментальных средств типа Oracle Discoverer, могут использоваться технологии типа переписывания запроса и материализованных представлений.

Для того, чтобы дополнить эти функциональные возможности ROLAP, Oracle9i впервые ввел концепцию реляционной многомерной базы данных, включив в нее характеристики, которые ранее можно было найти только в ядре базы данных автономного продукта Oracle Express Server. То, что было ранее базами данных Express, теперь стало называться аналитическими рабочими областями (Analytic Workspaces – AW), хранящимися в таблицах в стандартных схемах Oracle, а сложившийся язык программирования Express был перенесен в Oracle9i и переименован в язык DML OLAP. Революционной особенностью, появившейся вместе с Oracle 9i OLAP, стала возможность стандартного SQL делать запросы к многомерным данным, хранящимся в аналитических рабочих областях, что открывает перед инструментальными средствами создания запросов SQL типа Oracle Discoverer и Oracle Reports всю мощь многомерного механизма. К числу других возможностей, появившихся в Oracle9i OLAP относится OLAP Catalog – уровень метаданных, в котором описываются и реляционные, и многомерные данные, используя общеупотребительные термины типа кубов, измерений и мер, и Java OLAP API – набор классов Java, который может использоваться, чтобы, используя Oracle Jdeveloper, строить приложения, понимающие OLAP.

Oracle9i OLAP – это многомерная база данных, точно так же, как и Express, и она работает параллельно с имеющимися в базе данных Oracle функциональными возможностями ROLAP. Новая характеристика, получившая название OLAP Catalog, размещается как дополнительный уровень метаданных как над базами данных ROLAP, так и над базами данных MOLAP, и действует как уровень абстракции, позволяя новым приложениям Oracle OLAP работать и с базами данных MOLAP, и с базами данных ROLAP одним и тем же способом.

2.Компоненты Oracle9i OLAP.

Oracle9i OLAP состоит из множества ключевых компонент.

Механизм вычислений – механизм Express:

Мощь, стоящая за Oracle9i OLAP, имеет своим источником специализированный многомерный механизм, портированный из Oracle Express Server.
Многомерный механизм обеспечивает поддержку языка DML OLAP (переименованный Express SPL) и управление многомерными объектами. Начиная с Oracle9i выпуска 2, этот механизм был полностью интегрирован в базу данных Oracle и выполняется в ядре базы данных Oracle.

Аналитические рабочие области – файлы .db:

Базы данных Express стали теперь аналитическими рабочими областямиOracle9i OLAP. Каждая из них является BLOB (большим двоичным объектом), и содержится в таблице, приписанной к табличному пространству Oracle, и принадлежащей пользователю Oracle. Аналитические рабочие области (Analytic Workspace или AW) могут быть постоянными или временными, для них могут быть предоставлены разрешения, подобно любым другим объектам базы данных, и они могут быть скопированы наряду с остальной частью базы данных Oracle. AW содержит все, что содержит Express DB, включая измерения, переменные, формулы и наборы значений. Данные в них хранятся тем же самым способом, что и в Express (например, переменная хранится по измерениям или композитам), используется примерно то же самое количество дисковой памяти, и так далее.

DML OLAP – язык программирования Express :

Oracle9i OLAP полностью поддерживает Express SPL, но теперь он известен как язык DML OLAP. Язык DML OLAP делает все, что может делать Express SPL – вы можете импортировать код Express в аналитическую рабочую область и выполнить его всего лишь с незначительными модификациями.

Табличные функции PL/SQL :

Табличные функции и абстрактные типы данных предлагают средства для представления данных через SQL. И API OLAP, и основанные на SQL приложения могут обращаться к данным в аналитических рабочих областях через табличные функции и реляционные представления, впервые давая инструментальным средствам типа Oracle Discoverer и Business Objects доступ к данным OLAP Express/Oracle9i.

API OLAP :

Новый Java API OLAP обеспечивает доступ и к реляционным, и к многомерным типам данных, и с помощью OLAP Catalog представляет их для приложений OLAP идентичным способом. API OLAP предлагает возможность создавать запросы, состоящие из множества стадий, подобно запросам Express в настоящее время, позволяя последовательно “нарезать” многомерные кубы, чтобы иметь возможность добраться до той части информации, которая требуется. Это контрастирует с SQL, который, вообще говоря, должен составлять полный запрос за один проход.

Метаданные OLAP Catalog :

Oracle9i обеспечивает уровень метаданных, расположенный выше, чем базы данных ROLAP (таблицы базы данных Oracle) и MOLAP (Oracle9i OLAP, аналитические рабочие области). Этот уровень предлагает уровень абстракции для приложений OLAP, с которыми работает. Описывая базы данных OLAP в терминах кубов, измерений, иерархий и мер, приложения могут ссылаться на эти объекты, не заботясь о том, как хранится база данных – в реляционном или в многомерном виде, а администраторы базы данных получают свободу переносить данные между базами данных ROLAP и MOLAP, не разрушая приложений OLAP.

Доступ из SQL к аналитическим рабочим областям :

Большим прогрессом для заказчиков Express, занявшихся переходом к Oracle9i OLAP, является возможность использовать для обращения к новому Oracle9i OLAP аналитические рабочие области инструментальные средства SQL. Теперь инструментальные средства типа Oracle Discoverer, Business Objects, Microsoft Excel и любые инструментальные средства создания запросов, соответствующие техническим требованиям JDBC или OCI, могут получить доступ к аналитической рабочей области в режиме только для чтения.

3.Oracle9i OLAP в приложениях.

Начиная с выхода Oracle8i, стандартные приложения Oracle стали способны использовать в своих интересах реляционные данные, сохраненные как кубы ROLAP. Дополнительные метаданные ROLAP (измерения, иерархии, итоги) прозрачны для запросов SQL и используются для ускорения ответа на запрос с помощью реляционных технологий типа переписывания запроса.

С появлением Oracle9i и опции OLAP (OLAP Option), теперь также возможно показать данные, хранящиеся в аналитических рабочих областях, чтобы к ним можно было делать запросы, используя нормальные инструментальные средства создания запросов SQL, используя представления SQL для данных или непосредственно используя новую функцию OLAP_TABLE. При обращении к данным аналитической рабочей области с использованием SQL можно усилить мощь многомерного механизма базы данных Oracle9i за счет использования целого диапазона приложений на базе SQL.

Представления SQL для аналитических рабочих областей

Используя Oracle9i, становится возможным создать представления по данным аналитической рабочей области, чтобы эти данные могли появиться в инструментальных средствах SQL, типа Oracle Reports и Oracle Discoverer, и чтобы казалось, что данные, к которым делается запрос, хранятся в обычных таблицах и столбцах Oracle. Функциональность SQL View обеспечивается через опцию, известную как табличная функция (Table Function), и может быть осуществлена путем использования инструментальных средств типа Oracle Warehouse Builder или Analytic Workspace Manager, или же представления могут быть созданы вручную через SQL*Plus.

Создание представлений SQL по аналитическим рабочим областям выполняется в два шага:
  • i. Создайте абстрактные типы данных для хранения данных аналитической рабочей области
  • ii. Создайте само представление, чтобы сделать возможным доступ через SQL

Абстрактные типы данных являются объектами базы данных Oracle9i, которые обеспечивают реляционную 'форму' (в виде столбцов и строк) нереляционным (то есть, имеющим не реляционную природу) источникам данных.

Первый абстрактный тип данных определяет возвращаемые столбцы. Если, например, требовалось создать представление, которое напоминало бы поисковую таблицу измерения для временного измерения, можно было бы создать следующий абстрактный тип данных:

create type olap_time_type_row as object (

month varchar(10),

quarter varchar(10),

year varchar(10),

all_times varchar(10)

);

Затем создается абстрактный тип данных, который связывает определения столбца с объектом типа таблицы.

create type olap_time_type_table as table of olap_time_type_row;

Теперь может быть создано представление, как это показано в следующем примере.

CREATE OR REPLACE VIEW olap_time_view AS

SELECT *

FROM TABLE(OLAP_TABLE('DDEPOT DURATION SESSION',

'olap_time_type_table',

'limit time KEEP levelrel_time ''MONTH''',

'DIMENSION month FROM time WITH

HIERARCHY parentrel_time

LEVELREL all_times, year, quarter

FROM familyrel_time USING leveldim_time'));

OLAP_TABLE принимает несколько параметров, которые идентифицируют источник данных, взаимодействуют с многомерным механизмом и связывают выбор с абстрактным типом данных. Вот некоторые из обычно используемых параметров:
  • AW-ATTACH – для определения, какая аналитическая рабочая область содержит данные
  • TABLE-NAME – связывает наш абстрактный тип данных с запросом
  • OLAP COMMAND – позволяет запросу посылать команду языка DML OLAP многомерному механизму
  • LIMIT MAP и ATTRIBUTE – отображают реляционные столбцы и атрибуты на соответствующие им эквиваленты в аналитической рабочей области
  • MEASURE – отображает реляционный столбец на переменную аналитической рабочей области

Ниже показан пример фразы FROM, использующей функцию OLAP_TABLE:

FROM TABLE(OLAP_TABLE('DDEPOT DURATION SESSION',

'olap_time_type_table',

'limit time KEEP levelrel_time ''MONTH''',

'DIMENSION month FROM time WITH

HIERARCHY parentrel_time

LEVELREL all_times, year, quarter

FROM familyrel_time USING leveldim_time

ATTRIBUTE month_of_year FROM attr_month_of_year

MEASURE month_label FROM month_name

MEASURE quarter_label FROM quarter_name

MEASURE year_label FROM year_name

MEASURE all_times_label FROM all_times_name'))

Используя функцию OLAP_TABLE вместе с представлениями SQL, многомерные данные, хранящиеся в аналитических рабочих областях, могут быть найдены и использованы с помощью обычных запросов SQL, а для изменения или ограничения отбираемых данных могут быть выполнены команды языка DML OLAP.

Доступ к аналитическим рабочим областям с использованием PL/SQL

Наконец, приложения могут выдавать команды непосредственно к многомерному механизму, не используя OLAP_TABLE. В этом случае, для того чтобы посылать команды многомерному механизму используется пакет PL/SQL DBMS_AW.EXECUTE. Вы можете послать любую команду языка DML OLAP через подключение OCI или JDBC (загрузить данные, агрегировать данные, разрешить модель, определить формулу и т.д.). Если ранее вы писали для интерфейса Express SNAPI API, вы можете представить себе, что OCI или JDBC и DBMS_AW.EXECUTE как бы являются заменой SNAPI, и что это – команда SN.EXECUTE.

Два других пакета PL/SQL – DBMS_AW.INTERP и DBMS_AW.INTERPCLOB – предлагают средства возврата данных из аналитических рабочих областей в программы PL/SQL.

4.Описание некоторых функций.
Аналитические функции типа RANK, LAG/LEAD, FIRST/LAST и операторы агрегирования типа CUBE и ROLLUP, дают возможность пользователям выполнять сложные вычисления OLAP, используя стандартные запросы SQL.
RANK

Синтаксис: RANK(arg1[, arg2[, ..., argN]])

Описание: Функция RANK вычисляет относительный ранг строки, возвращаемой запросом, на основе значений выражений, входящихв конструкцию ORDER BY. Данные в группе сортируются в соответствии с конструкцией ORDER BY, а затем каждой строке поочередно присваивается числовой ранг, начиная с 1. Строки с одинаковыми значениями выраженией, входящих в конструкцию ORDER BY, получают одинаковый ранг, но если две строки получат одинаковый ранг, следующее значение ранга пропускается. Если две строки получили ранг 1, строки с рангом 2 не будет; следующая строка в группе получит ранг 3. В этом отличие от функции DENSE_RANK, которая не пропускает значений.
LAG

Синтаксис: LAG(expr, n) OVER (PARTITION BY expr1 ORDER BY expr2)

Описание: Функция LAG дает доступ к другим строкам результирующего множества, избавляя от необходимости выполнять самосоединения. Она позволяет работать с курсором как с массивом. Можно ссылаться на строки, предшествующие текущей строке в группе. О том, как обращаться к следующим строкам в группе, см. в описании функции LEAD.

Пример:

Получить все заказы и информацию о сумме ближайшего предыдущего заказа.


SELECT товар_шифр, дата, сумма, LAG (сумма, 1, 0) OVER (ORDER BY дата) AS пред_заказ

FROM заказы;


Результат запроса:

ТОВАР ДАТА СУММА ПРЕД_ЗАКАЗ

--------- ----------- ----------- ----------------

КС12 04-JAN-01 1896 0

ПС01 12-OCT-01 27000 1896

Д03 12-OCT-01 3978 27000

ПС03 17-DEC-01 31500 3978

Д03 17-DEC-01 3276 31500

Д02 11-JAN-02 3745 3276

КС12 29-JAN-02 632 3745

Д01 30-JAN-02 24750 632

ПС01 02-FEB-02 22500 24750

ПС01 02-DEC-02 45000 22500


Из примера видно, что, сгруппировав по дате, функция LAG() позволяет получить информацию о предшествующей строке.
LEAD

Синтаксис: LEAD (expr, n) OVER (PARTITION BY expr1 ORDER BY expr2)

Описание: Функция LEAD противоположна функции LAG. Если функция LAG дает доступ к предшествующим строкам группы, то функция LEAD позволяет обращаться к строкам, следующим за текущей.

Пример:

Получить все заказы и информацию о сумме ближайшего последующего заказа.
SELECT товар_шифр, дата, сумма, LEAD(сумма,1) OVER (ORDER BY дата) AS пред_заказ
FROM заказы;
ТОВАР ДАТА СУММА ПРЕД_ЗАКАЗ
--------- ---------- ----------- ----------------
КС12 04-JAN-01 1896 27000
ПС01 12-OCT-01 27000 3978
Д03 12-OCT-01 3978 31500
ПС03 17-DEC-01 31500 3276
Д03 17-DEC-01 3276 3745
Д02 11-JAN-02 3745 632
КС12 29-JAN-02 632 24750
Д01 30-JAN-02 24750 22500
ПС01 02-FEB-02 22500 45000
ПС01 02-DEC-02 45000
Не трудно заметить, что результат работы функции LEAD() противоположен LAG().
ROLLUP

Синтаксис: ROLLUP(expr1[, expr2[, ..., exprN]])

Описание: строит агрегаты-подытоги (subtotal aggregates) на каждом запрошенном уровне, включая окончательные итоги (grand total).


Пример:

Из таблицы ЗАКАЗЫ посчитать сумму по каждому заказанному товару, найти общую сумму по всем заказам и по каждому изготовителю товара.

SELECT TO_CHAR (дата,'yyyy') AS год, товар_изготовитель AS изготовитель, товар_шифр

AS шифр_товара, SUM(сумма) AS доход

FROM заказы

GROUP BY ROLLUP (TO_CHAR (дата, 'yyyy'), товар_изготовитель, товар_шифр)

ORDER BY TO_CHAR (дата, 'yyyy'), товар_изготовитель, товар_шифр;


Результат в виде:


ГОД ИЗГОТОВИТЕЛЬ ШИФР_ТОВАРА ДОХОД

------ ----------------------- ----------------------- ----------

2001 ЗДИ Д03 7254

2001 ЗДИ [NULL] 7254 -> подытог первого уровня, т.е в 2001

2001 ЗСМ КС12 1896 году общая сумма заказов на товары

2001 ЗСМ ПС01 27000 производства ЗДИ составила 7254.

2001 ЗСМ ПС03 31500

2001 ЗСМ [NULL] 60396

2001 [NULL] [NULL] 67650 -> подытог второго уровня, т.е. в 2001

2002 ЗДИ Д01 24750 году общая сумма заказов на товары

2002 ЗДИ Д02 3745 всех производителей составила 67650

2002 ЗДИ [NULL] 28495

2002 ЗСМ КС12 632

2002 ЗСМ ПС01 67500

2002 ЗСМ [NULL] 68132

2002 [NULL] [NULL] 96627

[NULL] [NULL] [NULL] 164277 -> подытог третьего уровня, т.е. сумма

заказов на любые товары любых

производителей за два года.


Как видно из примера, ROLLUP создает подытоги для каждого возможного уровня. ROLLUP предоставляет полезную, высокого уровня обобщения, информацию такого типа, которую часто запрашивают управленцы. До ROLLUP, чтобы предоставить такую информацию, необходима была дополнительная обработка или ручная работа.


[NULL] значение, возвращаемое ROLLUP и CUBE это не [NULL] значение в привычном смысле этого слова. [NULL] является знаком того, что данная строка является подытогом определенного уровня.
CUBE

Синтаксис: CUBE(expr1[, expr2[, ..., exprN]])

Описание: расширяет возможности ROLLUP для вычисления всех возможных комбинаций подытогов для некоторого заданного GROUP BY.


Пример:

Из таблицы ЗАКАЗЫ посчитать сумму по каждому заказанному товару и его изготовителю, отдельно по каждому заказанному товару; найти общую сумму по всем заказам и отдельно по каждому изготовителю товара.


SELECT TO_CHAR (дата,'yyyy') AS год, товар_изготовитель AS изг, товар_шифр AS

шифр, sum (сумма) AS доход

FROM заказы

GROUP BY CUBE (TO_CHAR (дата, 'yyyy'), товар_изготовитель, товар_шифр)

ORDER BY TO_CHAR (дата, 'yyyy'), товар_изготовитель, товар_шифр;


Результат:

ГОД ИЗГ ШИФР ДОХОД

------ ----- --------- ----------

2001 ЗДИ Д03 7254

2001 ЗДИ [NULL] 7254

2001 ЗСМ КС12 1896

2001 ЗСМ ПС01 27000

2001 ЗСМ ПС03 31500

2001 ЗСМ [NULL] 60396

2001 [NULL] Д03 7254 -> подытог означающий, что данный товар любого произв.

2001 [NULL] КС12 1896 в 2001 году был заказан на сумму 7254

2001 [NULL] ПС01 27000

2001 [NULL] ПС03 31500

2001 [NULL] [NULL] 67650

2002 ЗДИ Д01 24750

2002 ЗДИ Д02 3745

2002 ЗДИ [NULL] 28495

2002 ЗСМ КС12 632

2002 ЗСМ ПС01 67500

2002 ЗСМ [NULL] 68132

2002 [NULL] Д01 24750

2002 [NULL] Д02 3745

2002 [NULL] КС12 632

2002 [NULL] ПС01 67500

2002 [NULL] [NULL] 96627

[NULL] ЗДИ Д01 24750 -> подытог означающий, что за период 2001-2002 товар Д01

[NULL] ЗДИ Д02 3745 производства ЗДИ был заказан на сумму 24750.

[NULL] ЗДИ Д03 7254

[NULL] ЗДИ [NULL] 35749 -> подытог означающий, что за период 2001-2002 г. г. все

[NULL] ЗСМ КС12 2528 товары производства ЗДИ были заказаны на сумму 35749

[NULL] ЗСМ ПС01 94500

[NULL] ЗСМ ПС03 31500

[NULL] ЗСМ [NULL] 128528

[NULL] [NULL] Д01 24750

[NULL] [NULL] Д02 3745

[NULL] [NULL] Д03 7254

[NULL] [NULL] КС12 2528

[NULL] [NULL] ПС01 94500

[NULL] [NULL] ПС03 31500

[NULL] [NULL] [NULL] 164277

5.Возможности Oracle10g OLAP.

В версию Oracle9i опции Oracle OLAP был включен целый диапазон новых особенностей и возможностей, которые теперь успешно реализуются заказчиками систем анализа бизнес-информации и партнерами, а многие имеющиеся заказчики Oracle Express теперь провели миграцию своих приложений с платформы Express Server на Oracle9i. Теперь можно с нетерпением ожидать некоторые новые возможности Oracle10g OLAP.

Усовершенствования реляционных возможностей OLAP

Как упоминалось ранее, в опцию Oracle OLAP включены и реляционные, и многомерные возможности, и Oracle10g вводит множество новых возможностей ROLAP, основанных на предлагавшихся в Oracle8i и Oracle9i характеристиках.

Вероятно, наиболее интересным из этих усовершенствований является SQL-фраза model, которая позволяет пользователям внедрять в оператор SELECT 'подобные электронной таблице' модели, способом, который был ранее возможен только при работе с механизмами многомерных баз данных. SQL-фраза model вносит полностью новое измерение в аналитические запросы Oracle и обеспечивает решение множества традиционных недостатков со способом, которым обычно работает SQL.

SQL-фраза model была разработана для разрешения определенного сорта ситуаций, когда в прошлом пользователям приходилось брать данные из реляционных баз данных и импортировать их в модель, хранящуюся в электронной таблице типа Microsoft Excel. Часто эти модели содержат ряд макроопределений (макросов), которые агрегируют данные по большому числу бизнес-измерений, по изменяющимся периодам времени и в соответствии с набором сложных бизнес-правил, которые было бы трудно выразить на обычном языке SQL. В прошлом пользователи часто обнаруживали, что ограничения стандартного SQL подразумевают, что должно быть использовано большое число автономных электронных таблиц, и пока они обеспечивали требующиеся аналитические возможности, проблемы масштабируемости, надежности репликации данных и недостаток полного контроля часто становились очевидными только через некоторое время.

Цель SQL-фразы model состоит в том, чтобы дать обычным операторам SQL возможность создавать многомерный массив из результатов обычного оператора SELECT, выполнять любое количество взаимозависимых вычислений для строк и подмассивов этого массива, а затем обновить базовые таблицы по результатам модели.

Вся мощь SQL-фразы model становится очевидной, когда вы рассматриваете все сказанное выше. К тому же, наряду с выводом результатов прогнозов и вычислений обратно в инструмент создания запросов типа Oracle Discoverer, модель может также записывать их обратно в основные таблицы, вставляя или обновляя значения согласно набору взаимозависимых вычислений и бизнес-правил модели. Могут быть созданы модели, которые много раз выполняют итерации по тому же самому набору данных, подавая результаты одних вычислений в другие и объединяя данные для многих различных моментов времени и диапазонов измерения. Все эти вычисления обрабатываются ядром базы данных Oracle, избегая дорогих операций соединения (join) и объединений (union) баз данных и используя в своих интересах такие опции как параллелизм и секционирование там, где они доступны.

В сочетании с имеющимися аналитическими характеристиками баз данных Oracle8i и 9i, фраза model дает базе данных Oracle10g мощные возможности математического моделирования, которых не найти в конкурирующих реляционных платформах баз данных. Особенно интересной является перспектива интеграции между SQL-фразой model и возможностями моделирования, имеющимися в многомерном механизме Oracle OLAP. О деталях сообщалось в опубликованном на выставке OracleWorld материале о тесной интеграции между фразой model и интерфейсом SQL к аналитическим рабочим областям. При этом запросы на детальном уровне могут быть обработаны реляционным механизмом, а на агрегированном уровне – многомерным механизмом, способом, который является прозрачным для пользователя и с минимальными накладными расходами.

Первое усовершенствование касается способа, которым большие аналитические рабочие области могут быть поделены на разделы, и вводит в мир Oracle OLAP некоторые из расширенных вариантов секционирования, которыми в настоящее время наслаждаются пользователи базы данных Oracle. В настоящее время, аналитические рабочие области, сохраненные как таблицы AW$ в составе схемы Oracle, могут быть разделены по количеству строк в таблице AW$ путем определения максимального размера сегмента. Это позволяет вам разбить индивидуальную аналитическую рабочую область на (скажем) сегменты по 10 Гбайт, по одному в каждой строке таблицы. Затем эту таблицу можно было бы разбить на разделы точно так же, как и любую другую таблицу Oracle, что позволит вам поместить одну строку в одно табличное пространство, другую – в другое табличное пространство, и каждое из этих табличных пространств можно будет, конечно, сохранить в файлах данных на различных физических дисках. Теперь в Oracle10g OLAP будет включено усовершенствование, в соответствии с которым вы сможете точно определить, какие объекты в составе аналитической рабочей области войдут в каждый из разделов, а если объекты являются особенно большими, вы сможете и далее продолжить это деление по размерам сегмента.

Другой превосходной новой особенностью и реальным усовершенствованием по сравнению с тем, что было доступно в Express, является поддержка многопользовательского доступа для чтения-записи к индивидуальным аналитическим рабочим областям. В прошлом один из недостатков Express заключался в том, что в режиме чтения-записи к базе данных Express мог подключиться только один пользователь, что вынуждало разработчиков Express разрабатывать целый диапазон альтернативных решений для того, чтобы позволить нерегламентированный доступ по записи к базам данных Express. В Oracle10g OLAP аналитические рабочие области могут быть прикреплены (attached) в режиме MULTI, после чего приложения приобретают (ACQUIRE) индивидуальные переменные в аналитической рабочей области для доступа по чтению-записи. Как только объект был приобретен (и блокирован многомерным механизмом Oracle), может иметь место его модификация, и приложение может делать любые необходимые модификации. После того, как были сделаны все изменения, для переменной выдаются команды UPDATE и COMMIT, а затем для той же переменной выдается команда RELEASE, чтобы сделать ее доступной для записи из других приложений.

В Oracle10g OLAP было улучшено агрегирование; теперь позволяется в качестве источника данных для команды AGGREGATE использовать формулы, что устраняет необходимость вычислять и сохранять данные на детальном уровне. Агрегирование, а особенно – динамическое агрегирование, стало еще одной областью, где Oracle9i, а теперь и 10g OLAP, демонстрируют заметное усовершенствование по сравнению с Express, и стоит рассмотреть эту область более подробно, если в имеющейся системе Express эти области были для вас проблемными.

Начальные детали, предлагавшиеся на момент запуска Oracle 9i OLAP, ссылались на опцию Oracle OLAP, где можно было использовать аналитические рабочие области как замену материализованных представлений, но практически это было трудно осуществить из-за ограничений в способе работы механизма перезаписи запроса. В 10g OLAP этот процесс был упрощен благодаря особенности, известной как эквивалентность запроса, которая используется для направления механизма переписывания запроса к базе данных на итоги – в этом случае, на аналитическую рабочую область с определенными по ней представлениями SQL – где не используется тот же самый синтаксис SQL, что и у первоначального запроса пользователя, но результаты которых эквивалентны. Это требуется, когда итоги обеспечиваются через представление SQL по аналитической рабочей области, так как представление SQL обычно никогда не бывает квалифицировано для переписывания запроса из-за синтаксиса основного оператора SELECT.


IV.Заключение.

Для компании Oracle направление хранилищ данных и аналитических систем уже несколько лет остается одним из самых приоритетных. Ориентируясь на общепринятые стандарты в этой области, Oracle предлагает новые решения и технологии для построения эффективных информационно-аналитических систем.

Как известно, информационно-аналитическая система должна выполнять сложные и разнообразные функции, включая сбор данных из различных источников, их согласование, преобразование и загрузку в хранилище, хранение аналитической информации, регламентную отчетность, поддержку произвольных запросов, многомерный анализ, автоматическое выявление полезных закономерностей и взаимосвязей и т. д. Все эти функции можно осуществить при помощи OLAP средств.


V. Список Литературы.

1. материалы сайта e.com/;

2. материалы сайта itonline.com/ssoft1/Func/text.php">
3. материалы сайта ag.ru/

4.материалы сайта k.ru/year1998/N15/CP1251/News/

5.материалы сайта cle.techtarget.com/

6.материалы сайта dex.phtml