В процессе выполнения лабораторной работы Вы узнаете:

В процессе выполнения лабораторной работы Вы научитесь:

Типы ключей

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

Первичный ключ (Primary Key) – это атрибут или набор атрибутов, уникально идентифицирующий экземпляр сущности.

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

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

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

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

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

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

Альтернативные ключи выбираются из числа потенциальных ключей, не ставших первичными.

Альтернативный ключ позволяет найти данные об одном  экземпляре сущности более удобным способом (в отличии от первичного ключа), например по атрибутам более понятным, чем атрибуты первичного ключа: проще искать информацию о клиенте не по его коду(этот код клиент как правило не знает, а менеджер не помнит), а по группе атрибутов фамилии+имя+отчество.

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

 

Задание 1. Назначение альтернативных ключей сущности Сотрудник

Шаг 1. Загрузите файл сохраненной логической модели Lab4.er.

Далее необходимо вызвать диалог Key Group для сущности Сотрудник , для этого нужно выполнить следующие шаги:

Шаг 2. Щелкните правой клавишей мышки на сущности Сотрудник

Шаг 3. В появившемся меню выберите пункт Key Groups (рис. 1).

Рис. 1. Вызов диалога Key Groups

Перед Вами появится диалоговое окно Key Group (рис. 2).

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

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

Шаг 4. Для создания альтернативного ключа необходимо щелкнуть по кнопке New в диалоге Key Groups. Появится диалог New Key Group (рис. 3).

Рис. 3. Диалог New Key Group

В нижней части диалогового окна New Key Group нужно выбрать тип ключа: альтернативный ключ (Alternate Key) или инверсионный вход (Inversion Entry). Имя нового ключа присваивается автоматически («Alternate Key N» для альтернативного ключа и «Inversion Entry N» для инверсионного входа, где N – порядковый номер ключа).

Каждому ключу соответствует индекс, имя которого также присваивается автоматически (XAKnENTITY для альтернативного ключа и XIEnENTITY для инверсионного входа, где N – порядковый номер ключа, ENTITY – имя сущности).

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

Шаг 5. В диалоге New Key Group выберите тип ключа Alternate Key.

В состав первого альтернативного ключа сущности Сотрудник должны быть включены атрибуты Фамилия, Имя, Отчество, Дата рождения, сущности Сотрудник, поэтому назовем альтернативный ключ №1 – ФИО Дата рождения.

Шаг 6. Введите в поле Name наименование первого альтернативного ключа ФИО Дата рождения

Шаг 7. Выделите атрибут Фамилия в левом списке Available Attributes диалога Key Group.

Шаг 8. Щелкните по кнопке диалога Key Group Editor. Атрибут Фамилия переместится в правый список Key Group Members.

Шаг 9. Таким же способом перенесите в список Key Group Members атрибуты Имя, Отчество и Дата рождения (рис. 4).

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

Мы с вами описали атрибуты Фамилия, Имя, Отчество, Дата рождения для сущности Сотрудник, как альтернативный ключ.

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

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

Для отображения альтернативных ключей нужно:

Шаг 10. Вызвать контекстное меню в любом месте диаграммы, не занятом объектами модели, выбрать пункт Entity Display.

Шаг 11. В появившемся меню включить опцию Alternate Key Designator (AK) (рис. 5).

Рис. 5. Отображение номеров альтернативных ключей

Результат проделанной работы смотри на рис. 6.

Рис. 6. Отображение первичного альтернативного ключа сущности Сотрудник на диаграмме

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

Задание 2. Создание инверсионного входа для атрибутов сущности Сотрудник

В состав инверсионных входов сущности Сотрудник должны входить атрибуты Должность и Дата рождения

Для создания инверсионных входов, выполните следующие действия:

Шаг 1. . В контекстном меню, появившемся при щелчке по сущности Сотрудник, выберите пункт Key Groups (рис. 1).

Шаг 2. Вызовите диалог New Key Group, нажав кнопку New в диалоговом окне Key Groups (рис. 2).

Шаг 3. В диалоге New Key Group выберите тип создаваемого ключа инверсионный вход (Inversion Entry) (рис. 7).

Рис. 7. Диалог New Key Group

Шаг 4. В поле Name введите имя инверсионного входа – Общие сведения о сотруднике (рис. 8).

Рис. 8. Присвоение имени инверсионному входу

Шаг 5. В диалоге Key Groups выделите атрибут Дата рождения в списке Available Attributes.

Шаг 6. Щелкните по кнопке диалога Key Group Editor. Атрибут Дата рождения переместится в правый список Key Group Members.

Шаг 7. Те же действия выполните для атрибута Должность (рис. 9)

Рис. 9. Добавление атрибутов в состав инверсионного входа

Шаг 8. Нажмите кнопку ОК

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

Рис. 10. Отображение первого инверсионного ключа сущности Сотрудник на диаграмме

Задание 3. Самостоятельно выполните следующие действия:

Шаг 1. Добавьте в сущности Сотрудник атрибут Номер паспорта

Шаг 2. . Создайте второй альтернативный ключ сущности Сотрудник для атрибутов Номер паспорта и Номер кабинета.

Шаг 3. Создайте второй инверсионный вход сущности Сотрудник для атрибутов Номер кабинета, Номер телефона.

Шаг 4. Создайте третий инверсионный вход сущности Сотрудник для  атрибута Оклад.

Результат выполнения представлен на рис. 11.

Рис. 11. Результат выполнения задания 3

Задание 4.
1. В своем проекте в соответствии с бизнес правилами задайте не менее 5 альтернативных ключей и 8 инверсных входов.

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

Имя сущности Имя и тип ключа Назначение ключа Бизнес-правило
         

 

Ответьте на следующие вопросы и покажите преподавателю результат выполнения лабораторной работы.

Контрольные вопросы.

  1. Назовите известные Вам типы ключей и опишите их назначение, способы задания и обозначение.
  2. Как внести атрибут в состав альтернативного ключа?
  3. Как внести атрибут в состав инверсионного входа?
  4. Как отобразить номера ключей на диаграмме?
  5. Для чего альтернативным ключам и инверсионными входам присваиваются смысловые имена?