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

advertisement
Лабораторная работа №4
«Построение IDEFIX-моделей»
Цель работы
Использовании Design/IDEF для построения моделей данных в соответствии с данной
методологией. Создать модель и сгенерировать код DLL.
В Порядок выполнения работы
1. Начало работы с IDEF1X-моделью. Создание новой модели.
Чтобы создать новую модель: Запустите Design/IDEF и выберите команду New в меню File.
Откроется диалоговое окно установки параметров страницы. Выберите пункт IDEFIX в
выпадающем списке секции Methodology (Методология).
Поскольку IDEFlX-модели обычно занимают более чем одну стандартную печатную
страницу, в большинстве случаев лучше работать без мастерской страницы, отображающейся на
диаграмме. Если все же мастерская страница вам необходима, вы можете создать для IDEFlXмоделирования специальный шаблон, который будет по размеру больше, чем стандартный лист
бумаги.
Выберите пункт None в выпадающем списке секции Startup Master Page Selection (Выбор
мастерской страницы), чтобы указать, что вы не будете использовать мастер-страницу), либо
щелкните мышью на кнопке Browse (Выбрать) для того чтобы выбрать файл с нужной мастерской
страницей.
Щелкните
мышью
на
кнопке
ОК.
Будет
создана
новая
страница.
Меню,
инструментальная панель и палитра инструментов изменятся в соответствии с режимом IDEFlXмоделирования.
2. Добавление IDEFIX-страницы в существующую модель.
Чтобы добавить IDEFlX-диаграмму в существующую модель, запустите Design/IDEF и
Выберите команду Open (Открыть) в меню File. Найдите и откройте файл модели, с которой вы
будете работать. Далее выберите команду New Page (Новая страница) в меню Create.
Откроется диалоговое окно установки параметров страницы. Выберите пункт IDEF1X в
выпадающем списке секции Methodology (Методология). Щелкните мышью на кнопке ОК.
Меню, инструментальная панель и палитра инструментов изменятся в соответствии с
режимом IDEF1X-моделирования. В диалоговом окне New Page вы не можете изменить
установленную для всей модели мастерскую страницу. Если вы не хотите использовать мастерскую
страницу на IDEFlX-диаграмме, используйте команду Page Attributes (Атрибуты страницы) в меню
Edit для того, чтобы на данной диаграмме мастерская страница не отображалась. Если вы хотите
открыть другую мастерскую страницу, вам необходимо воспользоваться разделом Master Page
диалогового окна Set Options в меню Edit.
3. Определение целевой СУБД
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. Вы можете обновить тип данных
некоторых атрибутов, если необходимый тип данных не присутствует в обеих СУБД или новая СУБД
обеспечивает использование типа данных для некоторого атрибута, который более полно отвечает
вашим задачам данных для некоторого атрибута, который более полно отвечает вашим задачам.
4. Работа с сущностями
В этом разделе описываются процедуры определения и редактирования сущностей.
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 форматирует имя сущности следующим образом:
все буквы заменяются на заглавные, пробелы в начале и конце имени отбрасываются, оставшиеся
пробелы между словами заменяются на дефисы. Вновь созданная сущность
всегда
отображается
как
независимый
объект-сущность.
ПРЕПОДАВАТЕЛЬ
Design/IDEF
автоматически изменяет сущность с независимой на зависимую, как только
вы проведете к ней идентифицирующее отношение.
5. Изменение следующего идентификатора сущности
По умолчанию Design/IDEF в момент создания сущности автоматически назначает ей
идентификатор. Если вы хотите присвоить функции специфический идентификатор, то перед
созданием сущности выберите команду Next Entity Number (Следующий номер сущности) в меню
Create. Откроется диалоговое окно, в котором будет указан идентификационный номер, который по
умолчанию был бы назначен следующей сущности. Напечатайте идентификационный номер,
который вы хотите присвоить следующей сущности. Щелкните мышью на кнопке ОК. чтобы
закрыть диалоговое окно. Теперь, когда вы создадите в вашей модели новую сущность, ей будет
присвоен указанный вами идентификатор.
6. Редактирование информации о сущности
После того как вы создали в модели сущность, вы можете отредактировать или изменить
любую информацию, характеризующую ее. Кроме того, вы можете удалить сущность из модели. В
этом разделе описано, как отредактировать все виды информации о сущности за исключением
информации об атрибутах. Процедуры редактирования информации об атрибутах описаны ниже в
разделе Редактирование информации, об атрибутах.
Для того чтобы отредактировать сущность, щелкните мышью на сущности чтобы выделить
ее. Выберите команду Glossary Entry (Элемент глоссария) в меню Glossary, либо
выберите команду Turn On Text (Включить текст) в меню Modify, либо щелкните
мышью на кнопке Text (Текст): расположенной в палитре инструментов, либо дважды щелкните
мышью на сущности. Откроется диалоговое окно содержащее информацию о выделенной сущности.
Например, оно может выглядеть следующим образом:
Отредактируйте информацию, которую вы хотите изменить. Щелкните мышью на кнопке ОК
чтобы закрыть диалоговое окно и сохранить в модели ваши изменения, либо щелкните мышью на
кнопке Cancel чтобы закрыть диалоговое окно без сохранения изменений.
Чтобы удалить сущность, щелкните на сущности мышью, чтобы выделить ее. Нажмите
клавишу DELETE или выберите команду Delete (Удалить) в меню Edit.
Когда вы удаляете из модели сущность, Design/IDEF автоматически уничтожает все
связанные с ней дуги отношений. Если вы удалили родительскую сущность, то будут автоматически
удалены все ее атрибуты, мигрировавшие в сущности-потомки как внешние ключи. Design/IDEF
также автоматически преобразовывает при необходимости все зависимые сущности-потомки в
независимые сущности.
7. Работа с атрибутами
Поскольку процедур работы с атрибутами достаточно много и они изобилуют различными
деталями, они рассматриваются отдельно от процедур работы с сущностями. Как бы то ни было, вы
можете добавлять или редактировать атрибуты только в то время, когда вы создаете или
редактируете сущность. Все команды работы с атрибутами доступны только из диалогового окна
определения сущности, к которой относятся данные атрибуты.
Данная процедура используется для добавления в сущность всех атрибутов, которые не
являются внешними ключами. При необходимости Design/IDEF автоматически добавляет внешние
ключи.
Чтобы добавить в сущность атрибут, щелкните мышью на кнопке Add (Добавить) в
диалоговом окне определения сущности. Откроется диалоговое окно определения атрибута:
Диалоговое окно определения атрибута используется для установки характеристик
добавляемого атрибута. Design/IDEF автоматически назначает атрибуту уникальный идентификатор
(Attribute ID). Остальные поля ввода заполняются соответствующими характеристиками атрибута.
Каждый атрибут должен иметь имя. Это имя должно быть уникальным в пределах модели, т. е.
должно отличаться от всех имен других атрибутов и сущностей в данной модели. Design/IDEF
проверяет уникальность имени атрибута в тот момент, когда вы щелкаете мышью на кнопке ОК
чтобы закрыть диалоговое окно определения атрибута. Напечатайте имя атрибута в поле ввода Name
(Имя). Другие поля в этом диалоговом окне могут содержать дополнительную информацию об
атрибуте. Данная информация не является обязательной. Ниже приведено описание этих
дополнительных полей.
Aliases (Псевдонимы):
Data Type (Тип данных):
Length (Длина):
Precision (Точность):
Definition (Определение):
Primary Key
Любые дополнительные имена атрибута (синонимы), под которыми может быть
известен данный атрибут.
Тип данных. к которому относятся возможные значения атрибута. Например, тип
данных может быть CHAR (строка символов) или INTEGER (целое число). Если
щелкнуть мышью на стрелке вниз, расположенной рядом с типом данных, откроется
список выбора, в котором перечислены доступные типы данных. Список доступных
типов данных определяется установленной целевой СУБД, для которой вы создаете
модель данных. См. расположенный выше раздел Выбор г^елевой СуБЛ, в котором
находится информация о том, как установить другую целевую СУБД и, вместе с ней,
соответствующий список типов данных. Вместо того чтобы выбрать тип данных из
списка, вы можете ввести в это поле наименование вашего собственного оригинального
типа данных.
Это поле ввода доступно только для тех типов данных, которые допускают указание
длины поля базы данных. В том случае, если тип данных определен ' пользователем, то
поле ввода длины будет доступно. Введите в это поле целое число, которое будет
определять максимальную длину значения данного атрибута.
Это поле ввода доступно только для тех типов данных, которые позволяют указать
точность (количество десятичных знаков после запятой в числе). В том случае, если тип
данных определен пользователем, то поле ввода точности будет доступно. Введите в это
поле целое число, которое будет определять максимальное количество десятичных
знаков после запятой, отслеживаемое в значении атрибута.
Текстовое описание атрибута
Отметьте это поле, если данный атрибут является частью уникального
(Первичный ключ):
Discriminator
(Дискриминатор)
Alternate Keys
(Альтернативные ключи):
Inversion Entries(Инверсный
вход)
идентификатора сущности.
Отметьте это поле, если данный атрибут является общим атрибутом, разделенным
обобщенной сущностью и группой сущностей-категорий.
Отметьте это поле, если данный атрибут является частью одного или более ключей,
которые могут быть уникальными идентификаторами сущности, но не используются в
этом качестве. Введите в поле ввода справа от метки Alternate Key номера всех
альтернативных ключей, в которые входит данный атрибут.
Отметьте это поле, если данный атрибут является частью одного или более ключей,
которые могут быть использованы для быстрого доступа к сущности, но не являются
уникальными идентификаторами. Введите в поле ввода справа от метки 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). Указывается, к каким именно альтернативным ключам и инверсным входам
относятся определенные соответствующим образом атрибуты.
Чтобы уничтожить атрибут, удалите его из списка атрибутов соответствующей сущности,
используя диалоговое окно определения сущности, щелкните на имени удаляемого атрибута в
списке, чтобы выделить его. Щелкните мышью на кнопке Delete чтобы удалить этот атрибут из
списка. Щелкните мышью на кнопке ОК чтобы закрыть диалоговое окно определения сущности.
Когда вы закрываете окно определения сущности, Design/IDEF вносит соответствующие изменения
в модель. Уничтоженный атрибут больше не присутствует внутри объекта-сущности на диаграмме.
Кроме того, если данный атрибут мигрировал в другие сущности как внешний ключ, он также
автоматически удаляется и из этих сущностей.
Когда вы закрываете диалоговое окно определения сущности после добавления атрибутов,
Design/IDEF вычерчивает на диаграмме объект-сущность вместе с атрибутами.
 Атрибуты первичного ключа располагаются внутри сущности над горизонтальной
