
Специальные реляционные операции
Операция селекции
Первой специальной операцией реляционной алгебры является операция, которая в литературе имеет много различных названий: селекция, выборка, горизонтальный выбор, операция фильтрации или операция ограничения отношений. Для определения этой операции нам необходимо ввести дополнительные обозначения.
Селекция (R WHERE f) отношения R по формуле f представляет собой новое отношение с таким же заголовком и телом, состоящим из таких кортежей отношения R, которые удовлетворяют истинности логического выражения, заданного формулой f.
Для записи формулы используются операнды — имена атрибутов (или номера столбцов), константы, логические операции (AND — И, OR — ИЛИ, NOT — НЕ), операции сравнения и скобки.
Пусть f — булевское
выражение, составленное из термов
сравнения с помощью связок И (
),
ИЛИ (
),
НЕ (
)
и, возможно, скобок. В качестве термов
сравнения допускаются:
а) терм А ос а,
где А — имя некоторого атрибута, принимающего значения из домена D; а — константа, взятая из того же домена D, a D; ос — одна из допустимых для данного домена D операций сравнения;
б) терм А ос В,
где А, В — имена некоторых θ-сравнимых атрибутов, то есть атрибутов, принимающих значения из одного и то же домена D.
Тогда результатом операции селекции, заданной на отношении R в виде булевского выражения, определенного на атрибутах отношения R, называется отношение (R WHERE f), включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации:
(R WHERE f) = {r | r R f (r) = "Истина"}
Операция селекции является одной из основных при работе с реляционной моделью данных. Условие f может быть сколь угодно сложным.
Пример 7. Выбрать из отношения R, в котором находятся все экзаменационные оценки студентов по дисциплинам, сдачи экзамена с оценкой 4 и 5.
R
Фамилия
|
Дисциплина
|
Оценка
|
Иванова
|
БД
|
4
|
Иванова
|
Ин.яз |
3 |
Петров |
Философия |
5 |
Петров |
БД
|
3 |
R WHERE Оценка>3
Фамилия
|
Дисциплина
|
Оценка
|
Иванова
|
БД
|
4
|
Петров |
Философия |
5 |
Операция проекции
Операция проекции позволяет получить только требуемые атрибуты (характеристики) объектов. Операция проекции также часто называется операцией вертикальной выборки.
Проекция отношения R на атрибуты X, Y,..., Z (R[X, Y,..., Z]), где множество {X, Y,..., Z} является подмножеством полного списка атрибутов заголовка отношения R, представляет собой отношение с заголовком X, Y,..., Z и телом, содержащим проекции кортежей r отношения R, за исключением повторяющихся проекций кортежей.
Повторение одинаковых атрибутов в списке X, Y,..., Z запрещается.
R[X, Y,..., Z] = { r[X, Y,..., Z] },
где r[X, Y,..., Z] – проекция кортежа r отношения R на атрибуты X, Y,..., Z (R={ r }).
Операция проекции допускает следующие дополнительные варианты записи:
• отсутствие списка атрибутов подразумевает указание всех атрибутов (операция тождественной проекции);
• выражение вида R[ ] означает пустую проекцию, результатом которой является пустое множество;
• операция проекции может применяться к произвольному отношению, в том числе и к результату селекции.
Пример 8. Определить, кто из студентов сдавал экзамены. То есть выбрать из отношения R (пример 7), в котором находятся все экзаменационные оценки студентов по дисциплинам, фамилии студентов.
R
Фамилия
|
Дисциплина
|
Оценка
|
Иванова
|
БД
|
4
|
Иванова
|
Ин.яз |
3 |
Петров |
Философия |
5 |
Петров |
БД
|
3 |