Реляционная алгебра
Основная идея реляционной алгебры состоит в том, что коль скоро отношения являются множествами, то средства манипулирования отношениями могут базироваться на традиционных теоретико-множественных операциях, дополненных некоторыми специальными операциями, специфичными для баз данных.
Рассмотрим расширенный начальный вариант алгебры, который был предложен Коддом. В этом варианте набор основных алгебраических операций состоит из восьми операций, которые делятся на два класса - теоретико-множественные операции и специальные реляционные операции.
В состав теоретико-множественных операций входят операции:
· объединения отношений;
· пересечения отношений;
· взятия разности отношений;
· прямого произведения отношений.
Специальные реляционные операции включают:
· ограничение отношения;
· проекцию отношения;
· соединение отношений;
· деление отношений.
Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
|
|
Главное отличие теоретико-множественных операций (за исключением декартова произведения) от всех других, выполняемых СУБД, состоит в том, что каждая таблица должна иметь одинаковое число колонок и каждая пара колонок для любой позиции таблицы должна быть определена с одинаковым типом и масштабом.
Если не вдаваться в некоторые тонкости, то все операции предложенного выше набора обладают очевидной и простой интерпретацией.
· При выполнении операции объединения двух отношений производится отношение, включающее все кортежи, входящие хотя бы в одно из отношений.
Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение , и отношение , то в объединение он входит один раз.
Пример. Пусть даны два отношения и с информацией о сотрудниках:
Табельный номер | Фамилия | Зарплата |
1 | Иванов | |
2 | Петров | |
3 | Сидоров |