
- •Проектирование баз данных
- •Моделирование в eRwin
- •Лабораторная работа 1 Рабочее пространство проектировщика.
- •Компоненты диаграммы eRwin и основные виды представлений диаграммы
- •Отображение логического и физического уровня модели данных в eRwin
- •Инструменты для создания модели в eRwin
- •Графическое редактирование модели
- •Хранение информации в модели eRwin
- •Настройка режимов отображения
- •Упражнение 1.1. Рабочее пространство.
- •Упражнение 1.2. Отображение информации в модели.
- •Упражнение 2.1. Создание (добавление) сущностей и атрибутов.
- •Упражнение 2.2. Определение доменов
- •Лабораторная работа 3. Связи (relationships) в eRwin
- •Связи категоризации
- •Упражнение 3.1. Создание связей между сущностями.
- •Лабораторная работа 4. Индексы.
- •Унификация атрибутов
- •Упражнение 4.1. Создание альтернативного индекса
- •Упражнение 4.2. Унификация атрибутов.
- •Лабораторная работа 5. Проектирование представлений (View)
- •Упражнение 5.1. Изменение представлений (запросов)
- •Упражнение 5.2. Создание представлений (запросов)
- •Лабораторная работа 6. Прямое проектирование (Forward engineering)
- •Упражнение 6.1. Генерация схемы базы данных методом прямого проектирования
- •Лабораторная работа 7. Обратное проектирование (Reverse engineering)
- •Упражнение 7.1. Reverse Engineering – построение модели данных на основе существующей базы данных.
- •Лабораторная работа 8. Синхронизация с базой данных
- •Упражнение 8.1. Синхронизация модели данных и базы данных
- •Лабораторная работа 9. Генерация отчетов
- •Упражнение 9.1. Создание отчетов.
- •Пример разработки модели в eRwin
- •Интерфейсы к субд
- •Заключение
- •Литература
Связи категоризации
Некоторые сущности определяют целую категорию объектов одного типа. В ERwin в таком случае создается сущность для определения категории и для каждого элемента категории, а затем вводится для них связь категоризации. Родительская сущность категории называется супертипом, а дочерние - подтипом. Например, сущность "сотрудник" может содержать данные как о штатных работниках, так и о временно нанятых. Первые и вторые имеют различные, частично пересекающиеся наборы атрибутов (минимальное пересечение подтипов составляет первичный ключ). Общая часть этих атрибутов, включая первичный ключ, помещается в сущность-супертип "сотрудник". Различная часть (например, данные почасовой оплаты для временных работников и данные о зарплате и отпуске для штатных работников), помещается в сущности-подтипы. В сущности-супертипе вводится атрибут-дискриминатор, позволяющий различать конкретные экземпляры сущности - подтипа. В зависимости от того, все ли возможные сущности-подтипы включены в модель, категорийная связь является полной или неполной. Продолжая пример, если супертип может содержать данные об уволенных сотрудниках, то эта связь - неполной категоризации, так как для него не существует записи в сущностях - подтипах. В ERwin полная категория изображается окружностью с двумя подчеркиваниями, а неполная - окружностью с одним подчеркиванием.
Упражнение 3.1. Создание связей между сущностями.
Откройте файл emovies.er1.
Установите логический уровень отображения.
Соедините Store и Employee неидентифицирующей связью 1:М, Store – родительская сущность.
Вызовите Relationship Editor. Дайте название связи – employs по направлению от родительской сущности к дочерней.
Настройте отображение Verb Phrases в Display Options/Relationships и Show Migrated Attributes в Display Options/Entities.
Лабораторная работа 4. Индексы.
Кроме первичных и внешних ключей ERwin поддерживает альтернативные и инверсные ключи. Альтернативный ключ - это атрибут (или группа атрибутов), несовпадающий с первичным ключом и уникально идентифицирующий экземпляр сущности. Например, для сущности служащий (идентификатор служащего, фамилия. имя, отчество) группа атрибутов "фамилия", "имя", "отчество" может являться альтернативным ключом (в предположении, что на предприятии не работают полные тезки).
Альтернативные ключи - уникальны, они определяются для повышения эффективности работы приложения с данными. Инверсные ключи служат для доступа к группе записей. ERwin позволяет автоматически получить индексы в среде целевой СУБД: на основе первичных, внешних, альтернативных ключей и инверсных ключей.
Унификация атрибутов
Зависимая сущность может наследовать один и тот же внешний ключ от более чем одной родительской сущности, или от одной и той же родительской сущности через несколько связей. Если не введены различные роли для такого множественного наследования, ERwin «считает», что в зависимой сущности атрибуты внешнего ключа появляются только один раз. Унификация - это объединение двух или более групп атрибутов внешних ключей в один внешний ключ (группу атрибутов), в предположении, что значения одноименных атрибутов в дочерней сущности всегда одинаковы. Рассмотрим пример: сущность "сотрудник" имеет первичный ключ "код сотрудника" и связан идентифицирующей связью с сущностями "супруга" и "дети". При этом происходит миграция первичного ключа в зависимые сущности. В свою очередь, сущность "супруга" связана неидентифицирующей связью с сущностью "дети". Имеются два пути миграции ключа, однако в сущности "дети" атрибут "код сотрудника" появляется один раз в качестве элемента первичного ключа. Существуют случаи, когда унификация атрибутов дает неверный с точки зрения предметной области результат. Для отмены унификации для атрибутов вводятся имена ролей.