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