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

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

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

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

Росшпепс !БО/1ЕС 9075:1992/Сог.2:1996(Е). Содержит большое количество исправлений и дополнений к начальной версии [4.22]. К сожалению, все исправления и дополнения практически не устраняют ни одной из проблем, указанных в [4.19]. 4.24. Каупюпс( А Ь. апс) Раис(епагс)е 1.1. Б()Ь апс( йз Аррйсас!опз. — Еп81есчооб С!!СТз, ЬС.1.; Ргепг!се-На!1, 1991. Книга о языке БОЬ, содержащая практические советы и инструкции (почти половина книги посвящена подробному обсуждению серии примеров применения практических приложений).

4.25. Каупюпб А.Ь. апб ЬЯВзоп 1.Р. Ап Ассезз брес!Всайоп 1.апйсайе Гог Ке]ас!опас Раса Вазе Бумесп //1ВМ ).КАР. — Мау, 1979. — 23, № 3. В публикации подробно рассматриваются вопросы, связанные с техникой компиляции в системе Бумеш К [4.11], [4.25], [4.26]. Для любого данного 5ОЬ-оператора оптимизатор системы генерирует программу на внутреннем языке АБЬ (Ассеаа Брас!Кссас!оп Ьапйиайе).

Этот язык используется как интерфейс между оптимизатором и генератором кодов. (Генератор кодов, как следует из его названия, преобразует программу на языке АБЬ в машинный код.) В языке АБЬ есть, например, операторы всап (поиск) и Ьпаегь (вставить), применяемые к таким объектам, как индексы и хранимые файлы. Язык создавался, чтобы весь процесс трансляции стал управляемым. Это достигалось путем разбиения процесса трансляции на множество четко определенных подпроцессов. 4.26. Кауспопс) А.1.. апс1 Вгас(огс) %.%.

Соспрйабоп оГ Н!8Ь-Ьече! Раса 1.апйиайе. 1ВМ КезеагсЬ Керогс К)2598. — Аийим, 1979. В системе Буспещ К впервые была применена идея компиляции запросов перед их выполнением и рекомпиляции запросов, если физическая структура базы данных значительно изменялась на каком-то переходном этапе. В этой статье подробно описывается механизм компиляции и рекомпиляции, но не затрагиваются вопросы оптимизации (эта актуальная тема освещается в [17.34]). 4.27. Мейоп 1., 5!сиоп А.К. Ыпс)егзсапс)!п8 ТЬе ЬСесч 5()Ь: А Соспр!есе Ои!с)е. — Бап Магео, Са!!Гл Могйап Каибпапп, 1993.

