Главная » Просмотр файлов » Введение в системы БД

Введение в системы БД (542480), страница 65

Файл №542480 Введение в системы БД (Введение в системы БД) 65 страницаВведение в системы БД (542480) страница 652015-08-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 65)

4. Между прочим, в этом примере можно было бы прекрасно обойтись и без спецификаторов (Р.). ЯЕЬЕСТ СОЬОВ, С1ТТ РВОМ Р ИНЕВЕ С1ТТ <> 'Рагфв' АМО ИЕ16НТ > 10.0 Согласно общему правилу языка ЯО(. неуточненные имена допускаются во всех случаях, когда это не вызывает неоднозначности. Однако в наших примерах спецификаторы будут использоваться и в тех случаях, когда формально они будут излишни.

К сожалению, в определенных контекстах явно требуется, чтобы имена столбцов были не уточнены! Например, это требуется в предложении ОВОЕВ ВУ (см. следующий пример). 5, В интерактивных Я;Н.-запросах может также использоваться предложение ОВОЕВ ВТ, уже упоминавшееся в главе 4 в связи с объявлением ОЕСЕАВЕ СОВЯОВ. ЯЕЬЕСТ Р.СОЬОВ, Р.С1ТТ РВОМ Р ИНЕВЕ Р.С1ТХ <> 'Рагфв' АМО Р.ИЕТОНТ > 10.0 у ОВОЕВ ВТ СТТУ ОЕЯС у 6.

Напоминаем, что допускается использование сокрашения ЯЕЬЕСТ *, о котором упоминалось в главе 4. ЯЕЬЕСТ * РВОМ Р ИНЕВЕ Р.С1ТТ <> 'Раг(в' АМО Р.ИЕ16НТ > 10.0 > Символ "*" в выражении ЯЕЬЕСТ * заменяет список имен всех столбцов таблицы (или таблиц), указанной в предложении РВОМ.

В этом списке имена столбцов идут а том порядке, в котором они расположены в соответствующей таблице (или таблицах). Следует отметить, что такую сокращенную запись особенно удобно использовать в интерактивных запросах, поскольку при этом уменьшается количество нажатий клавиш.

Однако существует скрытая опасность при использовании этой конструкции во внедренных ЯО(.-операторах (т.е. в операторах языка ЯОЬ, внедренных в программу на другом языке), поскольку в подобных случаях символ "*'* может иметь совсем другое значение (например, когда столбец добавляется в таблицу или удаляется из нее с помощью оператора АНТЕЕ ТАВОТЕ). 7. (Более важная ингрориаиия по сравнению с привеоенной в предыдуиГих пунктаг)) Обратите внимание, что для используемого нами в примерах набора данных этот запрос будет возвращать четыре строки, а не две, несмотря на то что три из них 268 Часть 11.

Реляционная модель будут совершенно идентичны. Язык Я )Ь не предполагает удаления излишних дублируюшихся строк из результата оператора БЕЬЕСТ, пока пользователь явно не потребует этого с помошью ключевого слова 01 БТ1МСТ, как показано ниже. ЯЕЬЕСТ 01ЯТТМСТ Р.СОЬОК, Р.С1ТУ ГНОМ Р ИНЕКЕ Р.С1ТТ <> 'Раг1в' АМО Р.ИЕ16НТ > 10.0 Данный вариант запроса будет возвращать уже две строки, а не четыре.

Из всего вышесказанного следует, что фундаиентаяьныи объектом данных в языке оЬ)Ь является не отношение, а, скорее, таблица. Б >Ь-таблицы содержат не множества, а мульткинажества строк (в мультимножествах допускаются повторения элементов). Таким образом, в языке Я)Ь нарушается информационный принцип (см. раздел 3.2 главы 3). Одно из следствий этого факта состоит в том, что основные БОЬ-операторы являются не истинными реляционными операторами, а их мультимножественными аналогами. Другим следствием является то, что следствия и теоремы, выполняюшиеся в реляционной модели (например, о преобразовании выражений (5.6)), необязательно выполняются в языке Я;Н . 7.7.2. Для всех деталей указать номер и вес в граммах ЯЕЬЕСТ Р.Р4, Р.ИЕ16НТ Я 454 АЯ 6ИИТ ГКОМ Р ; Спецификация АЯ СМИТ вводит соответствуюшее имя результируюшего столбца.

Таким образом, два столбца результируюшей таблицы будут называться Р4 и 6ИИТ. Если бы спецификация АБ 6ИИТ была опущена, то соответствуюший столбец был бы фактически безымянным. Отметим, что хотя в подобных случаях правила языка БОЬ в действительности не требуют от пользователя указания имени результируюшего столбца, в наших примерах будем их задавать всегда.

7.7.3. Выбрать информацию обо всех парах поставщиков и деталей, находящихся в одном городе В языке БОЬ существует несколько способов формулирования этого запроса. Приведем три самых простых. 1. ЯЕ1 ЕСТ Я.*, Р.Р4, Р.РИАИЕ, Р.СОЬОК, Р ИЕ16НТ ГНОМ Я, Р ИНЕКЕ Я.С1ТУ = Р.С1ТУ ) 2. Б 101М Р ОЯ1М6 СХТУ 3. Я МАТНКАЬ 001И Р Результатом в каждом случае будет естественное соединение таблиц Я и Р (по атрибуту города С1ТТ). 269 Глава 7. Реляционное исчисление Первая формулировка заслуживает более подробного обсуждения.

Именно она одна из трех предложенных вариантов являешься допустимой в первоначальной версии языка ЯОЬ (явная операция Л01М была добавлена в стандарт Я.>Е!92). Концептуально можно рассматривать реализацию этой версии запроса следующим образом. ° Во-первых, после выполнения предложения ГНОМ мы получаем декартово произведение Б Т1МЕЯ Р. (Строго говоря, перед вычислением произведения следовало бы позаботиться о переименовании столбцов.

Для простоты мы этого не делаем. Напоминаем также, что, как следует из упр. 6.12 главы 6, "декартово произведение" для единственной таблицы Т можно рассматривать как саму таблицу Т.) ° Во-вторых, после выполнения предложения ЯНЕКЕ мы получаем выборку из этого произведения, в которой два значения атрибута С1ТХ в каждой строке равны (иначе говоря, выполнено соединение таблиц поставщиков и деталей по эквивалентности их атрибутов городов). ° В-третьих, после выполнения предложения БЕЬЕСТ мы получаем проекцию выборки по столбцам, указанным в предложении ЯЕЬЕСТ. Конечным результатом будет естественное соединение указанных таблиц.

Следовательно, нестрого говоря, предложение ГНОМ в языке ЯОЬ соответствует декартову произведению, предложение ЯНЕКŠ— операции выборки, а совместное применение предложений ЯЕЬЕСТ-ГНОМ-ННЕКŠ— проекции выборки произведения. Продолжение обсуждения можно найти в приложении А. 7.7.4. Найти все пары названий городов, таких, что поставщик из первого города поставляет деталь, находящуюся во втором городе ЯЕЬЕСТ 01ЯТ1МСТ Я.С1ТХ АЯ ЯС1ТХ, Р.С1ТХ АЯ РС1ТХ ГНОМ Б 101М ЯР ОБ1МБ ЯФ 001М Р ОБ1МБ РМ Обратите внимание, что приведенный ниже оператор будет некорректным (поскольку он включает столбец С1ТХ как присоединяемый столбец во втором соединении).

ЯЕЬЕСТ 01ЯТ1МСТ Я.С1ТХ АЯ ЯС1ТХ, Р.С1ТХ АЯ РС1ТХ ГКОМ Я МАТОКАЬ 001М ЯР МАТНКАЬ 001М Р 7.7.5. Выбрать все пары номеров поставщиков, таких, что оба поставщика в каждой паре находятся в одном городе ЯЕЬЕСТ А.Я$ АЯ ЯА, В.Ят АЯ БВ ГНОМ Я АЯ А, Я АЯ В ИНЕКЕ А.С1ТХ в В.С1ТХ АМО А.БХ < В.Я4 3 В этом примере требуется явно указывать переменные кортежей. Также следует оз.- метить, что вводимые имена столбцов БА и ЯВ относятся к столбцам резулынирующей гваблицы, и потому не могут использоваться в предложении ИНЕКЕ. 270 Часть 11. Реляционная модель 7.7.6. Определить общее количество поставщиков ЯЕЬЕСТ СООНТ(е) АЯ Н РЕОМ Результатом будет таблица с одним столбцом, которому присвоено имя Н, и одной строкой, содержашей значение 5.

Язык ЯОЬ поддерживает типичный набор обобшаюших функций: СОНЕТ, ЯОИ, АЧО, ИАХ и М1Н. Однако имеется несколько специфических для языка Я()Ь особенностей, которые пользователю необходимо знать. ° В общем случае аргументу обобшаюшей функции может предшествовать необязательное ключевое слово О1ЯТ1НСТ (например, ЯОМ(О1ЯТ1НСТ ОТУ)), указываюшее, что перед применением этой функции дублируюшиеся строки должны быть удалены.

Для функций ИАХ и М1Н ключевое слово О1ЯТ1НСТ является излишним и не вызывает никакого действия. ° Специальная обобшаюшая функция СОНЕТ(*) не допускает использования ключевого слова О1ЯТ1НСТ и предназначена для подсчета всех строк в таблице без предварительного удаления дублируюшихся строк.

° Любые НОЬЬ-значения в столбце-аргументе (глава !8) удаляются перед применением обобщающей функции в зависимости от того, указано ли ключевое слово О1ЯТ1НСТ, кроме случая использования обобщающей функции СОЛТ('), когда НОЬЬ-значения обрабатываются так же, как обычные значения. ° Если аргумент представляет собой пустое множество, обобшаюшая функция СОНЕТ возвращает значение нуль, а все другие операторы возвращают НОЬЬ- значение (неопределенное значение). (В 13.3) показано, что подобное поведение операторов некорректно, однако язык БОЬ определяет их именно таким образом.) 7.7.7.

Характеристики

Тип файла
DJVU-файл
Размер
10,05 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее