Реляционная модель данных
4.6.2 Декартово произведение
Определение. Декартовым произведением отношений и арностей и , с непересекающимися множествами атрибутов, соответственно и , называется отношение арности , состоящее из кортежей, первые компонентов которых есть кортежи из , а последние компонентов выбираются из . Иначе говоря, кортежи образованы конкатенацией каждого кортежа из с каждым кортежем из . Поэтому, если в текущем состоянии и имеют и кортежей, то в их .
Замечание. В одном отношении недопустим повтор имен. Поэтому, в частности, не существует декартов квадрат. При соединении отношений с одноименными атрибутами некоторые из них могут быть переименованы исходя из семантики данных и соединения.
Рассмотрим пример декартова произведения:
4.6.3 Селекция (выбор)
Определение. Пусть — формула, образованная:
- операндами в виде констант и имен столбцов (номеров столбцов);
- операторами сравнения ;
- логическими операторами (дизъюнкция, конъюнкция, отрицание).
Тогда результат селекции selp(r) есть множество кортежей из , для которых формула истинна.
Рассмотрим пример селекции по условию :
4.6.4 Булевы операции
Два отношения и с одной и той же схемой могут рассматриваться как подмножества множества всех возможных кортежей в схеме . Поэтому к ним применимы булевы операции пересечения, объединения и разности .
Естественно, отношения с разными схемами несовместимы. Однако, операция переименования атрибутов, которую мы рассмотрим позже, в отдельных случаях может сделать разносортные отношения совместимыми.
4.6.5 Дополнение
В определении дополнения возникают трудности. Пусть есть множество всех возможных кортежей над атрибутами схемы с определенным для каждого атрибута доменом.
Если хотя бы один домен бесконечен, то полное отношение , включающее все элементы из , не будет отношением в понимании реляционной алгебры.
Не будет отношением и дополнение к конечному отношению :
Поэтому реляционную алгебру естественно рассматривать, не включая в неё дополнения.
4.6.6 Частное
Рассмотрим самую странную, на первый взгляд, операцию —частное.
Определение. Пусть даны отношение с арностью и схемой и отношение с арностью и схемой , такой что и . Тогда частным называется отношение арности , которое содержит столбцы отношения , отсутствующие в . Часть записи включается в , если в она сцеплена с каждой записью из .
Смысл этой операции будет понятен позднее при изучении многозначных функциональных зависимостей (MV-зависимостей).
Обозначение: или или
Рассмотрим пример частного:
4.7 Совместимость отношений и переименование атрибутов
Переименование атрибутов — самая необычная операция реляционной алгебры. Выясним, зачем она может понадобиться. Уже говорилось, что операции объединение, пересечение и разность, требуют, чтобы отношения-операнды были совместимы, то есть относились к одному сорту. Такие отношения отличаются только именами и состояниями. Сигнатуры у них одинаковы, то есть количество атрибутов одно и то же и атрибуты попарно совпадают по типам, а в простейшем случае, ещё и по именам.
Если же имена отношений и/или атрибутов не совпадают, необходимо установить соответствие между именами или изменить некоторые из имён. Естественно, приводить к одному имени можно только атрибуты, имеющие одинаковый смысл.
Если операнды содержат одинаковые атрибуты, то в операциях соединений и декартовом произведении могут появляться повторяющиеся атрибуты. Это делает невозможным выполнение операции. И здесь переименование может решить проблему. В отличие от приведения к одному имени, тут выполняется разделение имени, которое должно сопровождаться уточнением смыслов образованных имён.
Итак, некоторые несовместимые отношения могут стать совместимыми после переименования атрибутов. Для реализации такой возможности в реляционную алгебру вводится операция переименования атрибутов.
Рассмотрим несколько примеров переименования.
Пример
Необходимо объединить отношения "Employee" и "Работники" для расчета суммарной заработной платы. Схемы отношений:
Employee (empno, ename, salary, mgr) Работники (Тно, ФИО, зарплата, Тно_нач)
где Тно — табельный номер, Тно_нач — табельный номер начальника.
Выполняем переименования атрибутов: Тно — empno, ФИО — ename, зарплата —salary, Тно_нач — mgr. Типы и смысл соответствующих атрибутов считаются одинаковыми.
Один из вариантов команды переименования атрибутов выглядит так: [имя_отношения] RENAME список_старых_атр AS список_новых_атр.
В рассмотренном примере имена объединялись.
Пример
Переименование атрибутов необходимое для объединения отношения с собой.
Скажем, необходимо выбрать всех сотрудников и их непосредственных начальников. Ответ можно получить из декартова произведения только что введённого отношения Employee с собой после переименования. Его схема после переименования атрибутов empno, ename, salary, mgr для начальников в empno_mgr, ename_mgr, salary_mgr, mgr_mgr, соответственно, выглядит так:
(empno, ename, salary, mgr, empno_mgr, ename_mgr, salary_mgr, mgr_mgr).
В этом примере имена разделялись. Смысл атрибутов с суффиксом _mgr тот же, что раньше, но характеризует только сотрудников как начальников.