Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

metod_erwin

.pdf
Скачиваний:
51
Добавлен:
31.03.2015
Размер:
387.3 Кб
Скачать

Рис. 7. Диалоговое окно Relationship Editor

3.3.Ограничение ссылочной целостности

Задание ссылочной целостности, а также указание ролей производится на закладке Rolename/ RI Action панели диалога редактора связей (рис. 8) после создания атрибутов.

21

Рис. 8. Диалоговое окно Relationship Editor

3.3.Мощность связи

Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.

ERwin в соответствии с методологией IDEF1X предоставляет четыре варианта для связей, которые изображаются дополнительным символом у дочерней сущности: ноль, один или больше (по умолчанию); ноль или один; ровно N, где N - конкретное число. Допустимость пустых (NULL) значений в неидентифицирующих связей ERwin изображает пустым ромбиком на дуге связи со стороны родительской сущности. Обозначения мощности соответственно ноль, один или больше, один или больше, ноль или один в нотации IE приведены на рис. 9.

22

Рис.9. Обозначения мощности связи в нотации IE

3.4.Имя связи

Имя связи на логическом уровне представляет собой "глагол", связывающий сущности. Физическое имя связи (которое может отличаться от логического) для ERwin означает имя ограничения (constraint) или индекса.

3.Категоризация

Некоторые сущности определяют целую категорию объектов одного типа. В ERwin в таком случае создается сущность для определения категории и для каждого элемента категории, а затем вводится для них связь категоризации. Родительская сущность категории называется супертипом, а дочерние - подтипом. Например, сущность "сотрудник" может содержать данные как о штатных работниках, так и о временно нанятых. Первые и вторые имеют различные, частично пересекающиеся наборы атрибутов (минимальное пересечение подтипов составляет первичный ключ). Общая часть этих атрибутов, включая первичный ключ, помещается в сущность- супертип "сотрудник". Различная часть (например, данные почасовой оплаты для временных работников и данные о зарплате и отпуске для штатных работников) помещается в сущности-подтипы. В сущности-супертипе вводится атрибут- дискриминатор, позволяющий различать конкретные экземпляры сущности - подтипа. В зависимости от того, все ли возможные сущности-подтипы включены в модель,

23

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

моделирования категорий служит кнопка в палитре инструментов.

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

Упражнение 3.1. Создание связей между сущностями.

1. Составить описание данной предметной области при помощи ряда

истинных высказываний на естественном языке для определения связей между сущностями. Например, сущности СДЕЛКА-КЛИЕН-КАССИР могут иметь такое описание связей:

Любой КЛИЕНТ должен совершить одну или несколько СДЕЛОК. Каждую СДЕЛКУ должен совершить один Клиент.

Любой КАССИР может обслуживать одну или несколько СДЕЛОК, но может не обслужить и ни одной.

На основе этих описаний формируются связи: КЛИЕНТ совершает СДЕЛКУ.

КАССИР обслуживает СДЕЛКУ.

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

3.Установить логический уровень отображения.

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

5.Вызвать Relationship Editor. Назвать связи глаголом или глагольной фразой.

6.Настроить отображение Verb Phrases в Display Options/ Relationships и Show Migrated Attributes в Display Options/Entities.

Упражнение 3.2. Задание ограничений ссылочной целостности RI Actions (или указание ролей).

1.Открыть файл с готовой моделью.

2.Открыть редактор связей Relationship Editor. Выбрать закладку

Rolename/RI Actions.

3.Установить ограничения ссылочной целостности для всех связей.

4.Создать рекурсивную связь в одной из сущностей по смыслу.

24

5.В рекурсивной связи сущности найти внешний ключ.

6.Дайте уникальное имя внешнему ключу.

7.Включить отображение имени роли в настройках экрана.

Лабораторная работа № 4 Индексы

Цель работы: Создание альтернативных и инверсных ключей.

Кроме первичных и внешних ключей ERwin поддерживает альтернативные и инверсные ключи.

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

Инверсные ключи служат для доступа к группе записей. ERwin позволяет автоматически получить индексы в среде целевой СУБД: на основе первичных, внешних, альтернативных ключей и инверсных ключей.

4.1. Унификация атрибутов

Зависимая сущность может наследовать один и тот же внешний ключ от более чем одной родительской сущности, или от одной и той же родительской сущности через несколько связей. Если не введены различные роли для такого множественного наследования, ERwin «считает», что в зависимой сущности атрибуты внешнего ключа появляются только один раз.

Унификация - это объединение двух или более групп атрибутов внешних ключей в один внешний ключ (группу атрибутов), в предположении, что значения одноименных атрибутов в дочерней сущности всегда одинаковы. Рассмотрим пример: сущность "сотрудник" имеет первичный ключ "код сотрудника" и связан идентифицирующей связью с сущностями "супруга" и "дети". При этом происходит миграция первичного ключа в зависимые сущности. В свою очередь, сущность

25

"супруга" связана неидентифицирующей связью с сущностью "дети". Имеются два пути миграции ключа, однако в сущности "дети" атрибут "код сотрудника" появляется один раз в качестве элемента первичного ключа. Существуют случаи, когда унификация атрибутов дает неверный с точки зрения предметной области результат. Для отмены унификации для атрибутов вводятся имена ролей.

Упражнение 4.1. Создание альтернативного ключа.

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

2.Для вызова данного редактора кликнуть правой кнопкой мыши на сущности и выбрать пункт Key Group Editor, нажать New.

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

Упражнение 4.2. Создание альтернативного индекса.

1.Открыть редактор индексов Access Index (Access – в данном случае СУБД). Создать альтернативный индекс с именем альтернативного ключа.

2.Установить выбранноеполе в качестве альтернативного ключа.

3.Настроить опцию отображения Alternate Key Designator в Display Options /

Tables.

Упражнение 4.3. Унификация атрибутов.

1.В рекурсивной связи сущности (упр. 3.2) найти внешний ключ.

2.Открыть редактор связей Relationship Editor. Выберите закладку Rolename/RI Actions. Дайте новое имя внешнему ключу.

3.Включить отображение имени роли в настройках экрана.

Лабораторная работа №5 Физический уровень модели

Цель работы: Создание физической модели. Проектирование представлений (View).

Перед тем как приступить к созданию физической модели, необходимо выбрать сервер СУБД. Для этого нужно переключиться на физическую модель и выбрать пункт меню Server/Target Server. Затем выбрать необходимый сервер СУБД. Вид панели диалога Target Server представлен на рис. 10.

26

Рис. 10. Диалоговое окно Target Server

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

создания английских имен таблиц необходимо воспользоваться редактором таблиц (рис.11), для остальных манипуляций редактором колонок (рис. 12).

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

27

Рис. 11. Диалоговое окно редактора таблиц

Рис. 12. Диалоговое окно редактора колонок

28

Когда содержимое базовых таблиц меняется, СУБД автоматически перевыполняет запросы, создающие view, что приводит к соответствующим изменениям в представлениях.

Представление определяется с помощью команды:

CREATE VIEW <имя_представления> [<имя_столбца>,...] AS <запрос> При этом должны соблюдаться следующие ограничения:

представление должно базироваться на единственном запросе (UNION не допустимо);

выходные данные запроса, формирующего представление, должны быть не упорядочены (ORDER BY не допустимо);

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

Кратко об ограничениях при изменении данных в представления:

1.Если представление основано на одной таблице, изменения данных в нем допускаются. При этом изменяются данные в связанной с ним таблице.

2.Если представление основано более чем на одной таблице, то изменения данных в нем не допускаются, т.к. в большинстве случаев СУБД не может правильно восстановить схему базовых таблиц из схемы представления.

Представление реализуется как запрос в терминах SQL. ERwin имеет специальные инструменты для создания и редактирования представлений.

Упражнение 5.1. Проектирование представлений (запросов).

1.Открыть файл с созданной моделью предметной области.

2.Установить физический уровень отображения модели.

3.Внести одно представление, позволяющее использовать данные из связанных таблиц (двух, трех). Дать ему имя.

4.ИспользоватьView Editor (правая кнопка мыши) для редактирования атрибутов представления.

Лабораторная работа №6 Генерация модели ERwin в конкретную СУБД

Цель работы: Осуществление прямого проектирования (Forward engineering) посредством генерации схемы базы данных.

Процесс генерации физической схемы БД из логической модели данных называется прямым проектированием. При генерации физической схемы ERwin

29

включает таблицы, колонки, первичные и внешние ключи, связи, представления, триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие возможности, доступные при определении таблиц в выбранной СУБД (рис.12).

Физический уровень представления модели зависит от выбранного сервера СУБД. ERwin поддерживает практически все распространенные СУБД, всего более 20 реляционных и нереляционных СУБД. При смене СУБД ERwin предлагает автоматически преобразовать тип данных, связанный с каждым атрибутом, на ближайший, доступный для новой СУБД.

Имена таблиц и колонок по умолчанию будут сгенерированы на основе сущностей и атрибутов логической модели, учитывая максимальную длину имени и другие синтаксические ограничения, накладываемые СУБД. Если в имени сущности или атрибута встречается пробел, он будет заменен на символ подчеркивание. Все сделанные изменения не отражаются на именах сущностей и атрибутов, поскольку информация на логическом и физическом уровнях в ERwin хранится отдельно.

ERwin поддерживает правила валидации для колонок, а также значение, присваиваемое колонкам по умолчанию. Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. Значение по умолчанию значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию (если выбранная СУБД поддерживает домены).

Упражнение 6.1. Генерация схемы базы данных методом прямого проектирования.

1.Создать в выбранной СУБД Access файл базы данных и закрыть его.

2.Открыть файл с готовой моделью.

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

Forward Engineer/Schema Generation. Выбрать кнопку Preview. Посмотреть код,

сгенерированный автоматически (рис. 13,14).

4.Выбрать кнопку Generate.

Вокне Access Connection набрать admin в качестве имени пользователя, пароль не надо, файл с БД настроить на только что созданный. Если появилось окно не Access Connection, а другое, необходимо настроить сервер базы данных (Server / Target Server).

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]