Таким образом, операция расширения обеспечивает возможность
горизонтального или построчного вычисления. Аналогичную функцию для
вертикальных вычислений выполняет операция подведения итогов SUMMARIZE:
SUMMARIZE A BY (A1,A2,…,AN) ADD EXP AS Z;
Здесь A1,A2,…,An – отдельные атрибуты отношения А. Результатом этого
выражения будет отношение с заголовком {A1,A2,…,An,Z} и с телом,
содержащим все такие кортежи t, которые являются кортежами проекции
отношения А по атрибутам A1,A2,…,An, расширенного значением для нового
атрибута Z. Такое новое значение Z подсчитывается вычислением итогового
значения exp по всем кортежам отношения А, которое имеет те же самые
значения для атрибутов A1,A2,…,An, что и кортеж t. Кардинальное число
результирующего отношения равно кардинальному числу проекции отношения
А по атрибутам A1,A2,…,An,, а степень равна степени такой проекции плюс
единица. Например, количество поставок, сделанных каждым поставщиком
может быть получено при помощи выражения
SUMMARIZE Поставки BY (П№) ADD COUNT AS Кол_П;
Результат операции (рис.4.3.2) не содержит сведений о
поставках, сделанных поставщиком П5 (сравните с
примером, показанным на рис.4.3.1, где поставщик сделал
ноль поставок). Причина состоит в том, что поставщика П5
нет в отношении ПОСТАВКИ.
Реляционная модель может включать также операции реляционного
присвоения, которые дают возможность «запоминать» значение некоторых
алгебраических выражений в базе данных и таким образом изменять состояние
базы данных или, иначе говоря, обновлять базу данных:
Поставки Поставки MINUS (Поставки WHERE Кол = 0);
В реляционных системах существуют также явные операторы обновления
INSERT, DELETE и UPDATE:
INSERT (Поставщики WHERE Гор_П = Минск ) INTO Temp;
(здесь выбранные данные вставлены в отношение Temp, которое должно быть
совместимым по типу с отношением Поставщики).
Рис.4.3.2.