Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диго С.М. Базы данных проектирование и использование.doc
Скачиваний:
720
Добавлен:
14.05.2016
Размер:
12.04 Mб
Скачать

2.2.9. Рекомендации по построению базовой er-модели

В ER-модели должно быть отображено все, о чем идет речь в дан­ной предметной области (во входных документах, в выходных доку­ментах и т.п.). После построения полной ER-модели необходимо оп­ределить состав хранимых показателей. Переход от ER-модели к даталогической модели должен проводиться только для хранимых показателей.

При построении ER-модели необходимо ответить на вопросы:

1.Что следует считать самостоятельным объектом, а что - свой­ством другого объекта?

2.Когда следует делить класс на подклассы?

Резюмируя вышесказанное, можно дать следующие рекомендации. В качестве самостоятельного объекта в ER-модели следует изоб­ражать сущности:

  • имеющие более одного идентификатора;

  • для которых фиксируются какие-либо их свойства;

  • которые участвуют более чем в одной связи.

Рис. 2.23. Изображение агрегированного объекта:

а - условные обозначения; б - пример

При возникновении сомнений лучше принять решение о созда­нии самостоятельного объекта, так как это в дальнейшем потребует меньших переделок модели.

Количественные характеристики всегда являются свойствами ка­кого-либо объекта, и никогда - самостоятельными объектами. Коли­чественные характеристики также практически никогда не являются идентификаторами объекта и не входят в состав идентификаторов.

При изображении предметной области нужно стремиться отобра­зить информацию как можно более детально, поскольку в дальней­шем это даст возможность принять более обоснованные решения при проектировании структуры базы данных. Так, например, если «Ад­рес», «ФИО» являются составными характеристиками, то желатель­но это отразить в ER-модели.

При решении вопроса о том, что следует отображать в качестве обобщенного объекта, приходится выбирать между двумя крайними вариантами: надо ли простой объект представить как обобщенный и надо ли два либо несколько самостоятельных объектов объединить в обобщенный объект.

Обобщенный объект следует вводить в модель в том случае, ког­да нужно подчеркнуть общность и различие категорий объектов, вхо­дящих в один класс, или в случае, если объекты разных подклассов участвуют в разных связях. Так, например, если для сотрудников муж­ского и женского пола фиксируются одни и те же свойства, эти объек­ты участвуют в одних и тех же связях, то не следует выделять соот­ветствующие подклассы. Если же для студентов мужского пола фик­сируются сведения о воинской обязанности, информация о том, прошли ли они срочную службу, занимаются ли они на военной ка­федре и т.п., а для студенток эта информация не фиксируется, то раз­бивать класс объектов СТУДЕНТ на подклассы следует.

Естественно, что каждый подкласс может быть изображен в ER-модели как самостоятельный объект, а не как подкласс какого-то ро­дового класса. Для того чтобы иметь больше информации о предмет­ной области и (часто) сократить число элементов (свойств, связей) в ER-модели, в большинстве случаев лучше объединять подклассы в класс.

Одну и ту же ситуацию в предметной области можно представить в ER-модели разными способами. На рис. 2.24 изображены фрагмен­ты ER-модели, отображающие факт знания сотрудником иностран­ных языков. Каждый из изображенных вариантов при всем их разли­чии является правильным.

Если ЯЗЫК не будет использоваться ни в каких связях, то воз­можно использование каждого из приведенных вариантов. Если та­кой уверенности нет, то вариант (б) лучше не использовать.

Рис. 2.24. Варианты изображения связи СОТРУДНИК - ЯЗЫК:

а - путем указания связи между объектами;

б - с использованием множественного свойства;

в - с применением интегрированного объекта

Хотелось бы обратить внимание на некоторые наиболее часто допускаемые ошибки в процессе моделирования. Одной из таких ошибок является изображение зависимых друг от друга свойств в виде самостоятельных, не связанных друг с другом. Так, на рис. 2.25, а изображен неправильный вариант отображения информации о степе­ни владения сотрудником тем или иным иностранным языком. Кроме правильного варианта, изображенного на рис. 2.25, б, возможен ва­риант, аналогичный изображенному на рис. 2.24, б), где «Степень_владения» будет свойством агрегированного объекта ЗНАНИЕ_ЯЗЫКА.

Рис. 2.25. Изображение информации о владении иностранными

языками в базовой ER-модели: ошибочный (а)

и правильный (б) варианты

Следует напомнить, что нельзя устанавливать связь между свой­ством одного объекта и другим объектом или его свойством. Нельзя также непосредственно связывать между собой агрегированные объек­ты. Связь устанавливается на уровне объектов. Подклассы могут уча­ствовать в связях, так же как и классы.