разделительной линией.
 Атрибуты, являющиеся частью альтернативного ключа и инверсного
входа отображаются внутри сущности с соответствующими метками.
 Если сущность имеет атрибут-дискриминатор, Design/lDEF вычерчивает
полный (указывающий на полное множество категорий) объект-дискриминатор под сущностью.
Например,
сущность,
изображенная
ниже,
имеет
атрибут-дискриминатор
"категория
преподавателя^' представленный в виде полного дискриминатора, расположенного под сущностью.
См. пункт Изменение типа дискриминатора в расположенном ниже разделе Редактирование
информации об атрибутах, чтобы получить информацию о том, как изменить полный
(указывающий на полное множество категорий) дискриминатор на неполный (указывающий на
неполное множество категорий) и наоборот.
8. Редактирование информации об атрибутах
Чтобы отредактировать информацию о каком-либо атрибуте, войдите в диалоговое окно
определения сущности, к которой относится этот атрибут, щелкните мышью на имени нужного
атрибута в списке чтобы выделить его. Имя выделенного атрибута будет изображено другим цветом.
Щелкните мышью на кнопке Edit (Редактировать). Откроется диалоговое окно определения
атрибута, в котором содержится информация о текущем атрибуте. Если он не является внешним
ключом, диалоговое окно выглядит так же, как и при добавлении атрибута. Вы можете теперь
изменить любую информацию об атрибуте.
Если атрибут является внешним ключом, диалоговое окно имеет два дополнительных поля поле Foreign Key (Внешний ключ) в котором описывается источник внешнего ключа (сущность и
отношение), а также поле ввода имени роли и имени группы:
Для атрибута, являющегося внешним ключом вы можете добавить имя роли и имя группы, а
также добавить или изменить характеристики атрибута: признаки первичного и альтернативных
ключей, инверсного входа и дискриминатора. Вы не можете редактировать никакой другой
информации об этом атрибуте. Отредактируйте информацию в диалоговом окне определения
атрибута желаемым образом. Более подробную информацию об имени роли и имени группы можно
найти в расположенном ниже разделе Добавление имени роли.
Чтобы сохранить информацию об атрибуте в измененном виде и интегрировать ее в модель,
щелкните мышью на кнопке ОК. Окно определения атрибута закроется. Вы окажетесь в окне
определения сущности. Все изменения, сделанные в характеристиках атрибута отразятся в списке
атрибутов. Если, к примеру, у атрибута, отмеченного ранее как первичный ключ, снять эту отметку
и взамен определить его как часть альтернативного ключа №1, Design/IDEF заменит метку РК,
расположенную справа от имени атрибута на метку АК1.
Если вы закроете диалоговое окно определения сущности после внесения этих изменений,
Design/IDEF интегрирует их в модель. Если вы изменили некоторые характеристики атрибутов
Design/IDEF при необходимости автоматически распространит эти изменения и на другие сущности
модели, которые связаны с той, которую вы редактировали в данный момент.
Для того чтобы отменить изменения, внесенные в характеристики атрибута, щелкните
мышью на кнопке Cancel. Окно определения атрибута закроется. Вы окажетесь в окне определения
сущности.
9. Изменение типа дискриминатора
Вы можете изменить тип дискриминатора с полного (указывающего на полное множество
категорий) на неполный (указывающий на неполное множество категорий) и наоборот.
Полный дискриминатор.
Неполный дискриминатор.
Щелкните мышью на символе дискриминатора. Выберите команду Toggle
Discrimmator Переключить тип дискриминатора) в меню Create, или щелкните мышью
на кнопке Toggle Discriminator (Переключить тип дискриминатора), расположенной в
палитре инструментов.
Когда Design/IDEF автоматически создает объект-дискриминатор на диаграмме, имя
дискриминатора помещается в позицию, установленную по умолчанию. При желании вы можете
переместить имя дискриминатора в другое место на диаграмме, щелкните мышью на имени
дискриминатора чтобы выделить его. Перемещайте имя дискриминатора удерживая кнопку мыши
нажатой. После достижения нужной позиции отпустите кнопку мыши.
10. Определение имени роли
Имя роли может быть определено только для
атрибута, являющегося внешним ключом. Войдите в
диалоговое окно определения атрибута, являющегося
внешним ключом для которого вы хотите определить имя
роли. После этого введите имя роли в поле Role Name
(Имя роли).
Щелкните мышью на кнопке ОК чтобы
закрыть диалоговое окно определения атрибута. Щелкните
мышью на кнопке ОК чтобы закрыть диалоговое окно
определения
сущности.
Design/IDEF
обеспечивает
автоматическую миграцию имени роли в связанные
сущности. В следующем примере имя роли "занятия" было
добавлено к атрибуту "код-предмета" в сущности АУДИТОРИЯ. Когда этот атрибут мигрирует в
сущность ЛЕКЦИЯ, он получает имя занятия.
Вы можете назначить одинаковое имя роли для нескольких атрибутов. В этом случае данное
имя будет являться именем группы.
Чтобы создать группу из нескольких атрибутов объединенных одним групповым именем:
 Для всех атрибутов, которые вы хотите включить в группу, введите одинаковое имя роли в
