КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проекты
Тесты Заключение Выражения исчисления доменов
Во всех остальных отношениях формулы и выражения исчисления доменов выглядят похожими на формулы и выражения исчисления кортежей. В частности, конечно, формулы могут включать кванторы, и различаются свободные и связанные вхождения доменных переменных.
Для примера выражения исчисления доменов сформулируем с использованием исчисления доменов запрос “Выдать номера и имена сотрудников, не получающих минимальную заработную плату”:
СОТР_НОМ, СОТР_ИМЯ WHERE EXISTS СОТР_ЗАРП1
Реляционное исчисление доменов является основой большинства языков запросов, основанных на использовании форм. В частности, на этом исчислении базировался известный язык Query-by-Example, который был первым (и наиболее интересным) языком в семействе языков, основанных на табличных формах.
Этой лекцией мы завершаем обсуждение реляционной модели данных. В последних трех лекциях обсуждалась манипуляционная составляющая реляционной модели данных. Были рассмотрены два варианта реляционной алгебры. Конечно, с формальной точки зрения можно было бы обойтись любым одним вариантом, поскольку их выразительные средства эквивалентны. Но алгебра Кодда в большей степени базируется на теории множеств. Базовыми операциями являются переименование атрибутов, объединение, пересечение, взятие разности, декартово произведение, проекция и ограничение. Операция соединения общего вида, хотя и включается в алгебру, является вторичной и явно представляется через другие операции. Фундаментальная же в реляционном подходе операция естественного соединения выражается через соединение общего вида и в алгебру не включается. В терминах алгебры Кодда проще всего определяются алгебраические черты языка SQL, в частности, общая семантика оператора SELECT (см. лекцию 12).
Базисом Алгебры A являются операции реляционного отрицания (дополнения), реляционной конъюнкции (или дизъюнкции) и проекции (удаления атрибута). Реляционные аналоги логических операций определяются в терминах отношений на основе обычных теоретико-множественных операций и позволяют выражать напрямую операции пересечения, декартова произведения, естественного соединения, объединения отношений. Путем комбинирования базовых операций выражаются операции переименования атрибутов, соединения общего вида, взятия разности отношений. Алгебра A позволяет лучше осознать логические основы реляционной модели, хотя, безусловно, является в меньшей степени ориентированной на практическое применение, чем алгебра Кодда.
Реляционному исчислению мы отвели меньше места, поскольку не ставили перед собой задачу определить какой-либо полноценный логический язык запросов. Цель состояла лишь в том, чтобы показать возможность декларативной логической формулировки запросов. В этом случае выполнение запроса происходит путем интерпретации логической формулы, а не вычисления алгебраического выражения. Были обсуждены два варианта реляционного исчисления, первый из которых – реляционное исчисление кортежей – был определен сравнительно полно, а для второго – реляционного исчисления доменов – были только отмечены и проиллюстрированы основные отличительные черты.
В упражнениях к этой лекции мы снова будем использовать отношения СЛУЖАЩИЕ и ПРОЕКТЫ. Для удобства еще раз воспроизведем их примерные значения.
СЛУЖАЩИЕ
Будем считать, что определены кортежные переменные СЛУ и ПРО на отношениях СЛУЖАЩИЕ и ПРОЕКТЫ соответственно. При потребности в дополнительных переменных будем считать, что они также определены и именуются путем добавления цифр в конце имен СЛУ и ПРО.
1 (1) Какое из приведенных ниже отношений является областью истинности WWF
IF (СЛУ.СЛУ_ЗАРП > 18000.00 AND СЛУ.СЛУ_ЗАРП < 22000.00 AND
(а) +
(б) -
(в) -
1 (2) Какое из приведенных ниже отношений является областью истинности WWF
IF (СЛУ.СЛУ_НОМЕР!= 2941)
(а) -
(б) +
(в) -
1 (3) Какое из приведенных ниже отношений является областью истинности WWF
IF (СЛУ.СЛУ_НОМЕР = 2941 AND СЛУ.СЛУ_ЗАРП > 18000.00)
(а) -
(б) -
(в) +
2 (1) Какому из следующих запросов соответствует выражение
ПРО WHERE (EXIST СЛУ1 ((ПРО.ПРО_НОМ = СЛУ1.ПРО_НОМ)
(а)- получить данные о проектах, участники которых получают максимальную зарплату
(б)+ получить данные о таких проектах, руководители которых являются участниками руководимого ими проекта и получают зарплату, максимальную среди участников проекта
(в) - получить данные о таких проектах, руководители которых являются участниками руководимого ими проекта и получают зарплату, не являющуюся максимальной среди участников проекта
2 (2) Какому из следующих запросов соответствует выражение
СЛУ1.СЛУ_ИМЯ
(а) + выдать имена служащих, участвующих более чем в одном проекте и не являющихся руководителями ни одного проекта
(б) - выдать имена служащих, не являющихся руководителями проектов
(в) - выдать имена служащих, участвующих в проектах, руководители которых не зафиксированы в таблице служащих
2 (3) Какому из следующих запросов соответствует выражение
СЛУ1.СЛУ_ИМЯ, СЛУ1.СЛУ_ЗАРП
(а) - выдать имена и размер зарплаты служащих, не получающих минимальную зарплату
(б) + выдать имена и размер зарплаты каждого служащего, который получают зарплату, большую минимальной зарплаты служащих во всех проектах, кроме, быть может, того проекта, в котором участвует сам служащий
(в) выдать имена и размер зарплаты служащих, не участвующих проектах, среди участников которых имеются служащие, получающие минимальную зарплату
3 (1) Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена служащих, участвующих хотя бы в одном проекте, среди участников которого имеется хотя бы один служащий, получающий максимальную зарплату среди всех служащих”?
(а) + СЛУ1.СЛУ_ИМЯ
(б) + СЛУ1.СЛУ_ИМЯ
(в) - СЛУ1.СЛУ_ИМЯ THEN FORALL СЛУ3 (СЛУ3.СЛУ_ЗАРП ³ СЛУ2.СЛУ_ЗАРП)
3 (2) Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена руководителей проектов, ни один из участников которых не получает минимальную зарплату среди всех служащих”?
(а) + СЛУ1.СЛУ_ИМЯ
(б) - СЛУ1.СЛУ_ИМЯ
(в) + СЛУ1.СЛУ_ИМЯ
3 (3) Какое из приведенных ниже выражений реляционного исчисления кортежей правильно соответствует запросу “выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную заплату среди всех участников всех проектов с тем же самым руководителем”?
(а) + СЛУ1.СЛУ_ИМЯ, ПРО1.ПРОЕКТ_РУК
(б) - СЛУ1.СЛУ_ИМЯ, ПРО1.ПРОЕКТ_РУК
(в) - СЛУ1.СЛУ_ИМЯ, ПРО1.ПРОЕКТ_РУК
В следующих упражнениях мы будем считать, что определены доменные переменные, имена которых совпадают с именами атрибутов отношений СЛУЖАЩИЕ и ПРОЕКТЫ, а в случае, когда требуется несколько доменных переменных, определенных на одном домене, мы будем добавлять в конце имени цифры.
4 (1) Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу “выдать имена служащих и имена руководителей проектов, в которых они участвуют, для тех проектов, в которых хотя бы один из участников получает минимальную заплату среди всех участников всех проектов с тем же самым руководителем”?
(а) - СЛУ_ИМЯ1, ПРОЕКТ_РУК1
(б) + СЛУ_ИМЯ1, ПРОЕКТ_РУК1
(в) - СЛУ_ИМЯ1, ПРОЕКТ_РУК1
4 (2) Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу “выдать имена служащих, участвующих хотя бы в одном проекте, среди участников которого имеется хотя бы один служащий, получающий максимальную зарплату среди всех служащих”?
(а) + СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
(б) - СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
(в) - СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
4 (3) Какое из приведенных ниже выражений реляционного исчисления доменов правильно соответствует запросу “выдать имена руководителей проектов, ни один из участников которых не получает минимальную зарплату среди всех служащих”?
(а) - СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
(б) + СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
(в) - СЛУ_ИМЯ WHERE СЛУЖАЩИЕ (СЛУ_ИМЯ:СЛУ_ИМЯ, ПРО_НОМ:ПРО_НОМ)
Дата добавления: 2014-01-03; Просмотров: 2658; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |