Реферат: Моделирование в ERwin. Установление связей между сущностями Технологический процесс создания физической модели данных

Соглашения

Примем некоторые соглашения для краткости последующего изложения:

· Щелчок - нажатие на левую кнопку мыши.

· Правый щелчок - нажатие на правую кнопку мыши.

· Двойной щелчок - два последовательных нажатия на кнопку мыши

· Выбрать - подвести курсор к соответствующему объекту (элементу диаграммы, пункту меню, пиктограмме) и щелкнуть левой кнопкой мыши.

· Перетащить- выбрать объект и, не отпуская кнопку мыши, переместить курсор в другое положение.

· Запись типа File/Open означает, что нужно выбрать пункт меню File, a затем из раскрывшегося меню - пункт Open.

Рабочий стол ERwin

На рис. 1 представлен рабочий стол программного продукта ERwin фирмы Logic Works.

Рис.1- Рабочий стол Erwin.

На рисунке 1 цифрами обозначено:

1- главное меню;

2- панель инструментов;

3- набор специальных инструментов;

4- панель шрифтов и цветов;

5- поле диаграммы.

Рассмотрим подробнее составные части рабочего стола.

Главное меню содержит команды общего назначения. Заметим, что большинство этих команд дублируются либо пиктограммами панели инструментов, либо пунктами меню, всплывающего по правому щелчку мыши. Поэтому остановимся сейчас на командах, относящихся к общему виду рабочего стола. Пункт Window имеет следующие подпункты:

Toolbar - панель инструментов;

Font & Color Toolbar - панель шрифтов и цветов;

Statusbar - строка состояния;

ERwin Toolbox - набор специальных инструментов.

Если какой-либо из перечисленных пунктов не отмечен, то соответствующий элемент не отображается на рабочем столе. Пункты Option / Show Display Menu и Option / Show Editor Menu добавляют в главное меню дополнительные 1гуш;ты: Display и Editor.

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

Работа с файлами:

Создать новую диаграмму;

Открыть существующую диаграмму;

Отправить диаграмму на печать.

Заметим, что эти пиктограммы дублируются командами пункта главного меню File.



Уровни представления модели:

Уровень сущностей;

Уровень атрибутов;

Уровень описания;

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

Эти инструменты дублируются пунктом меню Display. Он содержит дополнительные уровни представления: Primary Key Level - демонстрируются только первичные ключи, Physical Order Level - атрибуты не делятся на ключевые и неключевые.

Масштабирование:

Уменьшить;

Увеличить;

Без увеличения;

Наиболее мелкий (дальнейшее уменьшение приведет к нечитаемости схемы);

Просмотреть часть (после выбора этого инструмента выделите на рабочем поле фрагмент, который нужно просмотреть).

Все действия этой группы дублируются пунктом Display/ /Zoom.

Работа с сервером:

Сгенерировать скрипт для сервера;

Подключиться к серверу;

Выбрать сервер.

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

Выбор объекта;

Манипулирование атрибутами;

Независимая сущность;

Зависимая сущность;

Полное разбиение на категории;

Неполное разбиение на категории;

Идентифицирующая связь «один ко многим»;

Неидентицирующая связь «одой ко многим»;

Связь «многие ко многим»;

Текстовая метка.

КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ

Создание сущностей

Сущности на концептуальной схеме могут быть зависимыми и независимыми. На диаграмме любая сущность изображается прямоугольником. Над ним располагается имя сущности. Прямоугольник разбит на две части: верхняя - область первичного ключа; нижняя - область остальных атрибутов. При построении сущности прямоугольник первоначально пустой, а имя имеет вид E/n (например, Е/1, Е/2 и т.д.).

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

Если проектировщика не устраивает положение сущности на поле, то нужно выбрать пиктограмму «Указать на объект» из набора специальных инструментов и перетащить сущность на новое место. Для удаления выделенной сущности воспользуйтесь клавишей Delete на клавиатуре. Изменить размеры прямоугольника, изображающего сущность, можно, выбрав пункт главного меню Option / Entity Size. Пункт меню Option / Layout применяется для упорядочения положения сущностей на поле.

Теперь определим имя сущности и характерные для нее атрибуты. Для этого служит пункт Entity-Attribute из меню, всплывающего по правому щелчку мыши. В поле Entity Name открывшегося редактора вводится название сущности. Используя переключатель, можно изменить зависимость сущности. Поле редактирования Primary Key предназначено для ввода наименований атрибутов, составляющих первичный ключ. В поле Non-Key Attributes вводятся неключевые атрибуты. Заметим, что в обоих случаях для отделения атрибутов друг от друга используется клавиша Enter на клавиатуре. На рис. 2 приведен пример независимой сущности.

Рис. 2 - Независимая сущность

Для добавления расширенного описания сущности (Definition) и общего просмотра всех сущностей воспользуйтесь пунктом Report / Entity Browser.

В ERwin существует возможность манипулирования отдельными атрибутами. Для этого выберите пиктограмму «Манипулирование атрибутами». В таком режиме можно:

· Удалить атрибут. Для этого выделите отдельный атрибут и нажмите Delete на клавиатуре.

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

· Переместить атрибуты между сущностями. Методика этого действия аналогична предыдущей. Если при перемещении атрибута нажата клавиша Ctrl, то он скопируетеся в другую сущность.

Построение связей

Рассмотрим построение связей типа «один ко многим». Для этого выбрать из набора специальных инструментов соответствующую пиктограмму, затем щелкнуть последовательно на родителе и потомке. Идентифицирующая связь изображается сплошной линией и черной точкой у прямоугольника, отображающего потомка. Такая связь характеризуется перенесением первичного ключа родителя в состав идентификатора потомка. На рис. 3 изображена идентифицирующая связь «один ко многим».

Рис.3. – Идентифицирующая связь

Неидентифицирующая связь строится аналогичным образом. Она изображается пунктирной линией и ромбом у прямоугольника, отображающего родителя. Такой ромб означает, что существование родителя необязательно, т.е. поле внешнего ключа может иметь значение nul. Построение неидентифицирущей связи в ERwin характеризуется перенесением первичного ключа родителя в состав неключевых атрибутов потомка. На рис.4 приведена неидентифицирующая связь.

Рис. 4. - Неидентифицирующая связь

Как уже отмечалось, проектирование связи «многие ко многим» приводит к возникновению новой сущности. Пример построения связи этого типа между сущностями first и second приведен на рис. 5.

Рис. 5. - Связь вида "многие ко многим"

Просмотреть и изменить описание связи можно, используя пункт Rela­tionship из меню, всплывающего по правому щелчку мыши на связи. В открывшемся окне указываются:

· Название связи (поле Verb Phrase).

· Тип связи (Relationship Type): идентифицирующая (Identifying) или неидентифицирующая (Non-Identifying).

· Кардинальность связи (Cardinality). ERwin позволяет задать нижеприведенные виды связей.

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

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

3. Ноль или один. Кардинальность обозначается буквой Z.

4. Заданная. В этом случае поле Exactly должно содержать число, характеризующее кардинальность. Такая связь обозначается числом у прямоугольника, отображающего потомка.

· Возможность существования Null - значений (переключатель Nulls).

· Роль внешнего ключа. В этом случае название роли записывается в поле Role Name. При этом поле Foreign Key редактора содержит конструкцию <имя роли>.<имя первичного ключа родителя>.

Если на диаграмме не отображены имена или кардинальности связи, то необходимо поставить указатели напротив пунктов Display / Verb Phrase и Dis­play /Cardinality.

Для удаления связи нужно выбрать пиктограмму «Указать на объект», щелкнуть на соответствующей связи и нажать Delete на клавиатуре.

Разбиение сущностей на категории в ERwin показано на аналогично рис. 6.

Рис. 6 - Полное разбиение на категории

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

Полностью описать главную сущность;

Построить сущности-категории;

Выбрать пиктограмму полного или неполного разбиения на категории из набора специальных инструментов;

Щелкнуть на главной сущности;

Щелкнуть на одной из категорий;

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

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

ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ

Логическое проектирование начинают с выбора модели данных. Все СУБД, с которыми работает ERwin, являются реляционными, это и определяет выбор модели данных.

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

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

1. Restrict - запрещающая. Она характеризуется запрещением действий со связанными сущностями.

2. Cascade - каскадная. Такая стратегия заключается в осуществлении каскадных операций над связанными сущностями.

3. Set Null - нулевая. Эта стратегия заключается в установлении Null - значения поля.

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

На практике часто бывает, что не все связи какого-либо типа определяются одинаковыми стратегиями поддержки ограничений целостности. Для изменения стратегий по конкретной связи воспользуйтесь пунктом Referential Integrity из меню, всплывающего по правому щелчку на связи. Если на диаграмме отсутствует информация о выбранных стратегиях, поместите указатель напротив пункта Display / Referenda Integrity.

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

ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ

На этом этапе проектирования добавим дополнительные индексы к полученной схеме. Для этого воспользуйтесь пунктом <имя СУБД> Index меню, всплывающего по правому щелчку на сущности. В открывшемся окне нажмите кнопку New для построения нового индекса, после чего укажите атрибут для него, щелкнув на визуальном изображении этого атрибута. Заметим, что теперь на общей диаграмме атрибуты, по которым построены индексы, отмечены буквами АК. Это значит, что они являются альтернативными ключами.

ЗАДАНИЕ

1. Построить с использованием ERwin концептуальную схему базы данных для органа по сертификации. Описание предметной области приведено ниже.

Орган по сертификации аккредитован на выдачу сертификатов по некоторым видам продукции. Каждый вид продукции описывается кодом (согласно классификатору), наименованием типа (например, молочная продукция) и видом (например, молоко). На каждый вид продукции может существовать несколько нормативных документов, а действие каждого нормативного документа распространяется на несколько видов продукции. Нормативный документ характеризуется уровнем (ГОСТ, ОСТ и т.п.), номером и названием.

Сертификат выдается только на один вид продукции и только одному клиенту. Один и тот же клиент может обращаться в орган по сертификации несколько раз, поэтому нужно хранить информацию о клиентах (код организации, ее наименование, адрес и телефон).

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

Таблица 1

При этом нумерация заявок и деклараций является сквозной. Это значит, что если есть заявка под номером, то декларации под этим номером быть не должно.

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

2. Преобразовать концептуальную схему в таблицы выбранной СУБД с использованием ERwin. Построить триггеры.

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

1) «Отчеты» - право чтения на всю информацию (другие права отсутствуют);

2) «Справочники» - все права на информацию о сотрудниках, клиентах, продукции и нормативных документах;

3) «Документация» - все права на информацию о внутренней документации органа по сертификации и клиентах; право чтения на данные о продукции и нормативных: документах.

Отчет должен содержать:

Распечатку концептуальной схемы из ERwin;

Обоснование выбора стратегий поддержки ограничений целостности базы;

Структуру таблиц и триггеров;

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Какие виды связей могут существовать в предметной области?

2. Как устранить из схемы базы данных связь вида «многие ко многим»?

3. В чем различие идентифицирующей и неидентифицирующей связей?

4. В каких случаях возникает необходимость описания ролей внешних ключей?

5. Чем можно обосновать выделение категорий?

6. В чем различие полного и неполного разделения на категории?

7. Какие виды стратегий поддержки ограничений целостности применялись при выполнении лабораторной работы?


Список используемой литературы

1. Дейт К.Дж. Введение в системы баз данных.- Учеб. пособие: Пер.с англ. – 6-е изд. – М.и др.: Вильямс, 2000. – 846 с.

2. Робинсон С. Microsoft Access 2000: учеб. курс: пер. с англ. – СПБ.: Питер, 2001. – 511 с.

3. Кузнецов С.Д. Основы баз данных: Курс лекций: Учеб. пособие.М.:Интернет-ун-т Информ. технологий, 2005.-484 с.

4. Гофман В.Э.,Хомоненко А.Д. Работа с базами данных в Delphi. СПБ.:Dhv,2002.-656 с.

5. Маклаков С.В. Bpwin и Erwin. Cаse-средства разработки информационных систем.-М.:Диалог-Мифи, 2003.-254с.

6. Малыхина М.П. Базы данных: основы, проектирование, использование:Учеб. пособие для вузов.-2-е изд.-СПБ.:БХВ-Петербург,2006.-517 с.

Для установления связей между сущностями и создания внешних ключей ERWin предоставляет возможность разделения типов связей на несколько вариантов:

  • идентифицирующая связь - связь, определяющая однозначное соответствие экземпляра одной сущности единственному экземпляру связанной сущности и, как правило, описывает связь 1:1, но при реализации сцепленного первичного ключа может реализовывать связь один - ко - многим (1:JV);
  • неидентифицирующая связь - связь, реализующая тип связи один - ко - многим (1 :N), представляя внешний ключ в связанной сущности в качестве простого атрибута, на который могут быть наложены определенные дополнительные ограничения по сравнению с обычными информационными атрибутами;
  • множественная связь - связь, реализующая тип связи многие - ко - многим (Л Г:М), представляется только на уровне логической модели, иллюстрируя соединение между сущностями, но не создавая внешних ключей в связанных сущностей;
  • категоризационная - связь, обеспечивающая связывание сущности- общности с сущностями-категориями типом связи один - к - одному (1:1) и одновременно создающая внешний первичный ключ в сущностях-категориях, связанный с первичным ключом сущности-общности.

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

Инструментальное средство ERWin, при установлении связей между сущностями, определяет два вида сущностей:

  • родительская (Parent) - является базовой сущностью, первичный ключ которой может мигрировать в связанную сущность;
  • дочерняя (Child) - определяется сущностью, которая при установлении связи получает внешний ключ, формируемый из мигрирующего первичного ключа родительской сущности.

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

зине. В результате, сущность "Заказ" по отношению к сущности "Клиент" можно рассматривать в качестве дочерней, а сущность "Клиент" - родительской.

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

Рис. 3.15. Базовое описание связи в ERWin


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

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

Три важнейшие базовые характеристики связи (рис. 3.16), формирующие основную суть связи, описываются в первой закладке "General" и представляют тип связи, наименование связи, кардинальность (мощность). Эти параметры связи всегда обязательно должны быть определены и правильным образом описаны. Кроме наименования связи, остальные характеристики будут перенесены при соответствующей трансформации в физическую модель, а потом и в базу данных.

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

Рис. 3.16. Основные характеристики связи в РЖ Win


Обычно, при установлении не идентифицирующей связи параметр "Null Option" устанавливается в значение "Nulls Not Allowed" (NULL недопустим). Это определяется особенностями работы с данными, в соответствии с которыми дочерний экземпляр данных должен быть связан с родительским экземпляром. Но иногда бывают случаи, когда это не соблюдается. Как правило, такая ситуация возникает, когда объекты предметной области, объединяемые этой связью, являются равнозначными и невозможно однозначно определить первоочередность появления экземпляра той или иной сущности. Тогда устанавливается значение "Null Allowed" (NULL допускается), как это показано в примере (см. рис. 3.17).


Поскольку связи один - к - одному и один - ко - многим являются родственными и различия в них заключаются только в мощности и некоторых более жестких требованиях, то переключение между этими типами связей можно осуществлять в рамках диалогового окна настройки связи, переводя связь из типа "Не идентифицирующая" в тип "Идентифицирующая". В этом случае параметр "Null Option" будет недоступен

для настройки. Объясняется это тем, что при установке идентифицирующей связи получаемый в дочерней сущности внешний ключ одновременно является первичным ключом, а правилами построения базы данных первичный ключ не может хранить пустого значения. Поэтому для полученного внешнего ключа устанавливается параметр "Null Not Allowed" (NULL недопустим).

Другой характеристикой, которая дает возможность переходить от связи один - к - одному к связи один - ко - многим и наоборот, является кардинальность. Установление кардинальности (мощности) связи в рамках свойств "Cardinality" и "Cardinality Value" задает правила наполнения экземплярами дочерней сущности (рис. 3.18). Предусматривается четыре варианта кардинальности, определяемые средством ERWin:

  • Zero, One or More (ноль, один или много) - для дочерней сущности возможно любое количество экземпляров, связанных с одним экземпляром родительской сущности, включая вариант отсутствия экземпляров;
  • (Р) One or More (один или много) - количество экземпляров дочерней сущности, связанных с одним экземпляром родительской сущности, может быть любым, но при создании экземпляра в родительской сущности в дочерней сущности экземпляры уже должны существовать, что требует установления параметра "Null Option" в значение "Nulls Allowed", разрешая хранение пустого значения "NULL" во внешнем ключе, полученном при установлении связи;
  • (Z) Zero or One (ноль или один) - определяется связь один - к - одному, разрешая существование не более одного экземпляра данных в дочерней сущности;
  • Cardinality Value (значение кардинальности) - указывает точное количество связанных экземпляров в дочерней сущности, что может быть реализовано только при варианте параметра "Null Option" в значении "Nulls Allowed", первичном создании экземпляров в дочерней сущности и последующим их увязыванием с экземпляром в родительской сущности.

В результате указания кардинальности (мощности) связи на модели в диаграмме будет отображено ее буквенно-цифровое обозначение. Если выбирается вариант кардинальности (мощности) в варианте "Один или много", то будет отображена литера "Р", в случае кардинальности "Ноль или один" - литера "Z", в случае указания точного числового значения - указанное значение, в других вариантах не будет отображаться никаких обозначений на модели.

Еще одна характеристика связи описывается в качестве основной - смысловое наполнение связи (рис. 3.19), обозначаемое глагольной формой.

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


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


Решение этих задач реализуется через механизм "Role Name", где разработчик указывает имя атрибута для внешнего ключа, как оно должно быть представлено в модели базы данных и, в итоге трансформации, в базе данных. Область "Role Name Info" содержит две колонки:

  • Migrated Attribute (мигрирующий атрибут) - показывает атрибут родительской сущности, который представляется внешним ключом в связанной дочерней сущности (изменению не подлежит);
  • Role Name (имя роли) - обозначает новое значение названия атрибута внешнего ключа, которое должно использоваться вместо имени мигрирующего атрибута.

Указание нужного названия атрибута в колонке "Role Name" приведет к переименованию атрибута внешнего ключа и последующего использования нового имени атрибута во всех элементах модели базы данных, где это будет необходимо.

Определение правил ссылочной целостности (рис. 3.21) является этапом физического моделирования базы данных. Связано это с тем, что отдельные правила для некоторых СУБД могут быть недоступны. Тем не менее, ERWin на этапе логического моделирования предоставляет возможность указать правила ссылочной целостности для формируемых связей. На этом этапе разработчику предлагается максимальный набор правил :

  • None (отсутствует) - правило, предполагающее любые действия пользователя без влияния на другие элементы базы данных;
  • No Action (без действия) - правило, предполагающее определенные разработчиком действия;
  • Restrict (запретить) правило, запрещающее выполнение операции над данными, если проверочное условие выполняется;
  • Cascade (каскадно) - правило, выполняющее последовательные действия над связанными данными в соответствии с действием, выполняемым над данными, к которым определено данное правило;
  • Set Null (установить NULL) - правило, устанавливающее значение NULL внешнему ключу для связанных экземпляров;
  • Set Default (установить умолчание) - правило, устанавливающее значение по умолчанию, определенное для внешнего ключа связанного экземпляра.

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


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


  • при первом указании связи выбрать пиктограмму связи и последовательно выбрать сущность-общность и одну из сущностей-категорий;
  • остальные сущности-категории с помощью той же пиктограммы связи категоризации соединять путем последовательного выбора графического элемента и очередной сущности-категории.

В результате выполнения этих действий в модели базы данных будет представление связи аналогично указанному выше примеру (см. рис. 3.22).

Связь категоризации бывает двух типов, один из которых необходимо определить при установлении этого типа связи (рис. 3.23). Для обозначения различий в типе связи категоризации обозначение графического элемента будет представляться с двумя чертами или одной чертой (табл. 3.1).




Для самой связи категоризации никакие прочие характеристики не определяются, и разработчику предоставляется только возможность просмотра структуры связи категоризации (рис. 3.24). Это описание дает возможность увидеть, какие сущности-категории определены подтипами (subtypes), а какая сущность-общность представлена надтипом (supertype).

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

Рис. 3.24. Описание связи категоризации в ЕИЧп

  • Подробное рассмотрение правил ссылочной целостности рассматривается в параграфе 3.2.

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

ERwin предоставляет возможности создавать и управлять этими двумя различными уровнями представления одной диаграммы (модели), равно как и иметь много вариантов отображения на каждом уровне. Термин "логический уровень" в ERwin соответствует концептуальной модели.

Этапы построения информационной модели:

· определение сущностей;

· определение зависимостей между сущностями;

· задание первичных и альтернативных ключей;

· определение атрибутов сущностей;

· приведение модели к требуемому уровню нормальной формы;

· переход к физическому описанию модели: назначение соответствий имя сущности - имя таблицы, атрибут сущности - атрибут таблицы;

· задание триггеров, процедур и ограничений;

· генерация базы данных.

Erwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения документации, необходимой в цикле разработки. Однако ERwin далеко не только инструмент для рисования. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).

Создание сущности.

Для внесения сущности в модель необходимо щелкнуть по кнопке сущности на панели инструментов (Erwin Toolbox) , затем - по тому месту на диаграмме, где необходимо расположить новую сущность. Щелкнув правой кнопкой мыши по сущности и выбрав из всплывающего меню пункт Entity Editor, можно вызвать диалог Entity Editor, в котором определяются имя, описание и комментарии сущности.

Каждая сущность должна быть полностью определена с помощью текстового описания в закладке Definition. Эти определения полезны как на логическом уровне, поскольку позволяют понять, что это за объект, так и на физическом уровне, поскольку их можно экспортировать как часть схемы и использовать в реальной БД (CREATE COMMENT on entity_name). Закладки Note, Note2, Note3, UDP (User Defined Properties - Свойства, определенные пользователем) служат для внесения дополнительных комментариев и определений к сущности.

В закладке Icon каждой сущности можно поставить в соответствие изображение, которое будет отображаться в режиме просмотра модели на уровне иконок и изображение, которое будет отображаться на всех других уровнях.

Закладка UDP диалога Entity Editor служит для определения свойств, определяемых пользователем (User - Defined Properties). При нажатии на кнопку этой закладки вызывается диалог User - Defined Property Editor (также вызывается из меню Edit/UDPs). В нем необходимо указать вид объекта, для которого заводится UDP (диаграмма в целом, сущность, атрибут и т.д.) и тип данных. Для внесения нового свойства следует щелкнуть в таблице по кнопке и внести имя, тип данных, значение по умолчанию и определение.

Создание атрибутов

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

Если щелкнуть по кнопке New, то в появившемся диалоге New Attribute можно указать имя атрибута, имя соответствующей ему в физической модели колонки и домен. Домен атрибута будет использоваться при определении типа колонки на уровне физической модели.

Для атрибутов первичного ключа в закладке General диалога Attribute Editor необходимо сделать пометку в окне выбора Primary Key.

Закладки Definition, Note и UDP несут те же функции, что и при определении сущности, но на уровне атрибутов.

Для большей наглядности диаграммы каждый атрибут можно связать с иконкой. Это можно сделать при помощи списка выбора Icon в закладке General.

Очень важно дать атрибуту правильное имя. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение.

Согласно синтаксису IDEF1X, имя атрибута должно быть уникальным в рамках модели (а не только в рамках сущности!). По умолчанию при попытке внесения уже существующего имени атрибута ERwin переименовывает его. Например, если атрибут Комментарий уже существует в модели, другой атрибут (в другой сущности) будет назван Комментарий/2, затем Комментарий/3 и т.д.

При переносе атрибутов внутри и между сущностями можно воспользоваться техникой drag&drop, выбрав кнопку в палитре инструментов.

Создание связи.

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

В палитре инструментов кнопка соответствует идентифицирующей связи, кнопка связи многие-ко-многим и кнопка соответствует неидентифицирующей связи. Для редактирования свойств связи следует щелкнуть правой кнопкой мыши по связи и выбрать на контекстном меню пункт Relationship Editor.

В закладке General появившегося диалога можно задать мощность, имя и тип связи.

Мощность связи (Cardinality) - служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.

Различают четыре типа мощности:

общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности, не помечается каким-либо символом;

символом P помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);

символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения);

цифрой помечается случай, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности.

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

Тип связи (идентифицирующая/неидентифицирующая).

В IDEF1X различают зависимые и независимые сущности. Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда рисуется идентифицирующая связь, ERwin автоматически преобразует дочернюю связь в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами.

Экземпляр зависимой сущности определяется только через отношение к родительской сущности. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешние ключи - (FK).

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

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

Для неидентифицирующей связи можно указать обязательность (Nulls в закладке General диалога Relationship Editor). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение NULL. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности

Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим идентифицирующей или неидентифицирующей достаточно указать имя, характеризующей отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию Verb Phrase.

Имя роли или функциональное имя (Rolename) - это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности. Задать имя роли можно в закладке Rolename/RI Actions диалога Relationship Editor.

Рис.1. Имена ролей внешних ключей

В примере, приведенном на рис. 1, в сущности Сотрудник внешний ключ Номер отдела имеет имя роли "Где работает", которое показывает, какую роль играет этот атрибут в сущности. По умолчанию в списке атрибутов показывается только имя роли. Для отображения полного имени атрибута (как функционального имени, так и имени роли) следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Entities и затем включить опцию Rolename/Attribute. Полное имя показывается как функциональное имя и базовое имя, разделенные точкой (рис. 1).

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

Рис.2. Случай обязательности имен ролей

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

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

Правила ссылочной целостности (Referential Integrity (RI)) - логические конструкции, которые выражают бизнес-правила использования данных и представляют собой правила вставки, замены и удаления. Задать правила ссылочной целостности можно в закладке Rolename/RI Actions диалога Relationship Editor.

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

Рис.3. Миграция имен ролей

На рис.3 существует идентифицирующая связь между сущностями Команда и Игрок. Что будет, если удалить команду? Экземпляр сущности Игрок не может существовать без команды (атрибут первичного ключа В какой команде играет. Номер команды не может принимать значение NULL), следовательно нужно либо запретить удаление команды, пока в ней числится хотя бы один игрок, либо удалять вместе с командой и всех ее игроков. Такие правила удаления (Parent Delete) называются Parent Restrict (ограничение) и Parent Cascade (каскад). Сущности Игрок и Гол, в свою очередь, тоже связаны идентифицирующей связью и, если на удаление игрока наложено правило каскадного удаления всех записей о его голах, то при удалении команды будут удалены все игроки команды и все голы, забитые этими игроками.

Связь многие-ко-многим возможна только на уровне логической модели данных. Такая связь обозначается сплошной линией с двумя точками на концах. Для внесения связи следует сначала нажать на кнопку в палитре инструментов (ERwin Toolbox), а затем по очереди щелкнуть по обеим связанным сущностям.

Связь многие-ко-многим должна именоваться (Verb Phrase) двумя фразами - в обе стороны. Это облегчает чтение диаграммы.

Создание ключей.

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

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

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

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

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

Альтернативный ключ (Alternative Key) - это потенциальный ключ, не ставший первичным.

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

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

Рис.4. Сущность "Сотрудник" с отображением ключей


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

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

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

Домены.

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

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

На логическом уровне домены можно описать без конкретных физических свойств. На физическом уровне они получают специфические свойства, которые можно изменить вручную. Так, домен "Возраст" может иметь на логическом уровне тип Number, на физическом уровне домену будет присвоен тип INTEGER.

