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

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

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

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;

 








Дата добавления: 2015-08-08; просмотров: 2122;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.