
- •Финансовый университет при правительстве российской федерации
- •Ббк 32.973.202я73
- •Занятие № 1. Знакомство с case-средством eRwin
- •1. Использование eRwin для составления моделей бд
- •1.1. Область применения
- •1.2. Уровни представления и отображение модели данных
- •1.3. Документирование модели
- •1.4. Масштабирование модели
- •1.5. Этапы построения информационной модели
- •2. Подключение учебного примера
- •2.1. Запуск eRwin
- •2.2. Отключение ModelMart
- •2.3. Подключение файла учебной модели
- •3. Инструментарий eRwin
- •3.1. Окно модели
- •3.2. Панели инструментов
- •3.3. Панель инструментов Стандартная
- •4. Методология idef1x
- •4. 1. Логические модели
- •4.2. Физические модели
- •5. Логический и физический уровни модели данных
- •6. Переключение нотаций
- •7. Режимы отображения модели
- •8. Задания
- •9. Контрольные вопросы
- •Занятие № 2. Создание логической модели простой базы данных
- •Создать логическую модель простой базы данных:
- •1. Предварительная подготовка
- •2. Логическое моделирование
- •3. Erd-диаграммы
- •4. Режимы отображения модели
- •5. Порядок выполнения работы
- •5.1. Создание модели
- •5.2. Создание сущностей Сущности (Entity) в eRwin
- •4.3. Определение атрибутов сущностей Атрибуты (Attribute) в eRwin
- •4.4. Создание первичных ключей Ключи в eRwin
- •4.5. Создание логических связей Связи в eRwin
- •4.6. Создание внешних ключей Внешние ключи в eRwin
- •4.7. Задание типа данных для атрибутов Типы данных атрибутов
- •5. Задания
- •5. Контрольные вопросы
- •Занятие № 3. Создание логической модели сложной базы данных
- •Создать логичекую модель сложнойбазы данных:
- •1. Порядок выполнения работы
- •2. Модели сложных бд
- •2. Выравнивание и группировка объектов
- •3. Хранимые изображения
- •Для отображения Атрибуты
- •4. Цветовое и шрифтовое оформление компонентов модели
- •5. Графическое оформление компонентов модели
- •6. Задания
- •7. Контрольные вопросы
- •Занятие № 4. Создание физической модели базы данных
- •1. Уровни физической модели
- •2. Прямое проектирование
- •3. Создание физической модели
- •4. Панели инструментов для работы с бд
- •5. Порядок выполнения работы
- •6. Задания
- •7. Контрольные вопросы
- •Занятие № 5. Построение модели данных на основе базы данных
- •1. Обратное проектирование
- •2. Порядок выполнения работы
- •Для того, чтобы продолжить нормализацию данных, приведем данные ко второй нормальной форме (2нф).
- •3. Задания
- •4. Контрольные вопросы
- •Занятие № 6. Синхронизация модели данных и базы данных
- •1. Синхронизация модели данных и базы данных
- •2. Порядок выполнения работы
- •2.1. Прямая синхронизация
- •2.2. Обратная синхронизация
- •5. Задания
- •6. Контрольные вопросы
- •Занятие № 7. Формирование отчетов
- •1. Отчеты
- •2. Порядок выполнения работы
- •2.1. Построитель шаблонов отчетов (Report Template Builder)
- •Вариант 1. Использование готовых шаблонов отчетов
- •Column Report - Physical Only Model: OtpuskTovarov2 April 04, 2008
- •Вариант 2. Создание своего шаблона отчета
- •Запуск созданного шаблона на выполнение
- •Применение созданного шаблона для другой модели
- •2.2. Генератор отчетов Data Browser
- •Запуск и инструменты генератора отчетов
- •Создание отчета
- •Генерация (выполнение) отчета
- •Редактирования отчета
- •Использование отчетов для проверки правильности построения модели
- •Экспорт отчетов
- •Атрибуты
- •Форматы экспорта
- •3. Задания
- •4. Контрольные вопросы
- •Литература
- •Словарь терминов
- •Оглавление
- •Кузнецов Лонгин Константинович программная инженерия
4.4. Создание первичных ключей Ключи в eRwin
Для организации связи между сущностями, а в последствии между таблиццами БД, в Erwin используются ключи.
Первичные ключи
Первичный ключ – это атрибут или группа атрибутов, однозначно идентифицирующий экземпляр сущности. Первичный ключ должен обеспечить уникальную идентификацию экземпляра сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком на основании анализа предметной области.
Первичный ключ, состоящий из нескольких атрибутов, принято называть сложным.
Каждая сущность должна обладать первичным ключом.
При отображении сущностей в моделях атрибуты сущности разделяются горизонтальной линией на две группы. Атрибуты сущности, образующие первичный ключ, располагаются над горизонтальной линией (рис. 27).
Рис. 27. Отображение первичных ключей
Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.
Обычно в одной сущности оказывается несколько атрибутов или набор атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (Candidate Key).
Каждая сущность должна иметь, по крайней мере, один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные альтернативными ключами. Альтернативный ключ (Alternate Key) – это потенциальный ключ, не ставший первичным. ERwin позволяет выделить атрибуты альтернативных ключей, и по умолчанию в дальнейшем при генерации схемы БД по этим атрибутам будет генерироваться уникальный индекс.
При создании альтернативного ключа на модели (рис. 27) рядом с атрибутом появляются символы (AK). Когда альтернативный ключ содержит несколько атрибутов, (AKn.m) ставится после каждого. На рис. 27 атрибуты НомерПокупки – основной ключ и входит в альтернативный ключ № 1, ИндексОперации – альтернативный ключ № 1 и внешний ключ, ИндексКлиента – внешний ключ № 2. Если один атрибут входит в состав нескольких ключей, ключи перечисляются в скобках через запятую (атрибут ИндексОперации входит в состав АК1 и FK1). По умолчанию номера альтернативных ключей рядом с именем атрибута на диаграмме не показываются. Для отображения номера следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту модели, не занятому объектами модели, выбрать пункт контекстного меню Entity Display и затем включить опцию Alternate Key Designator (AK).
При работе ИС часто бывает необходимо обеспечить доступ к нескольким экземплярам сущности, объединенным каким – либо одним признаком для повышения производительности в этом случае используются неуникальные индексы. ERwin позволяет на уровне логической модели назначить атрибуты, которые будут участвовать в неуникальных индексах. Такие атрибуты называются инверсными входами (Inversion Entries). Инверсный вход – это атрибут или группа атрибутов, которые не определяют экземпляр сущности уникальным образом, но часто используется для обращения к экземплярам сущности. ERwin генерирует неуникальный индекс для каждого инверсионного входа.
Первичный ключ, выбранный при создании логической модели, может быть неудачным для осуществления эффективного доступа к БД и должен быть изменен при проектировании физической модели.
Выбор первичного ключа
Выбор первичного ключа является непростой задачей, решение которой влияет на эффективность будущей ИС. При выборе первичного ключа должны выполняться определенные правила. Особенности выбора первичного ключа рассмотрим на примере сущности Сотрудник (рис. 28). Здесь можно выделить следующие потенциальные ключи:
1. Табельный номер;
2. Номер паспорта;
3. Фамилия + Имя + Отчество.
Для того, чтобы стать первичным, потенциальный ключ должен удовлетворять требованиям:
Сотрудник |
| |
|
| |
Табельный номер Фамилия Имя Отчество Номер паспорта Должность Номер комнаты Город Улица Дом |
| |
|
| |
Рис. 28. Определение первичного ключа для сущности Сотрудник | ||
|
первичный ключ должен быть уникальным, т. е. два экземпляра не должны иметь одинаковых значений возможного ключа. Потенциальный ключ № 3 (Фамилия + Имя + Отчество) является плохим кандидатом, поскольку в организации могут работать полные тезки. Потенциальный ключ № 3 удовлетворяет требованию уникальности, при условии, что табельные номера уволенных сотрудников не присваиваются вновь принятым на работу;
первичный ключ должен быть подобран таким образом, чтобы по значениям атрибутов, в него включенных, можно было точно идентифицировать экземпляр сущности;
первичный ключ должен быть компактен, то есть удаление любого атрибута из состава первичного ключа должно приводить к потере уникальности экземпляра сущности. Для обеспечения уникальности ключа № 3 дополним его атрибутами Дата рождения и Цвет волос. Если бизнес-правила говорят, что сочетания атрибутов Фамилия + Имя + Отчество + Дата рождения достаточно для однозначной идентификации сотрудника, то Цвет волос оказывается лишним, т. е. ключ Фамилия + Имя + Отчество + Дата рождения + Цвет волос не является компактным;
атрибуты ключа не должны содержать нулевых значений. Например, если принять в качестве первичного ключа номер паспорта, необходимо быть уверенным, что все сотрудники имеют паспорта. Если допускается, что сотрудник может не иметь паспорта или вместо паспорта иметь какое-либо другое удостоверение личности, то ключ № 2 не подойдет на роль первичного ключа.
если для обеспечения уникальности необходимо дополнить потенциальный ключ дополнительными атрибутами, то они не должны содержать нулевых значений. Дополняя ключ № 3 атрибутом Дата рождения, нужно убедиться в том, что даты рождения известны для всех сотрудников;
можно внести в сущность дополнительный специальный атрибут и сделать его ключом. Так, для определения первичного ключа часто используют уникальные номера, которые могут автоматически генерироваться системой при добавлении экземпляра сущности в БД. Применение уникальных номеров облегчает процесс индексации и поиска в БД;
значения атрибутов первичного ключа не должны меняться в течение всего времени существования экземпляра сущности, если значение изменилось, значит, это уже другой экземпляр сущности. Например, сотрудница организации может выйти замуж и сменить как фамилию, так и паспорт, поэтому первый и второй потенциальные ключи не могут стать первичными;
при выборе первичного ключа предпочтение должно отдаваться более простым ключам, т.е. ключам, содержащим меньшее количество атрибутов. В примере ключи № 1 и 2 предпочтительней ключа № 3.
12. Задайте первичные ключи для сущностей
12.1. С помощью кнопки
Атрибуты
на панели инструментовСтандартная
перейдите
в режим отображения модели на уровне
атрибутов.
12.2. Сделайте двойной щелчок мышью по нужной сущности, например, Товар.
12.3. Появится окно Attributes (рис. 29).
Рис. 29. Вид окна Attributes
12.4. В разделе Attribute выберите атрибут, используемый в качестве первичного ключа, например Артикул, а на вкладке General включите режим Primary Key (рис. 30).
12.5. Обратите внимание, что у атрибута Артикул в разделе Attribute (рис. 30) появился ярлык с изображением ключа.
Рис. 30. Выбор первичного ключа
12.6. Повторите операции 12.2-12.4 для сущности Заказ и задайте в качестве первичного ключа атрибут НомерЗаказа.
12.7. Проанализировав имеющиеся атрибуты: Фирма, Адрес, Телефон для сущности Клиент, делаем вывод, что ни один из этих атрибутов нельзя использовать в роли первичного ключа. Поэтому для сущности Клиент введем дополнительный атрибут КодКлиента (операции 11.2-11.7) и объявим его первичным ключом (операции 12.2-12.4).
12.8. После задания ключевых атрибутов для всех сущностей вид модели показан на рис. 30.
12.9. Обратите внимание, что горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора – атрибуты, составляющие первичный ключ в верхней части, и прочие (не входящие в первичных ключ) – в нижней части.
Рис. 30. Вид модели с ключевыми атрибутами