Реляционная операция "Сокращение"

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

• установление ограничения через связь отношений;

• наложение ограничения на одно отношение;

• наложение ограничения на связанные отношения, что выражается в последовательном выполнении операций "Соединение" и "Сокращение" соответственно.

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

Действие по установлению связей между отношениями дает возможность выстроить структуру базы данных, обеспечивающей эффективное хранение данных. Связь отношений выполняется на основании наложения логического условия (операции "=", "<>", ">", "<" и т.д.) на атрибуты обоих отношений, по которым эта связь устанавливается. Например, есть два отношения "Учащийся" и "Экзамен" (табл. 1.7). В каждом из этих отношений есть атрибут "ФИО учащегося", который позволяет организовать связь между отношениями.

Таблица 1.7


Примеры исходных отношений "Учащийся" и "Экзамен"

Экзамен

ФИО учащегося

Оценка

Карапетян Арсен Гуренович

Отлично

Малышкина Арина Ивановна

Хорошо



Выполнение операции "Сокращение" в данном примере целесообразно выполнять по условию "=", что будет выражаться в таком логическом выражении — "[Учащийся.ФИО учащегося] = [Экзамен.ФИО учащегося]". В результате наложения данного ограничения должны быть выбраны только такие кортежи исходных отношений, которые имеют совпадающие ФИО учащегося (табл. 1.8). При этом результирующее отношение будет содержать в заголовке атрибуты из обоих отношений.

Таблица 1.8

Пример результирующего отношения "Экзаменационная ведомость"

Ко

ФИО учащегося

Оценка

1

Карапетян Арсен Гуренович

Отлично

2

Малышкина Арина Ивановна

Хорошо


Важно то, что в результате наложения логического выражения в результирующее отношение попадают только те кортежи, которые удовлетворяют этому выражению. На связанные отношения, как и на единственное отношение, может быть наложено дополнительное ограничение, которое также выполняет операцию "Сокращение". Для этого используются такие же логические операции, что и при связывании отношений. Например, если па результирующее отношение из рассматриваемого примера наложить ограничение, что "Оценка" = Отлично, то результат будет таким, как показано в табл. 1.9.

Таблица 1.9

Пример результирующего отношения "Экзаменационная ведомость"

с наложенным дополнительным условием

ФИО учащегося

Оценка

1

Карапетян Арсен Гуренович

Отлично



Кортеж, где оценка имеет значение "Хорошо", при указанном условии не выбирается и, соответственно, не попадает в результирующее отношение. Точно такую же операция можно выполнить над единственным отношением, ограничивая наборы возможных кортежей, соответствующих определенному логическому условию. Причем эти условия могут объединяться с помощью логических связок "И" и "ИЛИ", а также на них может накладываться логическая операция "НЕ", отрицающая соответствующее логическое действие.