Для создания домена в логической модели служит диалог Domain Dictionary Editor. Его можно вызвать из меню Edit/Domain Dictionary по кнопке, расположенной в верхней левой части закладки General диалога Attribute Editor. Для создания нового домена в диалоге Domain Dictionary Editor следует:

· щелкнуть по кнопке New. Появляется диалог New Domain;

· выбрать родительский домен из списка Domain Parent. Новый домен можно создать на основе уже созданного пользователем домена, либо на основе изначально существующего. По умолчанию Erwin имеет четыре предопределенных доменов (String, Number, Blob, Datetime). Новый домен наследует все свойства родительского домена. Эти свойства в дальнейшем можно переопределить;

· набрать имя домена в поле Logical Name. Можно также указать имя домена на физическом уровне в поле Physical Name. Если физическое имя не указано, по умолчанию оно принимает значение логического имени;

· щелкнуть по кнопке OK;

В диалоге Domain Dictionary Editor можно связать домен с иконкой, с которой он будет отображаться в списке доменов (Domain Icon), иконкой, с которой атрибут, определенный на домене будет отображаться в модели (Icon Inherited by Attribute).

Каждый домен может быть описан в закладке Definition, снабжен комментарием в закладке Note или свойством определенным пользователем в закладке UDP.

ERwin имеет специальный инструмент, который значительно облегчает создание новых атрибутов в модели, используя описание доменов, - Independent Attribute Browser. Этот диалог вызывается (и скрывается) по горячему ключу CTRL+B. С его помощью можно выбрать в списке домен и по методу drag&drop перенести его в какую-либо сущность. В ней будет создан новый атрибут с именем, которое следует задать в окне Name Inherited by Attribute диалога Domain Dictionary Editor. Если значение поля не задано, по умолчанию принимается имя домена.

На физическом уровне диалог Domain Dictionary Editor позволяет редактировать физические свойства домена. Имя этой закладки зависит от выбранного сервера БД. На ней можно задать конкретный тип данных, соответствующих домену, правила присвоения NULL - значений, правила валидации (правила проверки допустимых значений) и задания значения по умолчанию. Правила валидации и значения по умолчанию должны быть предварительно описаны и именованы. Для вызова диалогов редактирования правил валидации и значений по умолчанию служат кнопки справа от соответствующего списка выбора (Valid и Default).

Функции других закладок диалога Domain Dictionary Editor:

General. Задание родительского домена (Domain Parent) и имени, присваиваемого колонке при ее создании с помощью Independent Column Browser. С помощью опции Phisical Only домен можно определить только на уровне физической модели.

Comment. Внесение комментария к атрибуту.

UDP . Свойства, определяемые пользователем.

Visual Basic - PowerBuilder. Задание специальных свойств домена для кодогенерации клиентского приложения.

Задание на выполнение.

На основе ранее созданной функциональной модели и описания предметной области создать логическую модель с использованием пакета ERwin.

Лабораторная работа № 7.
Основы работы в Erwin. Подготовка физической модели данных для генерации БД

1. Цель работы: освоение принципов подготовки физической модели данных для генерации системного каталога БД.

1. Учебные вопросы

  1. Разработка реляционной модели данных в ERwin .
  2. Нормализация физической модели данных в ERwin .

2. План занятия

  1. Контроль знаний путем тестирования (тест ИСЭ005).
  2. Импорт сущностей в ERwin.
  3. Разработка логической и физической моделей данных в ERwin с использованием методологии IDEF1Х.
  4. Нормализация физической модели данных в ERwin.
  1. Выполнить импорт сущностей в ER win, используя файл Данные _ИС_Имя. bpх, и на основании полученного множества сущностей разработать логическую модель данных.

Замечание: Если имена сущностей и атрибутов были созданы на кириллице (по-русски), следует их переписать латинскими символами.

  1. Создать логическую и физическую модели данных, используя инструменты ERwin.

  2. в своей папке ИСЭ .
  3. Нормализацию физической модели следует проводить путем разрешения связей МНОГИЕ-КО-МНОГИМ с помощью кнопки Many to Many Transform панели инструментов ER win Transform Toolbar.
  4. Результаты работы сохранить в файле
    Модель_данных_ИС_Имя_IDEF1Х.er1 в своей папке ИСЭ .

ПРИМЕР логической модели, а также нормализованной физической модели данных, выполненной в IDEF1X-технологии приведен в .

4. Технологический процесс выполнения заданий

4.1. Технологический процесс создания моделей данных

4.1.1. Методология создания моделей (методология IDEF1X)

Методология IDEF1X используется CASE-средством ERwin для построения логической и физической моделей данных информационной системы.

ERwin имеет простой и понятный пользовательский интерфейс для построения логической и физической моделей данных, обрабатываемых системой. В логической модели допустимо создавать связи МНОГИЕ-КО-МНОГИМ между сущностями, причем имя атрибута (Attribute Name ) будет именем атрибута в логической модели, а имя столбца (Column Name ), если оно задано, будет именем атрибута в физической модели.

