Студопедия — Иерархия категорий (иерархия наследования)
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Иерархия категорий (иерархия наследования)






Представление об иерархиях категорий, их типах и отображении
в нотациях IDEF1X, IE было дано в разделе «Особенности методологий IDEF1X и IE».

Рассмотрим возможные стадии построения иерархии наследования.

А) Определение сущностей с общими (но определению) атрибутами.

Предположим, в процессе проектирования созданы сущности Постоянный сотрудник и Совместитель (рис. 59). Можно заметить, что часть атри­бутов у этих сущностей (Фамилия, Имя, Отчество, Дата рождения, Должность) имеет одинаковый смысл.

Рис. 59. Сущности с общими по смыслу атрибутами.

В случае об­наружения совпадающих по смыслу атрибутов следует создать новую сущ­ность (Сотрудник) - родовой предок и перенести в нее общие атрибуты.

Б) Создание неполной структуры категорий. Создается категориальная связь от новой сущности - родового предка к старым сущностям-потомкам. Новая сущность дополняется атрибутом-дискриминатором категории (Тип) (рис. 60).

Рис. 60. Пример неполной иерархии категорий.

Рис. 61. Диалог Subtype Properties.

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

· левой кнопкой мышки щелкнуть по кнопке (см. табл. 11);

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

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

Для редактирования категорий нужно щелкнуть правой кнопкой мыши по символу категории и выбрать в контекстном меню пункт Subtype Properties. В диалоге Subtype Properties (рис. 61) можно указать атрибут-дискриминатор категории Тип (список Discriminator) и тип категории - Incomplete – неполная (раздел Type: опции Complete/Incomplete -полная/неполная).

В) Создание полной структуры категорий. Проводится дополнительный поиск сущностей, имеющих общие по смыслу атрибуты с родовым предком. В примере это сущность Консультант (рис. 62).

Общие атрибуты переносятся в родового предка, и категория преобразуется в полную. Признак полной категории устанавливается в диалоге Subtype Relationship (в разделе Type следует выбрать опцию Complete).

Сущность Консультант не имеет атрибута Должность, поэтому в родовом предке значение этого атрибута в случае кон­сультанта будет NULL. В зависимости от бизнес-правил атрибут Должность может быть перенесен обратно из родового предка в сущности-потомки Постоянный сотрудник и Совместитель или может быть принято решение о том, что для консультанта также требуется указывать должность (рис. 63).

Рис. 63. Пример полной иерархии категорий.

Г) Пример комбинации полной и неполной категорий показан на рис.64. Согласно представленному на рисунке фрагменту модели сотрудник может быть совместителем или постоянным сотрудником (неполная категория, т.к. не отображены сотрудники-консультанты), а постоянный сотрудник является любо мужчиной либо женщиной (полная категория).

Рис. 64. Пример смешанной иерархии категорий.

Ключи

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

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

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

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

Ключи могут быть сложными (составными), т. е. содержа­щими несколько атрибутов.

 

Рис. 65. Ключи сущности «Сотрудник».

Рассмотрим потенциальные ключи сущности Сотрудник (рис. 65):

1. Табельный номер.

2. Номер паспорта.

3. Фамилия + Имя + Отчество.

Выберем из них первичный ключ.

Первичный ключ должен удовле­творять следующим требованиям: уникальность, компактность, простота, не содержать нулевых (отсутствующих) значений; значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности. Рассмотрим эти требования подробнее.

Уникальность. Два экземпляра не должны иметь одинаковых значений возможного ключа. Потенциальный ключ № 3 (Фамилия + Имя + Отчест­во) является плохим кандидатом, поскольку в организации могут работать полные тезки, поэтому добавим атрибут дату рождения: Фамилия + Имя + Отчество + Дата рождения.

Компактность. Сложный потенциальный ключ не должен содержать ни одного атрибута, удаление которого приводило бы к утрате уникальности. Для обеспечения уникальности ключа № 3 дополним его атрибутами Дата рождения и Цвет волос. Если бизнес-правила говорят, что сочетания атрибутов Фамилия + Имя + Отчество + Дата рождения достаточно для од­нозначной идентификации сотрудника, то Цвет волос оказывается лишним, т.е. ключ Фамилия + Имя + Отчество + Дата рождения + Цвет волос не является компактным.

При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т. е. ключам, содержащим меньшее количество атрибутов. В рассматриваемом примере потенциальные ключи № 1 и № 2 предпочтительней ключа № 3.

Атрибуты ключа не должны содержать нулевых значений. Если допус­кается, что сотрудник может не иметь паспорта или вместо паспорта иметь какое-либо другое удостоверение личности, то потенциальный ключ № 2 не подойдет на роль первичного ключа. Если для обеспечения уникальности необходимо дополнить потенциальный ключ дополнительными атрибутами, то они не должны содержать нулевых значений. Дополняя ключ № 3 атрибутом Дата рождения, нужно убедиться в том, что даты рождения известны для всех сотрудников.

Значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности. Сотрудница организации может вый­ти замуж и сменить как фамилию, так и паспорт. Поэтому ключи № 2 и 3 не подходят на роль первичного ключа.

Иногда создают искусственный (суррогатный) ключ, например, Номер сотрудника, Номер клиента, Номер товара и т.д.

Каждая сущность должна иметь, по крайней мере, один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одно­го возможного ключа. Тогда один из них становится первичным, а осталь­ные - альтернативными ключами.

Альтернативный ключ (Alternate Key) - это потенциальный ключ, не ставший первичным. ERwin DM позволяет выделить атрибуты альтернативных ключей, и по умолчанию в дальнейшем при генерации схемы базы данных по этим атрибутам будет генерироваться уникальный индекс.

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

