Учетные данные в базе данныхТрансформация данных из одной номенклатуры в другую, в данном случае из базовой в пользовательскую, осуществляется программным путем на основе справочников - переходников. Как указывалось выше, построение системы не ограничивает числа номенклатур агрегируемых элементов (номенклатур пользователей). Однако при этом не следует забывать, что легко реализуемая непосредственная трансформация данных из одной номенклатуры в другую возможна только при наличии справочников - переходников, разработка которых сопряжена с большими затратами труда. Поэтому в процедуры проверки возможности удовлетворения запроса желательно включить проверку наличия справочников - переходников для трансформации базовых номенклатур в пользовательские. Это выявляет реальные возможности удовлетворения запроса и предотвращает безрезультатные либо нерациональные затраты. Учетные данные в БД представляются в двух видах: значение показателя за определенный промежуток времени выражение и значение показателя на определенную дату выражение. Относительно второго вида представления данных, по нашему мнению, нет надобности предусматривать перерасчет значений показателей на другую дату. Алгоритмы такого перерасчета, с одной стороны, довольно сложны и требуют больших затрат машинного времени, с другой стороны, такими перерасчетами трудно обеспечить необходимую для практики точность. Например, имея данные по остаткам определенных ресурсов на ряд последовательных дат, мы можем, прибегая к сложным алгоритмам, учитывающим закономерности, характерные для имеющегося временного ряда, рассчитать значение остатка на любую промежуточную дату. Однако смысл такого расчета больше, чем сомнителен. В случае представления учетных данных в виде "за определенный интервал времени" ситуация принципиально отличается от рассмотренной. Тут, с одной стороны, проявляется необходимость в расчетах, обеспечивающих получение данных за интервалы, не совпадающие с уже имеющимися в БД. С другой стороны, вычисления таких данных осуществимы с небольшими затратами и дают результат достаточной для практики точности. Рассмотрим несколько наиболее характерных вариантов таких расчетов. Самый простой из них, когда длина промежутка времени Ти, указанного в запросе, определяется суммой нескольких (более одного) промежутков времени, по которым хранятся данные БД. При этом условии расчет значений объемно - стоимостных показателей с заданной точностью (той же как базовые данные) обеспечивается процедурой прямого суммирования. Другой вариант, когда длина указанного в запросе промежутка времени не соответствует сумме целого числа интервалов времени, значения показателей по которым используются для расчета. Например, в БД размещены данные по месяцам, а требуется получить суммарные значения за 4,5 месяца. В данной ситуации алгоритм расчета в большей степени определяется точностью, необходимой для результата. Наш опыт указывает на практическую приемлемость алгоритмов, построенных на вычислении усредненных значений показателей пропорционально продолжительности интервала времени. Выражение для расчета принимает вид: месяцам, а требуется рассчитать по отдельным неделям (декадам). Конечно, при таком способе расчета трудно обеспечить высокую точность, но обычно тут высокие требования по точности и не ставятся. Описанная технология обеспечивает получение учетных данных во всех разрезах, требующихся для разных пользователей. Универсальный характер представления учетных данных обеспечивает размещение данных в довольно широком диапазоне и удовлетворение разнообразных потребностей пользователей с минимальными затратами машинных ресурсов. |