Анализ данных cредствами многомерного куба Decision Cube

Средства анализа данных (OLAP, On Line Analytical Processing) представ­лены в Delphi на панели Decision Cube (Многомерный куб).

Рассмотрим порядок использования компонентов этой панели на примере анализа хода строительства по заказчикам и подрядчикам.

1. Создадим новый проект и на форме размеcтим компонент Deci­sionQuery. Выполним команду Decision Query Editor из кон­тек­ст­но­го меню этого компонента для вызова конструктора запросов (рис. 3.13.1).

2. Нажмем кнопку SQL Builder для построения запроса (рис. 3.13.2).

3. Перенесем поля Nz, Np, Ns в окно Dimension (измерение куба) и итоговые поля в клетках таблицы: итоги сметных и освоенных сумм (Sum(Ss),Sum(Fs)) и число строек (Count(Ns)) перенесем в окно Summaries.

4. Перейдем на страницу SQL Query и откорректируем текст коман­ды SQL: во фразе Select укажем наименование колонок (без пробелов) «Заказ», «Подряд», «Стройка», «Смета», «Освоено», «Строек» (рис.3.13.3). Нажмем кнопку Edit Query.

 
 

Рис. 3.13.1. Выбор данных, включаемых в таблицу анализа

 
 

Рис. 3.13.2. Окно построителя запросов


Рис. 3.13.3. Страница с текстом команды запроса SQL

 

Разместим на форме вычислительный компонент DecisionCubeсо свойством DataSet=DecisionQuery1.

5. Разместим компонент связи DecisionSourceсо свойством DecisionCube=DecisionCube1.

6. Разместим компоненты пользовательского интерфейса DecisionPivotи вывода результирующей таблицы DecisionGridсо свойствами DecisionSource=DecisionSource1.

7. Установим свойство Active=True у компонента Decision­Query1, что вызовет цепочку расчетов и вывод таблицы (рис. 3.13.4).

 
 

Рис. 3.13.4. Итоговая таблица и диаграмма анализа строительства

 

Щелчок мышкой по кружку с плюсом или минусом или по кнопкам с наименованиями полей (осей измерений) на объекте DecisionPivot разворачивает или сворачивает соответ­ствующие колонки или столбцы в таблице. Используя контекстное меню кнопок полей (осей измерений), можно перемещать эти поля по осям. Первая кнопка объекта DecisionPivot позволяет выбрать тип итога в ячейках результирующей таблицы.

8. Для получения графического представ­ле­ния результирующей таб­лицы анализа разместим компонент DecisionGraph(наследник компонента Chart(п. 2.3.7.7)) со свойством DecisionSour­ce=Deci­sionSource1 (рис. 3.13.4). Вид диаграмммы можно настроить аналогично компоненту Chart (п. 2.3.7.7).

9. Выполним программу и проверим результат.

3.14. Клиент‑серверные СУБД

Клиент‑серверные СУБД обладают дополнительными возможностя­ми (например, запросы выполняются не на клиентской машине, а на от­дель­­­ном сервере‑базы данных и только результат возвращается и отоб­ра­жается на клиентской машине, что разгружает каналы передачи данных). Рассмотрим основные компоненты, применяемые дополнительно для орга­ни­зации работы таких СУБД.

Session‑ компонент организует связь с конкретной ба­зой, учитывая ее особенности. Если таких особенностей нет, то ком­по­нент можно не использовать, и будет создан стандартный сеанс под именем Session.

Основные свойства

AutoSessionName‑ генерируется уникальное имя сеанса (True).

ConfigMode‑ настройка BDE для поддержки псевдонимов.

DatabaseCount‑ число активный баз данных.

SessionName‑ уникальное имя сеанса для ссылки на компонент сеанса.

SQLHourGlass‑ указатель в виде песочных часов при работе BDE.

Основные методы

Open/Close‑ открытие/отключение всех баз и закрытие сеанса.

CloseDatabase(Database:TDatabase) ‑ закрытие связи с конкретной базой.

GetDatabaseNames(List:TString) ‑ получение списка всех псевдонимов баз.

GetTablebaseNames(...) ‑ получение списка названий всех таблиц базы.

OpenDatabase(S):TDatabase ‑ открытие базы S или создание временной.

Database‑ компонент обязателен и описывает подключаемую базу данных.

Основные свойства

AliasName/DriverName‑ псевдоним базы/имя драйвера BDE (например, STANDARD). Задается одно из этих двух свойств.

Connected‑ имеет значение True, если связь с базой установлена.

DatabaseName‑ имя псевдонима или полное имя файла с базой данных.

DataSets‑ массив активных наборов данных.

Exclusive‑ монопольное использование базы (True).

InTransaction‑ имеет значение True, если выполняется транзакция.

IsSQLBased‑ имеет значение True, если используется драйвер SQL Links или ODBC.

KeepConnection‑ имеет значение True, если программа сохраняет связь.

Params‑ параметры подсоединения к псевдониму BDE.

Session‑ ссылка на объект‑сеанс, если он есть и Connected=True.

SessionAlias‑ имеет значение True, если используется псевдоним сеанса.

SessionName‑ название используемого сеанса.

ReadOnly‑ открытие базы только для чтения (True).

Temporary‑ использование временной базы (True).

