Глава 10 Построение IDEFIX

advertisement
Глава 10 Построение IDEFIX-моделей
В этой главе вы найдете описание того, как использовать Design/IDEF для построения моделей данных в
соответствии с методологией IDEF IX. При этом подразумевается, что вы хорошо знакомы с методологией
информационного моделирования IDEP1X. Основные концепции этой методологии вы можете найти в
специальной литературе.
Начало работы с IDEF1X-моделью
При использовании Design/IDEF для построения IDEF IX-модели, прежде всего необходимо создать новую
IDEF1X-страницу в существующей или вновь созданной модели.
Создание новой модели
Чтобы создать новую модель:
* Запустите Design/IDEF.
^ Выберите команду New в меню File.
Откроется диалоговое окно установки параметров страницы.
• Выберите пункт IDEF IX в выпадающем списке секции Methodology (Методология).
Поскольку IDEFlX-модели обычно занимают более чем одну стандартную печатную страницу, в
большинстве случаев лучше работать без мастерской страницы, отображающейся на диаграмме. Если все же
мастерская страница вам необходима, вы можете создать для IDEFlX-моделирования специальный шаблон,
который будет по размеру больше, чем стандартный лист бумаги.
Выберите пункт None в выпадающем списке секции Startup Master Page Selection (Выбор мастерской
страницы), чтобы указать, что вы не будете использовать мастер-страницу).
либо
• Щелкните мышью на кнопке Browse (Выбрать) для того чтобы выбрать файл с нужной мастерской
страницей.
Щелкните мышью на кнопке ОК.
Будет создана новая страница. Меню, инструментальная панель и палитра инструментов изменятся в
соответствии с режимом IDEFlX-моделирования.
Добавление IDEFIX-страницы в существующую модель
Чтобы добавить IDEFlX-диаграмму в существующую модель:
• Запустите Design/IDEF.
• Выберите команду Open (Открыть) в меню File.
• Найдите и откройте файл модели, с которой вы будете работать.
• Выберите команду New Page (Новая страница) в меню Create.
Откроется диалоговое окно установки параметров страницы.

• Выберите пункт IDEF1X в выпадающем списке секции Methodology (Методология).

Щелкните мышью на кнопке ОК.
Меню, инструментальная панель и палитра инструментов изменятся в соответствии с режимом IDEF1Xмоделирования. В диалоговом окне New Page вы не можете изменить установленную для всей модели
мастерскую страницу. Если вы не хотите использовать мастерскую страницу на IDEFlX-диаграмме,
используйте команду Page Attributes (Атрибуты страницы) в меню Edit для того, чтобы на данной
диаграмме мастерская страница не отображалась. Если вы хотите открыть другую мастерскую страницу,
вам необходимо воспользоваться разделом Master Page диалогового окна Set Options в меню Edit.
Определение целевой СУБД
Design/IDEF позволяет вам строить вашу модель данных .с учетом особенностей используемой вами СУБД.
Вы можете указывать для атрибутов тип данных в соответствии с типами, разрешенными в вашей СУБД.
Design/IDEF обеспечивает контроль за длиной и количеством десятичных знаков при определении
атрибутов, чтобы обеспечить соответствие типов данных требованиям конкретной СУБД.
Как добавить СУБД, не указанную в списке
Design/IDEF поставляется с файлом idefsql.ini, в котором содержится информация о типах данных,
используемых в следующих СУБД:
Oracle 7
Oracle 6
Sybase 10
SQL Server
Watcom SQL
DB2
Informix
Ingres
Access
FoxBase
Netware SQL
RDB
SQL Base
Файл idefsql.ini при установке Design/IDEF копируется в каталог Windows. Вы можете отредактировать этот
файл, чтобы добавить описание вашей СУБД и используемых типов данных. В заголовке файла idefsql.ini
приводится описание формата этого файла и объясняется, как дополнить этот файл описанием новой СУБД.
Выбор целевой СУБД
В Design/IDEF по умолчанию в качестве целевой СУБД используется Oracle7. тобы установить другую
СУБД, для которой вы будете разрабатывать модель данных:
• Выберите команду Set Options (Установка параметров) в меню Edit.
• Щелкните мышью на кнопке IDEF1X чтобы перейти в соответствующий раздел диалогового
окна.
• Щелкните мышью на стрелке справа от
выпадающего списка секции Target Database (Целевая СУБД) и выберите в списке наименование СУБД, на
которой будет реализовываться ваша база данных.
(Если вы не нашли в списке нужной СУБД, отредактируйте файл idefsql.ini, добавив к нему описание вашей
СУБД и
повторите вышеописанные шаги.)
• Щелкните мышью на кнопке ОК.
Целевая СУБД будет изменена. Если в текущей модели уже были определены сущности и атрибуты, то типы
данных будут преобразованы в соответствии с требованиями новой СУБД на основе таблиц преобразования,
расположенных в файле idefsql.ini. Вы можете обновить тип данных некоторых атрибутов, если
необходимый тип данных не присутствует в обеих СУБД или новая СУБД обеспечивает использование типа
данных для некоторого атрибута, который более полно отвечает вашим задачам данных для некоторого
атрибута, который более полно отвечает вашим задачам.
Работа с сущностями
В этом разделе описываются процедуры определения и редактирования сущностей. Design/IDEF
вычерчивает объекты-сущности в модели на основе ваших определений.
Несмотря на то, что работа с атрибутами является частью работы с сущностями, описание процедур работы
с атрибутами, в силу их относительной сложности, вынесено в следующий раздел этой главы,
озаглавленный Работа с атрибутами.
Добавление сущностей
Создание сущностей
Чтобы создать сущность в IDEFlX-модели:
• Выберите команду Entity (Сущность) в меню Create.
либо
• Щелкните мышью на кнопке Entity:
расположенной в палитре инструментов.
Указатель изменит свою форму на указатель прямоугольника:
• Поместите указатель в то место, в котором вы хотите расположить сущность и щелкните мышью.
Откроется диалоговое окно Define Entity (Определение сущности):
Определение сущности
В приведенном выше диалоговом окне устанавливаются характеристики создаваемой сущности.
Design/IDEF автоматически назначает сущности ее уникальный идентификатор (Entity ID). Если
вы хотите назначить сущности свой идентификатор, вы можете это сделать только перед ее
созданием. См. расположенный ниже раздел Изменение следующего идентификатора. сущности.
Каждая сущность должна иметь имя. Это имя должно быть уникальным, т. е. должно отличаться
от имен всех других сущностей и атрибутов в модели. Design/IDEF производит проверку
присутствия и уникальности имени в момент закрытия диалогового окна - когда вы нажимаете
клавишу ENTER или щелкаете мышью на кнопке ОК.
• Напечатайте имя сущности в поле ввода Name (Имя).
Другие поля в этом диалоговом окне могут содержать дополнительную информацию о сущности.
Эта информация не является обязательной. Ниже приведено описание этих дополнительных
полей.
Aliases (Псевдонимы): Любые дополнительные имена сущности (синонимы), под которыми может
подразумеваться данная сущность.
Definition (Определение): Текстовое описание сущности.
Attributes (Атрибуты): См. расположенный ниже раздел Добавление атрибутов.

Введите в соответствующие поля дополнительную информацию.
Чтобы закрыть диалоговое окно определения сущности после ввода характеризующей ее информации:

Щелкните мышью на кнопке ОК.
Design/IDEF закрывает диалоговое окно и располагает на странице новую сущность.
Пропущенное имя сущности
Если кнопка ОК недоступна и отображается в диалоговом окне более тусклым цветом, это значит, что вы не
ввели имя сущности.
• Введите имя сущности.
Повторяющееся имя сущности
Если вы щелкнули мышью на кнопке ОК и на экране появилось одно из следующих сообщений об ошибке:
"An entity already exists with the supplied name." ("Сущность с введенным именем уже
существует.")
или
("An attribute exists with the supplied name." "Существует атрибут с введенным именем.")
то имя сущности не уникально. Для того чтобы решить эту проблему:

Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно сообщения об ошибке.

Введите новое, уникальное имя сущности.

Щелкните мышью на кнопке ОК.
Отмена создания сущности
Чтобы отменить создание сущности (включая все определенные вами для нее атрибуты):
• Щелкните мышью на кнопке Cancel.
Design/IDEF закрывает диалоговое окно. При этом изменения в модель не вносятся.
Как отображаются сущности
Когда вы закрываете диалоговое окно после создания и определения новой сущности, Design/IDEF
добавляет ее в модель. Design/IDEF форматирует имя сущности следующим образом: все буквы заменяются
на заглавные, пробелы в начале и конце имени отбрасываются, оставшиеся пробелы между словами
заменяются на дефисы.
Вновь созданная сущность всегда отображается как независимый объект-сущность. Например:
ПРЕПОДАВАТЕЛЬ /15
Design/IDEF автоматически изменяет сущность с независимой на зависимую, как только вы проведете к ней
идентифицирующее отношение.
Изменение следующего идентификатора сущности
По умолчанию Design/IDEF в момент создания сущности автоматически назначает ей
идентификатор. Если вы хотите присвоить функции специфический идентификатор:

Перед созданием сущности выберите команду Next Entity Number (Следующий номер
сущности) в меню Create.
Откроется диалоговое окно, в котором будет указан идентификационный номер, который по
умолчанию был бы назначен следующей сущности.
(--)
• Напечатайте идентификационный номер, который вы хотите присвоить следующей сущности.
• Щелкните мышью на кнопке ОК. чтобы закрыть диалоговое окно.
Теперь, когда вы создадите в вашей модели новую сущность, ей будет присвоен указанный вами
идентификатор.
Редактирование информации о сущности
После того как вы создали в модели сущность, вы можете отредактировать или изменить любую
информацию, характеризующую ее. Кроме того, вы можете удалить сущность из модели. В этом разделе
описано, как отредактировать все виды информации о сущности за исключением информации об атрибутах.
Процедуры редактирования информации об атрибутах описаны ниже в разделе Редактирование
информации, об атрибутах.
Для того чтобы отредактировать сущность:

Щелкните мышью на сущности чтобы выделить ее.

Выберите команду Glossary Entry (Элемент глоссария) в меню Glossary.
либо

Выберите команду Turn On Text (Включить текст) в меню Modify.
либо
Щелкните мышью на кнопке Text (Текст):
расположенной в палитре инструментов.
либо

Дважды щелкните мышью на сущности.
Откроется диалоговое окно содержащее информацию о выделенной сущности. Например, оно может
выглядеть следующим образом:

Отредактируйте информацию, которую вы хотите изменить.

Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно и сохранить в модели ваши
изменения.
либо

Щелкните мышью на кнопке Cancel чтобы закрыть диалоговое окно без сохранения изменений.
Удаление сущности
Чтобы удалить сущность:
• Щелкните на сущности мышью, чтобы выделить ее.
* Нажмите клавишу DELETE или выберите команду Delete (Удалить) в меню Edit.
Когда вы удаляете из модели сущность, Design/IDEF автоматически уничтожает все связанные с ней дуги
отношений. Если вы удалили родительскую сущность, то будут автоматически удалены все ее атрибуты,
мигрировавшие в сущности-потомки как внешние ключи.
Построение IDEFIX-моделей
Design/IDEF также автоматически преобразовывает при необходимости все зависимые сущности-потомки в
независимые сущности.
Работа с атрибутами
Этот раздел описывает процедуры определения и редактирования атрибутов. Design/IDEF регистрирует и
маркирует атрибуты в соответствии с введенной вами информацией.
Поскольку процедур работы с атрибутами достаточно много и они изобилуют различными деталями, они
рассматриваются отдельно от процедур работы с сущностями. Как бы то ни было, вы можете добавлять или
редактировать атрибуты только в то время, когда вы создаете или редактируете сущность. Все команды
работы с атрибутами доступны только из диалогового окна определения сущности, к которой относятся
данные атрибуты.
Добавление атрибутов
Данная процедура используется для добавления в сущность всех атрибутов, которые не являются внешними
ключами. При необходимости Design/IDEF автоматически добавляет внешние ключи.
Чтобы добавить в сущность атрибут:

Щелкните мышью на кнопке Add (Добавить) в диалоговом окне определения сущности.
Откроется диалоговое окно определения атрибута:
Определение нового атрибута
Диалоговое окно определения атрибута используется для установки характеристик добавляемого атрибута.
Design/IDEF автоматически назначает атрибуту уникальный идентификатор (Attribute ID). Остальные
поля ввода заполняются соответствующими характеристиками атрибута.
Каждый атрибут должен иметь имя. Это имя должно быть уникальным в пределах модели, т. е. должно
отличаться от всех имен других атрибутов и сущностей в данной модели. Design/IDEF проверяет
уникальность имени атрибута в тот момент, когда вы щелкаете мышью на кнопке ОК чтобы закрыть
диалоговое окно определения атрибута.
• Напечатайте имя атрибута в поле ввода Name (Имя).
Другие поля в этом диалоговом окне могут содержать дополнительную информацию об атрибуте. Данная
информация не является обязательной. Ниже приведено описание этих дополнительных полей.
Aliases (Псевдонимы): Любые дополнительные имена атрибута (синонимы), под которыми может быть
известен данный атрибут.
Data Type (Тип данных): Тип данных. к которому относятся возможные значения атрибута. Например, тип
данных может быть CHAR (строка символов) или INTEGER (целое число). Если щелкнуть мышью на
стрелке вниз, расположенной рядом с типом данных, откроется список выбора, в котором перечислены
доступные типы данных. Список доступных типов данных определяется установленной целевой СУБД, для
которой вы создаете модель данных. См. расположенный выше раздел Выбор г^елевой СуБЛ, в котором
находится информация о том, как установить другую целевую СУБД и, вместе с ней, соответствующий
список типов данных. Вместо того чтобы выбрать тип данных из списка, вы можете ввести в это поле
наименование вашего собственного оригинального типа данных.
Length (Длина): Это поле ввода доступно только для тех типов данных, которые допускают указание длины
поля базы данных. В том случае, если тип данных определен ' пользователем, то поле ввода длины будет
доступно. Введите в это поле целое число, которое будет определять максимальную длину значения данного
атрибута.
Precision (Точность): Это поле ввода доступно только для тех типов данных, которые позволяют указать
точность (количество десятичных знаков после запятой в числе). В том случае, если тип данных определен
пользователем, то поле ввода точности будет доступно. Введите в это поле целое число, которое будет
определять максимальное количество десятичных знаков после запятой, отслеживаемое в значении
атрибута.
Definition (Определение): Текстовое описание атрибута.
Primary Key (Первичный ключ): Отметьте это поле, если данный атрибут является частью уникального
идентификатора сущности.
Discriminator (Дискриминатор): Отметьте это поле, если данный атрибут является общим атрибутом,
разделенным обобщенной сущностью и группой сущностей-категорий.
Alternate Keys (Альтернативные ключи): Отметьте это поле, если данный атрибут является частью одного
или более ключей, которые могут быть уникальными идентификаторами сущности, но не используются в
этом качестве. Введите в поле ввода справа от метки Alternate Key номера всех альтернативных ключей, в
которые входит данный атрибут.
Inversion Entries (Инверсный вход): Отметьте это поле, если данный атрибут является частью одного или
более ключей, которые могут быть использованы для быстрого доступа к сущности, но не являются
уникальными идентификаторами. Введите в поле ввода справа от метки Inversion Entry номера всех
инверсных входов, которые включают данный атрибут.

Введите дополнительную информацию, если это необходимо.
Автоматическая маркировка атрибутов
Когда вы закрываете диалоговое окно определения атрибута. Design/IDEF соответствующим образом
маркирует атрибут, который является частью альтернативного ключа или инверсного входа. Например, если
вы ввели "12" в поле рядом с меткой Alternate Key (Альтернативный ключ), Design/IDEF автоматически
добавляет метку (АК1, АК2) к имени атрибута, которое отображается в диалоговом окне определения
сущности.
Такая же метка будет добавлена к имени атрибута, которое отображается внутри объекта-сущности на
диаграмме.
Добавление последующих атрибутов
Вы можете добавлять новые атрибуты, не выходя из диалогового окна определения атрибута. Чтобы
сохранить уже определенный атрибут и перейти к добавлению нового:

Щелкните мышью на кнопке Add (Добавить).
Design/IDEF сохраняет введенную вами информацию об атрибуте, увеличивает на единицу
идентификационный номер атрибута, выделяет его имя и удаляет другую информацию из диалогового окна
определения атрибута. Имя предыдущего атрибута остается в поле ввода и вы можете отредактировать его
или заменить полностью другим.
• Введите новое уникальное имя для следующего атрибута.
• Введите дополнительную информацию об атрибуте.
• Щелкните мышью на кнопке Add.
Вы можете таким образом добавить столько новых атрибутов, сколько необходимо.
Пропущенное имя атрибута
Если кнопки Add и ОК недоступны и отображаются в диалоговом окне более тусклым цветом, это значит,
что вы не ввели имя атрибута.
• Введите имя атрибута.
Повторяющееся имя атрибута
Если вы щелкнули мышью на кнопке Add или ОК и на экране появилось одно из следующих сообщении об
ошибке:
"An attribute already exists with the supplied name." ("Атрибут с введенным именем уже
существует.")
или
"An entity exists with the supplied name." ("Существует сущность с введенным именем.")
это значит, что имя атрибута не уникально. Для того чтобы решить эту проблему:
• Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно сообщения об ошибке.
• Введите новое, уникальное имя атрибута.
• Щелкните мышью на кнопке Add или ОК.
Отмена добавления атрибута
Чтобы отменить добавление атрибута:
• Щелкните мышью на кнопке Cancel в диалоговом окне определения атрибута.
Окно определения атрибута закроется. На экране вновь будет диалоговое окно определения
сущности. Атрибут, добавление которого было отменено, в списке атрибутов присутствовать не
будет. Однако все ранее введенные атрибуты будут отображаться в этом списке.
Чтобы узнать, как изменить ранее введенную информацию об атрибуте, обратитесь к
расположенному ниже разделу Редактирование информации об атрибутах.
Выход из режима добавления атрибутов
Чтобы сохранить введенный атрибут и закрыть диалоговое окно определения атрибута:
• Щелкните мышью на кнопке ОК.
На экране появится диалоговое окно определения сущности. В нем присутствует список всех атрибутов
данной сущности, включая только что введенный. Design/IDEF форматирует имена атрибутов следующим
образом:
• Все пробелы в начале и конце имени удаляются.
• Оставшиеся пробелы между словами заменяются на дефисы.
• Маркируются все атрибуты, определенные как первичные ключи (РК), дискриминаторы (D),
альтернативные ключи (АК) либо инверсные входы (IE).
• Указывается, к каким именно альтернативным ключам и инверсным входам относятся определенные
соответствующим образом атрибуты.
Как отображаются атрибуты
Когда вы закрываете диалоговое окно определения сущности после добавления атрибутов, Design/IDEF
вычерчивает на диаграмме объект-сущность вместе с атрибутами.

Атрибуты первичного ключа располагаются внутри сущности над горизонтальной разделительной
линией.

Атрибуты, являющиеся частью альтернативного ключа и инверсного входа отображаются внутри
сущности с соответствующими метками.

Если сущность имеет атрибут-дискриминатор, Design/lDEF вычерчивает полный (указывающий на
полное множество категорий) объект-дискриминатор под сущностью. Например, сущность,
изображенная ниже, имеет атрибут-дискриминатор "категория преподавателя^' представленный в
виде полного дискриминатора, расположенного под сущностью.
INSTRUCTOR
instructor-id
instructor-name
instructor-addr
degree-cd
instructor-type
См. пункт Изменение типа дискриминатора в расположенном ниже разделе Редактирование информации
об атрибутах, чтобы получить информацию о том, как изменить полный (указывающий на полное
множество категорий) дискриминатор на неполный (указывающий на неполное множество категорий) и
наоборот.
Редактирование информации об атрибутах
В этом разделе описывается, как отредактировать атрибуты в вашей модели. Помните, что вы можете
редактировать атрибуты только тогда, когда вы добавляете или редактируете сущность, к которой они
относятся.
Редактирование информации, характеризующей атрибуты
Чтобы отредактировать информацию о каком-либо
атрибуте, войдите в диалоговое окно определения сущности, к которой относится этот атрибут.
• Щелкните мышью на имени нужного атрибута в списке чтобы выделить его. Имя выделенного атрибута
будет изображено другим цветом.
* Щелкните мышью на кнопке Edit (Редактировать).
Откроется диалоговое окно определения атрибута, в котором содержится информация о текущем атрибуте.
Если он не является внешним ключом, диалоговое окно выглядит так же, как и при добавлении атрибута.
Вы можете теперь изменить любую информацию об атрибуте.
Если атрибут является внешним ключом, диалоговое окно имеет два дополнительных поля - поле Foreign
Key (Внешний ключ) в котором описывается источник внешнего ключа (сущность и отношение), а также
поле ввода имени роли и имени группы:
Для атрибута, являющегося внешним ключом вы можете добавить имя роли и имя группы, а также добавить
или изменить характеристики атрибута: признаки первичного и альтернативных ключей, инверсного входа и
дискриминатора. Вы не можете редактировать никакой другой информации об этом атрибуте.
• Отредактируйте информацию в диалоговом окне определения атрибута желаемым образом.
Более подробную информацию об имени роли и имени группы можно найти в расположенном ниже разделе
Добавление имени роли.
Сохранение измененных характеристик атрибута
Чтобы сохранить информацию об атрибуте в измененном виде и интегрировать ее в модель:

Щелкните мышью на кнопке ОК.
Окно определения атрибута закроется. Вы окажетесь в окне определения сущности.
Все изменения, сделанные в характеристиках атрибута отразятся в списке атрибутов. Если, к примеру, у
атрибута, отмеченного ранее как первичный ключ, снять эту отметку и взамен определить его как часть
альтернативного ключа №1, Design/IDEF заменит метку РК, расположенную справа от имени атрибута на
метку АК1.
Если вы закроете диалоговое окно определения сущности после внесения этих изменений, Design/IDEF
интегрирует их в модель. Если вы изменили некоторые характеристики атрибутов Design/IDEF при
необходимости автоматически распространит эти изменения и на другие сущности модели, которые связаны
с той, которую вы редактировали в данный момент.
Отмена внесения изменений в характеристики атрибута
Для того чтобы отменить изменения, внесенные в характеристики атрибута:
• Щелкните мышью на кнопке Cancel. Окно определения атрибута закроется. Вы окажетесь в окне
определения сущности.
Изменение типа дискриминатора
Вы можете изменить тип дискриминатора с полного (указывающего на полное множество категорий) на
неполный (указывающий на неполное множество категорий) и наоборот.
Полный дискриминатор.
INSTRUCTOR
instructor-id
instructor-name
instructor-addr
degree-cd
instructor-type
Неполный дискриминатор.
INSTRUCTOR
instructor-id
instructor-name
instructor-addr
degree-cd
instructor-type
• Щелкните мышью на символе дискриминатора.
• Выберите команду Toggle Discrimmator (Переключить тип дискриминатора) в меню Create.
или
• Щелкните мышью на кнопке Toggle Discriminator (Переключить тип дискриминатора):
расположенной в палитре инструментов.
Перемещение имени дискриминатора
Когда Design/IDEF автоматически создает объект-дискриминатор на диаграмме, имя дискриминатора
помещается в позицию, установленную по умолчанию. При желании вы можете переместить имя
дискриминатора в другое место на диаграмме:

Щелкните мышью на имени дискриминатора чтобы выделить его.

Перемещайте имя дискриминатора удерживая кнопку мыши нажатой. После достижения нужной
позиции отпустите кнопку мыши.
Определение имени роли
Имя роли может быть определено только для атрибута, являющегося внешним ключом. Войдите в
диалоговое окно определения атрибута, являющегося внешним ключом для которого вы хотите определить
имя роли.
После этого:
• Введите имя роли в поле Role Name (Имя роли).
^ Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно определения атрибута.
• Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно определения сущности.
Design/IDEF обеспечивает автоматическую миграцию имени роли в связанные сущности. В следующем
примере имя роли "занятия" было добавлено к атрибуту "код-предмета" в сущности АУДИТОРИЯ. Когда
этот атрибут мигрирует в сущность ЛЕКЦИЯ, он получает имя занятия.
COURSE
SEMESTER
course-code
course-name
std-cred-hrs
semester-no
start-date
end-date
has
has
P
OFFERING
course-code (FK)
semester-no (FK)
act-cred-hrs
implemented by
CLASS-SECTION
section-no
course-code (FK)
semester-no (FK)
instructor-id (FK)
Вы можете назначить одинаковое имя роли для нескольких атрибутов. В этом случае данное имя будет
являться именем группы.
Чтобы создать группу из нескольких атрибутов объединенных одним групповым именем:

Для всех атрибутов, которые вы хотите включить в группу, введите одинаковое имя роли в поле
Role Name.
После введения имени роли для каждого атрибута окно определения атрибута закрывается, и имя атрибута с
добавленным именем роли появляется в списке. Все атрибуты, включенные в группу, будут расположены
рядом, поскольку атрибуты в списке сортируются в алфавитном порядке.

После того как вы закончите назначать групповое имя атрибутам, щелкните мышью на кнопке ОК
чтобы закрыть диалоговое окно определения сущности.
Design/IDEF обеспечивает автоматическую миграцию имени группы в связанные сущности в пределах
модели. В приведенном ниже примере групповое имя "требования" было добавлено к атрибутам " номерсеместра" и " код-предмета" в сущности ЛЕКЦИЯ. Эти атрибуты мигрировали в сущность УЧЕБНОЕ
ПОСОБИЕ. в виде атрибута с групповым именем "требования".
CLASS-SECTION
section-no
course-code (FK)
semester-no (FK)
requirements
instructor-id (FK)
TEXTBOOK
textbook-no
textbook-name
pub-co-name
uses
is used as
CLASS-TEXT
section-no (FK)
course-code (FK)
semester-no (FK)
textbook-no (FK)
requirements (FK)
Удаление атрибута
Чтобы уничтожить атрибут, удалите его из списка атрибутов соответствующей сущности,
используя диалоговое окно определения сущности:

Щелкните на имени удаляемого атрибута в списке, чтобы выделить его.

Щелкните мышью на кнопке Delete чтобы удалить этот атрибут из списка.

Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно определения сущности.
Когда вы закрываете окно определения сущности, Design/IDEF вносит соответствующие изменения в
модель. Уничтоженный атрибут больше не присутствует внутри объекта-сущности на диаграмме. Кроме
того, если данный атрибут мигрировал в другие сущности как внешний ключ, он также автоматически
удаляется и из этих сущностей.
Работа с отношениями
Данный раздел описывает процедуры, используемые при определении и редактировании отношений.
Design/IDEF отображает на диаграмме дуги отношений в соответствии с определенными вами
характеристиками. Кроме того, Design/IDEF использует информацию об отношениях для того, чтобы
обеспечить миграцию атрибутов из сущности-родителя в сущность-потомок и для определения того, в
каком виде будет отображаться сущность - как зависимая либо как независимая.
Создание отношений
После того как вы создали в модели несколько сущностей, вы можете установить отношения
между ними. Это производится следующим образом: сначала две сущности соединяются дугой
отношения и после этого определяются характеристики этого отношения.
После определения какого-либо отношения, Design/IDEF автоматически вносит изменения в
модель в соответствии с характеристиками этого отношения: например, изменяет вид сущности с
независимого на зависимый и обеспечивает миграцию атрибутов как внешних ключей из
родительской сущности в сущность-потомок.
Чтобы создать отношение между двумя сущностями
модели:
• Выберите команду Relationship (Отношение) в меню Create.
либо
• Щелкните мышью на кнопке Relationship:
расположенной в палитре инструментов.
Указатель изменит свою форму на указатель дуги:
Протяните дугу отношения соединив ею две сущности. Удобнее всего протянуть дугу по кратчайшему
расстоянию между двумя сущностями. После этого Design/IDEF автоматически маршрутизирует эту дугу
таким образом, чтобы она не пересекала другие сущности:

Поместив острие указателя дуги неглубоко внутри границ сущности-родителя, нажмите и не
отпускайте кнопку мыши.

Переместите указатель дуги внутрь сущности-потомка и отпустите кнопку мыши.
Вы можете также вручную проложить маршрут дуги отношения от сущности родителя до сущности
потомка. Информацию о том, как это сделать, можно найти в главе Дуги IDEFO.
Определение отношения
После того как вы соедините две сущности дугой, открывается диалоговое окно определения отношения:
Используйте это диалоговое окно для того, чтобы определить характеристики отношения. В этом окне
указаны имена родительской сущности и сущности-потомка, связанных отношением.
Вы должны указать имя отношения. Это имя отображается на диаграмме в виде текстовой метки
расположенной рядом с дугой отношения.

Введите имя отношения родительской сущности к сущности-потомку в поле Relationship
(Отношение).
Вы можете также использовать поле Inverse (Обратное), чтобы указать имя обратного отношения сущности-потомка к родительской сущности. Если вы укажете имя обратного отношения, то на диаграмме
это будет отображено следующим образом: текстовая метка, расположенная рядом с дугой отношения будет
содержать на первом месте имя, указанное в поле Relationship, после него - символ "/", и затем - имя
обратного отношения, указанное в поле Inverse. По умолчанию имена прямого и обратного отношения
располагаются на одной строке. Вы можете также расположить их на двух строках - одно под другим. На
рисунке ниже показаны обе этих возможности:
Ì ÅÍ ÅÄÆÅÐ1
ÄÈÐÅÊÒÎ Ð2
èäåí ò-ñî òðóäí èêà
ÔÈÎ -ñî òðóäí èêà
ï î äðàçäåëåí èå ï î äàåò /
ï î äàåòñÿ
çâàí èå
ÔÈÎ
óòâåðæäàåò /
óòâåðæàåòñÿ
ÇÀß ÂÊÀ3
èäåí ò-ñî òðóäí èêà (FK)
çâàí èå (FK)
èäåí ò-çàÿâêè
ñóì ì à-çàÿâêè
Чтобы имена прямого и обратного отношения отображались на разных строчках:
• Отметьте пункт Separate Lines (Раздельные строки).
Другие поля в диалоговом окне определения отношения могут содержать дополнительную информацию об
отношении. Эта информация не является обязательной. Ниже приведено описание данных полей:
Definition (Определение): Текстовое описание отношения.
Type (Тип): Тип отношения. Имеются три возможных типа отношений:
• Identifying (Идентифицирующее)
• Non-identifying (Неидентифицирующее)
• Non-specific (Неспецифическое)
Null Allowed (Нуль разрешен): Доступно только для типа отношения "неидентифицирующее" (Non-Identifying). Если это поле отмечено, отношение является опциональным, т. е. экземпляр сущности-потомка может
быть не связан ни с одним экземпляром сущности-родителя.
Cardinality (Мощность): Количество экземпляров сущности-потомка, связанных данным отношением с
экземпляром родительской сущности. Возможны следующие значения мощности:
• Zero, One, or Many (Ноль, один или несколько):
Пункт отмечается, если в отношении может находиться ноль или более экземпляров сущности-потомка.
• Zero or One (Z) (Ноль или один): Пункт
отмечается, если в отношении может находиться ноль или один экземпляр сущности-потомка.
• Оп; or Many (P) (Один или несколько): Пункт отмечается, если в отношении может находиться один или
более экземпляров сущности-потомка.
• Exactly (Точно): Пункт отмечается, если в
отношении должно находиться известное точное количество экземпляров сущности-потомка. Введите
количество экземпляров в поле ввода справа от метки Exactly.
Сохранение отношения
Чтобы сохранить определенное отношение:

Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно и добавить дугу отношения в
модель.
Отмена создания отношения
Чтобы отменить создание отношения:

Щелкните мышью на кнопке Cancel чтобы закрыть диалоговое окно без добавления в модель дуги
отношения.
Как отображаются на диаграмме отношения
Когда вы закрываете диалоговое окно после определения отношения, Design/IDEF автоматически обновляет
диаграмму в соответствии с введенной вами информацией.
Отображение идентифицирующего отношения
Если было создано идентифицирующее отношение:

Если сущность-потомок была независимой сущностью, то она преобразуется в зависимую.

Атрибуты первичного ключа родительской сущности мигрируют в сущность-потомок в качестве
атрибутов первичного внешнего ключа.
В приведенном ниже примере обе сущности ПРЕАМЕТ и СЕМЕСТР связаны идентифицирующими
отношениями с сущностью ПРОГРАММА.
COURSE
SEMESTER
course-code
course-name
std-cred-hrs
semester-no
start-date
end-date
has
has
Z
OFFERING
course-code (FK)
semester-no (FK)
act-cred-hrs
implemented by
CLASS-SECTION
section-no
course-code (FK)
semester-no (FK)
instructor-id (FK)
Отображение неидентифицирующего отношения
Если было создано неидентифицирующее отношение, атрибуты первичного ключа родительской сущности
мигрируют в сущность-потомок в качестве внешних ключей.
В приведенном ниже примере обе сущности ПРЕАМЕТ и СЕМЕСТР связаны неидентифицирующими
отношениями с сущностью ПРОГРАММА.
COURSE
SEMESTER
course-code
course-name
std-cred-hrs
semester-no
start-date
end-date
has
has
Z
OFFERING
act-cred-hrs
course-code (FK)
semester-no (FK)
Определение отношения между дискриминатором и сущностью
Когда создается сущность, которая имеет атрибут-дискриминатор, Design/IDEF автоматически
помещает на диаграмме непосредственно под сущностью объект-дискриминатор.
INSTRUCTOR
instructor-id
instructor-name
instructor-addr
degree-cd
instructor-type
После того как вы создадите сущности-категории для этого дискриминатора, протяните дуги отношений от
объекта-дискриминатора к каждой сущности-категории. Кроме этого ничего делать не требуется, т. к. для
отношения между дискриминатором и сущностью-категорией не нужно определять имя.
Редактирование информации об отношении
В этом разделе вы найдете информацию о том, как отредактировать отношения в вашей модели.
Изменение характеристик отношения
Чтобы изменить информацию о существующем отношении, необходимо открыть диалоговое окно
определения отношения. Это можно сделать следующим образом:

Щелкните мышью на дуге отношения чтобы выделить ее.

Выберите команду Glossary Entry (Элемент глоссария) в меню Glossary.

Выберите команду Turn On Text (Включить текст) в меню Modify.
либо
либо

Щелкните мышью на кнопке Text:

Дважды щелкните мышью на дуге отношения.
расположенной в палитре инструментов. либо
Design/IDEF откроет диалоговое окно определения отношения.
• Отредактируйте информацию в диалоговом окне так, как требуется.
• Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно.
Когда вы закрываете диалоговое окно определения отношения, Design/IDEF обновляет диаграмму в
соответствии с внесенными вами изменениями. Например, если вы изменили тип отношения с
неспецифического на идентифицирующее, Design/IDEF:

Изменит сущность-потомок на зависимую (если это необходимо).

Изменит дугу отношения в соответствии с правилами изображения дуги идентифицирующего
отношения.

Обеспечит миграцию атрибутов первичного ключа родительской сущности в сущность-потомок в
качестве атрибутов первичного внешнего ключа.
Замечание: Если вы изменили отношение с неспецифического на идентифицирующее или
неидентифицирующее, метка отношения по-прежнему будет отображаться, в виде
"Имя/Обратное имя". Вы можете отредактировать эту метку при помощи диалогового окна
определения отношения.
Переключение типа отношения с идентифицирующего на неидентифицирующее
Вы можете быстро изменить отношение между двумя сущностями с идентифицирующего на
неидентифицирующее и наоборот. Для этого:

Щелкните мышью на дуге отношения чтобы выделить ее.

Выберите команду Toggle Relationship (Переключить отношение) в меню Create.
либо

Щелкните мышью на кнопке Toggle Relationship:
инструментов.
расположенной в палитре
Design/IDEF внесет соответствующие изменения в диаграмму. Изменятся дуга отношения и
положение атрибутов во всех затронутых сущностях-потомках.
Перемещение метки с именем отношения
Когда Design/IDEF создает на диаграмме дугу отношения, метка с его именем располагается в
предопределенной позиции. Вы можете передвинуть ее в любое место на диаграмме:

Щелкните мышью на метке с именем отношения чтобы выделить ее.

Переместите метку мышью с нажатой кнопкой в желаемую позицию и отпустите кнопку мыши.
Удаление отношения
Чтобы уничтожить отношение в вашей модели:

Щелкните мышью на дуге отношения чтобы выделить ее.

Выберите команду Delete (Удалить) в меню Edit или нажмите клавишу DELETE.
Когда вы удаляете отношение, Design/IDEF также удаляет его имя. Если вы удалите идентифицирующее
или неидентифицирующее отношение, Design/IDEF автоматически удалит все атрибуты, мигрировавшие в
сущности-потомки в качестве внешних ключей. Также, если это необходимо, зависимые сущности будут
преобразованы в независимые.
Порождение определения данных (DDL) на языке SQL
Design/IDEF позволяет автоматически сгенерировать операторы определения данных на языке SQL (SQL
Data Definition Language stafemenrs) соответствующие разработанной вами IDEFlX-модели. См.
расположенный выше раздел Определение целевой СУБД, в котором можно найти информацию о том, как
выбрать СУБД, для которой вы будете генерировать определение данных на SQL.
• Постройте IDEFlX-модель, определите все сущности, атрибуты и ключи.
• Выберите команду Export (Экспортировать) в меню File.
• Выберите пункт SQL Files (*. SQL) в списке выбора в разделе Format (Формат).
• Введите имя файла, в который должен быть помещен текст на SQL, и укажите каталог, в котором будет
сохранен этот файл.
• Щелкните мышью на кнопке ОК.
Download