Первой унарной операцией, которую мы рассмотрим, является операция выборки
– операция выбора строк из таблицы, представляющей отношение, по
какому-либо принципу, т. е. выбор строк-кортежей, удовлетворяющих
определенному условию или условиям.
Оператор выборки обозначается σ<P>, условие выборки – P<S>, т. е., оператор σ берется всегда с определенным условием на кортежи P, а само условие P записывается зависящим от схемы отношения S. С учетом всего этого сама операция выборки над схемой отношения S применительно к отношению r будет выглядеть следующим образом:
σ<P>r(S) ≡ σ<P>r = {t(S) |t ∈ r & P<S>t} = {t(S) |t ∈ r & IfNull(P<S>t, False};
Результатом этой операции будет новое отношение с той же схемой отношения S, состоящее из тех кортежей t(S) исходного отношения-операнда, которые удовлетворяют условию выборки P<S>t.
Понятно, что для того, чтобы применить какое-то условие к кортежу,
необходимо подставить значения атрибутов кортежа вместо имен атрибутов.
Чтобы лучше понять принцип работы этой операции, приведем пример. Пусть дана следующая схема отношения:
S: Сессия (№ зачетной книжки, Фамилия, Предмет, Оценка).
Условие выборки возьмем такое:
P<S> = (Предмет = ‘Информатика’ and Оценка > 3).
Нам необходимо из исходного
отношения-операнда выделить те кортежи, в которых содержится информация о
студентах, сдавших предмет «Информатика» не ниже, чем на три балла.
Пусть также дан следующий кортеж из этого отношения:
t0(S) ∈ r(S): {(№ зачетной книжки: 100), (Фамилия: ‘Иванов’), (Предмет: ‘Базы данных’), (Оценка: 5)};
Применяем наше условие выборки к кортежу t0, получаем:
P<S>t0 = (‘Базы данных’ = ‘Информатика’ and 5 > 3);
На данном конкретном кортеже условие выборки не выполняется.
А вообще результатом этой конкретной выборки
σ<Предмет = 'Информатика' and Оценка > 3 > Сессия
будет таблица «Сессия», в которой оставлены строки, удовлетворяющие условию выборки.
|