Главная » Просмотр файлов » С.Д. Кузнецов - Основы баз данных

С.Д. Кузнецов - Основы баз данных (1121716), страница 63

Файл №1121716 С.Д. Кузнецов - Основы баз данных (С.Д. Кузнецов - Основы баз данных) 63 страницаС.Д. Кузнецов - Основы баз данных (1121716) страница 632019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Рерт МО). подобную операцию часто называют полусоединениеи (уеои'- уогп), поскольку в результирующей таблице используются столбцы только одного из операндов операции эквисоединения. Мы привели вторую формулировку запроса, преследуя две цели: (1) продемонстрировать, каким образом предикат сравнения можно использовать для задания условия соединения, и (2) показать, что запросы, содержащие вложенные запросы, часто могут быть переформулированы в запросы с соединениями. Пример 14.4. Найти номера, имена„номера отделов и имена руководителей отделов служаших, размер заработной платы которых меньше 15000 руб. ЯЕ1 ЕСТ ЕМР1.ЕМР НО, ЕМР1.ЕМР МАМЕ, ЕИР1.РЕРТ НО, ЕИР2.ЕМР МАМЕ РВОМ ЕМР АЯ ЕМР1, ЕМР АЯ ЕМР2, РЕРТ ХНЕВЕ ЕМР1.ЕМР ЯАЬ < 15000.00 АНР ЕМР1,РЕРТ НО = РЕРТ.РЕРТ МО АКР РЕРТ.РЕРТ МИР = ЕМР2.ЕМР ИОг ' Здесь снова идет речь о семантике выполнения оператора Бкьяст. В стандарте, естественно, не требуется, новы в реализации языка запросы с корреляционными подзапросами выполнялись в точности так, как описывается ниже.

Суть в том, что какой бы реальный алгоритм выполнения такого запроса не использовался, результат выполнения должен быть точно таким же, как если бы запрос выполнялся по описываемой схеме. 292 Язык баз данных ЯОЫ предикаты раздела ГЛГНЕНЕ оператора ЯЕСЕОТ Лекция !4 Этот запрос представляет собой эквисоединение ограничения таблицы емР (поусловию емР ЯАР < 15000.00) с таблицами РеРт и емР (по уСЛОВИям ЕМР.РЕРТ НО = РЕЕТ.РЕЕТ НО и РЕРт,РЕЕТ ММО = емРЗ.ЯМР ЕО соответственно).

Таблица ЕМР участвует в качестве операнда операции эквисоединения два раза. Поэтому в разделе Реом ей присвоены два псевдонима — емР1 и емР2. Следуя предписанному стандартом порядку выполнения запроса, можно считать, что введение этих псевдонимов обеспечивает переименование столбцов таблицы емР, требуемое для выполнения раздела РЕОМ с образованием расширенного декартова произведения таблиц-операндов.* Заметим также, что в данном случае мы имеем дело с полным эквисоединением трех таблиц (а не с полусоединением), поскольку в списке выборки присутствуют имена столбцов каждой из них. Покажем способ формулировки этого запроса с использованием вложенного подзапроса в качестве элемента списка выборки (пример 14.4а): ЯЕРЕСТ ЕМР.ЕМР НО, ЕМР.ЕМР МАМЕ, ЕМР.РЕРТ МО, (ЯЕРЕСТ ЕМР МАМЕ РЕОМ ЕМР ННЕЕЕ ЕМР МО = РЕРТ ММО) РЕОМ ЕМР, РЕРТ ХНЕЕЕ ЕМР.ЕМР ЯАР < 15000.00 АМР ЕМР.РЕРТ НО = РЕРТ.РЕРТ МО; Как показывает последний пример, в условии выборки подзапроса, участвующего в списке выборки, можно использовать имена столбов таблиц внешнего запроса.

Из этой возможности языка Я.)г. видно, что в разделе «Общие синтаксические правила построения скалярных выражений» предыдущей лекции для облегчения понимания материала мы немного исказили семантику оператора выборки. Там было сказано следующее: «После выполнения раздела инеее (если в запросе отсутствуют разделы ОРОРР ву и нлчтнс, случай (а)) или выполнения явно или неявно заданного раздела нлутма (случай (ь)) выполняется раздел ЯЕРЕСТ.