В ERwin DM создать альтернативные ключи и инверсионные входы можно в диалоге Key Groups (рис. 66). Для запуска диалога следует в меню Model выбрать пункт Key Groups или щелкнуть правой кнопкой мышки по сущности и в появившемся контекстном меню выбрать пункт Key Groups. В верхней части диалога находится список сущностей, в средней части - список ключей, в нижней - список атрибутов, доступных для включения в состав ключа (слева), и список выбранных ключевых атрибутов (справа). Каждый вновь созданный ключ дол­жен иметь хотя бы один атрибут. Каждому ключу соответствует индекс, имя которого также присваивается автоматически. Имена ключа и индекса можно изменить вручную.

На диаграмме атрибуты альтернативных ключей обозначаются как (AKn.m), где n - порядковый номер ключа, m - порядковый номер атрибута в ключе. Когда альтернативный ключ содержит несколько атрибутов, (AKn.m) ставится после каждого.

Рис. 66. Диалог Key Groups.

На рис. 65 атрибуты Фамилия, Имя, Отчество и Дата рождения входят в альтернативный ключ № 1 (АК1), Номер паспорта составляет альтернативный ключ № 2 (АК2). Инверсион­ные входы обозначаются как (IEn.m), где n - порядковый номер входа, m -порядковый номер атрибута. Инверсионный вход IE1 (атрибут Должност ь) позволяет выбрать всех сотрудников, занимающих одинаковую должность, IE2 (атрибут Номер офиса) - всех сотрудников, работающих в одном офисе, IE3 (атрибуты Город и Улица) - всех сотрудников, живущих на одной ули­це. Если один атрибут входит в состав нескольких ключей, ключи перечисляются в скобках через запятую.

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

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

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

В некоторых случаях бывает целесообразно иметь в дочерней сущности ссылку не на первичный, а на альтернативный ключ. ERwin DM позволяет создавать связи, при которых в дочернюю сущность мигрируют атрибуты одного из альтернативных ключей. Для создания такой связи не­обходимо создать идентифицирующую или неидентифицирующую связь, щелкнуть по связи правой кнопкой мыши, выбрать пункт меню Relationship Properties, в открывшемся диалоге Relationships перейти на закладку Rolename и в выпадающем списке Migrated Key выбрать ключ, атрибуты которого будут мигрировать в дочер­нюю сущность. В результате в дочерней сущности внешний ключ будет содержать атрибуты альтернативного ключа родительской сущности (рис. 67).

Рис. 67. Пример миграции атрибутов альтернативного ключа.

Домены

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

В ERwin DM домен может быть определен только один раз, и использоваться как в логической, так и в физической модели. Домен может быть создан на основе другого домена, и наследовать все свойства домена-родителя. По умолчанию ERwin DM имеет четыре предопределенных домена: String, Number, Blob, Datetime.

Создать домен можно в закладке Model навигатора модели Model Explorer. Для этого следует выбрать родительский домен из списка Domains, щелкнуть по нему правой кнопкой мышки и выбрать пункт Properties. В появившемся диалоге Domain Dictionary в закладке General (рис. 68) щелкнуть по кнопке New.

Рис. 68. Диалог Domain Dictionary.

В появившемся диалоге New Domain (рис. 69) требуется указать имя домена в поле Logical Name. Можно указать имя домена на физическом уровне в поле Physical Name, после чего нажать ОК. Если не указывать физическое имя, то по умолчанию оно скопируется из логического имени.

Рис. 69. Диалог New Domain.

В диалоге Domain Dictionary в закладке General можно также связать домен с иконкой (список Domain Icon на рис. 68), с которой он будет отображаться в списке доменов, а также с иконкой, которая будет отображаться у атрибута, определенного на домене (список Icon Inherited by Attribute на рис. 68). В строке ввода Name Inherited by Attribute можно задать правило формирования имен атрибутов, порождаемых из домена. В правиле используются макросы ERwin DM.

В закладке Datatype можно указать абстрактный тип данных домена и обязательность значений (опция Not Nulls). Соответствие абстрактных типов данных и типов данных конкретного сервера можно настроить в диалогах Model Datatype Options и Datatype Standards Editor (меню Tools/Datatypes). В закладке Constraint определяют правила валидации – правила проверки допустимых значений (раздел Validation Constraint) и значение по умолчанию (раздел Default). Правила валидации и значения по умолчанию должны быть предварительно описаны и именованы. Каждому домену можно дать описание в закладке Definition, ввести комментарий в закладке Note, означить пользовательские свойства в закладке UDP.

Для создания атрибута на основе домена следует выбрать домен в списке доменов окна навигатора Model Explorer и «перетащить» его в сущность на диаграмме (см. рис. 12). В результате в сущности создастся новый атрибут, причем имя атрибута будет сформировано согласно правилу, заданному в поле Name Inherited by Attribute диалога Domain Dictionary. Например, если в правило состоит из макроса %AttDomain, то имя атрибута будет совпадать с именем домена-родителя, а если правило имеет вид %AttDomain %OwnerEntity, то имя порождаемого из домена атрибута будет составлено из имени домена и имени сущности, в которую «перемещен» домен, разделенных пробелом. Так на рис. 12 домен с именем ИД «перетащили» в сущность Тест, в результате чего автоматически создался атрибут с именем ИД тест.

На физическом уровне диалог Domain Dictionary позволяет редактировать физические свойства домена. Для переключения на физический уровень следует в верхней части диалога в списке Edit Mode (рис. 68) выбрать Physical. На физическом уровне диалог содержит другой набор закладок: General, SQL Server (или другое имя в зависимости от выбранного сервера базы данных), Constraint, Comment, UDP, - но по смыслу они похожи на соответствующие закладки логического уровня.







Дата добавления: 2014-11-10; просмотров: 2920. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия