ustu167 (1013999), страница 5
Текст из файла (страница 5)
Сущностьможно определить как объект, событие или концепцию, информация о которой должнасохраняться. Сущности должны иметь наименование с четким смысловым значением. Фактическиимя сущности дается по имени ее экземпляра. Примером может быть сущность Клиент (но неКлиенты!) с атрибутами Номер Клиента, Фамилия Клиента и Адрес Клиента.
На уровнефизической модели ей может соответствовать таблица Client с колонками Client_number,Client_name и Client_address.Для внесения сущности в модель необходимо убедиться, что вы находитесь на уровне логическоймодели, и «кликнуть» по кнопке сущности на панели инструментов (ERwin Toolbox), затем«кликнуть» по тому месту на диаграмме, где необходимо расположить новую сущность.
Щелкнувправой кнопкой мыши по сущности и выбрав из всплывающего меню пункт Entity Properties,можно вызвать диалог Entities, в котором определяются имя, описание и комментарии сущности.Каждая сущность должна быть полностью определена с помощью текстового описания в закладкеDefinition (рис.35).Рис.35.Закладки Note, Note 2, Note 3 (в прежних версиях Query и Sample), UDP (User DefinedProperties) служат для внесения дополнительных комментариев и определений к сущности:DefinitionNote- используется для ввода определения сущности.- можно ввести полезное замечание, описывающее какое-либобизнес-правило или соглашение по организации диаграммы.Note 2- можно задокументировать некоторые возможные запросы,которые, как ожидается, будут использоваться по отношению ксущности в БД.- позволяет вводить примеры данных для сущности (впроизвольной форме).Note 3Icon- каждой сущности можно поставить в соответствие изображение,которое будет отображаться в режиме просмотра модели науровне иконок.Для определения UDP служит диалог User-Defined Properties(меню Model/UDP dictionary…)рис.36.Рис.36.В нем необходимо указать вид объекта, для которого заводится UDP (диаграмма в целом,сущность, атрибут и т.
д.) и тип данных. ERwin поддерживает для UDP шесть типов данных, в томчисле:List – список - при задании списка значения следует разделять запятой, значение по умолчаниювыделяется символом «~»;Command – команда – выполняемая строка.Значение свойств, определяемых пользователем, задается в закладке UDP диалога EntityProperties.Атрибут или группа атрибутов, которые идентифицируют сущность, называется первичнымключом. Для описания атрибутов следует, «кликнув» правой кнопкой по сущности, выбрать впоявившемся меню пункт Attributes. Появляется диалог Attributes (рис.37).Рис.37.Если щелкнуть по кнопке New…, то в появившемся диалоге New Attribute можно указать имяатрибута, имя соответствующей ему в физической модели колонки и домен.
Домен атрибута будетиспользоваться при определении типа колонки на уровне физической модели (рис.38).Рис.38.Для атрибутов первичного ключа в закладке General диалога Attributes необходимо сделатьпометку в окне выбора Primary Key.Закладка Datatype позволяет выбрать тип атрибута.Закладка Definition позволяет записывать определения отдельных атрибутов. Определенияатрибутов можно также сгенерировать как часть схемы (CREATE COMMENT onentity_name.attribute_name).
Закладка Note позволяет добавлять замечания об одном илинескольких атрибутах сущности, которые не вошли в определения. Закладка UDP служит длязадания значений свойств, определяемых пользователем. Предварительно эти свойства должныбыть внесены в диалог User-Defined Property dictionary как свойства атрибутов.Для большей наглядности диаграммы каждый атрибут можно связать с иконкой. При помощисписка выбора Icon в закладке General можно связать иконку с атрибутом.Очень важно дать атрибуту правильное имя.
Атрибуты должны именоваться в единственномчисле и иметь четкое смысловое значение. Соблюдение этого правила позволяет частично решитьпроблему нормализации данных уже на этапе определения атрибутов. Согласно синтаксисуIDEF1X имя атрибута должно быть уникально в рамках модели (а не только в рамках сущности!).Каждый атрибут должен быть определен (закладка Definition), при этом следует избегатьциклических определений, например, когда термин 1 определяется через термин 2, термин 2 –через термин 3, а термин 3 в свою очередь – через термин 1.Иногда определение атрибута легче дать через описание области значение. Например, оценкашкольника – это число, принимающее значения 2, 3, 4 и 5.Часто приходится создавать производные атрибуты, то есть атрибуты, значение которых можновычислять из других атрибутов. Примером производного атрибута может служить Возрастклиента, который может быть вычислен из атрибута Дата рождения клиента.
Такой атрибутможет привести к конфликтам; действительно, если вовремя не обновить значение атрибутаВозраст клиента, он может противоречить значению атрибута Дата рождения клиента.Производные атрибуты – ошибка нормализации, однако, их вводят для повышенияпроизводительности системы.СвязиСвязь является логическим соотношением между сущностями.
Каждая связь должна именоватьсяглаголом или глагольной фразой (рис.39).Рис.39.Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы,например:Каждый КЛИЕНТ <вносит/снимает> средства.Связь показывает, какие именно действия делает клиент. По умолчанию имя связи на диаграммене показывается. Для отображения имени следует в контекстном меню, которое появляется, еслищелкнуть левой кнопкой мыши по любому месту диаграммы, не занятому объектами модели,выбрать пункт Relationship Display и затем включить опцию verb Phrase.На логическом уровне можно установить идентифицирующую связь один-ко-многим, связьмногие-ко-многим и неидентифицирующую связь один-ко-многим (соответственно это кнопкислева направо в палитре инструментов).В IDEF1X различают зависимые и независимые сущности.
Тип сущности определяется еесвязью с другими сущностями. Идентифицирующая связь устанавливается между независимой(родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда рисуетсяидентифицирующая связь. ERwin автоматически преобразует дочернюю сущность в зависимую.Зависимая сущность изображается прямоугольником со скругленными углами (рис.40).Рис.40.Экземпляр зависимой сущности определяется только через отношение к родительской сущности.При установлении идентифицирующей связи атрибуты первичного ключа родительской сущностиавтоматически переносятся в состав первичного ключа дочерней сущности. Эта операциядополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. Вдочерней сущности новые атрибуты помечаются как внешний ключ – (FK).В дальнейшем, при генерации схемы БД, атрибуты первичного ключа получат признак NOTNULL, что означает невозможность внесения записи в таблицу заказов без информации о номереклиента.При установлении неидентифицирующей связи дочерняя сущность остается независимой, аатрибуты первичного ключа родительской сущности мигрируют в состав неключевыхкомпонентов родительской сущности.
Неидентифицирующая связь (Рис. 41) служит длясвязывания независимых сущностей.Рис.41.Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой надочернем конце связи, неидентифицирующая – пунктирной.Для создания новой связи следует:* установить курсор на нужной кнопке в палитре инструментов (идентифицирующая илинеидентифицирующая связь) и нажать левую кнопку мыши;* щелкнуть сначала по родительской, а затем по дочерней сущности.Для редактирования свойств связи следует “кликнуть” правой кнопкой мыши по связи и выбратьна контекстном меню пункт Relationship Properties (рис.42).Рис.42.В закладке General появившегося диалога можно задать мощность, имя и тип связи.Мощность связи (Cardinality) – служит для обозначения отношения числа экземпляровродительской сущности к числу экземпляров дочерней.Различают четыре типа мощности:Общий случай, когда одному экземпляру родительской сущностисоответствуют 0, 1 или много экземпляров дочерней сущности, не помечаетсякаким-либо символом;Символом P помечается случай, когда одному экземпляру родительскойсущности соответствуют 1 или много экземпляров дочерней сущности(исключено нулевое значение);Символом Z помечается случай, когда одному экземпляру родительскойсущности соответствуют 0 или 1 экземпляр дочерней сущности (исключенымножественные значения);Цифрой помечается случай точного соответствия, когда одному экземпляруродительской сущности соответствует заранее заданное число экземпляровдочерней сущности.По умолчанию символ, обозначающий мощность связи, не показывается на диаграмме.















