<<
>>

Построитель пользовательских запросов

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

В данной работе предложен механизм построения запросов [62], который, с одной стороны, использует интерактивное редактирование условий на значения полей, подобное тому, которое реализуется в поисковых формах, а, с другой

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

Для того чтобы при формировании условия запроса пользователь мог свободно комбинировать ограничения на значения отдельных полей, необходимо

Рис. 17. Дерево разбора выражения A и (B или С)

поддержать редактирование произвольных логических выражений. Внутренним представлением выражения является его дерево разбора, пример которого показан на рисунке 17. Для интерактивного редактирования выражения его можно представить в виде подобного дерева. Однако если в узлах дерева потребуется отобразить более длинные надписи, вертикальное расположение дерева окажется неприемлемым: надписи начнут накладываться друг на друга, или потребуется рассредоточить узлы, что затруднит понимание логики, задаваемой деревом разбора выражения. Более компактное размещение надписей можно получить, если направить их по вертикали.

Но, поскольку горизонтально расположенный текст воспринимается лучше, чем вертикальный, того же эффекта лучше достичь за счет горизонтального размещения всего дерева.

Для редактирования выражений в виде горизонтально ориентированного дерева был разработан элемент управления TExprEditor (рисунок 18). Компонент поддерживает три способа редактирования значения в узле дерева, представляющего выражение: редактирование на месте; редактирование в отдельном диалоге и редактирование на той же форме. Помимо редактирования содержимого узлов необходимо иметь возможность изменения их взаимного расположения. Для этих целей в компоненте поддерживаются операции

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

Рисунок 18. Компонент TExprEditor

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

Рисунок 19. Расширенный режим построителя запросов

При необходимости задать более сложное условие можно перейти в расширенный режим (Рисунок 19), в котором используется компонент TExprEditor. В любом режиме способ редактирования условий на значения поля определяется информацией о типе поля из спецификации структуры БД. Например, для списочных и именованных полей будет доступен режим выбора значений из списка.

В расширенном режиме поддерживается формирование условий на записи подчинённых таблиц (Рисунок 20). При формировании таких условий построитель запросов вызывается рекурсивно. В приведённом на рисунке примере формируется условие: «Район города входит в 'Ленинский р-н', 'Свердловский р-н' и Количество записей в таблице "Адреса" с (В таблице "Здания по адресу" есть записи с (Тип здания входит в 'АЗС') ) >=2».

Иными словами: «На каких улицах Ленинского и

Свердловского районов находится более двух АЗС?». При этом используется два уровня подчинённости таблиц: Улицы содержат Адреса, а по одному Адресу может находиться несколько Зданий. Для задания условий на подчинённые таблицы формируются коррелированные подзапросы, в часть WHERE которых включаются условия связи мастер-детали. В рассматриваемом примере формируется следующий текст на SQL:

select T.id Id,T.reg_id reg_id,T0.type ST,T.name

name,T1.name Distr,T2.name mk,T.BTI_id BTI_id,T.IsNew IsNew,T.IsChanged IsChanged from dbo.street T

LEFT OUTER JOIN dbo.street~type T0 ON

(T0.Id=T.street_type_id)

LEFT OUTER JOIN dbo.distr T1 ON (T1.id=T.distr~id)

LEFT OUTER JOIN dbo.mkr T2 ON (T2.id=T.mkr~id)

WHERE (T1.id IN (8,10) and (select count(*) from dbo.buildings S

WHERE (T.id=S.street id)and(exists(select * from dbo.bld R

WHERE (S.Id=R.ADDRESS_ID)and(UPPER(R.HOUSE_TYPE) IN

(’АЗС’)))))>=2)

order by T.id

Рисунок 20. Логическое условие на количество записей подчинённой таблицы, удовлетворяющих требованиям

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

3.6.

<< | >>
Источник: Фереферов Евгений Сергеевич. ТЕХНОЛОГИЯ АВТОМАТИЗАЦИИ СОЗДАНИЯ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ С ГИС-ФУНКЦИОНАЛЬНОСТЬЮ НА ОСНОВЕ ИХ ДЕКЛАРАТИВНЫХ СПЕЦИФИКАЦИЙ. ДИССЕРТАЦИЯ на соискание ученой степени кандидата технических наук. Иркутск - 2014. 2014

Еще по теме Построитель пользовательских запросов:

  1. Новационное расширение представлений о личностных и профессионально важных качествах идеального школьного учителя в 1950 - 1980 гг.
  2. Выводы
  3. Влияние активаторов на зарядно-разрядные процессы
  4. 3.4. Обращения граждан.
  5. Заключение
  6. 9.3. Виды административного принуждения
  7. Общая характеристика исследования
  8. 16.2. Способы обеспечения законности и дисциплины в государственном управлении.
  9. Проблема выявления собственно церковнославянизмов и церковнославяно-русских полисемантов в идиолексиконе Вяземского: некоторые процедуры и результаты
  10. ПРИЛОЖЕНИЕ
  11. Формирование представлений о личностных и профессионально важных качествах идеального школьного учителя в 1900-1920 гг.
  12. Право на удовлетворение иска и право на получение судебной защиты
  13. Психолингвистический анализ современной медианоминации
  14. 21. Исполнение опекунами и попечителями обязанностей в отношении подопечного. Распоряжение и доверительное управление имуществом подопечного.
  15. Статистика влияния типа грунтов на распространение КРН
  16. 53. Оспоримые сделки: основания, условия, последствия и момент недействительности.
  17. Моделирование методом конечных элементов. Численный эксперимент
  18. Химченко Алексей Игоревич. ИНФОРМАЦИОННОЕ ОБЩЕСТВО: ПРАВОВЫЕ ПРОБЛЕМЫ В УСЛОВИЯХ ГЛОБАЛИЗАЦИИ. Диссертация на соискание ученой степени кандидата юридических наук. Москва - 2014, 2014
  19. Комбинационные резонансы аддитивно-разностного типа