Предметная область является
частью реального мира и, кроме того, она
и сама может быть достаточно сложной системой,
способной к развитию, а, следовательно,
к изменениям. Не замечать и не учитывать
этого нельзя. Однако изменения предметной
области предполагают и изменения в базах
данных, схемы которых моделируют предметную
область, её сущности и атрибуты этих сущностей.
Изменения сущностей и их атрибутов приводят,
в конечном итоге, к необходимости модификации
схемы баз данных. При этом базы данных
могут содержать значительные объёмы информации,
и изменения в таких базах данных достаточно
сложны. Это вполне оправдывает попытки
найти некоторое универсальное средство,
способное минимизировать затраты на перестройку
баз данных. Рассмотрение данного вопроса,
хотелось бы начать с самой предметной
области и её связей с окружающим миром.
Предметная область состоит из сущностей,
которые, как правило, можно разделить
на две категории. К первой категории относятся
сущности, изменение которых происходит
в рамках предметной области. Ко второй
категории относятся сущности, изменение
которых происходит вне предметной области.
Можно рассмотреть в качестве примера систему
управления предприятием. Предприятие может
в достаточно широких пределах менять свою
организационную структуру управления,
учётную политику и многие другие параметры.
Эти структуры и параметры находят своё
отражение и в виде таблиц реляционных
баз данных. Вместе с перечисленными изменениями
возможны и изменения в схемах баз данных.
С другой стороны, предприятие не существует
обособленно, оно активно контактирует
с другими предприятиями и государственными
органами. И эти внешние по отношению к
данному предприятию организации могут
нуждаться в некоторой структурированной
информации, связанной с деятельностью
данного предприятия. Предоставляемая информация
тоже может менять свою структуру, что,
безусловно, скажется и на структурах информации
представленных в базах данных.
Возможное изменение структур
информации в рамках предметной области
должно контролироваться проектировщиком
ещё при разработке баз данных. В этом
нет ничего сверхъестественного. Для того
чтобы можно было предполагать будущие
изменения надо опять же хорошо представлять
себе предметную область. Любая сложная
система базируется на относительно небольшом
количестве базовых процессов, которые
всегда остаются неизменными, поскольку
они определяют существо предметной области.
Однако представления этих процессов могут
меняться в достаточно широких пределах
не только для различных групп пользователей,
но, с течением времени, для одной и той
же группы пользователей. И здесь, безусловно,
важно уметь отличать информацию о процессах
от информации о представлении этих процессов.
Известный стандарт ANSI/SPARC
устанавливал трёхуровневую модель: физическая
модель, концептуальная модель и, наконец,
уровень представлений. Такое разделение
является важным, прежде всего, в методологическом
плане. Информация о базовых процессах
не может меняться по объективным причинам,
независящим от чьей-то воли. Фактически
изменение этой информации сопряжено с
изменением базовых процессов. А изменение
базовых процессов, в свою очередь, означает
изменение существа самой предметной области.
В то время как представления этой информации
или формы обслуживания основных процессов
являются динамичными. Основные ошибки
проектирования, как правило, связаны с
тем, что проектировщики не делают разделения
между этими видами информации, что в результате
приводит к необходимости сложных изменений
при изменении той или иной отчётной формы.
Подобного рода ошибки появляются вследствие
недостаточного знания проектировщиками
своей предметной области. При тщательном
разделении информации структуры, связанные
с представлением информации могут дополняться
новыми атрибутами или могут удалять атрибуты,
ставшие ненужными. Однако эти операции
практически никогда не затрагивают структуры
ключевых полей, а, следовательно, не приводят
к тем сложностям, с которыми связана операция
по изменению структуры ключевых полей.
В качестве иллюстрации,
к изложенному выше, можно привести примеры
из области автоматизации управления предприятием.
Служащие предприятия идентифицируются
по табельному номеру, они заключают договора,
которые тоже идентифицируются по своему
номеру. Вся основная работа со служащими
ведётся относительно их договора: переводы
с одного места работы на другое, изменение
окладов, режимов работ и т.п. А также
относительно их табельного номера: определение
категории льгот для данного служащего,
поощрения и взыскания, послужной список
и порядок повышения квалификации. Соответственно
такие атрибуты, как табельный номер, номера
договоров, номера отделов, идентификаторы
режимов работ и т.п. по своей сути остаются
неизменными. Это важное требование ещё
и потому, что информация о каждом служащем,
работавшем на предприятии должна сохраняться
десятки лет, так, чтобы её можно было
восстановить по первому требованию. С
другой стороны такая информация, как образование,
состав семьи, адрес местожительства, документы
и т.п., является вспомогательной, и она
может меняться произвольно часто. Однако
эти изменения не могут отразиться на основных
информационных структурах. Аналогичные
рассуждения можно привести и по другим
сущностям, например, таким оборудование,
материалы, технологические потоки и операции.
Но, рассуждая таким образом, можно придти
к закономерному выводу о том, что изменчивость
структуры первичных ключей внутренних
(для конкретной предметной области) информационных
структур является проблемой тех проектировщиков,
которые по каким-то субъективным причинам
не исследовали свою предметную область
должным образом.
Перейдёт теперь к информации,
изменение которой происходит вне предметной
области, но эти изменения отражаются на
схемах баз данных. Внешняя, по отношению
к предметной области, сфера неподконтрольна
проектировщикам и с изменениями, происходящими
здесь, просто приходится считаться. При
этом, однако, надо отметить два важных
момента. Внешняя информация менее подвержена
изменениям, по сравнению с внутренней,
для конкретной предметной области, информацией.
Продолжая рассмотрение системы автоматизации
управления предприятием, можно отметить,
что формы и способы взаимодействия предприятия
с государством меняются значительно реже,
чем взаимодействие между подсистемами
внутри предприятия. И это закономерно,
так как изменение связей государство –
предприятие не может быть локальным, оно
коснётся не одного, а многих предприятий.
Однако столь масштабные изменения могут
происходить только при весьма значительных
аргументах, поскольку они требуют много
средств и времени. С другой стороны, подобные
изменения не могут носить косметический
характер именно в силу своих высоких затрат,
и они связаны, как правило, с существенными
переменами внешней сферы изменяющими,
в том числе, и конкретную предметную область.
Такие изменения, как правило, невозможно
«спрятать» с помощью суррогатных ключей.
Второй момент, который необходимо
отметить в связи с изменениями внешней
сферы, состоит в том, что в хорошей системе
взаимодействие системы с внешним миром
осуществляется через интерфейсный слой.
Соответственно все изменения внешнего
мира влияют в основном на этот интерфейс
и значительно реже на существо предметной
области. Соответственно, для любой относительно
сложной системы необходимо потратить определённые
усилия на то, чтобы сделать этот интерфейс
максимально гибким. Эти усилия окупятся,
когда система сможет пережить внешние
потрясения без каких-либо существенных
модификаций.
|