• не требуется дополнительного программного кода для поддержания целостности кортежа; • экономится дисковое пространство; • уменьшается трафик сети. Недостатки решения: • в бухгалтерии для формирования проводок используются, как правило, не базовые, а вычислимые атрибуты. Одни и те же формулы используются во многих местах, поэтому все операторы отбора данных будут содержать одинаковые фрагменты кода с одними и теми же формулами. Имеется риск в разных местах вычислять одни и те же данные по разным формулам; • при изменении логики вычислений (что бывает довольно часто при изменении законодательства), необходимо изменить одни и те же фрагменты кода во всех местах, где они встречаются. Это сильно затрудняет модификацию приложений; • если возникает нерегламентированный запрос, то человек, формулирующий запрос должен помнить все эти формулы. Решение 2. Предположим, что в отношении решено хранить все атрибуты, в том числе и вычислимые. Достоинства решения: • код, поддерживающий целостность кортежа (и содержащий формулы для вычислимых атрибутов), хранится в одном месте, например в триггере, связанном с данным отношением; • при изменении логики вычислений, изменения в формулы требуется внести только в одном месте (в триггере); • запросы к базе данных содержат меньше формул и поэтому более просты; • легче формулировать нерегламентированные запросы, т.к. в запросе используются атрибуты, имеющие для бухгалтера конкретный смысл. Недостатки решения: 23 |
P4 Сумма НДС на единицу товара P4 = P2*NDS/100 S4 Сумма НДС на все количество S4 = N*P4 P5 Цена товара с НДС P5 = P3+P4 S5 Сумма на все количество с НДС S5 = N*P5 Таблица 3 Атрибуты товара Базовыми, т.е. требующими ввода данных являются всего 5 атрибутов (выделены серым цветом). Все остальные атрибуты вычисляются по базовым. Нужно ли хранить в отношении только базовые атрибуты, или желательно хранить все атрибуты, пересчитывая значения вычислимых атрибутов каждый раз при изменении базовых? Решение 1. Пусть в отношении решено хранить только базовые атрибуты. Достоинства решения: Структура отношения полностью неизбыточна. Не требуется дополнительного программного кода для поддержания целостности кортежа. Экономится дисковое пространство. Уменьшается трафик сети. Недостатки решения: В бухгалтерии для формирования проводок используются, как правило, не базовые, а вычислимые атрибуты. Одни и те же формулы используются во многих местах, поэтому все операторы отбора данных будут содержать одинаковые фрагменты кода с одними и теми же формулами. Имеется риск в разных местах вычислять одни и те же данные по разным формулам. При изменении логики вычислений (что бывает довольно часто при изменении законодательства), необходимо изменить одни и те же фрагменты кода во всех местах, где они встречаются. Это сильно затрудняет модификацию приложений. Если возникает нерегламентированный запрос, то человек, формулирующий запрос должен помнить все эти формулы. Решение 2. Предположим, что в отношении решено хранить все атрибуты, в том числе и вычислимые. Достоинства решения: Код, поддерживающий целостность кортежа (и содержащий формулы для вычислимых атрибутов), хранится в одном месте, например в триггере, связанном с данным отношением. При изменении логики вычислений, изменения в формулы требуется внести только в одном месте (в триггере). Запросы к базе данных содержат меньше формул и поэтому более просты. Легче формулировать нерегламентированные запросы, т.к. в запросе используются атрибуты, имеющие для бухгалтера конкретный смысл. Недостатки решения: |