|


| |
Подробно о модуле
X.Magic/Transaction&Query Processing
На этой странице Вы сможете найти следующие подразделы,
описывающие основные функциональные возможности модуля X.Magic/T&QP.
Объектная модель данных
Модель данных X.Magic/T&QP основана на гипотезе,
что мир состоит из объектов и связей между ними. И у объектов, и у связей может
быть неограниченное число характеристик различных типов. Связи, в отличие от
реляционной модели или объектной модели Cache’, представляются ЯВНО, имеют
соответствующую семантику и хранятся с обеих сторон. Поэтому связь
многие-ко-многим поддерживается так же естественно, как и связь один-ко-многим,
БЕЗ порождения дополнительного объекта.
Связь можно организовать и с помощью ссылки. Ссылка – это НЕ ТО ЖЕ САМОЕ, что
внешний ключ в реляционной модели. Ссылка – это особый Тип характеристики
объекта; по существу – это связь, интегрированная в объект. У связей с помощью
ссылок также есть своя семантика с обеих сторон, но такие связи, конечно, не
могут иметь собственных характеристик. Благодаря поддержке наборов в X.Magic/T&QP
связь с помощью ссылки так же может быть многие-ко-многим. Ссылки можно
использовать и в качестве характеристик связи.
Предлагаемая модель данных стирает границу между концептуальным и логическим
проектированием – реальные данные в системе представляются так же, как и при
проектировании схемы БД, с той же естественной структурой и семантикой.
Обработка транзакций
Транзакция в среде СУБД - это процесс перевода БД
из одного целостного состояния в другое целостное состояние. В ходе выполнения
транзакции целостность БД временно нарушается. Поэтому в случае какого-либо сбоя
информационной системы и ее рестарта целостность БД должна быть восстановлена.
Все функции, изменяющие БД, инициализируют один модуль X.Magic/T&QP, так
называемый монитор транзакций (МТ). МТ заносит все изменения сначала в журнал
изменений (ЖИ). Кроме того, МТ на этапе занесения информации в ЖИ может
выполнять установку и контроль блокировок.
После того, как все изменения записаны в ЖИ, и, следовательно, установлены все
блокировки, можно гарантировать беспрепятственное занесение изменений в БД.
Именно теперь МТ открывает транзакцию, переносит все изменения в БД, закрывает
транзакцию и очищает ЖИ от выполненных изменений. При записи в БД МТ "смотрит",
не выполняется ли в данный момент отчет, затрагивающий текущие данные, и, при
необходимости, переносит существовавшие до изменения данные в журнал старых
значений.
Механизм транзакций X.Magic/T&QP
обеспечивает :
 | независимость прикладного кода от структуры
базы данных |
 | логическую целостность данных |
 | возможность отката транзакций при создании
прикладного кода |
 | прозрачность транзакции – изменения,
выполняемые пользователем видны только ему до момента успешного завершения
транзакции |
 | локализацию системных команд Tstart, Tcommit с
целью независимости от платформы и от реализации их в Cache’ |
 | автоматическую блокировку элементов данных и
отслеживание конфликтов доступа |
 | согласованную работу с механизмом
“моментального снимка” – бесконфликтное целостное чтение меняющихся данных при
выполнении отчетов |
 | согласованное исполнение триггеров (кодов,
автоматически срабатываемых при создании, модификации и удалении экземпляров и
связей в базе данных) |
 | возможность реализации разного типа индексов |
Механизм блокировок
Механизм блокировок X.Magic/T&QP
обеспечивает:
 | оптимальную для многопользовательских систем
функциональность блокировок |
 | конфликты по чтению (мягкое, жесткое),
модификации, удалению на уровне экземпляров, объектов и связей |
 | автоматическое выставление связанных
блокировок |
 | неограниченное количество заблокированных
элементов одним пользователем |
 | неограниченное количество установок блокировок
на один и тот же элемент одним и тем же пользователем |
 | автоматический сбор мусора в блокировках (при
некорректном завершении процесса пользователей) |
 | автоматическое срабатывание блокировок нужного
уровня внутри транзакций |
 | возможность мониторинга блокировок |
Механизм триггеров
Помимо автоматической установки
связанных с выполняемыми в транзакции изменениями блокировок, механизм
транзакций X.Magic/T&QP обеспечивает
автоматическое выполнение триггеров. Триггер – программный код, который
выполняется при создании, модификации или удалении экземпляра или связи в базе
данных. В X.Magic/T&QP
триггеры делятся на системные и пользовательские, что позволяет разработчикам не
беспокоиться о триггерах, созданных пользователями, и наоборот.
Механизм триггеров обеспечивает:
 | при выполнении одного из действий в базе
данных (например, создание, модификация, удаление экземпляра или связи)
автоматическое исполнение кода (триггера), в котором можно совершать какие
либо действия в рамках той же транзакции с возвратом успешного или неуспешного
результата, влияющего на транзакцию в целом |
 | возможность рекурсивного вызова триггеров |
 | возможность модификации экземпляра внутри кода
триггера, который вызван модификацией этого экземпляра |
 | возможность создания пользовательских
триггеров, что гарантирует неприкосновенность пользовательского кода при
обновлениях версий прикладных систем |
 | возможность отключения триггеров |
Моментальный снимок
Этот механизм обеспечивает:
 | получение целостных данных на момент старта
отчета вне зависимости от продолжительности его работы и наличия транзакций
других пользователей, продолжающих менять данные, которые затрагивает такой
отчет |
 | одновременную работу неограниченного
количества таких отчетов в системе |
Многоязычная база данных
В продукте X.Magic
реализована возможность организации многоязычной базы данных.
Это дает возможность хранить и обрабатывать в приложении данные в разных версиях
языков без каких-либо дополнительных усилий со стороны разработчиков. Все, что
нужно разработчики - это определить текущий язык. После определения текущего
языка значения характеристик начинают выдаваться и записываться в соответсвии с
текущим активным языком. Индексы также работают с учетом текущего языка.
Данная возможность позволяет создавать прикладные многоязыковые решения без
дополнительных затрат на уровне метаописания.
Навигатор X.Magic/T&QP
Навигатор обеспечивает:
 | естественное видение базы данных для
пользователей |
 | значительное сокращение количества
пользовательских запросов к базе данных, что уменьшает общую нагрузку на
систему |
 | возможность создания произвольных
пользовательских отчетов без какого-либо программирования, причем: |
 | отчеты могут быть скопированы от пользователя
к пользователю, что позволяет более опытным помогать менее опытным |
 | результаты произвольных отчетов могут быть
экспортированы в формат DBF или в Excel с построением графиков |
Механизм динамической оптимизации запросов
Это “ноу-хау” компании "Информ Икс".
Перед выполнением запроса проводится поиск оптимального пути доступа к
извлекаемым данным. Путь будет разным в разные моменты времени для одной и той
же схемы отчета в зависимости от состояния базы данных.
Время выполнения оптимизации детерминировано, минимизировано и не зависит от
сложности запроса. При оптимизации используются динамически обновляемые
статистические данные об индексах объектов и связей и о количествах связей.
Оптимизируются практически все условия, заданные в схеме отчета.
Механизм сбора статистики работает в автоматическом режиме, и его реализация
связана с механизмом транзакций X.Magic/T&QP. Результат оптимизации
доступен пользователю в виде отчета на естественном (русском) языке, что
позволяет проводить анализ узких с точки зрения оптимизации мест и настраивать
систему с целью увеличения производительности отчетов.
Организация доступа и мониторинг
В X.Magic/T&QP применяется развитая система организации доступа,
имеющая две составных части:
 | индивидуальный доступ к элементам базы данных; |
 | коллегиальный доступ |
Администратор системы устанавливает необходимый
уровень доступа к объектам, связям, характеристикам объектов и связей, к
прикладным задачам. Изначальный доступ после регистрации пользователя в реестре
пользователей ко всему запрещен, что увеличивает степень конфиденциальности
данных.
Администратор имеет возможность провести диалог
(чат) с работающим пользователем, посмотреть фотографию экрана пользователя с
целью консультации пользователя, разослать сообщение и прекратить сеанс
пользователя.
X.Magic/T&QP также ведет историю регистраций
и дерегистраций пользователей в системе.
При регистрации в системе пользователь вводит два пароля: пароль, установленный
администратором, и пароль, установленный самим пользователем. Личный пароль
существенно повышает безопасность данных и позволяет запретить доступ
администратора под идентификатором пользователя.
X.Magic/T&QP позволяет настраивать журнал
ведения изменений данных. Изменение каждой характеристики в базе данных можно
фиксировать заданное количество раз (то есть сохраняется заданное количество
последних изменений). При этом всегда можно понять, какой пользователь, когда, с
какого, на какое значение изменил какую-либо характеристику какого-либо
экземпляра в базе данных.
Такая возможность по умолчанию выключена, поскольку требует незначительных
дополнительных накладных расходов в системе, но сам факт присутствия такой
возможности позволяет существенно повысить ответственность пользователей при
работе с системой.
Интеграция с Cache'
Данные, хранящиеся и обрабатываемые в
X.Magic/T&QP, могут быть
доступны через объектный или SQL-доступы Cache'. X.Magic/T&QP автоматически поддерживает отображение метаданных
в структуры Cache'. Это позволяет приложениям, созданным в среде нашей СУБД,
быть абсолютно открытыми для доступа из внешних приложений и доработок.
Документированность
X.Magic
– это отчуждаемый программный продукт компании "Информ Икс", и поэтому он имеет
всю необходимую документацию по его настройке и использованию:
 | Руководство по проектированию |
 | Руководство прикладного программиста |
 | Руководство системного администратора |
 | Руководство пользователя по Навигатору и
генератору отчетов |
Сравнительная характеристика СУБД
|
СУБД |
Методы доступа к
данным |
Модель данных |
Следствия
концептуальные |
Следствия
практические |
Oracle
DB2
MS SQL |
SQL |
Реляционная |
Логическая модель
данных
отличается от концептуальной
и скрыта от пользователей приложений
Приложения имеют
функциональный интерфейс
Семантика данных
отражается на уровне приложения |
Возможность
добавления элементов схемы БД самими
пользователями приходится
реализовывать на уровне приложения
Генерацию
нерегламентированных отчетов приходится реализовывать на уровне
приложения
Пользователи
работают не с данными, а с представлениями данных
Для
обучения пользователей требуется много времени, а
процессы самообучения и обмена опытом затруднены
Приложения
сложно развивать |
|
X.Magic/T&QP в
Cache' |
Навигационный
SQL
Прямой |
Объектная
|
Логическая модель
данных соответствует концептуальной и доступна пользователям
Приложения имеют и
объектный, и функциональный интерфейсы
Семантика данных
отражается на уровне X.Magic/T&QP
и автоматически используется на уровне
приложения |
Пользователи добавляют
элементы схемы БД на уровне СУБД
Пользователи
используют объектный генератор отчетов СУБД для формирования
нерегламентированных отчетов
Пользователи работают
непосредственно с данными, используя естественную концептуальную
модель Стандартный объектный
интерфейс существенно упрощает процессы самообучения пользователей и
обмена опытом Приложения легко
развивать |
|