Классика баз данных - статьи

       

Операции


Кроме очевидных операций в реляционном стиле (например, фильтрация и агрегация), в ASAP поддерживается набор примитивных операций, ориентированных на научные вычисления. Этот набор включает следующие операции:

  • Традиционные операции над массивами. В их число входят умножение, сложение, вычисление собственных значений, преобразования Фурье и т.д.
  • Поворот (Pivot). Эта операция изменяет измерения массива путем превращения нуля или большего числа измерений в обычное значение или нуля или большего числа значений в измерения. Конечно, при выполнении этой операции регулярный массив может стать нерегулярным и наоборот. Кроме того, если одно из новых измерений не является ключом (т.е. его значения не уникальны), то результат операции поворота не представляет собой массив, и такое преобразование должно запрещаться.
  • Изменение координатной сетки (Regrid). В массивах может иметься система координат. В ASAP поддерживается любое число именованных систем координат. С каждой системой координат ассоциируется набор функций, отображающих точку в данной системе координат к другим системам координат. Для преобразования массива из одной системы координат в другую систему требуется выполнить операцию Regrid, отображающую каждую точку в исходной системе координат в целевую систему координат. Можно отобразить в целевое пространство самый нижний левый угол и все шаги. Однако ячейка в исходной системе координат редко соответствует ячейке в целевой системе координат. Поэтому необходимо производить интерполяцию. Для этого требуется поддерживать функцию Intersect (source_cell, target_cell), возвращающую степень перекрытия ячеек. Затем функция интерполяции может принять решение о размещении значений по целевым ячейкам путем выполнения некоторых вычислений над пересекающимися с ними исходными ячейками.
  • Конкатенация. Два массива являются совместимыми, если у них имеется одно и то же число измерений с совпадающими типами. Используя операцию Concatenate, из наборов совместимых массивов можно образовывать группы путем добавления дополнительного измерения, содержащего имена массивов.

    Содержание  Назад  Вперед