Операция переименования
СЛУЖАЩИЕ
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 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>.
По причине очевидности мы не будем приводить пример использования этой операции.