Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:
СЛУЖАЩИЕ | |||
---|---|---|---|
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
2934 | Иванов | 22400.00 | 1 |
2935 | Петров | 29600.00 | 1 |
2936 | Сидоров | 18000.00 | 1 |
2937 | Федоров | 20000.00 | 1 |
2938 | Иванова | 22000.00 | 1 |
2934 | Иванов | 22400.00 | 2 |
2935 | Петров | 29600.00 | 2 |
2939 | Сидоренко | 18000.00 | 2 |
2940 | Федоренко | 20000.00 | 2 |
2941 | Иваненко | 22000.00 | 2 |
ПРОЕКТЫ | |
---|---|
ПРО_НОМ | ПРОЕКТ_РУК |
1 | Иванов |
2 | Иваненко |
Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.
Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.
Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу "выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную зарплату среди всех участников всех проектов с тем же самым руководителем"?
СЛУ_ИМЯ1, ПРОЕКТ_РУК1WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ1) AND IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК) THEN EXISTS СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1) AND FORALL СЛУ_ЗАРП3 IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2) THEN СЛУ_ЗАРП2 <= СЛУ_ЗАРП3)
СЛУ_ИМЯ1, ПРОЕКТ_РУК1WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ1) AND ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК1) AND FORALL ПРО_НОМ2 IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК1) THEN EXISTS СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1) AND FORALL СЛУ_ЗАРП3 IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2) THEN СЛУ_ЗАРП2 <= СЛУ_ЗАРП3)(Верный ответ)
СЛУ_ИМЯ1, ПРОЕКТ_РУК1WHERE FORALL ПРО_НОМ1 (СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ1) AND ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК) AND IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК)) THEN EXISTS СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1) AND FORALL СЛУ_ЗАРП3 IF (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2) THEN СЛУ_ЗАРП2 <= СЛУ_ЗАРП3))