Диапазоном называется множество значений, заключенных между двумя граничными значениями, причем граничные значения входят в диапазон.
Интервалом называется множество значений, заключенных между двумя граничными значениями, причем граничные значения не входят в интервал.
Полудиапазоном называется множество значений, заключенных между двумя граничными значениями, причем одно из граничных значений входит в полудиапазон, а другое – не входит.
Например:
целые числа 4, 5, 6, 10, 16, 17, 18 входят в диапазон от 4 до 18, а числа 1, 3, 19, 20 – не входят;
целые числа 5, 6, 7, 10, 16, 17 входят в интервал от 4 до 18, а числа 1, 3, 4, 18, 19, 20 – не входят.
Отношения «в диапазоне/интервале» можно пояснить рисунком рис. 26-1, а отношения «вне диапазона/интервала» – рисунком рис. 26-2. Если значение поля попадает в заштрихованную область, то соответствующий элементарный критерий истинен.
Рис. 26-1. Отношения «в диапазоне/интервале»
Рис. 26-2. Отношения «вне диапазона/интервала»
Отношения диапазонов/интервалов можно задавать для всех типов полей. Элементарный критерий, содержащий отношение данной группы, должен иметь два операнда.
Отношения диапазонов/интервалов основаны на отношениях сравнения. Элементарный критерий, использующий отношения данной группы, можно разбить на два элементарных критерия, соединенных связками, при этом каждый из этих элементарных критериев содержит одно из отношений сравнения.
Допустимые в системе ObjectLand отношения диапазонов/интервалов приведены в таблице 26-3. В этой таблице для каждого отношения, кроме описания условия истинности, приведен эквивалентный критерий, построенный с использованием отношений сравнения и связок. В пояснениях используются обозначения: П – значение поля, О1 и О2 – значения первого и второго операндов.
символ | название | условие истинности элементарного критерия | эквивалентный критерий, содержащий отношения сравнения |
[ ] | в диапазоне | значение поля находится в диапазоне между значениями первого и второго операндов; границы, то есть значения операндов, включаются в диапазон | П>=О1 И П<=О2 |
( ] | в полудиапазоне | значение поля находится в полудиапазоне между значениями первого и второго операндов, левая граница (определяемая первым операндом) исключается | П>О1 И П<=О2 |
[ ) | в полудиапазоне | значение поля находится в полудиапазоне между значениями первого и второго операндов, правая граница (определяемая вторым операндом) исключается | П>=О1 И П<О2 |
( ) | в интервале | значение поля находится в интервале между значениями первого и второго операндов, границы исключаются | П>О1 И П<О2 |
] [ | вне диапазона | значение поля находится вне диапазона, определяемого значениями первого и второго операндов, границы исключаются | П<О1 ИЛИ П>О2 |
) [ | вне полудиапазона | значение поля находится вне полудиапазона, определяемого значениями первого и второго операндов, правая граница (определяемая вторым операндом) исключается | П<=О1 ИЛИ П>О2 |
] ( | вне полудиапазона | значение поля находится вне полудиапазона, определяемого значениями первого и второго операндов, левая граница (определяемая первым операндом) исключается | П<О1 ИЛИ П=>О2 |
) ( | вне интервала | значение поля находится вне интервала, определяемого значениями первого и второго операндов, границы включаются | П<=О1 ИЛИ П=>О2 |
Табл. 26-3. Отношения диапазонов/интервалов
Необходимо заметить: хотя отношения диапазонов/интервалов основаны на отношениях сравнения, однако в тех случаях, где это возможно, рекомендуется заменять пару элементарных критериев, использующих отношения сравнения, на один элементарный критерий, использующий отношение диапазонов/интервалов. Подобная замена целесообразна потому, что операция поиска в случае элементарного критерия с отношением диапазонов/интервалов выполняется быстрее, чем при использовании пары элементарных критериев с отношениями сравнения.
Например, для операции «найти и отобразить паспорта зданий, отремонтированных в 1994 году» критерий поиска можно задать, используя отношения сравнения или диапазонов.
При использовании отношений сравнения критерий поиска будет состоять из двух элементарных, соединенных связкой «И»:
первый критерий: поле – «Дата последнего ремонта», отношение – «не меньше», операнд – 1.01.1994;
второй критерий: поле – «Дата последнего ремонта», отношение – «не больше», операнд – 31.12.1994.
При использовании отношения «в диапазоне» критерий поиска будет состоять из одного элементарного:
поле – «Дата последнего ремонта», отношение – «в диапазоне», первый операнд – 1.01.1994, второй операнд – 31.12.1994.
В соответствии с замечанием, для такой операции поиска целесообразнее использовать критерий, заданный с помощью отношения «в диапазоне».