игра брюс 2048
Главная / Базы данных / Введение в реляционные базы данных / Тест 5

Введение в реляционные базы данных - тест 5

Упражнение 1:
Номер 1

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже отношений является областью истинности WFF?

IF (СЛУ.СЛУ_ЗАРП > 18000.00 AND СЛУ.СЛУ_ЗАРП < 22000.00 AND IF (СЛУ.СЛУ_ИМЯ = ‘Федоров’) THEN (СЛУ.ПРО_НОМ = 1)) THEN (СЛУ.СЛУ_НОМЕР = 2941)

Ответ:

 (1)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2941Иваненко22000.002
 

 (2)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2941Иваненко22000.002
 

 (3)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко22000.002
2940Федоренко18000.002
2941Иваненко22000.002
 


Номер 2

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какому из следующих запросов соответствует выражение?

ПРО WHERE (EXISTS СЛУ1 ((ПРО.ПРО_НОМ = СЛУ1.ПРО_НОМ) AND (ПРО.ПРОЕКТ_РУК = СЛУ1.СЛУ_ИМЯ)) AND FORALL СЛУ2 ((ПРО.ПРО_НОМ = СЛУ2.ПРО_НОМ) AND (СЛУ1.СЛУ_ЗАРП >= СЛУ2.СЛУ_ЗАРП)))

Ответ:

 (1) получить данные о проектах, участники которых получают максимальную зарплату 

 (2) получить данные о таких проектах, руководители которых являются участниками руководимого ими проекта и получают зарплату, максимальную среди участников проекта 

 (3) получить данные о таких проектах, руководители которых являются участниками руководимого ими проекта и получают зарплату, не являющуюся максимальной среди участников проекта 


Номер 3

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу "выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную зарплату среди всех участников всех проектов с тем же самым руководителем"?


Ответ:

 (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))  

 (2) СЛУ_ИМЯ1, ПРОЕКТ_РУК1 WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ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)  

 (3) СЛУ_ИМЯ1, ПРОЕКТ_РУК1 WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ1, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ1) AND IF ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК) THEN EXISTS СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ1) AND FORALL СЛУ_ЗАРП3 IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП3, ПРО_НОМ:ПРО_НОМ2) THEN СЛУ_ЗАРП2 <= СЛУ_ЗАРП3)  


Упражнение 2:
Номер 1

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже отношений является областью истинности WFF?

IF (СЛУ.СЛУ_НОМЕР != 2941) THEN (СЛУ.СЛУ_ЗАРП > 18000.00 AND СЛУ.СЛУ_ЗАРП < 22000.00 AND IF (СЛУ.СЛУ_ИМЯ = ‘Федоров’) THEN (СЛУ.ПРО_НОМ = 1))

Ответ:

 (1)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2940Федоренко20000.002
2940Федоренко20000.002
 

 (2)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2937Федоров20000.001
2940Федоренко20000.002
2941Иваненко22000.002
 

 (3)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2941Иваненко22000.002
 


Номер 2

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу "выдать имена служащих, участвующих хотя бы в одном проекте, среди участников которого имеется хотя бы один служащий, получающий максимальную зарплату среди всех служащих"?


Ответ:

 (1) СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ) AND EXISTS СЛУ_ЗАРП1 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ) AND FORALL СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2) AND СЛУ_ЗАРП1 >= СЛУ_ЗАРП2))  

 (2) СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ) AND FORALL СЛУ_ЗАРП1 IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ) THEN FORALL СЛУ_ЗАРП2 (СЛУ_ЗАРП2 >= СЛУ_ЗАРП1)  

 (3) СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ) AND EXISTS СЛУ_ЗАРП1 (СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ) AND FORALL СЛУ_ЗАРП2 (СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, СЛУ_ЗАРП:СЛУ_ЗАРП2, ПРО_НОМ:ПРО_НОМ) AND СЛУ_ЗАРП2 >= СЛУ_ЗАРП1)  


Номер 3

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу "выдать имена руководителей проектов, ни один из участников которых не получает минимальную зарплату среди всех служащих"?


Ответ:

 (1) СЛУ1.СЛУ_ИМЯ WHERE EXISTS ПРО ((СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК) AND FORALL СЛУ2 ((СЛУ2.ПРО_НОМ != СЛУ1.ПРО_НОМ) OR EXISTS СЛУ3 (СЛУ2.СЛУ_ЗАРП > СЛУ3.СЛУ_ЗАРП))  

 (2) СЛУ1.СЛУ_ИМЯ WHERE (СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК) AND FORALL СЛУ2 ((СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ) AND EXISTS СЛУ3 (СЛУ2.СЛУ_ЗАРП > СЛУ3.СЛУ_ЗАРП))  

 (3) СЛУ1.СЛУ_ИМЯ WHERE EXISTS ПРО(СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК) AND FORALL СЛУ2 IF (СЛУ2.ПРО_НОМ = СЛУ1.ПРО_НОМ) THEN EXISTS СЛУ3 (СЛУ2.СЛУ_ЗАРП > СЛУ3.СЛУ_ЗАРП))  