поле Role Name.
После введения имени роли для каждого атрибута окно определения атрибута закрывается, и имя
атрибута с добавленным именем роли появляется в списке. Все атрибуты, включенные в группу,
будут расположены рядом, поскольку атрибуты в списке сортируются в алфавитном порядке.
 После того как вы закончите назначать групповое имя атрибутам, щелкните мышью на кнопке
ОК
чтобы
закрыть
диалоговое
окно
определения
сущности.
Design/IDEF
обеспечивает
автоматическую
миграцию имени группы в связанные сущности в пределах
модели. В приведенном ниже примере групповое имя
"требования" было добавлено к атрибутам " номерсеместра" и " код-предмета" в сущности ЛЕКЦИЯ. Эти
атрибуты мигрировали в сущность УЧЕБНОЕ ПОСОБИЕ.
в виде атрибута с групповым именем "требования".
11. Работа с отношениями
Данный раздел описывает процедуры, используемые при определении и редактировании
отношений. Design/IDEF отображает на диаграмме дуги отношений в соответствии с определенными
вами характеристиками. Кроме того, Design/IDEF использует информацию об отношениях для того,
чтобы обеспечить миграцию атрибутов из сущности-родителя в сущность-потомок и для
определения того, в каком виде будет отображаться сущность - как зависимая либо как независимая.
После того как вы создали в модели несколько сущностей, вы можете установить отношения
между ними. Это производится следующим образом: сначала две сущности соединяются дугой
отношения и после этого определяются характеристики этого отношения.
После определения какого-либо отношения, Design/IDEF автоматически вносит изменения в
модель в соответствии с характеристиками этого отношения: например, изменяет вид сущности с
независимого на зависимый и обеспечивает миграцию атрибутов как внешних ключей из
родительской сущности в сущность-потомок. Чтобы создать отношение между двумя сущностями
модели, выберите команду Relationship (Отношение) в меню Create, либо щелкните
мышью на кнопке Relationship: расположенной в палитре инструментов. Указатель
изменит свою форму на указатель дуги: протяните дугу отношения соединив ею две сущности.
Удобнее всего протянуть дугу по кратчайшему расстоянию между двумя сущностями. После этого
Design/IDEF автоматически маршрутизирует эту дугу таким образом, чтобы она не пересекала
другие сущности, поместив острие указателя дуги неглубоко внутри границ сущности-родителя,
нажмите и не отпускайте кнопку мыши. Переместите указатель дуги внутрь сущности-потомка и
отпустите кнопку мыши.
Вы можете также вручную проложить маршрут дуги отношения от сущности родителя до
сущности потомка. Информацию о том, как это сделать, можно найти в главе Дуги IDEFO.
После того как вы соедините две сущности дугой, открывается диалоговое окно определения
отношения:
Используйте это диалоговое окно для того, чтобы определить характеристики отношения. В
этом окне указаны имена родительской сущности и сущности-потомка, связанных отношением. Вы
должны указать имя отношения. Это имя отображается на диаграмме в виде текстовой метки
расположенной рядом с дугой отношения. Введите имя отношения родительской сущности к
сущности-потомку в поле Relationship (Отношение).
Вы можете также использовать поле Inverse (Обратное), чтобы указать имя обратного
отношения - сущности-потомка к родительской сущности. Если вы укажете имя обратного
отношения, то на диаграмме это будет отображено следующим образом: текстовая метка,
расположенная рядом с дугой отношения будет содержать на первом месте имя, указанное в поле
Relationship, после него - символ "/", и затем - имя обратного отношения, указанное в поле Inverse.
По умолчанию имена прямого и обратного отношения располагаются на одной строке. Вы можете
также расположить их на двух строках - одно под другим. На рисунке ниже показаны обе этих
возможности:
Чтобы имена прямого и обратного отношения отображались на разных строчках: отметьте
пункт Separate Lines (Раздельные строки).
Другие поля в диалоговом окне определения отношения могут содержать дополнительную
информацию об отношении. Эта информация не является обязательной. Ниже приведено описание
данных полей.
Definition (Определение):
Type (Тип):
• Identifying (Идентифицирующее)
• Non-identifying (Неидентифицирующее)
• Non-specific (Неспецифическое)
Null Allowed (Нуль разрешен):
Cardinality (Мощность):
Zero, One, or Many
(Ноль, один или несколько):
Zero or One (Z)
(Ноль или один):
Оп; or Many (P)
(Один или несколько):
Exactly
(Точно):
Текстовое описание отношения
Тип отношения. Имеются три возможных типа отношений:
Доступно только для типа отношения "неидентифицирующее" (NonIdentifying). Если это поле отмечено, отношение является опциональным,
т. е. экземпляр сущности-потомка может быть не связан ни с одним
экземпляром сущности-родителя.
Количество экземпляров сущности-потомка, связанных данным
отношением с экземпляром родительской сущности. Возможны
следующие значения мощности:
Пункт отмечается, если в отношении может находиться ноль или более
экземпляров сущности-потомка.
Пункт отмечается, если в отношении может находиться ноль или один
экземпляр сущности-потомка.
Пункт отмечается, если в отношении может находиться один или
более экземпляров сущности-потомка.
Пункт отмечается, если в отношении должно находиться известное
точное количество экземпляров сущности-потомка.
Введите количество экземпляров в поле ввода справа от метки Exactly.
Чтобы сохранить определенное отношение, щелкните мышью на кнопке ОК чтобы закрыть
диалоговое окно и добавить дугу отношения в модель.
Чтобы отменить создание отношения, щелкните мышью на кнопке Cancel чтобы закрыть
диалоговое окно без добавления в модель дуги отношения.
Когда вы закрываете диалоговое окно после определения
отношения, Design/IDEF автоматически обновляет диаграмму в
соответствии с введенной вами информацией.
Если было создано идентифицирующее отношение:

Если сущность-потомок была независимой сущностью, то
она преобразуется в зависимую.

Атрибуты первичного ключа родительской сущности
мигрируют в сущность-потомок в качестве атрибутов первичного
внешнего ключа. В приведенном ниже примере обе сущности
ПРЕАМЕТ
и
СЕМЕСТР
связаны
идентифицирующими
отношениями с сущностью ПРОГРАММА.
Если
было
создано
неидентифицирующее
отношение,
атрибуты первичного ключа родительской сущности мигрируют в
сущность-потомок в качестве внешних ключей. В приведенном
ниже примере обе сущности ПРЕАМЕТ и СЕМЕСТР связаны
неидентифицирующими отношениями с сущностью ПРОГРАММА.
Когда
создается
сущность,
которая
имеет
атрибут-дискриминатор,
Design/IDEF
автоматически помещает на диаграмме непосредственно под сущностью объект-дискриминатор.
После
того
как
вы
создадите
сущности-категории
для
этого
дискриминатора, протяните дуги отношений от объекта-дискриминатора к
каждой сущности-категории. Кроме этого ничего делать не требуется, т. к. для
отношения между дискриминатором и сущностью-категорией не нужно
определять имя.
12. Редактирование информации об отношении
Чтобы изменить информацию о существующем отношении, необходимо открыть диалоговое
окно определения отношения. Это можно сделать следующим образом: щелкните мышью на дуге
отношения чтобы выделить ее. Выберите команду 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 автоматически удалит все
атрибуты, мигрировавшие в сущности-потомки в качестве внешних ключей. Также, если это
необходимо, зависимые сущности будут преобразованы в независимые.
13. Порождение определения данных (DDL) на языке SQL
Design/IDEF позволяет автоматически сгенерировать операторы определения данных на
языке SQL (SQL Data Definition Language stafemenrs) соответствующие разработанной вами IDEFlXмодели. См. расположенный выше раздел Определение целевой СУБД, в котором можно найти
информацию о том, как выбрать
СУБД,
для которой вы будете генерировать определение данных на
SQL.
Постройте IDEFlX-модель, определите все сущности, атрибуты и ключи. Выберите
команду Export (Экспортировать) в меню File. Выберите пункт SQL Files (*. SQL) в списке выбора
в разделе Format (Формат). Введите имя файла, в который должен быть помещен текст на SQL, и
укажите каталог, в котором будет сохранен этот файл. Щелкните мышью на кнопке ОК.
Download