Руководство по стандарту Я )Ь/92 (как представлена сама книга). Один из авторов (Ме!соп) был редактором первоначальных спецификаций стандарта 5ОЬ/92 [4.22]. 4.28. КеЬпег Р., Воусе К.Г., СЬаспЬегйп Р.Р. Нищал Рассогз Ечасиайоп оГ Тсчо Раса Вазе Оиегу Ьапйиайез: БОЫАКЕ апс) БЕОЫЕЬ 0 Ргос. ЫСС 44. — АпаЬе1щ, Са!!Е; Мопсча!е, )ч.1.: АР!Р5 Ргезз, Мау, 1975. 144 Часть 1 Основные понятия Ответы к некоторым упражнениям 4.1. СНЕАТЕ ТАВЬЕ Б ( Я$ СВАН(5), ЯНАМЕ СНАН(20), ЯТАТОБ НОМЕН1С(5), С1ТХ СНАН(15], РН1НАНХ КЕХ ( 8$ ) ) СЕЕАТЕ ТАВЬЕ Р ( Р$ СВАН(б), РНАМЕ СНАЕ(20), СОЬОЕ СВАН(б), ИЕХОНТ НПМЕЕ1С(5,1), С1ТХ СВАН(15), РЕ1МАНХ КЕХ ( Р$ ) ] СНЕАТЕ ТАВЬЕ ( 0$ ЛаМЕ С1ТХ РЕ1МАЕХ СНАН(4), СВАН(20), СВАЕ(15), КЕХ ( 0$ ) ] СНЕАТЕ ТАВЬЕ ЯРЮ ( 8$ СНАЕ(5), Р$ СНАН(б), 145 Глава 4.

Введение в язык ВДЬ Язык БЕС]()ЕЬ (4.8), предшественник языка Б(1Ь, был разработан на базе более раннего языка Б(2(ЗАМЕ. Эти два языка, в основном, совпадали, но в языке Б(2()А)ЬЕ использовался математический синтаксис, а в языке БЕ(2()ЕЬ вЂ” ключевые слова из английского языка, такие как ЯЕЬЕСТ, РВОМ, ННЕНЕ и т.д. В статье привелены отчеты по ряду исследований, в которых изучалась практичность этих языков; в качестве объектов использовались студенты колледжа. В результате такого исследования в язык БЕС;ШЕЬ были внесены некоторые изменения (4.9).

4.29. НогепзЬге!и 1)., АЬгашоч(сЬ А., В1гЕег Е. Ор(ппЫпЕ ТгапзасЬБЯЬ: Абчапсеб РгоЕгапцпгпЕ ТесЬпк(цез. — Ргепюпй СаИ.: БС]Ь Рогов Ргезз, 1995. Язык ТгапзасЬБг2Ь вЂ” это диалект языка Б(2Ь, который поддерживается такими продуктами, как БуЬазе и Б(2Ь Бегчег. В этой книге рассматривается ряд приемов программирования для языка ТгапзасГ-Б(2Ь, которые основаны на использовании характеристических функций (определенных авторами как средства, позволяюшие программистам кодировать логические условия в виде . выражений в предложениях БЕЬЕСТ, ИНЕНЕ, ОНООР ВХ и ЯЕТ).

Хотя эти идеи выражены в терминах языка Тгапзасг-БЯЬ, на самом деле они имеют более широкую область применения. Заиечание. Необходимо отметить, что слово "орг)ш(г(пН", которое входит в название книги, не имеет отношения к оптимизатору СУБД. Напротив, здесь подразумевается оптимизация, которая может выполняться самими пользователями вручную. 1$ СЕАВ(4), ОТХ НРМЕВ1С(9), РВ1МАВХ КЕХ ( 3$, Р$, 1$ ), ГОВЕ16Н КЕХ ( 3$ ) ВЕГЕВЕНСЕЯ 3, ГОВЕ16Н КЕХ ( Р$ ) ВЕГЕВЕНСЕЯ Р, ГОВЕ16Н КЕХ ( 1$ ) ВЕГЕВЕНСЕЯ Ю ) 4.4. Ниже приведены ответы к отдельным пунктам упражнения.

а) 1НЯЕНТ 1НТО Я (3$, ЯНАМЕ, С1ТХ ) ЧА1ЛЕ ( '310', 'ЯшЕсй', 'Неи ХогВ' ) ) Значение столбца БТАТРБ здесь установлено равным значению по умолчанию. б) РРРАТЕ ЯЕТ ИЕЕВЕ в) РЕЬЕТЕ ГНОМ ИЕЕВЕ ( Р СОЬОВ ~ 'Огапйе' СОРОК = 'Веб' Ю 1$ НОТ 1Н ЯЕЬЕСТ 1$ РВОМ ЯРЮ ) ) Обратите внимание на вложенный подзапрос и оператор 1Н (а точнее, на оарииа- ние оператора 1Н) в ответе в. Такие подзапросы рассматриваются в главе 7.

ЕХЕС ЯОЬ РЕСЬАВЕ СБ СРВЯОВ ГОВ БЕЗВЕСТ Я.3$, Я.ЯНАМЕ, Б.ЯТАТРЯ, Я.С1ТХ ГНОМ Я ОВРЕВ ВХ 3$ ЕХЕС ЯОЬ РЕСРАВЕ СЮ СПВЯОВ ГОВ ЯЕЬЕСТ 1.1$> Ю.ЮНАМЕ, Ю.С1ТХ ГНОМ Я ИЕЕВЕ 1.1$ 1Н ( ЯЕРЕСТ ЯРЯ. 1$ РВОМ ЯРЮ ИНЕВЕ ЯРЮ.3$ = :СЯ 3$ ) ОВРЕВ ЯХ 1$ (Снова обратите внимание на вложенный подзапрос и оператор 1Н.) Когда курсор СЯ открыт, базовая переменная СЯ Я$ содержит значение номера поставщика, получаемое с помощью курсора СЯ.

Логика процедуры, по существу, следующая. 146 Часть 7 Основные понятия 4.5. Отметим, что могут существовать поставщики, которые не поставляют деталей ни для одного проекта; в следующем ответе рассматриваются именно такие поставщики (только такие?). Сначала определим два курсора, СЯ и СЯ.

ЕХЕС ЯЦЬ ОРЕН СЯ 00 <для всех строк Я, доступннх через СБ>; ЕХЕС ЯОЬ РЕТСН СЯ 1НТО :СЯ Б$, :СЯ БН, :СЯ БТ, :СЯ БС ; ргЬпГ СЯ Я$, СЯ ЯН, СЯ БТ, СЯ ЯС ; ЕХЕС БОЬ ОРЕН СЮ 00 <для всех строк Т, доступннх через СТ>; ехес БОь Ретсн сю 1нтО ~сю 0$, ~сл зн, :сю лс ргЬпГ СЗ Ю$, СЮ Л, СЮ Лс ; ЕНО 00 ; ЕХЕС ЯОЬ СЬОЯЕ СЛ ЕНО 00 ; ЕХЕС ЯОЬ СЬОЯЕ СЯ ) 4.6.

Это хороший пример задачи, которую с помощью языка БЯЬ в его обычной форме решить полностью нельзя. Нужно "разобрать" данную деталь на и уровней при условии, что л во время написания программы неизвестно. Сравнительно простой способ формирования таких л уровней (если бы это было возможно) мог бы быть реализован с помощью рекурсивной программы, в которой каждый рекурсивный вызов создает новый курсор, как показано ниже. САНЬ ВЕСОВЯ1ОН ( 61ЧЕНР$ ) ] ВЕСОВБ10Н: РВОС ( ОРРЕВ Р$ ) ВЕСОВБ1з)Е ) ОС1 ОРРЕВ Р$ ... ) ОС1, ЬОНЕВ Р$ ...; ЕХЕС ЯОЬ ОЕСЬАВЕ С "георепаЫе" СОВБОВ РОВ ЯЕЬЕСТ Н1НОВ Р$ РВОМ РАНТ ЯТВОСТОВЕ НБЕНЕ ИА)ОВ Р$ = :ОРРЕВ Р$ ргЬпГ ОРРЕВ Р$ ; /* навести значение ОРРЕВ Р$ / ЕХЕС БОЬ ОРЕН С 00 <для всех строк РАНТ БТВУСТОНЕ, доступннх через С>; ехес БОЬ Ретсн с Енто:ьонеВ Р$ САЬЬ ВЕСОВЯТОН ( ЬОНЕВ Р$ ) ЕНО 00 ) ЕХЕС БОЬ СЬОЯЕ С ) ЕНО РВОС Здесь подразумевается, что фиктивная спецификация "георепаЫе" ("повторно открываемый") в операторе ОЕСЬАВЕ СОВЯОВ означает допустимость операции ОРЕН даже в том случае, если курсор уже открыт.

В результате такой операции создается новый экземпляр курсора для данного табличного выражения (использующего текущие значения любых базовых переменных, на которые есть ссылки в этом выражении). Далее подразумевается, что ссылки на такой курсор в операторе РЕТСН и других являются ссылками на "текущий" экземпляр и что оператор СЬОБЕ уничтожает именно этот экземпляр и восстанавливает предыдущий экземпляр как 147 Глава 4. Введение в язык ВЯЛ "текущий". Другими словами, подразумевается, что повторно открываемый курсор формирует стек, который обслуживается операторами ОРЕМ и СЬОЯЕ так же, как обычный стек обрабатывается операторами рцвй и рор.

К сожалению, подобные допущения на сегодняшний день чисто гипотетические. В языке Б()Ь пока нет таких средств, как повторно открываемый курсор (в действительности попытка повторно открыть курсор приведет к ошибке). Приведенный код недопустим. Но этот пример наглядно показывает, что "повторно открываемые курсоры" были бы очень полезным дополнением к современному варианту языка БОЬ. Поскольку предыдущая процедура не справляется с поставленной задачей, мы вкратце приведем одну из возможных процедур (но не наиболее эффективную), которая позволяет решить задачу. САНЬ ВЕСОВЯ1ОИ ( 61ЧЕИР$ ) ВЕСОВЯ10И: РВОС ( РРРЕВ Р$ ) ВЕСОВЯ1ЧЕ РС1 ОРРЕВ Р$ РСЬ ЬОИЕВ Р$ ...

1И1Т1АЬ ( ' )) ЕХЕС ЯОЬ РЕСЬАВЕ С СОННОВ ГОВ ЯЕЬЕСТ М1ИОВ Р$ ГНОМ РАНТ БТВОСТРВЕ ИНЕВЕ МА)ОВ Р$ = :РРРЕВ Р$ АИР М1ИОВ Р$ > :1ОИЕВ Р$ ОВРЕВ ВУ М1ЙОВ Р$ ! рг1пЕ РРРЕВ Р$ РО <без ограничений>; ЕХЕС ЯОЬ ОРЕМ С ; ЕХЕС ЯОЬ ГЕТСН С 1ИТО :ЬОИЕВ Р$ ЕХЕС ЯОЬ СЬОБЕ С 1Г <нет внбранннх 1оиег РФ> ТНЕИ ВЕТРВИ ; ЕМР 1Г ; 1Г <есть вибраннне 1оиег Р$> ТНЕИ САЬЬ ВЕСНВЯ1ОИ ( ЬОИЕВ Р$ ) ) ЕИР 1Г ! ЕИР РО ! ЕИО РВОС Заметьте, что в этом решении один и тот же курсор используется в каждом вызове подпрограммы ВЕСРВБ1ОИ (но каждый раз при ее вызове динамически создаются новые экземпляры переменных ОРРЕВ Р$ и ЬОИЕВ Р$, причем в конце вызова эти экземпляры уничтожаются).

В связи с данным фактом мы использовали следующий трюк. АМР М1ИОВ Р$ > :ЬОИЕВ Р$ ОВРЕВ ВУ М1ИОВ Р$ Так что при каждом вызове подпрограммы ВЕСОВБ1ОИ все промежуточные компоненты (ЬОИЕВ Р$) текущего значения ОРРЕВ Р$, которые уже были обработаны, просто игнорируются. Обсуждение некоторых альтернативных подходов к этой задаче вы найдете в (4.5), (4.7).

В главе б (в конце раздела 6.7) описывается оператор, имеющий отношение к данному вопросу. Он называется транзитианым замыканием (згапзй)че с!озцге). В приложении Б приводится обзор некоторых возможностей в стандарте БОЬЗ, которые также имеют отношение к данной проблеме. 148 Часть 1 Основные понятия Часть |1 Реляционная модель Основой современной технологии баз данных, конечно же, является реляционная модель. Именно она делает область технологии баз данных наукой. Поэтому любое описание этой области, не охватывающее описание реляционной модели, может быть лишь поверхностным. Точно так же знания, умения и опыт в области баз данных нельзя признать удовлетворительными, если человек не имеет глубокого и ясного представления о реляционной модели.

Поспешим добавить: мы вовсе не хотим сказать, что этот материал труден для понимания; просто он представляет собой основу и, без сомнения, будет оставаться ею в обозримом будущем. Как уже отмечалось в главе 3, в реляционной модели рассматриваются три принципиальных аспекта данных — структура данных, манипулирование данными и поддержание целостности данных.

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

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

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

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