TraceFlags‑ отслеживание работы над базой утилитой SQL Monitor.

TransIsolation‑ способ работы транзакций данной программы и других прило­же­ний: tiDirtyRead (разрешение чтения изменений данных до завер­шения транзакции), tiDirtyCommitted (разрешение чтения изменений дан­ных после завершения транзакции), tiRepeatableRead (чтение данных, кото­рые гарантированно хранятся в таблице без анализа других транзакций).

Основные методы

ApplyUpdates(...) ‑ завершение всех транзакций.

StartTransaction, Commit, Rollback‑ начать, завершить, отменить транзак­цию (п. 3.8).

Execute(S,...) ‑ выполнение команды языка запросов SQL из строки S.

ValidateName(S) ‑ процедура генерирует исключение EdatebaseError, если база S уже активна.

Обработчик события OnLogin(подключения базы) имеет парамет­ры: Database (псевдоним базы) и LoginParams (строка с параметрами для базы, например, имя пользователя и пароль).

StoredProc‑ хранимая процедура (например, на языках Delphi, Паскаль, SQL или Java), выполняемая не на клиентской машине, а на сервере базы.

Основные свойства

Params‑ массив типа TParam с параметрами хранимой процедуры.

ParamBindMode‑ передача параметров хранимой процедуре по имени (pbByName) или по порядковому номеру (pbByNumber).

ParamCount‑ число параметров хранимой процедуры.

Prepared‑ имеет значение True, если процедура готова (отком­пили­рова­на) для выполнения.

StoredProcName‑ наименование хранимой процедуры на сервере.

Основные методы

CopyParams(Value:TParams) ‑ копирование параметров хранимой процеду­ры в список Value.

DescriptionsAvailable: Boolean ‑ возвращает True, если можно получить дополнительную информация о параметрах процедуры.

ExecProc‑ запуск процедуры на выполнение.

GetResults- возвращение выходного набора от СУБД Sybase или MSSQL.

ParamByName(S):TParam ‑ доступ к параметру под именем S.

Prepare‑ подготавливает хранимую процедуру к выполнению.

UnPrepare‑ отменяет подготовку хранимой процедуры к выполнению.

Пример:

StoredProc1.Params[0].AsString:=Edit2.Text; //передача параметра из Edit2.

StoredProc1.Prepare; //подготовка хранимой процедуры к выполнению.

StoredProc1.ExecProc; //выполнение хранимой процедуры.

StoredProc1.Getresults; //возвращение результата в параметре Output.

Edit2.Text:=StoredProc1.ParamByname('Output').AsString;//вывод результата.

BatchMove‑ добавление, удаление или копирование записей.

Основные свойства

Destination/Source‑ исходный/выходной набор данных (таблица, запрос).

AbortOnKeyViolили AbortOnProblem‑ имеет значение True, если обработ­ка прерывается из‑за нарушения целостности базы или несоответствия типов полей.

ChangedCount‑ число записей в исходной таблице.

CommitCount‑ число записей в транзакции (для разбиения таблицы).

KeyViolCount‑ число изменяемых записей, нарушающих целостность ключей.

Mappings‑ список строк связей между полями исходной и выходной таблиц вида: поле=поле.

Mode ‑ режимы работы метода Execute: batAppend (добавить из исходной в вы­­хо­дную), batUpdate (замена записей в выходной таблице исходными по ключу), batAppendUpdate (режим batUpdate и добавление отсут­ствующих), batCopy (копирование исходной в выходную), batDeleted (уда­ле­­ние запи­сей из выходной таблицы, совпадающих по ключу с исходны­ми).

ProblemCount/MoveCount‑ число не/скопированных записей.

RecordCount‑ ограничение на максимальное число копируемых записей.

Transliterate‑ вызов драйвера перекодировки символов.

Метод Execute осуществляет копирование.

UpdateSQL‑ обновление набора данных (запроса), не пред­назна­чен­­но­го для изменения. Компонент связывается с объектом Query или StoredProc через свойство UpdateObject этих объектов. Затем за­дают­ся ко­манды SQL для автоматического выполнения после фор­ми­ро­ва­ния набора.

Основные свойства

DataSet, DeleteSQL, InsertSQL, ModifySQL‑ набор данных; команда SQL на удаление; добавление или обновления записей.

Query- ссылка на объект Query, который описывает работу команды SQL.

Основные методы

Apply(UpdateKind: TUpdateKind) ‑ задание параметров для команды SQL и ее исполнение.

ExecSQL(UpdateKind: TUpdateKind) ‑ выполнение команды SQL.

SetParams(UpdateKind: TUpdateKind)‑установка параметров команды SQL.

NestedTable‑ доступ к вложенной целой таблице в одно поле базы. В свойстве DataSetField указывается имя поля с таблицами.

Кэширование обновления позволяет хранить изменения в локальном буфере на клиентской машине и отправлять их в базу данных на сервере ба­зы методом ApplyUpdates, что экономит время, но задерживает внесе­ние текущих изменений в базу. Режим кэширования устанавливается свойст­вом CachedUpdates компонентов Table, Query, StoredProc. Этот про­цесс отсле­жи­вается событиями OnUpdateRecordи OnUpdateError.








Дата добавления: 2016-03-22; просмотров: 540;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.032 сек.