Построение концептуальной модели для информационно-управляющих систем
Исходным пунктом построения концептуальной модели данных в информационно-управляющих системах является рассмотрение информационных потребностей менеджмента. В процессе своей деятельности менеджеры должны получать точную информацию для принятия решений. Запросы на получение необходимых сведений можно выразить в форме вопросов. Следовательно, концептуальная модель БД должна учитывать возможность ответа на все поставленные вопросы.
Рассмотрим процесс построения концептуальной модели коммерческого банка. Предположим, в процессе управления банком главный менеджер должен оперативно получать ответы на следующие вопросы: Сколько у нас текущих счетов? Сколько сберегательных счетов? Сколько клиентов? У каких клиентов есть и текущие, и сберегательные счета? Каков процент сберегательных счетов, баланс которых не превышает 1000 долларов? Какой тип клиентов имеет самый высокий средний баланс счетов? Сколько клиентов помимо обладания текущими и сберегательными счетами брали у нас ссуды?
У банка есть текущие счета, сберегательные счета и клиенты. Мы установим подходящие отношения между ними, как показано на рис. 19.
Рис. 19. Модель данных банка: основные объекты и отношения
Сейчас мы рассматриваем следующие вопросы:
Сколько у нас текущих счетов?
Сколько сберегательных счетов?
Сколько клиентов?
Ответы на эти вопросы можно получить, просто сосчитав количество элементов каждого из трех объектных множеств. При помощи соответствующего программного обеспечения менеджер сможет задавать эти вопросы своему персональному компьютеру в любое время или же получать регулярный отчет.
Обратите внимание, насколько более понятным образом эти вопросы обрабатывает база данных, чем: традиционная файловая система. В файловой системе, не имеющей межфайловых связей, обеспечиваемых базой данных, может быть только два файла: один для сберегательных счетов и один — для текущих. В каждом из этих файлов информация о клиенте будет распределена по нескольким полям (имя клиента, адрес и т.д.). На третий вопрос — «Сколько клиентов» — может оказаться непросто ответить, поскольку нам придется извлекать данные о клиентах из двух файлов и отбрасывать повторы. В базе данных же эти данные о клиентах могут храниться отдельно, при этом будут поддерживаться нужные связи с информацией о счетах.
У кого из клиентов есть и текущие счета, и сберегательные?
На этот вопрос можно ответить только рассмотрев отношения. У клиента есть текущий счет, если он (или она) связан посредством отношения ИМЕЕТ-ТЕКУЩИЙ-СЧЕТ с некоторым элементом объектного множества ТЕКУЩИЙ-СЧЕТ. Аналогично, у клиента есть сберегательный счет, если он связан посредством отношения ИМЕЕТ-СБЕРЕГАТЕЛЬНЫЙ-СЧЕТ с некоторым элементом объектного множества СБЕРЕГАТЕЛЬНЫЙ-СЧЕТ. Наконец, у клиента есть и текущий счет, и сберегательный, если он связан посредством обоих этих отношений с некоторыми элементами объектных множеств ТЕКУЩИЙ-СЧЕТ и СБЕРЕГАТЕЛЬНЫЙ-СЧЕТ. Для того чтобы ответить на предыдущий вопрос, нам нужно просто подсчитать число клиентов, имеющих обе связи.
Мощности.На рис. 19 были намеренно опущены мощности отношений. Давайте займемся ими теперь. Допустим, мы определили мощности, как показано на рис. 20. Они означают, что у клиента не может быть более одного текущего или сберегательного счета.Каждый счетпринадлежитровноодному клиенту.