Упражнение 3:
Номер 1

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже отношений является областью истинности WFF?

IF (СЛУ.СЛУ_НОМЕР = 2941 AND СЛУ.СЛУ_ЗАРП > 18000.00) THEN IF (СЛУ.СЛУ_НОМЕР = 2937 AND СЛУ.СЛУ_ЗАРП <= 22000.00) THEN (СЛУ.СЛУ_ИМЯ = ‘Федоров’)

Ответ:

 (1)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2941Иваненко22000.002
 

 (2)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2937Федоров20000.001
2941Иваненко22000.002
 

 (3)
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002
 


Номер 2

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какому из следующих запросов соответствует выражение

СЛУ1.СЛУ_ИМЯ, СЛУ1.СЛУ_ЗАРП WHERE FORALL ПРО IF (СЛУ1.ПРО_НОМ != ПРО.ПРО_НОМ) THEN EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = ПРО.ПРО_НОМ) AND (СЛУ1.СЛУ_ЗАРП > СЛУ2.СЛУ_ЗАРП))

Ответ:

 (1) выдать имена и размер зарплаты служащих, не получающих минимальную зарплату 

 (2) выдать имена и размер зарплаты каждого служащего, который получает зарплату, большую минимальной зарплаты служащих во всех проектах, кроме, быть может, того проекта, в котором участвует сам служащий 

 (3) выдать имена и размер зарплаты служащих, не участвующих в проектах, среди участников которых имеются служащие, получающие минимальную зарплату 


Номер 3

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную зарплату среди всех участников всех проектов с тем же самым руководителем”?


Ответ:

 (1) СЛУ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.СЛУ_ЗАРП))  

 (2) СЛУ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.СЛУ_ЗАРП))  

 (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

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена служащих, участвующих хотя бы в одном проекте, среди участников которого имеется хотя бы один служащий, получающий максимальную зарплату среди всех служащих”?


Ответ:

 (1) СЛУ1.СЛУ_ИМЯ WHERE EXISTS ПРО ((СЛУ1.ПРО_НОМ = ПРО.ПРО_НОМ) AND EXISTS СЛУ2 ((СЛУ2.ПРО_НОМ = ПРО.ПРО_НОМ) AND FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП <= СЛУ2.СЛУ_ЗАРП))  

 (2) СЛУ1.СЛУ_ИМЯ WHERE EXISTS СЛУ2 ((СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ) AND FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП <= СЛУ2.СЛУ_ЗАРП))  

 (3) СЛУ1.СЛУ_ИМЯ WHERE FORALL СЛУ2 IF (СЛУ1.ПРО_НОМ = СЛУ2.ПРО_НОМ) THEN FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП >= СЛУ2.СЛУ_ЗАРП)  


Номер 2

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какому из следующих запросов соответствует выражение?

СЛУ1.СЛУ_ИМЯ WHERE EXIST СЛУ2 ((CЛУ1.СЛУ_НОМЕР = СЛУ2.СЛУ_НОМЕР) AND (СЛУ1.ПРО_НОМ != СЛУ2.ПРО_НОМ) AND FORALL ПРО (ПРО.ПРОЕКТ_РУК != СЛУ1.СЛУ_ИМЯ))

Ответ:

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

 (2) выдать имена служащих, не являющихся руководителями проектов 

 (3) выдать имена служащих, участвующих в проектах, руководители которых не зафиксированы в таблице служащих 


Номер 3

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу "выдать имена руководителей проектов, ни один из участников которых не получает минимальную зарплату среди всех служащих"?


