Средства манипулирования

Раздел модели, относящийся к манипулированию, состоит из двух частей:

- Реляционная алгебра, в которой определяется набор операторов, например разность (или MINUS), применимых к отношениям.

- Оператор реляционного присваивания, который позволяет присвоить значение реляционного выражения (например, r1 MINUS r2, где r1 и r2 – отношения) какому-то отношению.

Оператор реляционного присваивания по существу описывает способ выполнения обновлений в реляционной модели, и я еще вернусь к нему ниже в разделе «Отношения и переменные-от ношения». Примечание: в этой книге я придерживаюсь традиционного соглашения о том, что общим термином обновление (update) обозначается совокупность реляционных операторов INSERT, DELETE и UPDATE (а также присваивания). Когда речь идет о конкретном операторе UPDATE, я записываю его заглавными буквами.

Что касается реляционной алгебры, то она состоит из набора операторов, которые – говоря очень нестрого – позволяют порождать «новые» отношения из «старых». Каждый оператор принимает на входе одно или несколько отношений и на выходе возвращает новое отношение; например, оператор разности (MINUS) принимает на входе два отношения и «вычитает» одного из другого, порождая на выходе третье отношение. Очень важно, что результатом является отношение: это хорошо известное свойство замкнутости реляционной алгебры. Именно свойство замкнутости позволяет записывать вложенные реляционные выражения; так как результат любой операции – объект того же вида, что и входные операнды, то результат одной операции можно подать на вход другой, – например, разность r1 MINUS r2 может быть объединена с отношением r3, затем результат пересечен с отношением r4 и т. д.

Можно определить сколько угодно операторов, удовлетворяющих простому условию: «одно или несколько отношений на входе, единственное отношение на выходе». Ниже я кратко опишу те операторы, которые принято считать исходными (по существу, те, что были определены Коддом в ранних работах)1; в главах 6 и 7 я остановлюсь на них более подробно и определю некоторые дополнительные операторы. На рис. 1.2 показано графическое представление исходных операторов. Примечание: если вы незнакомы с этими операторами и не понимаете, что означают картинки, не расстраивайтесь; как я уже сказал, в после-

дующих главах они будут описаны детально, с множеством примеров. Ограничение

Возвращает от ношение, содержащее все кортежи заданного отношения, которые удовлетворяют заданному условию. Например, можно ограничить отношение EMP только кортежами, для которых атрибут DNO имеет значение

 
 

D2.

Проекция

Возвращает отношение, содержащее все (под)кортежи заданного отношения, которые остались после исключения из него некоторых атрибутов. Например, можно спроецировать отношение EMP на атрибуты ENO и SALARY (исключив тем самым атрибуты ENAME и DNO).

Произведение

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

Пересечение

Возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум заданным отношениям. (На самом деле, пересечение также является частным случаем соединения, как бу- дет показано в главе 6.)

Объединение

Возвращает отношение, содержащее все кортежи, которые принадлежат либо одному из двух заданных отношений, либо им обоим.

Разность

Возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух заданных отношений, но не принадлежат второму.

Соединение

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

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

Сквозной пример

Я завершу этот краткий обзор описанием примера, который будет основой при обсуждении большинства, если не всех, тем в этой книге: всем известной – если не сказать навязшей в зубах – базы данных о поставщиках и деталях. (Прошу прощения за то, что еще раз вывел этого престарелого боевого коня из стойла, но я полагаю, что использование одного и того же примера в разных публикациях способствует, а не мешает обучению.) На рис. 1.3 приведены тестовые значения.

 


Уточним понятия. Поставщики

Отношение S описывает поставщиков (точнее, поставщиков по кон- тракту). У каждого поставщика имеется уникально определяющий его номер (SNO) (как видите, я сделал {SNO} первичным ключом), на- звание (SNAME), необязательно уникальный (пусть даже на рис. 1.3 все значения SNAME различаются) статус (STATUS), представляющий некое свойство, позволяющее предпочесть одного поставщика другому, и местоположение (CITY).

Детали

Отношение P представляет детали (точнее, виды деталей). У каждой детали есть уникальный номер (PNO) ({PNO} – первичный ключ), одно наименование (PNAME), один цвет (COLOR), один вес (WEIGHT) и одно местоположение, то есть склад, где хранятся дета- ли этого вида (CITY).

Поставки

Отношение SP описывает поставки (то есть показывает, какие детали поставляются какими поставщиками). У каждой поставки имеется один номер поставщика (SNO), один номер детали (PNO) и одно количество (QTY). В этом примере я буду предполагать, что в любой момент времени существует не более одной поставки с данным поставщиком и данной деталью ({SNO,PNO} – первичный ключ, кроме того, {SNO} и {PNO} являются внешними ключами, сопоставляемы- ми первичным ключам S и P, соответственно). Обратите внимание, что в базе данных на рис. 1.3 есть один поставщик, S5, для которого нет ни одной поставки.








Дата добавления: 2017-01-17; просмотров: 710;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.