В любой из этих моделей можно автоматически преобразовать связь МНОГИЕ-КО-МНОГИМ к связи ОДИН-КО-МНОГИМ.

В результате будет создана подчиненная таблица, развязывающая связь МНОГИЕ-КО-МНОГИМ. Эта таблица будет содержать внедренный составной ключ (FK) с внедренными из главных таблиц атрибутами и соответствующими им типами данных. Если нужно изменить тип данных, это следует делать вручную.

Процесс создания модели предполагает следующие этапы:

  1. Создание новой модели можно производить из окна Computer Associates ERwin или нажать кнопку создания модели. В обоих случаях на экран будет выведено диалоговое окно Create Model – Select Template (рис. 5.1).
  1. В окне Create Model - Select Template следует выбрать опцию, определяющую возможности создавать модели данных определенного типа: Logical (можно создавать только Логическую модель ), Physical (можно создавать только Физическую модель ) или Logical/Physical (можно параллельно создавать обе модели: и Логическую , и Физическую ). Чтобы иметь больше возможностей, целесообразно выбрать последний вариант – Logical/Physical .
  2. В группе Target Database из списка, предложенного в поле Database , выбрать систему управления базами данных (СУБД) – SQL Server , а в поле Version нужную версию – 2000 .
  3. В появившемся окне < Main Subject Area > / Display] выбрать из списка тип создаваемой модели: Logical или Physical (рис. 5.2).

В панели инструментов ERwin Toolbox содержатся кнопки, позволяющие добавлять в модель данных и редактировать ее отдельные фрагменты:

Select (редактирование выбранного объекта модели),

Entity (добавление сущности),

Many - to - many Relationship (связь Многие-ко-Многим),

Identifying Relationship (идентифицирующая связь),

Non-identifying Relationship (неидентифицирующая связь).

4.1.2. Технологический процесс создания логической модели данных

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

Импорт сущностей в ERwin

Замечания

  • Экспорт и импорт сущностей можно производить только один раз.
  • После проведения импорта сущностей из BPwin флажки Exchange with ERwin и кнопки Update и Delete в диалоговом окне Entity and Attribute Dictionary Editor становятся тусклыми. Это происходит потому, что нельзя изменять сущности и атрибуты, которые BPwin использует совместно c ERwin.

  1. Создание новых сущностей.
    • Нажать кнопку добавления сущностей Entity и щелкнуть мышью в пределах окна модели.
    • Вписать имя сущности и нажать Enter, после чего вписать имя атрибута сущности.
    • Для выбора нужного шрифта выполнить п.п. 1.9–1.12.
  2. Добавление новых атрибутов.
    • В контекстном меню сущности выбрать команду Attributes … и в появившемся окне (рис. 5.4) нажать кнопку New.
    • В окне New Attributes (рис. 5.6) вписать имя атрибута в поле Attribute Name .
    • Установить тип данных каждого атрибута для каждой сущности: Текстовый (String), Числовой (Number), Дата/время (Datetime) или поле МЕМО (B inary L arge Ob ject, Blob) (рис. 5.5 или рис. 5.6) .
    • Определить ключевые атрибуты, установив флажок Primary Key в окне Attributes (рис. 5.5) после выделения нужного атрибута в поле Attribute.

Установка связей между сущностями

  1. Установка связи МНОГИЕ-КО-МНОГИМ:
    • В панели инструментов Erwin Toolbox нажать кнопку Many-to-many Relationship .
    • Последовательно щелкнуть левой клавишей мыши на именах сущностей, между которыми требуется создать связь (рис. 5.7).

  1. Установка идентифицирующей связи ОДИН-КО-МНОГИМ:
    • В панели инструментов Erwin Toolbox нажать кнопку Identifying Relationship.
    • ключевого ключевого атрибута подчиненной сущности (FK) , находящейся на стороне МНОГО (рис. 5.8).
    • В подчиненной сущности формируется составной ключ.

  1. Установка неидентифицирующей связи ОДИН-КО-МНОГИМ:
    • В панели инструментов Erwin Toolbox нажать кнопку Non-identifying Relationship .
    • Последовательно щелкнуть левой клавишей мыши на именах сущностей, между которыми требуется создать связь. Результатом создания связи будет внедрение ключевого атрибута главной сущности в качестве неключевого атрибута подчиненной сущности (FK) , находящейся на стороне МНОГО (рис. 5.9).

4.1.3. Технологический процесс создания физической модели данных

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

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

4.2. Технологический процесс нормализации физической модели данных (методология IDEF1X)

  1. В окне Computer Associates ERwin – }