Анализ данных cредствами многомерного куба Decision Cube
Средства анализа данных (OLAP, On Line Analytical Processing) представлены в Delphi на панели Decision Cube (Многомерный куб).
Рассмотрим порядок использования компонентов этой панели на примере анализа хода строительства по заказчикам и подрядчикам.
1. Создадим новый проект и на форме размеcтим компонент DecisionQuery. Выполним команду 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 у компонента DecisionQuery1, что вызовет цепочку расчетов и вывод таблицы (рис. 3.13.4).
Рис. 3.13.4. Итоговая таблица и диаграмма анализа строительства
Щелчок мышкой по кружку с плюсом или минусом или по кнопкам с наименованиями полей (осей измерений) на объекте DecisionPivot разворачивает или сворачивает соответствующие колонки или столбцы в таблице. Используя контекстное меню кнопок полей (осей измерений), можно перемещать эти поля по осям. Первая кнопка объекта DecisionPivot позволяет выбрать тип итога в ячейках результирующей таблицы.
8. Для получения графического представления результирующей таблицы анализа разместим компонент DecisionGraph(наследник компонента Chart(п. 2.3.7.7)) со свойством DecisionSource=DecisionSource1 (рис. 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; просмотров: 588;