Теория и практика построения баз данных (1088289), страница 65
Текст из файла (страница 65)
Не~~бхцдимо предусмотреть какие-то способы компенсации этого несоответствия. 1!азначение реляционной алгебры состоит в том, чтобы манипулировать отношениями для получения желаемого результата. Она включает в себя следуюпп~ операторы: объединение, разность, пересечение, произведение, проекция, выборка, (внутреннее) соединение и внешнее соединение. Вопросы! группы 1. Назовите и опишите три задачи, которые необходимо решить при построении реляционной базы данных. 2. Определите термины отношение, атрибут, кортелс и домен, :1.
Объясните, как используются термины таблица, столбец, строка, файл, поле и запись. 4. Объясните, в чем различие между отношением и схемой отношения (реляционной схемой) 5. Дайте определения терминов ключ, индекс, логический ключ и физический ключ. б. Назовите три причины для использования индексов. 7. При каких условиях необходимо преобразовывать структуру базы данных на стадии реючизации? 8. Объясните термин язык определения данник. Какой цели он служит? 9. Как еше можно описать структуру базы данных, кроме как в текстовом файле? ! О, Какие аспекты структуры базы данных должны быть описанья для СУБД? 11. Приведите пример (отличный от данного в тексте), когда выделение пространства для базы данных на физическом носителе представляет важность.
12. Опишите наилучшую и наихудшую ситуации при заполнении базы данных информацией. 13. Перечислите и кратко охарактеризуйте четыре категории языков манипулирования реляционными данными (!)МЕ). 14. Объясните, как можно манипулировать реляционными данными посредством форм. 15. Объясните роль языков запросов в манипулировании реляционными данными. Чем хранимые запросы отличаются от прикладных программ? Зачем они используются? 16. Опишите два стиля интерфейса между прикладными программами и базой данных.
Укажите роль предварительного компилятора. 17. Объясните, в чем состоит несоответствие между ориентацией 5ЯЕ и большинства языков программирования. Каким образом это несоответствие исправляется? Вопросы 1 группы 303 Имя Зарплата пРОдАВец ИмяПояупателя ИмяПролааца Сумма Номер Тип Город Промыыленнооти ИмяПоаупателя покуплтель Рис.
8.18. Данные для вопросов 24-28 302 Глава В, Основы построения реляционных баз данных 18. Чем отличается реляционная алгебра от школьной алгебры? 19. Почему реляционная алгебра является замкнутой? 20. Определите термин соанестимослгь по обьедиггению. Приведите в качестве примера два отношения, которые совместимы по объединению, и два отношения, которьге несовместимы по объединению. В вопросах 21 — 23 идет речь о следующих двух отношениях: КОМПАНИЯ (Название, ЧислоСотруднинов, ОбьенПродаж) ПРОИЗВОДИТЕЛИ (Название, КоличествоЛюдей, Доход) 21. Приведите пример обьединения этих двух отношений. 22.
Приведите пример разности этих двух отношений. 23. Приведите пример пересечения этих двух отношений. В вопросах 24 — 28 имеются в виду следующие три отношения: ПРОДАВЕЦ (Иня, Зарплата) ЗАКАЗ (Номер, ИмяПокупателя, ИняПродавца, Сумма) ПОКУПАТЕЛЬ (Имя, Город, ТНППронышленности) 24. Приведите пример произведения отношений ПРОДАВЕЦ и ЗАКАЗ. 25. Приведите примеры следующих проекций: ПРОДАВЕЦ [Имя, Зарплата) ПРОДАВЕЦ [Зарплата] Пргг каких условиях в проекции ПРОДАВЕЦ [Зарплата) будет меньше строк, чек| в отношении ПРОДАВЕЦ? э 28.
Приведите пример выборки из отношения ПРОДАВЕЦ по атрибуту Имя, по атрибуту Зарплата и по атрибутам Имя и Зарплата одновременно. " 27. Приведите пример эквивалентного соединения н натурального соединения отношений ПРОДАВЕЦ и ЗАКАЗ, где атрибут Имя из отношения ПРОДАВЕЦ равен атрибуту ИмяПродавца из отношения ЗАКАЗ.
28. Напишггте выражения реляционной алгебры, выводящие: 1) имена всех продавцов; 2) имена всех продавцов, для которых имеется строка ЗАКАЗ; 3) имена всех продавцов, не имеющих строки ЗАКАЗ; 4) имена продавцов, имеющих заказ от фирмы АЬегпасЬу Сопзсгцсе(оп; 5) зарплаты продавцов, имеющих заказ от фирмы АЬегпасйу СопзСгцсВоп; 6) названия городов, в которых проживают покупатели, сделавшие заказ у продавца по фамилии Джонс; 7) имена всех продавцов с именами покупателей, сделавших у них заказ.
Включите в ответ имена продавцов, у которых нет заказов. Запрос одиночной таблицы 305 Глава 9 Язык 8О!. Атрибут 1 номер ТРЕТЬЕКУРСНИК.Имя Слвцивльиость Домви ИдвитификвторыЛюдвй ИмвивЛюдвй НвзввиияПрвдмвтов 2 ПичиыйНомвр ПОЧЕТНЫЙ СТУДЕНТ.Имя Иитврвсы ИдвитификвторыЛюдвй Имвивпюдви нвзввиияПрвдмвтов 3 ПичиыйНомвр СТУДЕНТ.Имя Спвцивпьиосп Китс Идвитюйиквторыпюдвй ИмвивЛюдвй НвзввиияПрвдмвтав НомврвКурсов 4 ЗАИЯтия.нвзввиивПрвдмвтв Время Аудитория НвзввиияПрвдмвтов Чвсызвиятий Аудитории 5 НомврСтудвитв ЗАПИСЬ.НвзввиивПродмвтв Порядковыйномвр идвитификвтарыпюдвй НвзввиияПрвдмвтов ПорядковывНомврв 6 НомврСатрудиикв ППС.Имя Кафедра ИдвитификвторыЛюдвй ИмвивПюдвй НвзввиияПрвдмвтов 5О)., или язык структурированных запросов, — на сегодняшний день наиболее важный из языков манипулирования реляционными данными.
Он рекомендован Американским национальным институтом стандартов (А)с)51) в качестве стандартного языка манипулирования реляционными базами данных и используется как язык доступа к данным многими коммерческими СУБД, включая ПВ2, 5О1.,'1)5, Огас!е, 1счОКЕ5, 5'з'ВА5Е, 5О1. 5егуег, с)Вазе 1ог ут'тпс(отуз, Рагас1ох, М1сгозо(с Ассеьэ и многие другие.
Благодаря своей популярности Яу) стал стандартным языком для обмена информацией между компьютерами. Поскольку существует версия 5ОЕ, которая может работать почти на любом компьютере и операционной системе, компьютерные системы способны обмениваться данными, передавая друг другу запросы и ответы на языке 5О1 . Разработка 5О). начиналась в середине 70-х годов в исследовательском центре 1ВМ в Сан-Хосе, и изначально язык носил название 5ЕОПЕ).. Было выпущено несколько версий 5ЕОПЕЕ, и в 1980 г. продукт был переименован в 5О1, С тех пор, помимо 1ВМ, многие производители присоединились к разработке программных продуктов для 5ОЕ Институт А)ь)51 взял на себя работу по поддержке 5О) и периодически публикует обновленные версии стандарта 5О)..
В этой главе обсуждается ядро 5О). в том виде, как оно описано в стандарте АХ51 1992 гч который часто обозначают как 5О1.92с. Последняя версия стандарта, 5(21.3, содержит расширения языка для объектно-ориентированного программирования. Эта версия обсуждается в главе 18.
Конструкции и выражения в конкретной реализации 5ОЕ (например, в Огас1е или 5О1 5егуег) могут немного отличаться от А)х)51-стандарта. Частично это обусловлено тем, что многие коммерческие СУБД были разработаны до того, как появилось соглашение о стандарте, а также тем, что производители закладывали в свои продукты дополнительные возможности с целью получить преимущество в конкурентной борьбе. Исходя из рыночной перспективы, одной лишь поддержки стандарта А)к)51 порою считалось недостаточно для обеспечения привлекательности продукта. Команды языка 5ьть могут использоваться интерактивно как язык запросов, а также могут быть встроены в прикладные программы.
Таким образом, 5О) не является языком программирования (как, например, СОВОГО); он скорее представляет собой подъязык данных (с)а(а зиЫапйоайе) или язык доступа к данным (с)ага ассеээ )апйпайе), встраиваемый в другие языки. ' 1псстпацопа) зсвпс)зтс)з Отпал)звс)ост Рцы)свс)оп 190/1ЕС 9075: 1992, Ратаьазе (юляиаде 50Е В этой главе представлены интерактивные операторы 5О1, которые, будучи встроенными в прикладные программы, требуют настройки и модификации (см. главы 12 и 13). Здесь рассматриваются только операторы манипулирования ланными, а операторы определения данных обсуждаются в главах 12 и 13. 5О). — это язык, ориентированный на преобразования, который принимает на входе одно или несколько отношений и выдает на выходе одно отношение.
Результат каждого 5О).-запроса представляет собой отношение; даже если результатом является отдельное число, это число считается отношением, у которого одна строка н один столбец. Таким образом, подобно реляционной алгебре, язык 501. является замкнутым. Запрос одиночной таблицы В этом разделе мы рассмотрим возможности, которые имеются в 5(т). для запроса одиночной таблицы. Позже в этой главе мы обсудим многотабличные запросы и операторы обновления. По традиции зарезервированные слова 5О), такие как 5Е1ЕСТ и Рй0)т), пишутся заглавными буквами. Кроме того, для операторов 5О). обычно используется многострочная запись, как показано в этой главе. Компиляторы языка 5О), олнако, не требуют ни заглавных букв, ни многострочной записи. Эти соглашения служат лишь для того, чтобы обеспечить большую ясность для людей, читающих программы на 5О)..
1. ТРЕТЬЕКУРСНИК (Стнпяйр, ИмЯ, Спвцивльиость) 2. пОчетный стУДент (нпяйп, имя, иитврвсь~) 3. студент (дпчиыиннамйй, имя, спвцивльиость, куро) 4. ЗАНЯТИЯ (нвйййнваПршзмкя, Время, Аудитория) 5. 3Апись (Номвврптудвитвв, нйзввииидпреймвтй, порядковыйномвр) 6. ППС (намйрЩтрудцизй, ИмяСотрудиикв, Квфвлрв) Рис. 9.1. Отношения, используемые в примерах применения ЕСН. 306 Глава 9.