Типы сущностей и иерархия наследования

Как было указано выше, связи определяют, является ли сущность неза­висимой или зависимой. Различают несколько типов зависимых сущностей.

Характеристическая - зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характе­ристиках родительской сущности.

Ассоциативная - сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей.

Именующая - частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигри­ровавших в качестве внешнего ключа).

Категориальная - дочерняя сущность в иерархии наследования.

Иерархия наследования (или иерархия категорий) представляет собой особый тип объединения сущностей, которые разделяют общие характери­стики.

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

Для создания категориальной связи следует:

• установить курсор на кнопке в палитре инструментов и нажать ле­вую кнопку мыши;

• щелкнуть сначала по родовому предку, а затем по потомку;

• для установления второй связи в иерархии категории следует сначала щелкнуть по символу категории, затем по второму потомку.

Для редактирования категорий нужно щелкнуть правой кнопкой мыши по символу категории и выбрать в контекстном меню пункт Subtype Relationship Editor. В диалоге Subtype Relationship можно указать атрибут - дискриминатор категории (список Discriminator Attribute Choice) и тип категории - полная/неполная (радиокнопки Complete/Incomplete).

Ключи

Каждый экземпляр сущности должен быть уникален и отличаться от других атрибутов.

Первичный ключ (primary key) - это атрибут или группа атрибутов, одно­значно идентифицирующая экземпляр сущности. Атрибуты первичного ключа на диаграмме не требуют специального обозначения - это те атрибу­ты, которые находятся в списке атрибутов выше горизонтальной линии. При внесении нового атрибута в диалоге Attribute Editor для того, чтобы сделать его атрибутом первичного ключа, нужно включить флажок Primary Key в нижней части закладки General. На диаграмме неключевой атрибут можно внести в состав первичного клю­ча, воспользовавшись режимом переноса атрибутов.

В одной сущности могут оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называютсяпотенциальными ключами (candidate key).

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

Каждая сущность должна иметь, по крайней мере, один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более од­ного возможного ключа. Тогда один из них становится первичным, а ос­тальные - альтернативными ключами.Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. ERwin позволяет выделить атрибуты альтернативных ключей, и по умолчанию в дальнейшем при генерации схемы БД по этим атрибутам будет генерироваться уникаль­ный индекс.

При работе ИС часто бывает необходимо обеспечить доступ к несколь­ким экземплярам сущности, объединенным каким-либо одним признаком. Для повышения производительности в этом случае используются неуни­кальные индексы. ERwin позволяет на уровне логической модели назначить атрибуты, которые будут участвовать в неуникальных индексах. Атрибуты, участвующие в неуникальных индексах, называютсяInversion Entries (инверсионные входы). Inversion Entry - это атрибут или группа атрибутов, которые не определяют экземпляр сущности уникальным образом, но часто используются для обращения к экземплярам сущности. ERwin генерирует неуникальный индекс для каждого Inversion Entry.

Создать альтернативные ключи и инверсионные входы можно в заклад­ке Key Group диалога Attribute Editor. Если щелкнуть по кнопке [...] расположенной в правой верхней части закладки, вызывается диалог Key Group Editor. В верхней части диалога находится список ключей, в нижней - список атрибутов, доступных для включения в состав ключа (слева), и список ключевых атрибутов. Каждый вновь созданный ключ должен иметь хотя бы один атрибут. Для включения атрибута в состав ключа следует выделить его в левом списке и щелкнуть по кнопке [>]

Для создания нового ключа следует щелкнуть по кнопке New. Появля­ется диалог New Key Group. Имя нового ключа присваивается автоматически ("Alternate Key N" для альтернативного ключа и "Inversion Entry N" для инверсионного входа, где N - порядковый номер ключа).

Каждому ключу соответствует индекс, имя которого также присваивает­ся автоматически ("XAKNENTITY" для альтернативного ключа и "XIENENTITY" для инверсионного входа, где N - порядковый номер ключа, ENTITY - имя сущности). Имена ключа и индекса при желании можно изменить вручную.

На диаграмме атрибуты альтернативных ключей обозначаются как (AKn.m), где n - порядковый номер ключа, m - порядковый номер атрибута в ключе. Когда альтернативный ключ содержит несколько атрибутов, (AKn.m) ставится после каждого. По умолчанию номера альтернативных ключей и инвер­сионных входов рядом с именем атрибута на диаграмме не показываются. Для отображения номера следует в контекстном меню, которое появляется, если щелкнуть левой кнопкой мыши по любому месту диаграммы, не заня­тому объектами модели, выбрать пункт Display Options/Entities и затем включить опцию Alternate Key Designator (AK).

Внешние ключи (Foreign Key) создаются автоматически, когда связь со­единяет сущности: связь образует ссылку на атрибуты первичного ключа в дочерней сущности и эти атрибуты образуют внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются сим­волом (FK) после своего имени.

Зависимая сущность может иметь один и тот же внешний ключ из не­скольких родительских сущностей. Сущность может также получить один и тот же внешний ключ несколько раз от одного и того же родителя через несколько разных связей. Когда ERwin обнаруживает одно из этих собы­тий, он распознает, что два атрибута одинаковы, и помещает атрибут внешнего ключа в зависимой сущности только один раз. Хотя в закладке Key Group диалога Attribute Editor этот атрибут будет входить в два внеш­них ключа, на диаграмме он показывается только один раз. Это комбини­рование или объединение идентичных атрибутов называетсяунификацией.

Унификация производится, поскольку правила нормализации запреща­ют существование в одной сущности двух атрибутов с одинаковыми имена­ми. В некоторых случаях этот результат соответствует действи­тельности.

Есть и другие случаи, когда унификация нежелательна. Например, когда два атрибута имеют одинаковые имена, но на самом деле они отличаются по смыслу и необходимо, чтобы это отличие отражалось в диаграмме. В этом случае необходимо использовать имена ролей атрибутов внешнего ключа.

Домены

Домен можно определить как совокупность значений, из которых берут­ся значения атрибутов. Каждый атрибут может быть определен только на одном домене, но на каждом домене может быть определено множество атрибутов. В понятие домена входит не только тип данных, но и область значений данных.

В ERwin домен может быть определен только один раз и использоваться как в логической, так и в физической модели.

Домены позволяют облегчить работу с данными как разработчикам на этапе проектирования, так и администраторам БД на этапе эксплуатации системы. На логическом уровне домены можно описать без конкретных физических свойств. На физическом уровне они автоматически получают специфические свойства, которые можно изменить вручную.

Для создания домена в логической модели служит диалог Domain Dictionary Editor. Его можно вызвать из меню Edit/Domain Dictionary по кнопке, расположенной в верхней левой части закладки General диалога Attribute Editor. Для создания нового домена в диалоге Domain Dictionary Editor следует:

• щелкнуть по кнопке New. Появляется диалог New Domain;

• выбрать родительский домен из списка Domain Parent. Новый домен можно создать на основе уже созданного пользователем домена либо на основе изначально существующего. По умолчанию ERwin имеет четыре предопределенных домена (String, Number, Blob, Datetime). Новый до­мен наследует все свойства родительского домена. Эти свойства в даль­нейшем можно переопределить;

• набрать имя домена в поле Logical Name. Можно также указать имя до­мена на физическом уровне в поле Physical Name. Если физическое имя не указано, по умолчанию оно принимает значение логического имени;

• щелкнуть по кнопкеОК.

В диалоге Domain Dictionary Editor можно связать домен и иконкой, с которой он будет отображаться в списке доменов (Domain Icon), и икон­кой, с которой атрибут, определенный на домене, будет отображаться в модели (Icon Inherited by Attribite).

Каждый домен может быть описан в закладке Definition, снабжен ком­ментарием в закладке Note или свойством, определенным пользователем в закладке UDP.

ERwin имеет специальный инструмент, который значительно облегчает создание новых атрибутов в модели, используя описание доменов - Independent Attribute Browser. Этот диалог вызывается (и скрывается) по горячему ключу CTRL+B. С его помощью можно выбрать в списке домен и по методу drag&drop перенести его в какую-либо сущность. В ней будет создан новый атрибут с именем, которое следует задать в окне Name Inherited by Attribite диалога Domain Dictionary Editor. Если значение поля не задано, по умолчанию принимается имя домена. В дальнейшем в случае необходимости имя атрибута можно изменить.

На физическом уровне диалог Domain Dictionary Editor позволяет ре­дактировать физические свойства домена.. Имя закладки зависит от выбранного сервера БД. На ней можно задать конкретный тип данных, соответствующих домену, правила присвоения NULL-значений, правила валидации (правила проверки допус­тимых значений) и значения по умолчанию. Правила валидации и значения по умолчанию должны быть предварительно описаны и именова­ны. Для вызова диалогов редактирования правил валидации и значений по умолчанию служат кнопки справа от соответствующего списка выбора (Valid и Default).

Рассмотрим функции других закладок диалога Domain Dictionary Editor:

General. Задание родительского домена (Domain Parent) и имени, присваиваемого колонке при ее создании с помощью Independent

Column Browser. С помощью опции Physical Only домен можно определить только на уровне физической модели.

Comment. Внесение комментария к атрибуту.

UDP. Свойства, определяемые пользователем.

Visual Basic - PowerBuilder. Задание специальных свойств домена для кодогенерации клиентского приложения.

Домены могут быть использованы при генерации схемы БД для созда­ния типов, определяемых пользователем для тех СУБД, которые поддержи­вают такие конструкции (DB2, Rdb, Interbase, SQL Anywhere, SQL Server и SYBASE). Типы, определяемые пользователем, представляют собой сино­нимы существующих в БД типов, создаваемых для удобства работы с дан­ными.

При выборе соответствующего сервера на закладке General появляется флажок:

• Distinct Types - для DB2/CS и DB2/UDB;

• Domains - для Rdb и Interbase;

• User Datatypes - для SQL Anywhere, SQL Server и SYBASE.

Для создания типов, определяемых пользователем, необходимо вклю­чить соответствующую опцию. При генерации схемы БД колонки, опреде­ленные на соответствующем домене, будут иметь тип, определяемый поль­зователем.








Дата добавления: 2016-05-16; просмотров: 1799;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.