Реляционные операторы

Скачать реферат: Реляционные операторы

Содержание реферата

Реляционные языки
Реляционная алгебра
Селекция
Проекция
ОБъединение
Несколько синтаксических упрощений
Тесты
Список использованной литературы

Реляционные языки

Для управления отношениями в реляционных СУБД используются самые разнообразные языки. Некоторые из них являются процедурными, т.е. с их помощью пользователь точно указывает системе, как следует манипулировать данными. Другие языки являются непроцедурными, т.е. пользователь указывает, какие данные ему нужны, а не как их следует извлекать.

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

Реляционное исчисление используется для оценки избирательной мощности реляционных языков. Язык называется реляционно полным, если он позволяет получить любое отношение, которое можно вывести с помощью реляционного исчисления. Большинство реляционных языков запросов является реляционно полными. Однако по сравнению с реляционной алгеброй и реляционным исчислением они обладают и другими, более широкими функциональными возможностями, поскольку в них предусмотрены дополнительные операции, способные выполнять вычислительные, обобщающие и упорядочивающие функции.

Реляционная алгебра и реляционное исчисление представляют собой формальные, а не дружественные пользователю языки. В реляционных базах данных они использовались в качестве основы для разработки других языков управления данными, более высокого уровня. Для нас они представляют интерес потому, что иллюстрируют основные операции языков манипулирования данными, а также служат определённым критерием сравнения других реляционных языков.

Реляционная алгебра

Реляционная алгебра – это теоретический язык операций, которые на основе одного или нескольких отношений позволяют создавать другое отношение без изменения самих исходных отношений. Таким образом, оба операнда и результат являются отношениями, а потому результаты одной операции могут стать исходными данными для другой операции. Это позволяет создавать вложенные выражения реляционной алгебры точно так же, как создаются вложенные арифметические выражения. Это свойство называется замкнутостью, т.е. отношения покрываются реляционной алгеброй так же, как числа – арифметическими операциями.

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

Существует несколько вариантов выбора операций, которые включаются в реляционную алгебру. Исходно Кодд предложил восемь операторов, но впоследствии к ним были добавлены и несколько другие. Пять основных операций релятивной алгебры, а именно селекция (selection), проекция (projection), декартово произведение (Cartesian product), объединение (union) и разность (set difference), выполняют большинство операций извлечения данных, которые могут представлять для нас интерес. На основании пяти основных операций можно также вывести дополнительные операции, такие как операции соединения (join), пересечения (intersection) и деления (division).

Операции селекции и проекции являются унарными, поскольку они работают с одним отношением. Другие операции работают с парами отношений, и поэтому их называют бинарными.

Селекция

Селекция – это сокращённое название -селекции, где  обозначает любой скалярный оператор сравнения (=, , >,  и т.д.). -селекцией из отношения А по атрибутам X и Y (в этом порядке)

A WHERE X  Y

называется отношение, имеющее тот же заголовок, что и отношение А, и тело, содержащее множество всех кортежей t отношения А, для которых проверка условия “X  Y” даёт значение истина. Атрибуты X и Y должны быть определены на одном и том же домене, а оператор должен иметь смысл для этого домена. Обратим внимание, что не все операторы сравнения () имеют смысл для всех доменов. Например, рассмотрим домен SEX (пол) со значениями “Male” (мужской) и “Female” (женский). Этот очевидный пример показывает, что для таких доменов имеют смысл только операторы сравнения равно и не равно, а оператор меньше не имеет смысла.

Скалярное литеральное значение может быть указано как вместо атрибута X, так и вместо атрибута Y (или, естественно, вместо обоих); на практике это обычный случай. Например:

A WHERE X  literal

В результате выполнения этого оператора селекции получим “горизонтальное” подмножество данного отношения, т.е. такое подмножество кортежей, для которого удовлетворяется указанное условие.

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

A WHERE c1 AND c2  ( A WHERE c1 )INTERSECT ( A WHERE C2 )

A WHERE c1 OR c2  ( A WHERE c1 ) UNION ( A WHERE c2 )

A WHERE NOT c  A MINUS ( A WHERE c )

Поэтому впредь будем подразумевать, что условие сравнения в выражении WHERE для операции селекции содержит произвольное число логических сочетаний простых сравнений (с использованием круглых скобок, если необходимо указать желаемый порядок вычисления). Если условие может быть истолковано как истина или ложь для данного кортежа, то рассматривая такой кортеж как отдельный, это условие называют условием селекции.

Итак, мы определили синтаксическое обозначение условия.

На рисунке 1 приведено несколько примеров селекции.

рис.1

Проекция

Проекцией отношения А по атрибутам X, Y,…, Z, где каждый из атрибутов принадлежит отношению A ( А [X, Y,…, Z ]), называется отношение с заголовком {X, Y,…, Z} и телом, содержащим множество всех кортежей {X:x, Y:y,…, Z:z}, таких, для которых в отношении A значение атрибута X равно x, атрибута Y равно y,…, Z равно z. Таким образом, с помощью оператора проекции получено “вертикальное” подмножество данного отношения, т.е. подмножество, получаемое исключением всех атрибутов, не указанных в списке атрибутов, и последующим исключением дублирующих кортежей (подкортежей) из того, что осталось.

Никакой атрибут не может быть указан в списке атрибутов более одного раза.

Обратим внимание на следующее.

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

Проекция вида R[], т.е. такая, в которой список атрибутов не пропущен, но пустой, тоже допустима. Она представляет собой “нулевую” проекцию.

Отметим, что на практике часто бывает удобно указывать не те атрибуты, по которым берётся проекция, а те, которые проекцией “отбрасываются”. Например, удобнее сказать: “проекция, исключающая атрибут WEIGHT из отношения Р” вместо “проекция отношения Р по атрибутам P#, PNAME, COLOR и CITY”. Однако здесь не предлагается никакого конкретного синтаксиса для этой альтернативной, но, конечно, эквивалентной версии операции проекции.

Объединение

Объединением двух совместимых по типу отношений А и В (А UNION B) называется отношение с тем же заголовком, как и в отношениях А и В, и с телом, состоящим из множества всех кортежей t, принадлежащих А или В или обоим отношениям.

Пример. Пусть отношения А и В будут такими, как показано на рисунке 2 (отношение А представляет поставщиков из Лондона, а отношение В – поставщиков, которые, например, поставляют деталь Р1). Тогда выражение A UNION B (см. рис. 3) представляет поставщиков, которые или размещаются в Лондоне, или поставляют деталь Р1 (либо и то и другое). Обратим внимание, что результат имеет три кортежа, а не четыре – повторяющиеся кортежи удаляются по определению.

рис.2

рис.3

Замечание. Вопрос удаления дубликатов не возникает в других традиционных операциях над множествами (пересечение, вычитание и произведение). Фактически существует ещё только одна операция (помимо объединения), где этот вопрос возникает,  – проекция.

Несколько синтаксических упрощений

Легко проверить, что операция объединения ассоциативна, т.е. если А, В и С – произвольные выражения (дающие совместимые по типу отношения), то выражения

(A UNION B) UNION C

и

A UNION (B UNION C)

эквиваленты. Следовательно, для удобства можно разрешить запись последовательных операторов объединения без использования круглых скобок; таким образом, предыдущее выражение можно однозначно упростить:

A UNION B UNION C

Аналогичные замечания можно сделать и для операций пересечения и декартова произведения (но не вычитания). Заметим ещё, что операции объединения, пересечения и декартова произведения (но не вычитания) ещё и коммутативны, т.е. выражения

A UNION B

и

B UNION A

эквивалентны; так же и для операций пересечения и произведения.

ТЕСТЫ

Вопрос №1. В каком году Кодд предложил реляционную алгебру?

Вариант ответа

Оценка, %

Комментарии к ответу

Другой вариант

0

Не верно

В начале 70-х

50

Не полный ответ

В 1971 г.

100

Верно

Вопрос №2. Реляционно полными языками являются…

Вариант ответа

Оценка, %

Комментарии к ответу

Большинство реляционных языков запросов

40

Не полный ответ

Языки, управляющие СУБД

0

Не верно

Языки,  позволяющие получить любое отношение, которое можно вывести через реляционное исчисление

100

Верно

Вопрос №3. Реляционная алгебра – это…

Вариант ответа

Оценка, %

Комментарии к ответу

Реляционный язык

0

Не верно

Теоретический язык операций, которые на основе одного или нескольких отношений позволяют создавать другое отношение без изменения самих исходных отношений

100

Верно

Язык последовательного использования отношений

50

Не полный ответ

Вопрос №4. Назовите основные операции релятивной алгебры.

Вариант ответа

Оценка, %

Комментарии к ответу

Выборка, объединение

40

Не полный ответ

Селекция, проекция, декартово произведение, объединение, разность

100

Верно

Соединение, пересечение, деление

0

Не верно

Вопрос №5. Операции селекции и проекции являются…

Вариант ответа

Оценка, %

Комментарии к ответу

Унарными

100

Верно

Бинарными

0

Не верно

Вопрос №6. Селекция – это…

Вариант ответа

Оценка, %

Комментарии к ответу

Сокращённое название -селекции, где  обозначает любой скалярный оператор сравнения (=, , >,  и т.д.)

50

Не полный ответ

Отношение, имеющее тот же заголовок, что и отношение А, и тело, содержащее множество всех кортежей t отношения А, для которых проверка условия “X  Y” даёт значение истина

100

Верно

“Горизонтальное” подмножество данного отношения

0

Не верно

Вопрос №7. Проекция – это…

Вариант ответа

Оценка, %

Комментарии к ответу

Подмножество, получаемое исключением всех атрибутов

0

Не верно

Отношение с заголовком {X, Y,…, Z} и телом, содержащим множество всех кортежей {X:x, Y:y,…, Z:z}, таких, для которых в отношении A значение атрибута X равно x, атрибута Y равно y,…, Z равно z

100

Верно

Вопрос №8. Объединение – это…

Вариант ответа

Оценка, %

Комментарии к ответу

Отношение с тем же заголовком, как и в отношениях А и В, и с телом, состоящим из множества всех кортежей t, принадлежащих А или В или обоим отношениям

100

Верно

“Вертикальное” подмножество данного отношения

0

Не верно

Отношение, имеющее тот же заголовок, что и отношение А, и тело, содержащее множество всех кортежей t отношения А, для которых проверка условия “X  Y” даёт значение истина

0

Не верно

Список использованной литературы
  1. Дейт К. Введение в системы баз данных. Пер с англ. – 6-е изд. – К., М., Спб.: «Вильямс», 2000. 848 с.
  2. Конноли Т., Бегг К., Страган А. Базы данных: проектирование, реализация и сопровождение: Теория и практика. 2-е изд.: Учеб. пособие. – М.: «Вильямс», 2000. 1120 с.