При выполнении этого раздела на основе таблицы т1 в случае (а) или на основе сгруппированной таблицы тЗ в случае (Ь) строится таблица т4, содержащая столько строк, сколько строк или групп строк содержится в таблицах т1 или тз соответственно». В действительности, в общем случае очередная строка таблицы тй должна строиться в тот момент, когда очередная строка или группа строк заносится в таблицу т1 или ТЗ соответственно. ' Кстати, в этом случае можно было бы обойтись введением одного псевдонима, оставив в качестве неявного второго псевдонима имя таблицы — киг. 293 Основы баа данных Курс Предикат ьееиееп Предикат позволяет специфицировать условие вхождения в диапазон значений.

Операндами являются строки: Ьегхееп ргеЖсасе гон ча1пе сопаггиссог [ НОТ ] ВЕТХЕЕИ гон аа1ие сопасгиссог АНР гон аа1пе сопасгисгог Все три строки-операнды должны иметь одну и ту же степень. Типы данных соответствующих значений строк-операндов должны быть совместимыми. Пусть х, у и г обозначают первый, второй и третий операнды. Тогда поопределению выражение х нот ветхеен у Анв еэквивалентновыражениюнот (х ветхеем у АМО е).

Выражение х ветхеен г Амв аппо определению эквивалентно булевскому выражению х >= у Амв х <= е. Лримеры запросов с использованием прадиката Ьеенееп Пример 14.5. Найти номера, имена и размер зарплаты служащих, получающих зарплату в размере от 12000 до 15000 руб. ЯЕЬЕСТ ЕМР НО, ЕМР МАМЕ, ЕМР ЯАЬ РВОМ ЕМР ХНЕНЕ ЕМР ЯАЬ ВЕТХЕЕН 12000.00 АИО 15000.00г Пример 14.6. Найти номера, имена и размер зарплаты служащих, получающих зарплату, размер которой не меньше средней зарплаты служащих своего отдела и не больше зарплаты руководителя отдела.

БЕЬЕСТ ЕМР МО, ЕМР МАМЕ, ЕМР ЯА) РВОМ ЕМР ХНЕНЕ ЕМР БАЬ ВЕТХЕЕИ (ЯЕЬЕСТ АЧО(ЕМР1.ЕМР ЯАЬ) РВОМ ЕМР ЕМР1 хнене емв.вевт МО = емР1.вевт НО) АНЭ (ЯЕЬЕСТ ЕМР1.ЕМР БАЬ РВОМ ЕМР ЕМР1 ХНЕНЕ ЕМР1.ЕМР ИО (БЕЬЕСТ ВЕРТ.БЕРТ МНО РВОМ ОЕРТ ХНЕНЕ ВЕРТ.ВЕРТ НО = ЕМР.ВЕРТ НО)); Язык без данных ЯОЫ преднкаты раздела ЧЧНЕЯЕ оператора ЯЕЬЕОТ Лекция 14 В этом запросе можно выделить три интересных момента. Во-первых, диапазон значений предиката ветиеен задан двумя подзапросами, результатом каждого из которых является единственное значение.

Первый подзапрос вьщает единственное значение, поскольку в списке выборки содержится агрегатная функция (]отО) и отсутствует раздел Опоцр ву, а второй — потому что в его разделе ипепе присутствует условие, задаюшее единственное значение первичного ключа. Во-вторых, в обоих подзапросах таблица Пир получает псевдоним Еир1 (в формулировке этого запроса мы старались использовать как можно меньше вспомогательных идентификаторов). Поскольку подзапросы выполняются независимо один от другого, использование обшего имени не вызывает проблем.

Наконец, в условии второго подзапроса присутствует более глубоко вложенный подзапрос, и в условии его раздела Янеке используется ссылка на столбец таблицы из самого внешнего раздела УПОИ. Предикат 1е аа11 Табл.14.1. Вид условия хгях нц ья нот нот х гя мць' ьпл нзт х гя нот нцьь Виа операнда Степень 1:значенне1П]ЬЬ уайе уайе оие оие Степень !: значение отлично от НОЬ1 уаде уайе оие ттие Степень > 1: у всех элементов значение %3ЬЬ уайе уайе оие оие Степень > 1: у некоторых (не у всех) элементов значение НОЬЬ уаце уайе оие Степень > 1; ни у одного элемента нет значения 1П]Ь1 уаце уайе оие 295 Предикат 1з пц11 позволяет проверить, являются ли неопределенными значения всех элементов строки-операнда: пц11 ргеЖсасе::= гон на1це сепзьгцссог 1Я 1 НОТ ] НОЬЬ Пусть х обозначает строку-операнд.

Если значения всех элементов х являются неопределенными, то значением условия х 1я мцьь является ггие; иначе — уайе. Если ни у одного элемента х значение не является неопределенным, то значением условия Х 1Я НОТ НОЬЬ является грие; иначе — уайе. Замечание: условие х 1Я НОт нцьь имеет то же значение, что условие НОт х 1Я НОЬЬ для любого хв том и только атом случае, когда степень Х равна 1. Полная семантика предиката пц11 приведена в таблице 14.1. Основы баз данных Куро Примеры запросов с использованием предиката ли пц11 Пример 14.7. На самом деле, в нашей формулировке запроса из примера !4.6 есть одна неточносп . Если у некоторого служащего номер отдела неизвестен (значение столбца ЕМР.

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

Найти номера и имена служащих, номер отдела кото- рых неизвестен. ЯЕЬЕСТ ЕМР ИО, ЕМР ИАМЕ РВОМ ЕМР ХНЕВЕ ОЕРТ ИО 1Я ИОЫ.; ' Покажем это в развернутой форме. Пусть з — текущая строка таблицы внк просматриваемой в цикле внешнего запроса, и пусть э.пгрт но солержит неопределенное значение. Тогда для строки э условие первого подзапроса будет иметь вид нпы. = вищ.пввт ио, и значением этого условия будет и(глоггл для любой строки таблицы яив (дивы, просматриваемой в цикле этого подзапроса. Поскольку иlглонп не является разрешающим условием, результируюгцая таблица подзапроса будет пуста, и агрегатная функция луз выдаст значение нлд.

По этому поводу значением условия внешнего запроса будет и(глони, и строка з не войдет в его результирующую таблицу. 29б Язык баз данных ЯОЫ предикаты раздела (л(НЕВЕ оператора ЕЕЬЕСТ Лекция 14 П реди кат 1п Предикат позволяет специфицировать условие вхождения строчного значения в указанное множество значений.

Синтаксические правила следующие: тп ртеЖсате::= тон та1це сопзттцстот [ ИОТ ] ТИ тп ртебЬсате на1це тп ртейусате на1це::= таьхе зц)х1цету (на1це ехртеезтоп сопкпа 11зт) Строка, являющаяся первым операндом, и таблица-второй операнд должны быть одинаковой степени. В частности, если второй операнд представляет собой список значений, то первый операнд должен иметь степень 1. Типы данных соответствующих столбцов операндов должны быть совместимы.

Пусть х обозначает строку-первый операнд, а 9 — множество строк второго операнда. Обозначим через з строку-элемент этого множества. Тогда по определению условие х Ти е эквивалентно булевскому выраже- НИЮОВ„к (Х = З).ДРУГИМИ СЛОВаМИ, Х ТИ ЕПРИНИМастэиаЧЕНИЕ ГГЦЕ В том и только в том случае, когда во множестве Е существует хотя бы один элемент з, такой, что значением предиката Х = з является йие. Х 1И Е принимает значение~а(зе в том и только том случае, когда для всех элементов з множества 9 значением операции сравнения Х = з является ~а1те. Иначе значением условия х ти е является ил)тпоткл. Заметим, что для пустого множества г значением х ьи е являетсягрце.

По определению условие х иот ТИ Я эквнвалентноИОт (х ТИ 9). Примеры запросов с использованием предиката хд Пример 14.9. Найти номера, имена и номера отделов служащих, работающих в отделах 15, 17 и 19. ЕЕЬЕСТ ЕМР ИО, ЕМР МАМЕ, РЕРТ ИО РВОМ ЕМР ИНЕВЕ РЕРТ ИО 1И (15, 17, 19); Конечно, эта формулировка запроса эквивалентна следующей формулировке (пример 14.9а): ЯЕЬЕСТ ЕМР ИО, ЕМР МАМЕ, РЕРТ ИО РВОМ ЕМР ИНЕВЕ ОЕРТ ИО = 15 ОВ ОЕРТ ИО = 17 ОВ РЕРТ ИО = 19; 297 Основы бвз данных Курс Пример 14.10.

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

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

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

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