ПРОЕКТЫ
Тесты
Заключение
Выражения исчисления доменов
Во всех остальных отношениях формулы и выражения исчисления доменов выглядят похожими на формулы и выражения исчисления кортежей. В частности, конечно, формулы могут включать кванторы, и различаются свободные и связанные вхождения доменных переменных.
Для примера выражения исчисления доменов сформулируем с использованием исчисления доменов запрос “Выдать номера и имена сотрудников, не получающих минимальную заработную плату”:
СОТР_НОМ, СОТР_ИМЯ WHERE EXISTS СОТР_ЗАРП1
(СОТРУДНИКИ (СОТР_ЗАРП1) AND
СОТРУДНИКИ (СОТР_НОМ, СОТР_ИМЯ, СОТР_ЗАРП) AND
СОТР_ЗАРП > СОТР_ЗАРП1)
Реляционное исчисление доменов является основой большинства языков запросов, основанных на использовании форм. В частности, на этом исчислении базировался известный язык Query-by-Example, который был первым (и наиболее интересным) языком в семействе языков, основанных на табличных формах.
Этой лекцией мы завершаем обсуждение реляционной модели данных. В последних трех лекциях обсуждалась манипуляционная составляющая реляционной модели данных. Были рассмотрены два варианта реляционной алгебры. Конечно, с формальной точки зрения можно было бы обойтись любым одним вариантом, поскольку их выразительные средства эквивалентны. Но алгебра Кодда в большей степени базируется на теории множеств. Базовыми операциями являются переименование атрибутов, объединение, пересечение, взятие разности, декартово произведение, проекция и ограничение. Операция соединения общего вида, хотя и включается в алгебру, является вторичной и явно представляется через другие операции. Фундаментальная же в реляционном подходе операция естественного соединения выражается через соединение общего вида и в алгебру не включается. В терминах алгебры Кодда проще всего определяются алгебраические черты языка SQL, в частности, общая семантика оператора SELECT (см. лекцию 12).
Базисом Алгебры A являются операции реляционного отрицания (дополнения), реляционной конъюнкции (или дизъюнкции) и проекции (удаления атрибута). Реляционные аналоги логических операций определяются в терминах отношений на основе обычных теоретико-множественных операций и позволяют выражать напрямую операции пересечения, декартова произведения, естественного соединения, объединения отношений. Путем комбинирования базовых операций выражаются операции переименования атрибутов, соединения общего вида, взятия разности отношений. Алгебра A позволяет лучше осознать логические основы реляционной модели, хотя, безусловно, является в меньшей степени ориентированной на практическое применение, чем алгебра Кодда.
Реляционному исчислению мы отвели меньше места, поскольку не ставили перед собой задачу определить какой-либо полноценный логический язык запросов. Цель состояла лишь в том, чтобы показать возможность декларативной логической формулировки запросов. В этом случае выполнение запроса происходит путем интерпретации логической формулы, а не вычисления алгебраического выражения. Были обсуждены два варианта реляционного исчисления, первый из которых – реляционное исчисление кортежей – был определен сравнительно полно, а для второго – реляционного исчисления доменов – были только отмечены и проиллюстрированы основные отличительные черты.
В упражнениях к этой лекции мы снова будем использовать отношения СЛУЖАЩИЕ и ПРОЕКТЫ. Для удобства еще раз воспроизведем их примерные значения.
СЛУЖАЩИЕ
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Федоров | 20000.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Федоренко | 20000.00 | ||
Иваненко | 22000.00 |
ПРО_НОМ | ПРОЕКТ_РУК |
Иванов | |
Иваненко |
Будем считать, что определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.
1 (1) Какое из приведенных ниже отношений является областью истинности WWF
IF (СЛУ.СЛУ_ЗАРП > 18000.00 AND СЛУ.СЛУ_ЗАРП < 22000.00 AND
IF (СЛУ.СЛУ_ИМЯ = ‘Федоров’) THEN (СЛУ.ПРО_НОМ = 1))
THEN (СЛУ.СЛУ_НОМЕР = 2941)?
(а) +
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Иваненко | 22000.00 |
(б) -
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Иваненко | 22000.00 |
(в) -
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Федоренко | 20000.00 | ||
Иваненко | 22000.00 |
1 (2) Какое из приведенных ниже отношений является областью истинности WWF
IF (СЛУ.СЛУ_НОМЕР != 2941)
THEN (СЛУ.СЛУ_ЗАРП > 18000.00 AND СЛУ.СЛУ_ЗАРП < 22000.00 AND
IF (СЛУ.СЛУ_ИМЯ = ‘Федоров’) THEN (СЛУ.ПРО_НОМ = 1))?
(а) -
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Федоренко | 20000.00 | ||
Федоренко | 20000.00 |
(б) +
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Федоров | 20000.00 | ||
Федоренко | 20000.00 | ||
Иваненко | 22000.00 |
(в) -
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Иваненко | 22000.00 |
1 (3) Какое из приведенных ниже отношений является областью истинности WWF
IF (СЛУ.СЛУ_НОМЕР = 2941 AND СЛУ.СЛУ_ЗАРП > 18000.00)
THEN IF (СЛУ.СЛУ_НОМЕР = 2937 AND СЛУ.СЛУ_ЗАРП < 22000.00)
THEN (СЛУ.СЛУ_ИМЯ = ‘Федоров’)?
(а) -
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Иваненко | 22000.00 |
(б) -
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Федоров | 20000.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Иваненко | 22000.00 |
(в) +
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Федоров | 20000.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Иваненко | 22000.00 |
2 (1) Какому из следующих запросов соответствует выражение
ПРО WHERE (EXIST СЛУ1 ((ПРО.ПРО_НОМ = СЛУ1.ПРО_НОМ)
AND (ПРО.ПРО_РУК = СЛУ1.СЛУ_ИМЯ)
AND FORALL СЛУ2 ((ПРО.ПРО_НОМ = СЛУ2.ПРО_НОМ)
AND (СЛУ1.СЛУ_ЗАРП ³ СЛУ2.СЛУ_ЗАРП))?
(а)-
получить данные о проектах, участники которых получают максимальную зарплату
(б)+
получить данные о таких проектах, руководители которых являются участниками руководимого ими проекта и получают зарплату, максимальную среди участников проекта
(в) -
получить данные о таких проектах, руководители которых являются участниками руководимого ими проекта и получают зарплату, не являющуюся максимальной среди участников проекта
2 (2) Какому из следующих запросов соответствует выражение
СЛУ1.СЛУ_ИМЯ
WHERE EXIST СЛУ2 ((CЛУ1.СЛУ_НОМЕР = СЛУ2.СЛУ_НОМЕР)
AND (СЛУ1.ПРО_НОМ ¹ СЛУ2.ПРО_НОМ)
AND FORALL ПРО ((ПРО.ПРОЕКТ_РУК ¹ СЛУ1.СЛУ_ИМЯ)?
(а) +
выдать имена служащих, участвующих более чем в одном проекте и не являющихся руководителями ни одного проекта
(б) -
выдать имена служащих, не являющихся руководителями проектов
(в) -
выдать имена служащих, участвующих в проектах, руководители которых не зафиксированы в таблице служащих
2 (3) Какому из следующих запросов соответствует выражение
СЛУ1.СЛУ_ИМЯ, СЛУ1.СЛУ_ЗАРП
WHERE FORALL ПРО IF (СЛУ1.ПРО_НОМ ¹ ПРО.ПРО_НОМ)
THEN EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = ПРО.ПРО_НОМ)
AND (СЛУ1.СЛУ_ЗАРП > СЛУ2.СЛУ_ЗАРП))
(а) -
выдать имена и размер зарплаты служащих, не получающих минимальную зарплату
(б) +
выдать имена и размер зарплаты каждого служащего, который получают зарплату, большую минимальной зарплаты служащих во всех проектах, кроме, быть может, того проекта, в котором участвует сам служащий
(в)
выдать имена и размер зарплаты служащих, не участвующих проектах, среди участников которых имеются служащие, получающие минимальную зарплату
3 (1) Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена служащих, участвующих хотя бы в одном проекте, среди участников которого имеется хотя бы один служащий, получающий максимальную зарплату среди всех служащих”?
(а) +
СЛУ1.СЛУ_ИМЯ
WHERE EXISTS ПРО ((СЛУ1.ПРО_НОМ = ПРО.ПРО_НОМ)
AND EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = ПРО.ПРО_НОМ)
AND FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП ³ СЛУ2.СЛУ_ЗАРП))
(б) +
СЛУ1.СЛУ_ИМЯ
WHERE EXISTS СЛУ2 ((СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ)
AND FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП ³ СЛУ2.СЛУ_ЗАРП))
(в) -
СЛУ1.СЛУ_ИМЯ
WHERE FORALL СЛУ2 IF (СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ)
THEN FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП ³ СЛУ2.СЛУ_ЗАРП)
3 (2) Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена руководителей проектов, ни один из участников которых не получает минимальную зарплату среди всех служащих”?
(а) +
СЛУ1.СЛУ_ИМЯ
WHERE EXISTS ПРО ((СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК)
AND FORALL СЛУ2 ((СЛУ2.ПРО_НОМ ¹ СЛУ1.ПРО_НОМ)
OR EXISTS СЛУ3 (СЛУ2.СЛУ_ЗАРП > СЛУ3.СЛУ_ЗАРП))
(б) -
СЛУ1.СЛУ_ИМЯ
WHERE (СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК)
AND FORALL СЛУ2 ((СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ)
AND EXISTS СЛУ3 (СЛУ2.СЛУ_ЗАРП > СЛУ3.СЛУ_ЗАРП))
(в) +
СЛУ1.СЛУ_ИМЯ
WHERE (СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК)
AND FORALL СЛУ2 IF (СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ)
THEN EXISTS СЛУ3 (СЛУ2.СЛУ_ЗАРП > СЛУ3.СЛУ_ЗАРП))
3 (3) Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную заплату среди всех участников всех проектов с тем же самым руководителем”?
(а) +
СЛУ1.СЛУ_ИМЯ, ПРО1.ПРОЕКТ_РУК
WHERE (СЛУ1.ПРО_НОМ = ПРО1.ПРО_НОМ)
AND FORALL ПРО2
IF (ПРО1.ПРОЕК_РУК = ПРО2.ПРОЕКТ_РУК)
THEN EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ)
AND FORALL СЛУ3 IF (СЛУ3.ПРО_НОМ = ПРО2.ПРО_НОМ)
THEN (СЛУ2.СЛУ_ЗАРП £ СЛУ3.СЛУ_ЗАРП))
(б) -
СЛУ1.СЛУ_ИМЯ, ПРО1.ПРОЕКТ_РУК
WHERE FORALL ПРО1 ((СЛУ1.ПРО_НОМ = ПРО1.ПРО_НОМ)
AND IF (ПРО1.ПРОЕК_РУК = ПРО2.ПРОЕКТ_РУК)
THEN EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ)
AND FORALL СЛУ3 IF (СЛУ3.ПРО_НОМ = ПРО2.ПРО_НОМ)
THEN (СЛУ2.СЛУ_ЗАРП £ СЛУ3.СЛУ_ЗАРП))
(в) -
СЛУ1.СЛУ_ИМЯ, ПРО1.ПРОЕКТ_РУК
WHERE (СЛУ1.ПРО_НОМ = ПРО1.ПРО_НОМ)
AND IF (ПРО1.ПРОЕК_РУК = ПРО2.ПРОЕКТ_РУК)
THEN EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ)
AND FORALL СЛУ3 IF (СЛУ3.ПРО_НОМ = ПРО2.ПРО_НОМ)
THEN (СЛУ2.СЛУ_ЗАРП £ СЛУ3.СЛУ_ЗАРП))
В следующих упражнениях мы будем считать, что определены доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, мы будем добавлять в конце имени цифры.
4 (1) Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу “выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную заплату среди всех участников всех проектов с тем же самым руководителем”?
(а) -
СЛУ_ИМЯ1, ПРОЕКТ_РУК1
WHERE FORALL ПРО_НОМ1
(СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ1)
AND ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК)
AND IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК)
THEN EXISTS СЛУ_ЗАРП2
(СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1)
AND FORALL СЛУ_ЗАРП3
IF (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2)
THEN СЛУ_ЗАРП2 £ СЛУ_ЗАРП3))
(б) +
СЛУ_ИМЯ1, ПРОЕКТ_РУК1
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1,
ПРО_НОМ:ПРО_НОМ1)
AND ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК)
AND FORALL ПРО_НОМ2
IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК)
THEN EXISTS СЛУ_ЗАРП2
(СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1)
AND FORALL СЛУ_ЗАРП3 IF
СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2)
THEN СЛУ_ЗАРП2 £ СЛУ_ЗАРП3)
(в) -
СЛУ_ИМЯ1, ПРОЕКТ_РУК1
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1,
ПРО_НОМ:ПРО_НОМ1)
AND IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК)
THEN EXISTS СЛУ_ЗАРП2
(СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1)
AND FORALL СЛУ_ЗАРП3 IF
СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2)
THEN СЛУ_ЗАРП2 £ СЛУ_ЗАРП3)
4 (2) Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу “выдать имена служащих, участвующих хотя бы в одном проекте, среди участников которого имеется хотя бы один служащий, получающий максимальную зарплату среди всех служащих”?
(а) +
СЛУ_ИМЯ
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
AND EXISTS СЛУ_ЗАРП1 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ)
AND FORALL СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2)
AND СЛУ_ЗАРП2 ³ СЛУ_ЗАРП1)
(б) -
СЛУ_ИМЯ
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
AND FORALL СЛУ_ЗАРП1
IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ)
THEN FORALL СЛУ_ЗАРП2 (СЛУ_ЗАРП2 ³ СЛУ_ЗАРП1)
(в) -
СЛУ_ИМЯ
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
AND EXISTS СЛУ_ЗАРП1
(СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ)
AND FORALL СЛУ_ЗАРП2
(СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ)
AND СЛУ_ЗАРП2 ³ СЛУ_ЗАРП1)
4 (3) Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу “выдать имена руководителей проектов, ни один из участников которых не получает минимальную зарплату среди всех служащих”?
(а) -
СЛУ_ИМЯ
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
AND ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ, ПРОЕКТ_РУК:СЛУ_ИМЯ)
AND FORALL СЛУ_ЗАРП1
(IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ)
THEN FORALL СЛУ_ЗАРП2 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2)
THEN СЛУ_ЗАРП1 > СЛУ_ЗАРП2))
(б) +
СЛУ_ИМЯ
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
AND ПРОЕКТЫ (ПРОЕКТ_РУК:СЛУ_ИМЯ)
AND FORALL СЛУ_ЗАРП1
(IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ)
THEN FORALL СЛУ_ЗАРП2 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2)
THEN СЛУ_ЗАРП1 > СЛУ_ЗАРП2))
(в) -
СЛУ_ИМЯ
WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
AND ПРОЕКТЫ (ПРОЕКТ_РУК:СЛУ_ИМЯ)
AND FORALL СЛУ_ЗАРП1
(IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1)
THEN FORALL СЛУ_ЗАРП2 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2)
THEN СЛУ_ЗАРП1 > СЛУ_ЗАРП2))