Базы данных

Связи не являются атрибутами


Основная цель концептуального моделирования состоит в определении связей между сущностями. Связи выделяются, поскольку в будущем они подвергаются специальной обработке. Как будет показано в главе 4, для представления связей в системах с базами данных могут использоваться различные стратегии. Концептуальная модель выявляет связи, но не определяет их точное представление. Для обеспечения гибкости необходима уверенность в том, что ни одна из связей не определена в качестве атрибута. К сожалению, часто случается, что в процессе изучения выявляются поля, которые, судя по всему, должны быть атрибутами, но в действительности являются связями.

Рассмотрим представленную на 2.1 квитанцию о прокате BigHit Video. В ней содержится информация об аренде, клиенте и видеоленте. Присутствующее на квитанции поле account ID идентифицирует клиента. Так как клиент является отдельной сущностью, это поле, на самом деле, указывает на наличие связи. Имя и адрес клиента являются атрибутами класса сущностей Customer, а не класса Rental. Аналогично, video ID и название фильма являются атрибутами связанной сущности videotape. Проанализировав содержание этой квитанции, можно заметить, что собственно класс Rental имеет атрибуты dateRented, dateDue, cost, а также связи с классами Customer и videoTape. Остальные присутствующие на квитанции поля не являются атрибутами класса Rental.

Комментарии закрыты