|
Допустим, необходимо изменить несколько имен атрибутов. Для такого случая Дейт вводит оператор множественного переименования, синтаксис которого приведен ниже:
<отн.> RENAME <исх_имя_атр.1> АS <нов_имя_атр.1>,
<исх_имя_атр.2> АS <нов_имя_атр.2>,...,
<исх_имя_атр.N> АS <нов_имя_атр.N>.
Оператор расширения позволяет добавить в отношение дополнительный атрибут, значения которого вычисляются посредством некоторых скалярных вычислений. Оператор расширения имеет вид:
EXTEND <отношение> АDD <выражение>АS<нов_атрибут>,
где к исходному отношению добавляется (ключевое слово АDD) новый атрибут с именем <нов_атрибут>, значения которого подсчитываются по правилам, заданным <выражением>. Исходное отношение может быть задано именем отношения или с помощью выражения реляционной алгебры, заключенного в круглые скобки. При этом имя нового атрибута не должно входить в заголовок исходного отношения и не может использоваться в <выражении>.
Например, EXTEND S ADD 'Поставщик' AS SNAME.
Приведенное выражение дополняет отношение S столбцом SNAME, значениями которого является символьная константа 'Поставщик'.
Помимо обычных арифметических операций и операций сравнения в выражении можно использовать итоговые функции, такие как, COUNT (количество), SUM (сумма), AVG (среднее), МАХ, МIN.
Оператор множественного расширения имеет следующую синтаксическую конструкцию:
EXTEND <отношение> АDD <выр_1> АS <атр_1>,
<выр_2> АS <атр_2>,...,
<выр_N>АS <атр_N>.
Операция подведения итогов SUMMARIZE выполняет "вертикальные" или групповые вычисления и имеет следующий формат:
SUMMARIZE <отношение> ВY (<список атрибутов>) АDD <выражение> АS <новый атри6ут>,
где исходное отношение задается именем отношения либо заключенным в круглые скобки выражением реляционной алгебры, <список атрибутов> представляет собой разделенные запятыми имена атрибутов исходного отношения А1, А2,..., АN, <выражение> – это скалярное выражение, аналогичное выражению операции EXTEND, а <новый атрибут> – имя формируемого атрибута. В списке атрибутов и в выражении не должно использоваться имя нового атрибута.
Результатом операции SUMMARIZE является отношение R с заголовком, состоящим из атрибутов списка, расширенного новым атрибутом. Для получения тела отношения R сначала выполняется проецирование (назовем проекцию R1) исходного отношения на атрибуты А1, А2,..., АN, после чего каждый кортеж проекции расширяется новым (N+1)-матрибутом. Поскольку проецирование, как правило, приводит к сокращению количества кортежей по отношению к исходному отношению (удаляются одинаковые кортежи), то можно считать, что происходит своеобразное группирование кортежей исходного отношения: одному кортежу отношения R1 соответствует один или более (если было дублирование при проецировании) кортежей исходного отношения. Значение (N+1)-го атрибута каждого кортежа отношения R формируется путем вычисления выражения над соответствующей этому кортежу группой кортежей исходного отношения.
Пример 3.7. Подведение итогов
Пусть требуется вычислить количество поставок по каждому из поставщиков:
Дата добавления: 2015-07-19; просмотров: 53 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Омск 2003 | | | SUMMARIZE SP BY (M#) ADD SUM (Количество) AS Общее количество |