Базы данных. Вводный курс


Операция удаления атрибута


Пусть s обозначает результат операции r <REMOVE> A. Для обеспечения возможности выполнения операции требуется, чтобы существовал некоторый тип (или домен) T такой, что <A, T>

Hr (т. е. в состав заголовка отношения r должен входить атрибут A). Тогда:


Рис. 5.1.  Результат операции <NOT> НОМЕРА_ПРОЕКТОВ

  • Hs = Hr minus {<A, T>}, т. е. заголовок результата получается из заголовка операнда изъятием атрибута A;
  • Bs = {ts : exists tr exists v (tr
    Br and v
    T and <A,T,v>
    tr and ts = tr minus {<A,T,v>})}, т. е. в тело результата входят все кортежи операнда, из которых удалено значение атрибута A.

Операция <REMOVE> производит отношение s, формируемое путем удаления указанного атрибута A из заданного отношения r. Операция эквивалентна взятию проекции r на все атрибуты, кроме A. Заголовок s получается теоретико-множественным вычитанием из заголовка r множества из одного элемента {<A, T>}. Тело s состоит из таких кортежей, которые соответствуют заголовку s, причем каждый из них является подмножеством некоторого кортежа тела отношения r.

Примером операции REMOVE (конечно же, очень похожим на пример использования операции PROJECT из предыдущей лекции) является СЛУЖАЩИЕ REMOVE ПРО_НОМ (получить данные о служащих, участвующих в проектах). Результат этой операции над отношением СЛУЖАЩИЕ, тело которого приведено в верхней части , показан на внизу.


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




Начало  Назад  Вперед



Книжный магазин