Ответ:

 (1) СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ) AND ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ, ПРОЕКТ_РУК:СЛУ_ИМЯ) AND FORALL СЛУ_ЗАРП1 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ) THEN FORALL СЛУ_ЗАРП2 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2) THEN СЛУ_ЗАРП1 > СЛУ_ЗАРП2))  

 (2) СЛУ_ИМЯ WHERE ПРОЕКТЫ (ПРОЕКТ_РУК:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ) AND FORALL СЛУ_ЗАРП1 ( IF СЛУЖАЩИЕ(СЛУ_ЗАРП:СЛУ_ЗАРП1, ПРО_НОМ:ПРО_НОМ) THEN EXISTS СЛУ_ЗАРП2 ( СЛУЖАЩИЕ(СЛУ_ЗАРП:СЛУ_ЗАРП2) AND СЛУ_ЗАРП1 > СЛУ_ЗАРП2))  

 (3) СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ) AND ПРОЕКТЫ (ПРОЕКТ_РУК:СЛУ_ИМЯ) AND FORALL СЛУ_ЗАРП1 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП1) THEN FORALL СЛУ_ЗАРП2 (IF СЛУЖАЩИЕ (СЛУ_ЗАРП:СЛУ_ЗАРП2) THEN СЛУ_ЗАРП1 > СЛУ_ЗАРП2))  


Упражнение 5:
Номер 1

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу "выдать номера служащих, являющихся руководителями проектов и получающих наименьшую зарплату среди всех руководителей проектов"?


Ответ:

 (1) СЛУ1.СЛУ_НОМЕР WHERE EXISTS ПРО1 (СЛУ1.СЛУ_ИМЯ = ПРО1.ПРОЕКТ_РУК AND NOT EXISTS СЛУ2 (СЛУ1.СЛУ_НОМЕР != СЛУ2.СЛУ_НОМЕР AND СЛУ1.СЛУ_ЗАРП > СЛУ2.СЛУ_ЗАРП AND EXISTS ПРО2 (СЛУ2.СЛУ_ИМЯ = ПРО2.ПРОЕКТ_РУК)))  

 (2) СЛУ1.СЛУ_НОМЕР WHERE EXISTS ПРО (СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК AND EXISTS СЛУ2 (СЛУ1.СЛУ_НОМЕР != СЛУ2.СЛУ_НОМЕР AND СЛУ1.СЛУ_ЗАРП < СЛУ2.СЛУ_ЗАРП AND СЛУ2.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК)))  

 (3) СЛУ1.СЛУ_НОМЕР WHERE EXISTS ПРО1 (СЛУ1.СЛУ_ИМЯ = ПРО1.ПРОЕКТ_РУК AND EXISTS СЛУ2 (СЛУ1.СЛУ_НОМЕР != СЛУ2.СЛУ_НОМЕР AND СЛУ1.СЛУ_ЗАРП <= СЛУ2.СЛУ_ЗАРП AND EXISTS ПРО2 (СЛУ2.СЛУ_ИМЯ = ПРО2.ПРОЕКТ_РУК)))  


Номер 2

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какому из следующих запросов соответствует выражение

СЛУ1.СЛУ_НОМЕР WHERE EXISTS ПРО (СЛУ1.СЛУ_ИМЯ = ПРО.ПРОЕКТ_РУК AND EXISTS СЛУ2 (СЛУ1.СЛУ_НОМЕР = СЛУ2.СЛУ_НОМЕР AND СЛУ1.ПРО_НОМ != СЛУ2.ПРО_НОМ))

Ответ:

 (1) выдать номера служащих, участвующих более чем в одном проекте 

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

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


Номер 3

Имеются отношения СЛУЖАЩИЕ и ПРОЕКТЫ:

СЛУЖАЩИЕ
СЛУ_НОМЕРСЛУ_ИМЯСЛУ_ЗАРППРО_НОМ
2934Иванов22400.001
2935Петров29600.001
2936Сидоров18000.001
2937Федоров20000.001
2938Иванова22000.001
2934Иванов22400.002
2935Петров29600.002
2939Сидоренко18000.002
2940Федоренко20000.002
2941Иваненко22000.002

ПРОЕКТЫ
ПРО_НОМПРОЕКТ_РУК
1Иванов
2Иваненко

Определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.

Определены также доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, будем добавлять в конце имени цифры.

Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу "выдать имена служащих, являющихся руководителями более чем одного проекта"?


Ответ:

 (1) ПРОЕКТ_РУК WHERE ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК) AND EXISTS ПРО_НОМ2 (ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК) AND ПРО_НОМ1 != ПРО_НОМ2)  

 (2) СЛУ_ИМЯ WHERE ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:СЛУ_ИМЯ) AND EXISTS ПРО_НОМ2 (ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК))  

 (3) ПРОЕКТ_РУК WHERE ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ1, ПРОЕКТ_РУК:ПРОЕКТ_РУК1) AND EXISTS ПРО_НОМ2 (ПРОЕКТЫ (ПРО_НОМ:ПРО_НОМ2, ПРОЕКТ_РУК:ПРОЕКТ_РУК1) AND ПРО_НОМ1 != ПРО_НОМ2)  




Главная / Базы данных / Введение в реляционные базы данных / Тест 5