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

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

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

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

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

Подробнее об этом речь пойдет в разделе 5.5 главы 5. Оператор ОРОАТЕ. Увеличить статус всех поставщиков из Лондона на значение, по мешенное в базовую переменную КА1ЗЕ. ЕХЕС ЯОЬ ОРОАТЕ Я ЯЕТ ЯТАТОЗ = ЗТАТОЯ + :КА1БЕ ИНЕКЕ С1ТХ = 'Ьопдоа' 1ЗО Часть 1. Основные поиятш Если в таблице поставщиков строк, удовлетворяющих условию ИНЕНЕ, найдено не будет, система присвоит переменной БОЬЯТаТЕ значение 02000. Оператор ОЕЬЕТЕ. Удалить сведения обо всех поставках для поставщиков из города, название которого помещено в базовую переменную С1ТХ.

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

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

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

Цикл будет повторяться до тех пор, пока не закончатся строки в результирующем наборе. При выходе из цикла курсор Х закрывается (оператор СЬОЯЕ Х). А теперь рассмотрим курсоры н операции с ними более подробно. Курсор определяется с помошью оператора ОЕСЬХКЕ СОКБОК, общий вид которого следуюший. ЕХЕС БОЬ ОЕСЬХКЕ <иия курсора> СОКБОК РОК <табличное вираженне> ( <упорядочение> ) Для краткости несколько необязательных спецификаций в этом определении не указаны. Здесь параметр <иня курсора> — это имя определяемого курсора. Полное определение табличного выражения, помешаемого в параметр <таблнчное внражение>, дано в приложении А.

Необязательный параметр определения сортировки результата выборки <упорядочение> имеет следующий формат. ОКОЕМ ВУ <список элементов> Здесь параметр <список элементов> содержит список перечисленных через запятую элементов, по которым должно быть выполнено упорядочение извлекаемых строк.

Список элементов не должен быть пустым, в каждом элементе списка должно содержаться имя столбца (заметьте, не уточненное), после которого может следовать необязательное служебное слово ХЯС (по возрастанию) или ОЕБС (по убыванию). При опускании служебного слова по умолчанию принимается порядок по возрастанию (вБС). Замечание. Дадим определение термину список элементов, перечисленных через запятую (сопппа1!м). Пусть <ху-> обозначает произвольную синтаксическую категорию (т.е.

то, что находится слева от некоторого правила вывода в нотации В)ч)Г). Тогда выражение <хух сатта1злг> (или <список ху >) обозначает последовательность из нуля или более элементов <хух>, в которой каждая пара элементов <хут> разделена запятой (и, может быть, одним или несколькими пробелами). Обратим ваше внимание на то, что сокрашение <список ...> будет широко использоваться в приводимых далее синтаксических правилах (причем во всех синтаксических правилах, а не только в правилах языка БО ). Как утверждалось ранее, оператор ОЕСЬХКЕ СОКБОК вЂ” декларативный, а не выполняемый. Он предназначен для объявления курсора с определенным именем и постоянно связанного с ним табличного выражения и типа упорядочения.

Табличное выражение может включать ссылки на базовые переменные. Программа може~ содержать любое количество операторов ОЕСЬвКЕ СОКЯОК, каждый из которых, конечно, предназначен для определения разных курсоров. Для работы с курсорами сушествует три выполняемых оператора: ОРЕМ, ГЕТСН и СЬОЯЕ. 1Зг Часть 1 Основные понятия ° Оператор ОРЕН имеет следующий формат.

ЕХЕС ЯОЬ ОРЕН <имя курсора>; Он предназначен для открытия или активизации указанного курсора (который в данный момент не должен быть открыт). В результате его выполнения вычисляется связанное с этим курсором табличное выражение (причем для всех базовых переменных, упоминаемых в этом выражении, используются текущие значения). В резуль~ате идентифицируется определенное множество строк, которое становится текущим активным набором для данного курсора. Курсор также устанавливает исходную позицию в этом активном наборе, а именно — позицию перед его первой строкой.

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

Если при выполнении оператора РЕТСН следующей строки нет, то никакие данные не выбираются и переменной Б()ЬЯТАТЕ присваивается значение 02000. ° Оператор СЬОБЕ имеет следующий формат. ЕХЕС БОЬ СЬОБЕ <нмя курсора>; Он служит для закрытия (деактивизации) указанного курсора (который должен быть в данный момент открыт). После его выполнения у курсора уже не будет активного набора. Однако в дальнейшем курсор вновь может быть открыт„при этом он опять получит активный набор — возможно, уже не такой, как раньше (в частности, если значения указанных в объявлении курсора базовых переменных к текущему моменту были изменены).

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

Его лучше представлять в виде упорядоченного списка или массива (строк). 1ЗЗ Глава 4. Введение в язык ВДЬ Замечание. Выражения ОРОАТЕ.. ЯНЕКЕ СОККЕМТ и ОВЕЕТЕ.. ЯНЕКЕ СОКВЕНТ будут недопустимы, если табличное выражение в объявлении курсора определено с участием необновляемого представления, созданного с помощью оператора СВЕХТЕ ЧХЕМ (подробности приводятся в главе 9, раздел 9.6). Динамический Я0Е Динамический язык ЯЯЬ состоит из набора функций поддержки внедрения Б(1Ь- операторов, предназначенных специально для создания обобщенных, оперативных и, возможно, интерактивных приложений. (Напомним, что, как отмечалось в главе 1, интерактивные приложения — это приложения, которые предоставляют пользователю доступ к базе данных с некоторого интерактивного терминала.) Рассмотрим, что должно делать типичное интерактивное приложение.

Схематически оно должно выполнять (многократно) следующие действия. 1. Принять с терминала команду пользователя. 2. Проанализировать поступившую команду. 3. Сгенерировать соответствующие Я()Ь-операторы для обращения к базе данных. 4. Возвратить сообщение и (или) полученные результаты на терминал. Если набор команд пользователя, который программа может принять с терминала, достаточно мал (как, например, в случае обработки предварительных заказов мест на авиалиниях), то набор всех возможных выполняемых Я)Ь-операторов также будет невелик и его можно будет непосредственно внедрить в программу. В этом случае действия на втором и третьем этапах будут состоять в логической проверке введенной команды с последующим переходом к той части программы, которая выполняет заранее предопределенные БОЬ-операторы.

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

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

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

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