Каждый атрибут хранит информацию об определенном свойстве сущности, а каждый экземпляр сущности должен быть уникальным. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Например, создание в сущности Сотрудник атрибута Телефоны сотрудника противоречит требованиям нормализации, поскольку атрибут должен быть атомарным, т. е. не содержать множественных значений. Согласно синтаксису IDEFIX имя атрибута должно быть уникально в рамках модели (а не только в рамках сущности!). По умолчанию при попытке внесения уже существующего имени атрибута ERwin переименовывает его.
Каждый атрибут должен быть определен, при этом следует избегать циклических определений, например, когда термин 1 определяется через термин 2, термин 2 – через термин 3, а термин 3 в свою очередь – через термин 1.
Часто приходится создавать производные атрибуты, т. е. атрибуты, значение которых можно вычислить из других атрибутов. Примером производного атрибута может служить Возраст сотрудника, который может быть вычислен из атрибута Дата рождения сотрудника. Такой атрибут может привести к конфликтам; действительно, если вовремя не обновить значение атрибута Возраст сотрудника, он может противоречить значению атрибута Дата рождения сотрудника. Производные атрибуты – ошибка нормализации, однако их вводят для повышения производительности системы, чтобы не проводить вычисления, которые на практике могут быть сложными.
15. Выберите просмотр атрибутов: нажмите кнопку Attribute level на панели инструментов.
16. Определите атрибуты: выберите ТИП ИМУЩЕСТВА, МП, выберите New, в области Domain выберите Unknow, в поле Attribute Name:* введите КодТипа, нажмите OK, выберите New, в области Domain выберите Unknow, в поле Attribute Name:* введите Название, нажмите OK, нажмите OK.
17. Определите атрибуты сущности Комната по рис. Рисунок 22.1, «Физическая модель данных» – см. 16.