Объединение


Традиционные операции над множествами (теоретико-множественные операторы)

Отношения, совместимые по типу

Некоторые реляционные операторы (например, объединение) требуют, чтобы отношения имели одинаковые заголовки. Как было показано в предыдущей лекции, отношение состоит из заголовка и тела. Операция объединения двух отношений есть объединение двух множеств кортежей, взятых из тел соответствующих отношений. Однако будет ли результат считаться отношением? Во-первых, если исходные отношения имеют разное количество атрибутов, то, очевидно, что множество, являющееся объединением таких разнотипных кортежей, нельзя предста­вить в виде отношения. Во-вторых, пусть даже отношения имеют одинаковое количество атрибутов, но атрибуты имеют личные наименования. Тогда возникает вопрос, как тогда определить заголовок отношения, полученного в результате объединения множеств кортежей? В-третьих, пусть отноше­ния имеют одинаковое количество атрибутов, атрибуты име­ют одинаковые наименования, но определены на различных доменах. Тогда опять же объединение кортежей не будет об­разовывать отношение.

Определение. Отношения называются совместимыми по типу, если они имеют идентичные заголовки, а именно:

1) отношения имеют одно и то же множество имен атрибу­тов, т. е. для любого атрибута в одном отношении най­дется атрибут с таким же наименованием в другом отно­шении;

2) атрибуты с одинаковыми именами определены на одних и тех же доменах.

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

 

Оператор переименования атрибутов имеет следующий син­таксис:

R rename A1, A2, …, An as new A1, A2, …, An;

где R — отношение, A1, A2, …, An — исходные имена атрибу­тов, new A1, A2, …, An. — новые имена атрибутов. В резуль­тате применения оператора переименования атрибутов получаем новое отношение с измененными именами атрибутов.

Пример. Оператор rename возвращает неименованное отношение, в котором атрибут Student переименован в Head (Староста):

R rename Student as Head;

 

 

К традиционным операциям реляционной алгебры относят классические операции над множествами, т. е. объединение, пересечение, вычитание и декартово произведение. Рассмот­рим результаты действий данных операций над множествами отношений в реляционной модели данных.

Определение. Объединением двух совместимых по типу отно­шений R1 и R2 называется отношение с тем же заголовком, что и у отношений R1 и R2, и телом, состоящим из кортежей, принадлежащих или R1, или R2, или обоим отношениям. Та­ким образом, при выполнении операции объединения двух отношений производится отношение, включающее все кор­тежи, входящие хотя бы в одно из отношений-операндов. Синтаксис операции объединения:

R1 union R2