Введение в системы БД (542480), страница 68
Текст из файла (страница 68)
б) Возьмите на себя роль СУБД и выполните этот запрос по предложенному Коддом алгоритму редукции. Можете ли вы указать какие-либо улучшения, которые целесообразно внести в данный алгоритм? 7.6. Выразите в терминах исчисления кортежей запрос "Получить три самые тяжелые де~али". 7.7. Рассмотрим отношение спецификации материалов переменной-отношения РАНТ ЯТНОСТОНЕ, представленной в главе 4.
(Соответствующие ВОЬ-определения даны в отве~е к упр. 4.6, а пример значения приведен на рис. 4.6.) Обратимся к широкоизвестному запросу разузлования деталей "Получить номера деталей, которые на любых уровнях вхождения являются компонентами некоторой заданной детали (скажем, детали с номером 'Р1')". Результат этого запроса, например от- Глава 7. Реляг(ионное исчисление ношение РАЕТ ЫЯТ (которое, безусловно, является отношением, производным от исходного отношения РААТ ЯТЕЯСТЯЕЕ), нельзя сформулировать в виде единственного выражения начального реляционного исчисления (или реляционной алгебры). Иначе говоря, производное отношение РАЕТ АТЯТ не может быть получено с помощью единственного выражения начального реляционного исчисления (или реляционной алгебры). Почему? 7.8.
Предположим, что переменную-отношение поставщиков Я заменили набором переменных-отношений АЯ, РЯ, АЯ... по одной переменной-отношению для каждого города (например, переменная-отношение ЕЯ будет содержать кортежи только для поставщиков из Лондона). Предположим также, что неизвестно, какие именно существуют города, в которых находятся поставщики, и поэтому неизвестно, сколько имеется таких переменных-отношений.
Рассмотрим запрос "Существует ли в базе данных поставщик с номером 'Я1'?". Можно ли такой запрос выразить в терминах исчисления (или алгебры)? Обоснуйте свой ответ. 7.9. Покажите, что язык Б П. является реляционно полным. 7.10. Существуют ли в языке БС)Ь эквиваленты реляционных операторов ЕХТЕЕ0 и ЯЯИ)АЕТХЕ? 7.! 1. Существуют ли в языке БОЬ эквиваленты операторов реляционных сравнений? 7.12. Приведите как можно больше различных формулировок на языке БОЬ для запроса "Выбрать имена поставщиков детали с номером 'Р2'".
Упражнения по запросам В основу всех остальных упражнений была положена база данных поставщиков, деталей и проектов (см. Рис. 4.5 в главе 4 и ответ к упр. 5.4 в главе 5). В каждом случае вам будет предложено записать выражение, позволяющее выполнить указанный запрос. (В качестве интересной вариации попытайтесь сформулировать постановку той или иной задачи, глядя на ее ответ.) 7.13. Дайте ответы к упр, 6. 13-6.50 в терминах исчисления кортежей. 7.14. Дайте ответы к упр. 6.! 3 — 6.50 в терминах исчисления доменов. 7.15.
Дайте ответы к упр. 6.13-6.50, используя средства языка БОЬ. Список литературы В дополнение к приведенному ниже списку обратитесь также к [4.7), где описывается несколько расширений языка БОЬ, предназначенных лля работы с транзитивным замыканием и другими подобными операциями. Эти расширения очень напоминают соответствующие возможности, предусмотренные стандартом БОЬ3, которые кратко описываются в приложении Б.
По вопросу внедрения подобных средств в реляционное исчисление обратитесь к главе 23. 7.1. Со<Ы Е.Г. А Оа!а Вазе БцЬ!апйцайе Роцпс1еб оп гйе Ке!а!!опа! Са!сц!цв Д Ргос. 1971 АСМ Б!ОГ!ОЕТ Фогкяйор оп Оа!а Оеяспрбоп, Ассева апс! Сон!го!. — Бап Р!ейо, Са!1Š— )'!окешЬег, ! 971. 280 Часть 11 Реляционная лгодель 7.2. 7.3. 7.5. 7.7 7.6, 7.9. Раге С.э'. А Хоге оп гйе Ке1ацоп Са!сц№а 0 АСМ 5!ОМОР Кесогб 18. — 1989. — № 4. Переиздано; Ап Апоша!у !и Со<Ы'з Кегйэсйоп А!8ог11Ьш 0 Ке!агюпа! РагаЬазе чЧГ1!!П85 1989 — 1991. Кеаг1!п8„Маза.: АсЫ!зоп-%ез1еу, 1992.
Раге Сэй Чгйу Оцапг!Пег Огг$ег!з!гпроггапс 0 Суд Раге апс1 Нцйй Рагччеп. Ке[апопа! Ра!аЬазе ЧЧг[г!пйз 1989-1991. — Кеаг!!п8, Мазза А<Ы1зоп-ЧЧез!еу, 1992. Расе С.Л. Ке1айопа1 Са1сц1цз аз ап АЫ го Ейесг!че Оцегу Гогпш1айоп 0 С.!. Раге апг1 Нцйй Рагъчеп. Ке1агюпа1 РагаЬазе %г!11пйз 1989 — 1991. — Кеаг!!п8, Макал А<ЫВоп- '1ч'ез1еу, 1992. Почти все представленные на рынке современные реляционные продукты под- держивают язык БОЕ, а не реляционное исчисление [или реляционную алгеб- ру).
В этой статье, тем не менее, отстаивается (и иллюстрируется) применение реляционного исчисления как промежуточного шага в построении "сложных" БОЬ-запросов. НеЫ О.Р., ЯгопеЬга1сег М.К., апг1 ЧЧопй Е.!)4ОКЕБ — А Ке!агюпа[ Раза Вазе Буз!еш 0 Ргос. ХСС 44. — АпаЬепп, Сайб Мопгча1е, ЫХ; АГ! РБ Ргезз, Мау, 1975. С середины и до конца 70-х годов разрабатывались два главных реляционных про- тотипа: система Буз!ет К в фирме 1ВМ и система 1ЫОКЕБ в Калифорнийском уни- верситете в Беркли. Оба эти проекта имели очень большое значение в исследова- тельском мире и впоследствии лнлнровали среди коммерческих систем как СУБД РВ2 [в случае системы Ьузгет К) и как коммерческий продукт!ЫОКЕЯ (в случае системы !ЖОКЕЕ).
Заиечалие. Прототип !ЫОКЕЯ иногда называют "университетским 1ЫОКЕБ" [7.11), чтобы отличать его от коммерческой версии этой системы. Учебный обзор коммерческой версии можно найти в [1.5]. Система!ЖОКЕЕ вначале не являлась Я)Е-системой, поскольку исходно полдер- живала язык О!)ЕЕ Яцегу Еапйцайе), который во многих отношениях технически превосходил $ЯЕ, В самом деле, язык Я[)ЕЕ по-прежнему составляет основу дос- таточного числа современных исследований баз данных, а примеры на языке О1)ЕЕ до сих пор появляются в исследовательской литературе. Данная статья, в которой впервые был описан прототип 1)чОКЕБ, включает предварительное опре- деление языка О1) ЕЬ.
См. также [7.! О) — [7.12!. КцЬпз 3.Е. Апзэчег[пй Оцеаг!опз Ьу Согпрцгег: А Еой!са1 Бшду 0 Кероп КМ-5428-РК, Канд Согр. — Банга Моп!са, СайТ., 1967. Еасгойх М., Р!гоне А, Роташ-ОПепгеб Ке!апопа1 Ьапйцайез 0 ргос. Згд 1пг. Сопб оп Чету 1.агйе Рага Вазез. — Токуо, Зарап., ОсгоЬег, 1977. Меггеп Т.Н. ТЬе Ехгепг!ед Ке!айопа1 А!8еЬга, А Ваз!з бог Оцегу Еапбцайез 0 ЯЬпеЫеппап В. (еб.), РагаЬазез: !шргоч!п8 !ЗзаЪ|!!гу апг[ Кезропз!чепезз.
Хеэч Уог$г, ЫХ.: Асайегп!с Ргеаз., 1978. Назначением этой статьи является введение кванторов в алгебру — не просто кван- торов существования и кванторов всеобщности реляционного исчисления, а более общих кванторов "количество" и "соотношение". С их помощью можно выразить та- кие условия, как "по крайней мере три", "не более половины", "нечетное число" и т.д. 14ейг! М., Ре!айагй О., ЯЬапе1!а Е. копна! Бетапйсз оТ БОЕ Яцейез 0 АСМ ТОРБ.— Бер!етЬег, 1991.
— 16, № 3. Глава 7. Реляг4ионное исчисление г81 ЯХ ИНЕКЕ НОТ ( ЯХ е Я ) Часть 11 Реляг(ионная лгодель 7.10. 7.1 1. 7.12. 7.13. Цитата из резюме: "Семантика БОЬ-запросов формально определена с помощью набора правил, определяющих преобразование на основе синтаксиса Б()Ь-запроса в формальную модель, называемую расширенным исчислением трехзначных предикатов (Ехгепбеб ТЬгее Ча]цеб Ргеб]саге Са]сцШз — ЕЗЧРС), которая большей частью основана на хорошо известных математических понятиях. Приведены также правила преобразования общего выражения ЕЗЧРС в каноническую форму; [дополнительно] полностью решены проблемы, полоб- ные анализу эквивалентности БОЬ-запросов".
Однако отме~им, что рассматри- ваемый здесь диалект языка БОЬ вЂ” это только первая версия стандарта (БОЬ/86), а не стандарт БОЬ!92. БгопеЪга1сег М. ТЬе !ЖОКЕЯ Рарегз: ТЬе Апагогпу ог" а Ке1агюпа1 РагаЪазе МапаЕешепг Бузгегп 7 Кеаб!п8, Мазал А<И)зоп-%ез!еу, 1986. Собрание некоторых наиболее важных документов университетского проекта 1ЫОКЕБ под редакцией одного из первых создателей этого проекта. (В собрание включены статьи [7.11], [7.! 2].) Насколько извес~но автору настоящей книги, это единственное доступное издание, в котором подробно описываются проект н реа- лизация полномасштабной реляционной СУБД.
Весьма ценный материал для серь- езных студентов. БгопеЪгайег М., %опЕ Е., Кгерз Р., НеЫ О. ТЬе Вез]8п !шр1ешепгайоп ог" 1Ь!ОКЕБ 7 АСМ ТОРЯ. — БергешЬег, 1976. — 1, № 3. (Переиздано [7.10],) Подробное описание университетского прототипа 1ЫОКЕБ. Б1опеЬга1сег М. Кеггозресйоп оп а !Заза Вазе Буыеш д АСМ ТО!ЭБ. — 1980. — 5, № 2. (Переиздано [7.10].) Доклад по истории проекта прототипа 1Ь(ОКЕБ (до января 1979 года). Акцент сде- лан скорее на ошибках и полученных уроках, чем на успехах. И!шап Л Р. Рппс]р1ез оГ РагаЪазе апг( Клоч~!ег)8е-Вазе Бузгешз: Чо1шпе 1.