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

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

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

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

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

Во-первых, как видно, мы изменили только ту часть условия, в которой использовался предикат 1н, и не затронули предикат МОТ 1М. Запросы с предикатами МОТ 1Н запросами с соединениями так просто не заменяются. Во-вторых, в разделе ЯЕРЕСТ было добавлено ключевое слово РТЯТ1НСТ, потому что в результате запроса во второй формулировке для каждого сотрудника будет содержаться столько строк, сколько существует руководителей отделов, получающих такую же зарплату что и данный служащий. ПрЕдикат Шсе Формально предикат 11ке определяется следующими синтаксическими правилами: 11)се ргес(1саге ::= яоигсе уа1ие [ НОТ ) й|КЕ рапгегп уа1ие [ ЕЯСАРЕ еясаре уа1ие яоигсе уа1ие ::= уа1ие ехргеяв(оп рассегп уа1ие ::= уа1ие ехргеяя(оп еясаре уа1ие ::= уа1ие ехргеяя(оп Все три операнда (яоигсе уа1ие, рассегп уа1ие и еясаре уа1ие) должны быть одного типа: либо типа символьных строк, либо типа бито- 298 Лекция 14 Язык баз данных ЗОЬ: преднкаты раздела 99НЕВЕ оператора БЕЬЕСТ вых строк*.

В первом случае значением последнего операнда должна быть строка из одного символа, во втором — строка из 8 бит. Второй операнд, как правило, задается литералом соответствующего типа. В обоих случаях значение предиката равняется в ие в том и только в том случае, когда исходная строка (вон»се са1це) может быть сопоставлена с заданным шаблоном (рав.етп т»а1це). Если обрабатываются символьные строки, и если раздел еБОАРе условия отсутствует, то при сопоставлении шаблона со строкой производится специальная интерпретация двух символов шаблона: символ подчеркивания (' ') обозначает любой одиночный символ; символ процента (' В ') обозначает последовательность произвольных символов произвольной длины (длина последовательности может быть нулевой).

Если же раздел ЕБСЛРЕ присутствует и специфицирует некоторый одиночный символ х, то пары символов «х» и «хь» представляют одиночные символы «» и «З» соответственно. В случае обработки битовых строк сопоставление шаблона со строкой производится восьмерками соседних бит (окпзепзами). В соответствии со стандартом Я~(.:!999, при сопоставлении шаблона со строкой производится специальная интерпретация октетов со значениями х'25' и х'5Р' (коды символов подчеркивания и процента в кодировке АЕСП).

Первый октет обозначает любой одиночный октет, а второй — последовательность произвольной длины произвольных октетов (длина может быть нулевой). В разделе еяслре указывается октет, отменяющий специальную интерпретацию октетов х'25' и х'5» '. Значение предиката 11йе есть ип»споив, если значение первого или второго операндов является неопределенным.

Условие х МОТ БТКЕ у еБслре гэквивалентно условиюмОт х ьгке у езслре г. Примеры запросов с использованием предиката 1згси Пример 14.11. Найти номера проектов, в названии которых присутствуют слова 'лех- ' и 'втер'. Слова должнь1 следовать именно в такой последовательности, но слово ' пехв ' может быть первым в названии проекта.

БЕЬЕСТ РВО Т1ТЬЕ РВОМ РВО ГНЕВЕ РВО 11ТЬЕ Ь|КЕ 'ЪпехВВвсерв' ОВ РВО Т1ТЬЕ ЬТКЕ екехьквсерв'; Это очень неудачный запрос, потому что его выполнение, скорее всего, вынудит СУБД просмотреть все строки таблицы РВО и для каждой ' В стандарте БОгл 1999 разрешается применять предикат ш к в только для битовых строк ти- па вьсв. Битовые строки типов втт и втт уквттке не допускаются. 299 Основы баа данных Курс строки выполнить две проверки столбца РВО Т1ТЬЕ.

Можно немного улучшить формулировку с небольшим риском получить неверный ответ (пример 14.11а): ЯЕЬЕСТ РВО Т1ТЬЕ РВОМ РВО ИНЕВЕ РВО Т1ТЬЕ ЫКЕ 'ЪеххаагерЪ'; Пример 14.12. Найти номера отделов, служащие которых являются менеджерами проектов, и название каждого из этих проектов начинается с названия отдела. ЯЕЬЕСТ О1ЯТ1ИСТ РЕРТ.ОЕРТ ИО РВОМ ЕМР, ОЕРТ, РВО ХНЕВЕ ЕМР.ЕМР ИО = РВО.РВО МИС АИР ЕМР.ОЕРТ ИО = РЕРТ.РЕРТ ИО АИО РВО.РВО Т|ТЬЕ ЫКЕ ОЕРТ.ОЕРТ МАМЕ ]] 'Ъ'; Вот как может выглядеть формулировка этого запроса, если использовать вложенные подзапросы (пример 14.12а): ЯЕЬЕСТ РЕРТ.ОЕРТ ИО РВОМ ОЕРТ ИНЕВЕ ОЕРТ.РЕРТ ИО 1И [ЯЕЬЕСТ ЕМР.ОЕРТ ИО РВОМ ЕМР ХНЕВЕ ЕМР.ЕМР ИО 1И [ЯЕЬЕСТ РВО.РВО МИО РВОМ РВО Х??ЕВЕ РВО.РВО Т1Т? Е ? |КЕ РКРТ.ОЕРТ МАМЕ ]] 'в']]; Пример 14.13.

Найти номера отделов, названия которых не начинаются со слова 'Яо|хиахе'. ЯЕЬЕСТ ОЕРТ ИО РВОМ ОЕРТ ЖМЕНЕ ОЕРТ ИАМЕ ИОТ ЫКЕ 'Яо1хиагеЪ'; Предмкат в|и||ах Формально предикат а|ли |аг определяется следующими синтаксическими правилами: а|и||аг ргег?|саге::= аоихсе уа|ие [ ИОТ ] Я1м1ьАВ тО раггехп уа1ие [ еБсАРе еасаре уа1ие ] 300 Лекция! 4 Язык баз данных 80Ы лредикаты раздела ГНЕВЕ оператора ЗЕкЕСТ яоцгсе ча1це ::= сЬатастет ехргеяя(оп рагтегп ча1це ::= сЬагастег ехргеяя(оп еясаре ча1це ::= сЬатастет ехргеяя(оп Все три операнда (яоцтсе ча1це, рагтетп ча1це и еясаре ча1це) должны иметь тип символьных строк. Значением последнего операнда должна быть строка из одного символа.

Второй операнд, как правило, задается литералом соответствующего типа. В обоих случаях значение предиката равняется ггие в том и только в том случае, когда шаблон (раттетп ча1це) должным образом сопоставляется с исходной строкой (яоцгсе ча1це). Основное отличие предиката я)в11ат от рассмотренного ранее предиката 11ке состоит в существенно расширенных возможностях задания шаблона, основанных на использовании правил построения регулярных выралеений. Регулярные вырюкения предиката я)п11аг определяются следующими синтаксическими правилами: гедц1ат ехргеяя)оп ::= тедц1ат тепп ! тедц1аг ехргеяя(оп чеггуса1 Ьаг гецц1аг тети гедц1ат гепп ::= тедц1аг 1асгог ~ тедц1ат гепп тедц1ат гассет тедц1ат (астот::= тедц1ат рт)пату ! тедц1аг ргппагу * тедц1ат ргыпагу « тедц1ат рт)вату ::= сЬатасгет ярес(1(ег з тедц1ат сЬатастег яет тедц1аг ехргеяя(оп сЬатастет ярес111ет ::= поп еясаре сЬатастет ~ еясаре сЬатастет гедц1ат сЬатастег яет 1ейт ЬтасКет сЬагастет епшпетатуоп 1(ят г(дит Ьгаскет 1е1т ЬтасЕет сЬатастет епшпегат(оп 11ят г1дЬт ЬтасАет 1ейт ЬгасЕет : тедц1аг сЬатяет Ы : г(дЬт Ьтасует сЬатастет епшпетат(оп ::= сЬатастет ярес111ет сЬатастег ярес111ет — сЬатастет ярес111ет тецц1аг сЬагяет Ы ::= А1 РНА ! ЦРРЕЕ ~ 10ХЕК ~ 0161Т ~ АТАПЗИ Поскольку в синтаксических правилах регулярных выражений символы « ~ », «(» и «)», используемые нами в качестве метасимволов в ВНР, являются терминальными символами, они изображены как чегтуса1 Ьат, 1егт Ьтасует и гудит Ьтаскет соответственно.

Создаваемое по приведенным правилам регулярное выражение представляет собой символьную строку, содержащую все символы, кото- 301 Основы баз данных Курс рые требуется явно сопоставлять с символами строки-источника. В строке могут находиться специальные символы, представляющие собой заменители обычных символов («Ъ» и «»), обозначения операций («)»), показатели числа возможных повторений («*» и ««») и т. д. При вычислении регулярного выражения образуются все возможные символьные строки, не содержащие специальных символов и соответствующие исходному шаблону. Тем самым, значением предиката я)я11аг является йие в том и только в том случае, когда среди всех символьных строк, генерируемых по регулярному выражению рая г.ягп са1ив, найдется символьная строка, совпадающая с яопгсе уа1ие.

Рассмотрим несколько примеров регулярных выражений. Выражение ' (тМя гя ягг)пц1) ) (тМя 1я ягг1пц2) ' производит две символьные строки: ' (тп)я Тя ягг1пц1) ' и ' (т)пя 1я ягг)пц2) '. В общем случае в круглых скобках могут находиться произвольные регулярные выражения гехр1 и гехр2. Результатом вычисления ' (гвхр1) ( (гехр2) ' является множество символьных строк, генерируемых выражением гехр1, объединенное с множеством символьных строк, генерируемых выражением гяхр2. Выражение 'ТМя 1я ягг)пд [12) *' генерирует символьные строки 'ТИя 1я ягг1пц ', 'Т)пя 1я ягг)пц 1', 'ТМя Тя ягг)пд 2', 'ТМя ая ягг1пц 11', 'Т)пя 1я ягг(пд 22', 'ТМя гя ягг1пц 12', 'ТЬ1я 1я ягг1пц 22', 'тп1я уя ягг1пц 111' и т д.Конструкция вквадратныхскобках представляет собой один из вариантов определения набора символов (геци1аг сйагасгег яег).

В данном случае символы, входящие в определяемый набор, просто перечисляются. При вычислении регулярного выражения в каждой из генерируемых символьных строк конструкция в квадратных скобках заменяется одним из символов соответствующего набора. Специальный символ «*», стоящий после закрывающей квадратной скобки, является показателем числа повторений.

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

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

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

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