Реляционная операция "Сокращение"
Операция "Сокращение" является наиболее часто используемой в базах данных, давая возможность выполнять ограничение набора кортежей в отношениях по определенным условиям. Причем условия могут накладываться как на одно отношение, так и на совокупность отношений. Таким образом, выделяется три варианта использования данной операции:
• установление ограничения через связь отношений;
• наложение ограничения на одно отношение;
• наложение ограничения на связанные отношения, что выражается в последовательном выполнении операций "Соединение" и "Сокращение" соответственно.
Под связанными отношениями понимается набор отношений, в которых существуют один или несколько взаимодействующих атрибутов, где возможно установить логическое ограничение, вызывающее сокращение набора кортежей в обоих отношениях.
Действие по установлению связей между отношениями дает возможность выстроить структуру базы данных, обеспечивающей эффективное хранение данных. Связь отношений выполняется на основании наложения логического условия (операции "=", "<>", ">", "<" и т.д.) на атрибуты обоих отношений, по которым эта связь устанавливается. Например, есть два отношения "Учащийся" и "Экзамен" (табл. 1.7). В каждом из этих отношений есть атрибут "ФИО учащегося", который позволяет организовать связь между отношениями.
Таблица 1.7
Примеры исходных отношений "Учащийся" и "Экзамен"
Экзамен |
|
ФИО учащегося |
Оценка |
Карапетян Арсен Гуренович |
Отлично |
Малышкина Арина Ивановна |
Хорошо |
Выполнение операции "Сокращение" в данном примере целесообразно выполнять по условию "=", что будет выражаться в таком логическом выражении — "[Учащийся.ФИО учащегося] = [Экзамен.ФИО учащегося]". В результате наложения данного ограничения должны быть выбраны только такие кортежи исходных отношений, которые имеют совпадающие ФИО учащегося (табл. 1.8). При этом результирующее отношение будет содержать в заголовке атрибуты из обоих отношений.
Таблица 1.8
Пример результирующего отношения "Экзаменационная ведомость"
Ко |
ФИО учащегося |
Оценка |
1 |
Карапетян Арсен Гуренович |
Отлично |
2 |
Малышкина Арина Ивановна |
Хорошо |
Важно то, что в результате наложения логического выражения в результирующее отношение попадают только те кортежи, которые удовлетворяют этому выражению. На связанные отношения, как и на единственное отношение, может быть наложено дополнительное ограничение, которое также выполняет операцию "Сокращение". Для этого используются такие же логические операции, что и при связывании отношений. Например, если па результирующее отношение из рассматриваемого примера наложить ограничение, что "Оценка" = Отлично, то результат будет таким, как показано в табл. 1.9.
Таблица 1.9
Пример результирующего отношения "Экзаменационная ведомость"
с наложенным дополнительным условием
|
Кортеж, где оценка имеет значение "Хорошо", при указанном условии не выбирается и, соответственно, не попадает в результирующее отношение. Точно такую же операция можно выполнить над единственным отношением, ограничивая наборы возможных кортежей, соответствующих определенному логическому условию. Причем эти условия могут объединяться с помощью логических связок "И" и "ИЛИ", а также на них может накладываться логическая операция "НЕ", отрицающая соответствующее логическое действие.