Логическая модель данных erwin. Логическая и физическая модели в erwin data modeler. Этапы построения информационной модели

Лабораторная работа № 5

Цель работы:

Задание:

Последовательность выполнения работы

Знакомство с пользовательским интерфейсом

· Загрузите программу Erwin.

· В появившемся диалоговом окне установите переключатель Crеаte а New Model. На экране появится диалог Create Model – Select Template, гденеобходимо выбрать уровень моделирования.

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

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

· Установите переключательLogical/Physical для создания модели с логическим и физическим уровнями.

· В полях DataBase и Version указывается тип и версия сервера, для которого создается модель. Выберите в списке Access, 2000. Нажмите кнопку ОК .

· На экране появится основное окно программы.

В верхней части окна находится титульная строка, в которой указано название программы, наименование модели, наименование подмножества (Subject Area) и хранимого отображения (Stored Display). Основную часть пространства программы занимает рабочая область, в которой создается ER-диаграмма.

Для переключения между логическим и физическим уровнями на панели инструментов имеется список (рис 1.1).

Помимо этого списка, на панели инструментов имеются кнопки (см. табл. 1.1).

Таблица 1.1.

Кнопки, расположенные на панели инструментов программы Erwin

Кнопка Назначение
Создание, открытие, сохранение и печать модели
Вызов диалога Report Browser для генерации отчетов
Изменение уровня просмотра модели: уровень сущностей, уровень атрибутов, уровень определений
Изменение масштаба просмотра модели
Генерация схемы БД, выравнивание схемы с моделью и выбор сервера (доступны только на уровне физической модели)
Переключение между областями модели Subject Area


Для непосредственной работы с элементами модели в программе имеется палитра инструментов (Erwin Toolbox), представляющая собой «плавающее окошко» (рис. 1.2). При необходимости палитру инструментов можно убирать с экрана и вызывать нажатием комбинации клавиш «CTRL-T».

Рис. 1.2. Палитра инструментов на логическом уровне

Внесение в модель сущностей

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

· Выберите на панели инструментов (ERwin Toolbox) кнопку Сущность ,щелкнув по ней указателем мыши. Затем щелкните мышкой по тому месту на диаграмме, где необходимо расположить новую сущность. На поле диаграммы появится прямоугольник, изображающий новую сущность, с автоматически сгенерированным именем «Е/1».

· Введите с клавиатуры имя сущности «Покупатель » и нажмите Enter .

· Точно таким же образом вставьте в диаграмму еще четыре сущности: договор, накладная, товар, склад.

· Щелкнув правой кнопкой мыши по сущности и выбрав из контекстного меню пункт Entity Properties , можно вызвать редактор сущностей Entities (рис. 1.6), который позволяет изменять свойства выбранной сущности. Редактор сущностей также можно вызвать через главное меню: Model | Entities.



Рис. 1.6. Редактор сущности

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

Ниже в окне редактора находится ряд закладок:

Definition (определение) – на этой странице вводится определение сущности.

Note, Note2, Note3 (примечание) – используются для ввода произвольного текста, связанного с сущностью, например, образцы данных и запросы.

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

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

· Для каждой сущности введите определение Definition.

Ключевые группы

· Вызовите редактор ключевых групп Key Groups, щелкнув правой кнопкой мыши по сущности Покупатель и выбрав из контекстного меню пункт Key Groups . Редактор ключевых групп также можно вызвать через главное меню: Model | Key Groups.

Редактор ключевых групп содержит элементы управления:

Entity – поле с выпадающим списком, в котором следует выбрать сущность для редактирования.

Окно с перечнем ключевых групп. Каждая группа представлена отдельной строкой, включающей в себя имя (Key Group), тип (Type) и определение (Definition).

Кроме того, диалоговое окно редактора ключевых групп содержит следующие закладки:

ü Members (члены). Задаются члены ключевых групп и их порядок следования в группе.

ü General (общие установки). Переключатели, позволяющие задавать тип ключевой группы. Для первичного и внешнего ключа эти группы недоступны.

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

ü Note (примечание). Примечание к выбранной группе.

ü UDP (пользовательские свойства).

· Нажмите кнопку New .

· В окне New Key Group в поле Key Group введите имя ключевой группы – ИНН . В поле Index выводится генерируемое программой Erwin имя индекса. Оставьте его без изменений.

· Переключатель Key Group Type задает тип создаваемого ключа. Это может быть альтернативный ключ (Alternate Key) или инверсный вход (Inversion Entry). Выберите Alternate Key и нажмите ОК . Вновь введенный альтернативный ключ появится в перечне ключей.



Перейдите на закладку Members . Новый ключ пока не содержит никаких атрибутов, поэтому правый список Key Group Members (члены ключевой группы) пуст. Выберите в левом списке атрибут ИНН и переместите его в правый список при помощи кнопки со стрелкой (см. рис. 1.8).

Рис. 1.8. Редактор ключевых групп

· Таким же образом создайте ключевые группы для инверсных входов, приведенных в табл. 1.3.

Лабораторная работа № 6

Задание правил декларативной ссылочной целостности

· Находясь на логическом уровне модели данных, выделите связь «заключает» между сущностями Покупатель и Договор, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Relationship Properties (редактор связей).

· В окне редактора связей Relationship перейдите на вкладку RI Actions . Ознакомьтесь с правилами ссылочной целостности для связи «Покупатель – Договор», присвоенными по умолчанию. Данные установки запрещают вставку и изменение экземпляра дочерней сущности, а также удаление и изменение родительской сущности. Это означает, что не допускается удаление или изменение покупателя, если в базе данных имеются заключенные с ним договоры, а также ввод договора без указания покупателя или со ссылкой на несуществующего покупателя. Тем самым мы выполнили условие, по которому договор может существовать только для конкретного покупателя.

· Проанализируйте установленные правила ссылочной целостности для всех остальных связей.

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

Нормализация данных

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

· Создайте сущность Телефон, содержащую следующие атрибуты: КОД_ТЕЛ (первичный ключ, тип – number) и ТЕЛ (тип – string).

· Свяжите сущности Покупатель и Телефон идентифицирующей связью. Установите мощность связи – One or More (P) и введите имя связи – имеет.

Выбор сервера

· Выполните команду Database | Choose Database .

· В диалоговом окне Erwin/ERX – Target Server необходимо задать тип сервера – Access и его версию – 2000 . Кроме того, здесь указывается используемый по умолчанию тип данных и условие NULL для вновь созданных колонок. Некоторые опции данного диалогового окна зависят от выбранного типа сервера.

· После выбора сервера нажмите кнопку ОК .

Денормализация данных

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

Таблица 2.1.

Результат разрешения связей «многие-ко-многим»

Разрешение связей «многие-ко-многим» осуществляется автоматически при переходе на физический уровень, либо с помощью специального мастера Many Relationship Transform Wizard .

· Для вызова данного мастера выделите связь «Товар – Договор», щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Create Association Table (создать ассоциативную таблицу). На экране появится первый диалог мастера, содержащий текст о его назначении.

· Введите в поле Table Name (имя таблицы) – Поставка_План . В поле Table Comment (комментарии к таблице) введите текст: Сведения о поставках товара по договору.

· На модели появилась новая таблица Поставка_План, связанная идентифицирующей связью с таблицами Товар и Договор.

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

· Самостоятельно введите три новых колонки в соответствии с табл. 2.1.

· Рассмотренным выше способом (с использованием мастера) преобразуйте связь «Товар – Накладная» и дополните полученную ассоциативную таблицу Отгрузка двумя колонками согласно табл. 2.1.

Задание правил валидации

Задание списка допустимых значений

В соответствии с рассматриваемой предметной областью для поля СТАВКА_НДС таблицы Товар зададим список допустимых значений: 0, 10 и 18 %.

Columns.

· В окне редактора в поле Column – СТАВКА_НДС .

· Перейдите на закладку выбранной СУБД – Access .

· Valid .

· В диалоге Validation Rules щелкните по кнопке New .

· В диалоге New Validation Rule вполе Logical введите имя правила – Проверка ставки НДС . Нажмите кнопку ОК .

· Перейдите на закладку General . В группе Type установите опцию Valid Value List .

· В поле Valid Value в первой строке введите 0. Во вторую и третью строки введите значения: 10 и 18.

· Проверьте, чтобы в верхней части окна редактора Validation Rules появилась строчка: Проверка ставки НДС (Validation Name) IN (0, 10, 18) (Validation Rule).

· Нажмите ОК. В окне редактора Columns на закладке Access в поле Valid появилось наименование созданного правила – «Проверка ставки НДС».

Задание значений, присваиваемых по умолчанию

Создадим правило, согласно которому в поле ДАТА_ДОГ таблицы Договор будет по умолчанию подставляться значение текущей даты.

· Вызовите контекстное меню таблицы Договор и выберите пункт Columns.

· В окне редактора в поле Column выберите колонку, для которой будет задаваться правило– ДАТА_ДОГ .

· На закладке Access щелкните по кнопке, расположенной справа от раскрывающегося списка Default .

· В диалоговом окне Default/Initial Values щелкните по кнопке New .

· В диалоге New Default Value вполе Logical введите имя правила – Текущая дата . Нажмите кнопку ОК .

· На закладке Access в поле Server Value – Access Default введите Date() (функцию, получающую значение текущей даты).

· Нажмите ОК. В окне редактора Columns на закладке Access в поле Default появилось наименование созданного правила – «Текущая дата».

· Установите это же правило для поля ДАТА_ОТГР таблицы Накладная. Для этого в окне редактора колонок Column выделите поле ДАТА_ОТГР и на закладке Access в поле Default из раскрывающегося списка выберитеправилоТекущая дата.

Задание правил проверки вводимых значений

Создадим правило проверки вводимых значений для поля ЦЕНА таблицы Товар, согласно которому данное поле не может иметь значения, меньшие 0.

· Вызовите контекстное меню таблицы Товар и выберите пункт Columns.

· В окне редактора в поле Column выберите колонку, для которой будет задаваться правило– ЦЕНА .

· На закладке Access щелкните по кнопке, расположенной справа от раскрывающегося списка Valid .

· В диалоге Validation Rules щелкните по кнопке New .

· В диалоге New Validation Rule вполе Logical введите имя правила – Проверка цены . Нажмите кнопку ОК .

· Перейдите на закладку General . В группе Type установите опцию Min/Max .

· В поле Min введите 1. Кроме нижней границы диапазона значений здесь также можно задать и верхнюю границу (Max ).

· В верхней части окна редактора Validation Rules в списке правил валидации добавилось вновь созданное: Проверка цены >=1.

· Нажмите кнопку ОК .

Лабораторная работа № 7

Расчет размера базы данных

Цель работы:

Освоить методику расчета размера базы данных, реализованную в Erwin.

Лабораторная работа № 8

Создание отчетов в Erwin

Цель работы:

· изучение видов отчетов;

· освоение процедуры создания отчетов

Лабораторная работа № 5

Основы работы в Erwin. Построение логической модели данных

Цель работы:

· овладение навыками работы в Erwin;

· построение логической модели заданной предметной области.

Задание:

Построить логическую информационную модель поставки товаров в соответствии с договорами средствами Erwin.

6. Моделирование в ERwin

Место ERwin в информационном моделировании
Процесс построения информационной модели состоит из следующих шагов:

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

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

Отображение логического и физического уровня модели данных в ERwin

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

Компоненты диаграммы ERwin и основные виды представлений диаграммы

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

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

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

Инструменты для создания модели в ERwin

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

  • редакторы, связанные с сущностью в целом (определение сущности, дополнительная информация, триггеры, индексы, характеристики таблицы, хранимые процедуры, связанные с таблицей);
  • редакторы атрибутов (определение атрибутов, колонки таблицы в физическом представлении модели, репозитарий средства 4GL, например, расширенные атрибуты в PowerBuilder).

Идентификация сущностей. Сущности в ERwin

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

  • атрибуты, составляющие первичный ключ;
  • неключевые атрибуты;
  • тип сущности (независимая/зависимая).

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

Связи (relationships) в ERwin

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

  • тип связи (идентифицирующая, неидентифицирующая, полная/неполная категория, неспецифическая связь);
  • родительская сущность;
  • дочерняя (зависимая) сущность;
  • мощность связи (cardinality);
  • допустимость пустых (null) значений.

Связь называется идентифицирующей, если экземпляр дочерней сущности идентифицируется через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой.
Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав неключевых атрибутов дочерней сущности.
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; неидентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности.
При определении связи происходит миграция атрибутов первичного ключа родительской сущности в соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся вручную.
Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности. В случае неоднократной миграции атрибута такое переименование необходимо. Например, сущность "посредническая сделка" имеет атрибут "код предприятия-продавца" и "код предприятия-покупателя". В данном случае первичный ключ сущности "предприятие" ("код предприятия") имеет две роли в дочерней сущности.
На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице.
Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n.
ERwin в соответствии с методологией IDEF1X предоставляет 4 варианта для n, которые изображаются дополнительным символом у дочерней сущности: ноль, один или больше (по умолчанию); ноль или один; ровно N, где N - конкретное число.
Допустимость пустых (NULL) значений в неидентифицирующих связей ERwin изображает пустым ромбиком на дуге связи со стороны родительской сущности.
Обозначения мощности соответственно ноль, один или больше, один или больше, ноль или один в нотации IE приведены на рис. 1.

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

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

Графическое редактирование модели

Лабораторная работа №4. Определение связей между сущностями в ERwin

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

https://pandia.ru/text/78/177/images/image002_182.gif" width="123" height="128 src=">ется генерируемая по умолчанию глагольная фраза - «R/1» (рисунок 4.2).

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

Шаг 3. Перейдите на уровень атрибутов и обратите внимание на то, что у сущно- сти «Учебное место» добавился атрибут первичного ключа от сущности «Класс» и помечен буквами «FK». Говорят, что атрибут «мигрировал», a FK (foreign key) означает, что атрибут является частью внешнего ключа (рисунок 4.3). Для иден - тифицирующей связи внешний ключ всегда входит в первичный ключ дочерней

сущности, для неидентифицирующей не входит.

Рисунок 4.3 - Миграция атрибутов

Шаг 4. Назначьте связи глагольную фразу. Для этого выделите связь, щелкнув по ней указателем мыши, затем нажмите правую кнопку мыши и в контекстном ме - ню выберите пункт «Relationship Properties… » (свойства отношений).

Общий вид окна редактора связей показан на рисунке 4.4.

Базы данных" href="/text/category/bazi_dannih/" rel="bookmark">базы данных . В нашем примере, так как при анализе предметной области мы выяснили, что учебное место не может существовать отдельно от класса, установите этот пе - реключатель в позицию «No Nulls». Тем самым накладывается условие, что у су- ществующего экземпляра рабочего места всегда должна быть ссылка на класс, в который оно входит.

Закладка «Definition» (определение).

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

Закладка «Rolename» (Имя роли)

Имя роли (rolename) - это дополнительная характеристика, которая может при-

сваиваться мигрирующему атрибуту первичного ключа (рисунок 4.5).

https://pandia.ru/text/78/177/images/image006_79.gif" width="358" height="221 src=">

Рисунок 4.6 – Контекстное меню диаграммы для отображения мигрирующих атрибутов сущностей

Закладка «RI Actions» (Установки ссылочной целостности)

Закладка предназначена для задания параметров ссылочной целостности проек-

тируемой базы данных (рисунок 4.7).

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

Существуют следующие виды действий или правил, определяемых в логической модели:

1 RESTRICT - запрет удаления, вставки или изменения экземпляра сущности

2 CASCADE - при удалении экземпляра родительской сущности удаление всех экземпляров дочерней сущности, ссылающихся на удаляемый роди- тельский экземпляр.

3 SET NULL - при удалении экземпляра родительской сущности атрибутам внешнего ключа всех экземпляров дочерней сущности, присваивается зна - чение NULL.

4 SET DEFAULT - то же самое, что и в предыдущем случае, только вместо значения NULL присваивается значение по умолчанию.

5 NONE - никаких действий не предпринимается.

Рисунок 4.7 – Закладка «RI Actions» (Установки ссылочной целостности)

Эти правила задаются на вставку, удаление и изменение экземпляра как родитель - ской, так и дочерней сущности. Таким образом, каждая связь должна обладать на - бором из шести правил, которые вводятся в поля, объединенные общим заголов - ком «RI Actions». При добавлении связи в диаграмму ERwin по умолчанию уста - навливает для нее набор правил, которые можно редактировать в диалоге «Model Properties» (Свойства модели) на вкладке «RI Defaults»(рисунок 4.8), вызываю-

щемся путем выбора из главного меню команды «Model» Server» и, далее, подко-

манды «Model Properties» (рисунок 4.9).

https://pandia.ru/text/78/177/images/image009_57.gif" width="227" height="289 src=">

Рисунок 4.9 – Порядок вызова диалогового окна «Model Properties»

Правила, присваиваемые связи по умолчанию, можно изменить, выбрав нужное значение из выпадающего списка (см. рисунок 4.8). При нажатии на кнопку «Re - bind» (переназначить) новые установки умолчаний переносятся в текущую мо-

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

Каждый тип связи имеет, в зависимости от вида действия, свой набор допустимых правил, приведенный в таблице 4.2.

Таблица 4.2 - Набор допустимых правил для различных типов связей

действия

Тип связи (Relationship Type)

Идентифици-

Неидентифици-

рующая (Non- Identifying, Nulls

Неидентифици-

рующая (Non- Identifying, No

ная связь

(удаление дочернего объекта)

CASCADE, NONE SET NULL,

CASCADE, NONE SET DEFAULT

(вставка дочернего объекта)

CASCADE, NONE SET NULL,

CASCADE, NONE SET DEFAULT

(изменение дочернего объекта)

CASCADE, NONE SET

NULL, SET DE - FAULT

CASCADE, N6NE SET

(удаление родитель - ского объ- екта)

CASCADE, NONE SET

CASCADE, NONE SET

(вставка родитель - ского объ- екта)

CASCADE, NONE SET NULL,

CASCADE. NONE SET DEFAULT

(изменение родитель - ского объ - екта)

CASCADE, NONE SET

CASCADE, NONE SET


Установки для связи «Класс - Учебное место», присвоенные по умолчанию, за - прещают вставку и изменение экземпляра дочерней сущности, а также удаление и изменение родительской сущности. Это означает, что не допускается удаление

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

Закладка «UDP» (Параметры устанавливаемые пользователем)

Закладка - UDP, как и у предыдущих объектов диаграммы, позволяет присвоить связи свой набор пользовательских свойств.

Итак, мы создали неидентифицнрующую связь между сущностями «Класс» и

«Учебное место» с условием «No Nulls». Очевидно, связь того же типа должна существовать между сущностями «Тип оборудования» и «Единица оборудова- ния», так как единица оборудования обязательно должна иметь тип. Внесите эту связь в диаграмму, выполнив те же действия, что и в предыдущем случае. Вызо - вите редактор связей и измените глагольную фразу на «описывает», остальные установки связи оставьте неизменными. Обратите внимание, что атрибут «код ти- па оборудования» мигрировал в состав неключевых атрибутов сущности «Учеб- ное место» (рисунок 4.10).

Рисунок 4.10 – Атрибут «код типа оборудования» мигрировал в состав неключевых атрибутов сущности «Учебное место»

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

Шаг 5. Выберите неидентифицирующую связь в палитре инструментов и внесите ее в диаграмму, выбрав «Учебное место» в качестве родительской сущности, а

«Единицу оборудования» - дочерней. В редакторе связи измените глагольную фразу «Parent-to-Child» на «состоит из». Неидентифицирующая связь имеет две разновидности - допускающая значения NULL (Nulls Allowed) и не допускающая (No Nulls). По умолчанию выбирается разновидность «Nulls Allowed», оставьте это без изменений. Такая установка означает, что у экземпляра сущности «Едини - ца оборудования» поля внешнего ключа могут иметь нулевое значение, то есть

отсутствовать указание на экземпляр «Учебного места». Таким образом, единица оборудования может существовать «сама по себе».

После установки связей диаграмма на уровне сущностей будет иметь вид, пока-

https://pandia.ru/text/78/177/images/image012_32.gif" width="556" height="327 src=">ние связей, показанное на рисунке 4.12.

Рисунок 4.12 - Изображение связей в нотации IDEF1X

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

лостности - для этого необходимо выбрать в контекстном меню диаграммы пункт

«Relationship Display» и подпункт «Referential Integrity» (Шаг 6. ).

Алфавит" href="/text/category/alfavit/" rel="bookmark">алфавит- ные группы, разделенные символом двоеточия «:». Первый символ обозначает действие, к которому относится правило целостности: D - удаление (delete), I - вставка (insert), U - изменение (update).

Вторая группа обозначает правило: R - RESTRICT, С - CASCADE, SN - SET NULL, SD - SET DEFAULT. Таким образом, запрет удаления обозначается D:R, а установка NULL при изменении - U:SN. Обозначения проставляются у родитель- ского или дочернего конца связи, в зависимости от того, к какой сущности они относятся. С включенными установками ссылочной целостности диаграмма вы-

глядит так, как показано на рисунке 4.14.

Рисунок 4.14 - ER-диаграмма с включенными установками ссылочной целостности

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

Шаг 7. На вкладке «Уровень сущностей» сохраните модель, например, под име-

нем Lab_4_Petrov. er1.

Шаг 8. Выполните индивидуальное задание по определению связей между сущ-

ностями в ERwin для указанной предметной области (см. таблица 3.4).

1. Результаты выполнения шагов 1 – 7 программы занятия.

2. Результаты выполнения индивидуального задания.

Контрольные вопросы

1. Как различают зависимые и независимые сущности на диаграмме ERwin?

2. Какая связь между сущностями называется неидентифицирующей?

3. Что такое физическая и логическая модель данных?

4. Какая связь между сущностями называется идентифицирующей?

5. Поясните смысл утверждения о том, что некоторый атрибут «мигрировал»?

6. Что обозначает символика «FK» на диаграмме ERwin?

7. Какими возможностями обладает редактора связей?

8. Каково изображение связей в нотации IDEF1X?

9. Как производится обозначение ссылочной целостности на диаграмме

10.Какие связи между сущностями были использованы при выполнении инди-

видуального задания?

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 – }