Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Информационное моделирование в ERwin

Лавров Владислав (l-vv@r66.ru)

Спецвыпуск: Хакер, номер #052, стр. 052-028-4


Атрибуты лучше создавать в специальном диалоговом окне, которое вызывается двойным щелчком мыши. Здесь можно определить несколько интересных свойств для каждого атрибута. Поскольку я указал на физическом уровне в качестве целевой СУБД Access 2000, то ERwin уже сам знает, какие типы данных можно задавать для атрибутов. Основные типы выбираются на вкладке General, уточненные - на вкладке Datatype. Также для каждого атрибута можно установить обязательность или необязательность, то есть допустимость или недопустимость неопределенных (NULL) значений для него.

Аналогично можно обойтись и с другими сущностями. Для моего примера определяется сущность "Изделия" с атрибутами "Код изделия" (первичный ключ), "Наименование" и "Примечание". Экземплярами будут различные сборочные модели компьютеров, которые предлагают клиентам ушлые менеджеры по продажам :).

Наконец, надо попытаться как-то связать эти две сущности и поставить ребром вопрос выбора типа связи. На этом этапе глубоко задумываешься над смыслом предметной области и пытаешься представить себе, как взаимодействуют отдельные экземпляры сущностей. Очевидно, что один вид комплектующего может входить в несколько изделий. Например, одиночный процессор CPU Intel P4 3,0GHz может быть включен в конфигурацию из разных комплектующих. Поэтому здесь прослеживается связь "многие-ко-многим".

В программе ERwin связь устанавливается очень просто: выбираешь инструмент и кликаешь мышью на тех сущностях, которые хочешь связать.

Тут есть одно важное замечание по поводу разных видов связей. В ERwin всевозможные виды связей устанавливаются только на уровне Logical. Уровень Physical тоже отображает такой вид связи, однако следует учитывать, что все реляционные СУБД поддерживают только два вида: "один-к-одному" и "один-ко-многим". Связь "многие-ко-многим" напрямую не поддерживается, поэтому такой вид связи надо разрешить. В теории это делается введением промежуточной сущности с составным первичным ключом, включающим в себя первичные ключи обеих связываемых сущностей.

К счастью, программа ERwin сделает всю рутинную работу за тебя. Для этого нужно кликнуть на кнопку Many to Many Transform, которая расположена на панели Transforms. Если подумать, то появившаяся после этого промежуточная сущность тоже оказывается полезной! Действительно, здесь как нигде полезно хранить данные о том, сколько комплектующих определенного вида входит в изделие. Просто добавь в промежуточную сущность "Комплектующие_Изделия" атрибут "Количество комплектующих" (естественно, как неключевой) - и дело сделано.

Какие типы связей выбрать?

Как уже было сказано, связи отображают функциональную зависимость между двумя сущностями. Связь - это понятие логического уровня, которому соответствует внешний ключ на физическом уровне. В ERwin каждый вид связи представлен пятью основными элементами информации:

Назад на стр. 052-028-3  Содержание  Вперед на стр. 052-028-5