ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2020
Просмотров: 251
Скачиваний: 1
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав неключевых компонентов родительской сущности. Неиден-тифицирующая связь служит для связывания независимых сущностей.
Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи, неидентифицирующая – пунктирной.
Во вкладке General меню Relationship Editor можно задать мощность, имя и тип связи.
Мощность связей (Cardinality) – служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.
Различают четыре типа сущности:
-
общий случай, когда одному экземпляру родительской сущности соответствует 0, 1 или много экземпляров дочерней сущности (не помечается каким-либо символом);
-
одному экземпляру родительской сущности соответствует 1 или много экземпляров дочерней сущности (помечается символом Р);
-
одному экземпляру родительской сущности соответствует 0 или 1 экземпляр дочерней сущности (помечается символом Z);
-
одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности (помечается цифрой точного соответствия).
По умолчанию символ, обозначающий мощность связи, не показывается на диаграмме. Для отображения имени следует в контекстном меню для диаграммы (щёлкнуть правой кн. «мыши» в месте не занятом объектами модели) выбрать пункт Display Options/Relationship и затем включить опцию Cardinality.
Имя связи (Verb Phrase) – фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи "один-ко-многим", идентифицирующей или неидентифицирующей, достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent.
Связь многие-ко-многим возможна только на логическом уровне. При переходе к физическому уровню Erwin автоматически преобразует связь многие-ко-многим, добавляя новую таблицу и устанавливая две новые связи один-ко-многим от старых к новой таблице.
Иерархия наследования представляет собой особый тип объединения сущностей, которые разделяют общие характеристики. Обычно иерархию наследования создают, когда несколько сущностей имеют общие по смыслу amрибуты, либо когда сущности имеют общие по смыслу связи, либо когда это диктуется бизнес-правилами.
Для каждой категории можно указать дискриминатор – атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой.
Иерархии категорий делятся на два типа – полные и неполные. В полной категории одному экземпляру родового предка обязательно соответствует экземпляр в каком-либо потомке. Если категория еще не выстроена полностью и в родовом предке могут существовать экземпляры, которые не имеют соответствующих экземпляров в потомках, то такая категория будет неполной.
Указания к выполнению задания
Установить связи между сущностями. Один клиент может сделать несколько заказов, но один и тот же заказ у двух разных клиентов быть не может, т.е. следует применить связь один ко многим (жирная точка на конце связи означает «многие»). Аналогично рассуждая, расставьте связи между всеми сущностями модели.
-
Выберите кнопку , обозначающую связь «один ко многим» и соедините две необходимые сущности. Чтобы соединить, необходимо один раз кликнуть на сущности «один», а затем на сущности «многие».
-
Выберите кнопку , обозначающую связь «многие ко многим» и соедините необходимые две сущности.
-
Выберите кнопку , обозначающую неидентифицирующую связь, и соедините две необходимые сущности.
-
Аналогично соедините все необходимые сущности, отобразив взаимодействие между ними. Если во время установки связи у вас появилось диалоговое окно ERwin (рис. 2.2), это означает, что название атрибута, который мигрирует из родительской сущности, уже существует. Выберите соответствующую опцию миграции и нажмите ОК.
-
Рис. 2.2. Диалоговое окно ERwin при установке связи
Задание 3. Создание доменов
Домен можно определить как совокупность значений, из которых берутся значения атрибутов. Каждый атрибут может быть определен только на одном домене, но на каждом домене может быть определено множество атрибутов. В понятие домена входит не только тип данных, но и область значений данных.
В ERwin домен может быть определен только один раз и использоваться как в логической, так и в физической модели.
Домены позволяют облегчить работу с данными как разработчикам на этапе проектирования, так и администраторам БД на этапе эксплуатации системы. На логическом уровне домены можно описать без конкретных физических свойств. На физическом уровне они автоматически получают специфические свойства, которые можно изменить вручную.
Для создания домена в логической модели служит диалог Domain Dictionary Editor. Его можно вызвать из меню Edit/Domain Dictionary по кнопке, расположенной в верхней левой части закладки General диалога Attribute Editor. Каждый домен может быть описан, снабжен комментарием или свойством, определенным пользователем (UDP).
ERwin имеет специальный инструмент, который значительно облегчает создание новых атрибутов в модели, используя описание доменов Independent Attribute Browser. Этот диалог вызывается с помощью CTRL+B.
Задание 4. Построение физической модели данных
Физическая модель содержит всю информацию, необходимую для реализации конкретной БД. Различают два уровня физической модели:
-
трансформационная модель;
-
модель СУБД.
Трансформационная модель содержит информацию для реализации отдельного проекта, который может быть частью общей ИС и описывать подмножество предметной области. Данная модель позволяет проектировщикам и администраторам БД лучше представить, какие объекты БД хранятся в словаре данных, и проверить, насколько физическая модель удовлетворяет требованиям к ИС.
Модель СУБД автоматически генерируется из трансформационной модели и является точным отображением системного каталога СУБД.
Физический уровень представления модели зависит от выбранного сервера. ERwin поддерживает более 20 реляционных и нереляционных БД. Для выбора СУБД служит редактор Target Server (меню Server/Target Server... доступен только на физическом уровне).
По умолчанию ERwin генерирует имена таблиц и индексов по шаблону на основе имен соответствующих сущностей и ключей логической модели, которые в дальнейшем могут быть откорректированы вручную. Имена таблиц и колонок будут сгенерированы по умолчанию на основе имен сущностей и атрибутов логической модели. Значения по умолчанию можно при желании изменить путем изменения шаблона (Target Server/Table Name Macro) или вручную.
Диалог Target Server позволяет задать тип данных и опцию NULL для новых колонок. Тип данных можно выбрать в списке RI Defauls, который автоматически заполняется типами данных, поддерживаемых выбранным сервером. Группа кнопок Default Non-Key Null Option позволяет разрешить или запретить значения NULL для неключевых колонок.
Физическая модель отличается от логической тем, что каждому атрибуту сущности необходимо присваивать тип вводимых данных и их размер. Так же, в физической модели не допустимы связи «многие ко многим», поэтому эти связи необходимо исключить или каким-нибудь образом заменить на связь «один ко многим». Атрибуты и названия сущностей необходимо писать на английском или транслитом (латинскими буквами) используя только строчные (маленькие) буквы. Всё это надо сделать для того, чтобы была возможность импорта разрабатываемой базы данных в СУБД и корректной работы с ней.
Внесение новых таблиц и связей между ними на физическом уровне производятся также как на логическом уровне. Вызвать редакторы Table Editor или Column Editor для задания свойств таблиц и колонок можно через контекстно-зависимое меню для этих таблиц. Все изменения, сделанные в Table Editor или Column Editor, не отражаются на именах сущностей и атрибутов, поскольку информация на логическом и физическом уровнях в ERwin хранится отдельно.
Редактор Table Editor позволяет задать свойства любой таблицы модели, отличные от значения по умолчанию, в том числе имя таблицы, синонимы, правила валидации, процедуры и т.д.
Представления (view) или иными словами, временные или производные таблицы, представляют собой объекты БД, данные в которых не хранятся постоянно, как в таблице, а формируются динамически при обращении к представлению. Представление не может существовать само по себе, а определяется только в терминах одной или нескольких таблиц. Применение представлений позволяет разработчику БД обеспечить каждому пользователю или группе пользователей свой взгляд на данные, что решает проблемы простоты использования и безопасности данных. ERwin имеет специальные инструменты для создания и редактирования представлений. Палитра инструментов на физическом уровне содержит кнопки внесения представлений и установления связей между таблицами и представлениями. По умолчанию представление получает номер V_n, где n – уникальный порядковый номер представления.
Для редактирования представления необходимо выбрать в контекстно-зависимом меню для представления пункт View Editor. Каждой таблице можно задать необходимую информацию, которая будет использоваться в SQL-команде для создания представления.
Указания к выполнению задания
1. Для переключения между логической и физической моделью данных служит список выбора в центральной части панели инструментов ERwin (рис. 4.1). Переключитесь на отображение физической модели. Если при переключении физической модели еще не существует, она будет создана автоматически.
Рис. 4.1. Переключение между логической и физической моделью
2. Физическая модель БД определяется типом сервера, поэтому следующий этап создания модели – выбор сервера. Для выбора сервера СУБД необходимо открыть диалоговое окно, используя пункт основного меню Server/Target Server и выбрать в качестве сервера, например Access, Oracle или другую СУБД. После выбора сервера в области PHISYCAL автоматически сформируется схема БД, в которой типы полей будут соответствовать указанному серверу.
Для создания собственно БД запустите пункт основного меню Tasks/ Schema Generation. В открывшемся окне Access Schema Generation кнопкой Preview откройте окно SQL – запроса на создание БД, а кнопкой Generate создайте БД.
Начните новый проект по созданию физической модели. Откройте диалоговое окно, используя пункт основного меню Server/Target Server и выберите в качестве сервера, например, Access или Oracle. Затем осуществите построение модели, используя латинскую транскрипцию. Принцип построения физической модели аналогичен построению логической с небольшой поправкой: для каждого атрибута сущности необходимо указывать тип вводимых данных. Для этого в свойствах сущности выберите пункт Colum Editor… и закладку Access в появившемся диалоговом окне (рис. 4.2).
Рис. 4.2. Диалоговое окно Colum Editor с закладкой Access
Правила валидации и значения по умолчанию
ERwin поддерживает правила валидации для колонок, а также значение, присваиваемое колонкам по умолчанию.
Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. В список допустимых значений можно вносить новые значения. ERwin позволяет сгенерировать правила валидации соответственно синтаксису выбранной СУБД с учетом границ диапазона или списка значений.
Значение по умолчанию – значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию. Список значений можно редактировать.
После создания правила валидации и значения по умолчанию их можно присвоить одной или нескольким колонкам или доменами.
1. В окне Server/Validation Rules задайте максимальное и минимальное значение и тип валидации. Например, значение, вводимое в колонку Зарплата, должно быть больше 500, но меньше 100 000. Для описания этого правила можно создать правило валидации с именем «Проверка зарплаты», которое содержит выражение: Зарплата BETWEEN 500 AND 100000 (рис. 4.4). СУБД выдаст сообщение об ошибке, если вводимая зарплата находится вне границ диапазона.
Рис. 4.4. Окно Validation Rules
Задание 5. Создание ERWin – отчетов для моделей БД
Указания к выполнению задания
Отчеты создаются утилитой Report Browser, запускаемой из основного меню программы Task/Generate Reports.
-
Откройте окно генератора отчетов Task/Generate Reports.
-
Откройте окно свойства отчета по логической модели: File/New ErWin Report. Укажите тип – Logical.
-
Задайте свойство Name – Логическая модель создана «Ваша Ф.И.О.»
-
Задайте свойства Category – EntitY, а в дереве содержания отчета поставьте флажки в пунктах Entity – Name, Attribute – Name, Key Group – Name.
-
Создайте отчет по логической модели, запустив EXECUTE REPORT.
-
Откройте окно свойства отчета по физической модели: File/New Erwin Report. Укажите тип – Phisycal.
-
Задайте свойство Name – Физическая модель создана «Ваша ФИО»
-
Задайте свойства Category – Table, а в дереве содержания отчета поставьте флажки в пунктах Table – Name, Column – Name, Primary Key – Name.
-
Создайте отчет по физической модели, запустив пункт меню EXECUTE REPORT.
Для экспорта ERWin – отчетов в WORD выполинте следующие операции:
-
В окне Report Browser запустите File/Export.
-
Установите формат DDE и получите WORD–отчет по моделям ERwin.
Задание 6. Перевод физической модели в SQL-скрипт для СУБД
Указания к выполнению задания
Кроме режима прямого и обратного проектирования ERwin поддерживает синхронизацию между логической моделью и системным каталогом СУБД на протяжении всего жизненного цикла создания БД.
-
Для генерации системного каталога БД следует выбрать пункт меню Tasks/Forward Engineering/Schema Generation. В окне Schema Generation в закладке Options можно задать опции генерации объектов БД - триггеров, таблиц, представлений, колонок, индексов и т.д.
-
Кнопка Preview позволяет отобразить SQL-скрипт, создаваемый ERwin для генерации системного каталога СУБД.
-
Нажатие кнопки Generate приведет к запуску процесса генерации схемы. Возникает диалог связи с БД, устанавливается сеанс связи с сервером и начинает выполняться SQL-скрипт.
-
Кнопка Report сохраняет тот же скрипт в SQL текстовом файле. Эти команды можно в дальнейшем редактировать любым текстовым редактором и выполнять при помощи соответствующей утилиты сервера.
Контрольные вопросы
-
К какому уровню детализации относится диаграмма сущность-связь?
-
Укажите, к какому уровню детализации относится полная атрибутивная модель.
-
Укажите, к какому уровню детализации относится модель данных, основанная на ключах.
-
Укажите, что позволяют осуществить диаграммы ERD?
-
Укажите, что задает правило валидации?
-
Укажите, какие уровни отображения диаграммы имеет ERwin.
-
Какие основные этапы проектирования базы данных?
-
Какие типы связей используются при построении модели «сущность-связь»?
-
Привести примеры идентифицирующих и неидентифицирующих связей?
-
Что такое мощность связи?
-
Какие объекты БД генерируются при проектировании физической схемы?
-
Отличия в идентификации объектов на логическом и физическом уровне.
-
Как можно осуществить конвертирование БД из одной СУБД в другую?