Операция переименования

СЛУЖАЩИЕ

 

СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП ПРО_НОМ
Иванов 22400.00
Петров 29600.00
Сидоров 18000.00
Федоров 20000.00
Иванова 22000.00
Иванов 22400.00
Петров 29600.00
Сидоренко 18000.00
Федоренко 20000.00
Иваненко 22000.00

 

 

СЛУ_НОМЕР СЛУ_ИМЯ СЛУ_ЗАРП
Иванов 22400.00
Петров 29600.00
Сидоров 18000.00
Федоров 20000.00
Иванова 22000.00
Сидоренко 18000.00
Федоренко 20000.00
Иваненко 22000.00

 

Рис. 4.2. Результат операции СЛУЖАЩИЕ REMOVE ПРО_НОМ

 

 

Пусть s обозначает результат операции r <RENAME> (A, B). Для обеспечения возможности выполнения операции требуется, чтобы существовал некоторый тип T такой, что <A, T> Î Hr, и чтобы не существовал какой-либо тип T такой, что <B, T> Î Hr. (Другими словами. в схеме отношения r должен присутствовать атрибут A, и не должен присутствовать атрибут B.) Тогда:

 

· Hs = ( Hr minus { <A, T> } ) union {<B, T> }, т.е. в схеме результата B заменяет A;

· Bs = { ts : exists tr exists v ( tr Î Br and v Î T and <A, T, v> Î tr and ts = ( tr minus {<A, T, v> } ) union { <B, T, v> } ) }, т.е. в кортежах тела результата имя значений атрибута A меняется на B.

 

Операция <RENAME> производит отношение s, которое отличается от заданного отношения r только именем одного его атрибута, которое изменяется с A на B. Заголовок s такой же, как заголовок r за исключением того, что пара <B, T> заменяет пару <A, T>. Тело s включает все кортежи тела r, но в каждом из этих кортежей триплет <B, T, v> заменяет триплет <A, T, v>.

 

По причине очевидности мы не будем приводить пример использования этой операции.