
Среда erWin
При запуске ERWin предлагается выбрать один из вариантов:
Создать новую модель (Create a new model)
Открыть одну из существующих моделей (Open an existing file)
При выборе первого варианта появляется окно Create Model Type – Select Template для указания типа создаваемой модели
Logical (логической),
Physical (физической)
Logical/Physical (логической и физической)
При выборе Physical или Logical/Physical моделей появляется окно для выбора СУБД (Target Database), в котором выбираем из списка СУБД и версию СУБД.
Окно проводника моделей (Model Explorer)
Domains (Домены)
Model sources (Источники модели)
Validation Rules (Правило валидации – задаёт список допустимых значений для конкретной колонки и/или правила проверки допустимых значений)
Default Values (Значения по умолчанию)
Transforms (устанавливаемые администратором правила добавления, удаления и изменения имен доменов, присоединяемых к входящим и выходящим сообщениям)
Entities (Сущности)
Subject Areas (Предметные области подмножества моделей.)
Панель инструментов Стандартная (Standard)
- Создание, открытие, сохранение и печать
модели
- Вызов диалогового окна Data
Browser для генерации отчетов
- Определение шаблона для построения
отчета
- Изменение уровня просмотра модели:
уровень сущностей, уровень атрибутов,
уровень определений.
- Изменение масштаба просмотра модели.
- Переключение между областями модели.
- Доступны только на уровне физической
модели - Генерация схемы БД, т.е. прямое
проектирование (Forward
Engineering), Обратное
проектирование (Reverse
Engineering), выравнивание
схемы с моделью, выбор сервера.
Панель инструментов ToolBox
Для логической модели:
- Режим указателя мыши (можно установить
фокус на каком-либо объекте модели)
- Кнопка внесения сущности. Для внесения
сущности нужно щелкнуть левой кнопкой
мыши по кнопке внесения сущности и один
раз щелкнуть по свободному пространству
на модели. Повторный щелчок приведёт к
внесению в модель ещё одной новой
сущности. Для редактирования сущностей
или других объектов модели необходимо
перейти в режим указателя.
- Кнопка категориальной связи. Для
установления категориальной связи
нужно щелкнуть левой кнопкой мыши по
кнопке категориальной связи, затем один
раз щелкнуть по порождающей сущности,
затем по сущности-категории. Для
установления категориальной связи со
следующей сущностью-категорией нужно
щелкнуть левой кнопкой мыши по кнопке
категориальной связи, затем щелкнуть
по символу категории
и затем щелкнуть по сущности-категории.
- Кнопка создания идентифицирующей
связи принадлежности
- Кнопка создания связи “многие-ко-многим”
- Кнопка создания неидентифицирующей
связи принадлежности
Для физической модели вместо кнопок категориальной связи и создания связи “многие-ко-многим” появляются следующие кнопки:
- Кнопка создания представлений
- Кнопка связей представлений (View
relationship)
Панель рисования (Drawing)
- Кнопки для вычерчивания прямоугольника,
прямоугольника с округлёнными углами,
эллипса, линии, полилинии (соединения
отрезков прямой и дуг), многоугольника,
внесения текста.
Панель Font & Color
- Кнопки для изменения шрифта, изменения
начертания шрифта, изменения цвета
символов и цвета фона
Для установки русского языка:
Щелкнуть правой кнопкой мыши в окне редактора
Выбрать пункт контекстного меню Default Fonts & Color (Шрифт и цвет по умолчанию)
В окне Default Fonts & Color во всех вкладках установить:
шрифт Arial Cur
переключатель All object
нажать кнопки Применить и ОК
Для установки русского языка в прямоугольнике сущности:
Выделить все атрибуты (удерживая клавишу Shift, щелкнуть по каждому атрибуту) и установить шрифт Arial Cur на панели Font & Color
Для внесения сущности в модель:
Щелкнуть по кнопке сущности на панели инструментов
Щелкнуть по тому месту на диаграмме, где нужно расположить сущность
Щелкнуть правой кнопкой мыши по сущности и выбрать в контекстном меню пункт Entity Properties (Свойства сущности)
В окне Entities (Сущности) определить
Name (имя),
Definition (описание, определение сущности, позволяющее понять, что это за объект на логическом уровне и на физическом уровне, т.к. их можно экспортировать как часть схемы и использовать в реальной БД)
Note (дополнительные замечания о сущности, например описание какого-либо бизнес-правила или соглашения по организации диаграмм),
Note2 (документирование некоторых возможных запросов к сущности)
Note3 (примеры данных для сущности в произвольной форме)
UDP (свойства, определённые пользователем) – дополнительные комментарии и определения к сущности. Поддерживается для UDP шесть типов данных – Date в формате MM/DD/YY Int (целое число) Real (действительное число) Text (строка) List (список; значения разделяются запятыми, значениям по умолчанию предшествует символ тильда ~) Command (команда – выполняемая строка)
Icon (каждой сущности можно поставить в соответствие изображение, которое будет отображаться в режиме просмотра модели на уровне иконок. Большая иконка будет отображаться на уровне Icon, малая иконка, будет отображаться на всех уровнях просмотра модели)
History (история сущности).
Для связывания изображения с сущностью:
Щелкнуть по кнопке
В окне Icons щелкнуть по кнопке Import и выбрать файл формата .bmp
Для внесения атрибутов:
Щелкнуть дважды по сегменту прямоугольника для внесения атрибутов
В окне Attributes нажать кнопку New
В окне New Attribute выбрать вид отображения доменов (Alphabetically – по алфавиту, Hierarchically – в виде дерева)
Выбрать базовый домен Domain (т.е. базовый тип данных) для атрибута
В поле Attribute Name задать имя атрибута сущности на русском языке
В поле Column Name задать имя поля таблицы на английском языке (для физической модели)
Повторить эти действия для всех атрибутов.
Для атрибута – идентификатора сущности – установить флажок Primary Key
Нажать кнопку ОК
Для изменения (удаления) атрибутов:
Щелкнуть дважды по сегменту прямоугольника для изменения (удаления) атрибутов
Выделить нужный атрибут и в окне Attributes нажать кнопку Rename (Delete) для переименования (удаления) атрибута.
В окне Attributes можно
установить тип данных для атрибутов сущности (вкладка Datatype)
дать описание атрибутов сущности (вкладка Definition)
дать дополнительные замечания об атрибутах (вкладка Note)
произвести сброс для выбранных элементов (кнопка Reset)
Для создания собственного домена на основе базового домена (второй способ создания атрибута - на основе собственного домена)
Model\Domain Dictionary. Появится окно Domain Dictionary
Нажать кнопку New. Появится окно New Domain
В поле Logical Name ввести логическое имя домена
В поле Physical Name ввести физическое имя домена
В группе элементов Domain Parent выбрать домен-родитель, на основе которого будет создан новый домен. Новый домен наследует все свойства родительского домена, которые в дальнейшем можно переопределить.
Щелкнуть по кнопке OK
В окне Domain Dictionary:
Alphabetically |
сортировка в алфавитном порядке |
Hierarchically |
сортировка в виде дерева |
Domain Parent |
родительский домен |
Domain Icon |
пиктограмма домена |
required |
обязательный (атрибут не может содержать значение Null) |
Name Inherited by Attribute |
имя, наследуемое атрибутом |
Name Inherited by Column |
имя, наследуемое полем |
Для установления связи между сущностями:
Щелкнуть по кнопке создания связи (следует заранее определить какая именно должна быть связь)
Щелкнуть по родительской сущности
Щелкнуть по дочерней сущности
Если устанавливаем идентифицирующую связь принадлежности, то в дочерней сущности автоматически образуются внешние ключи (foreign key). Атрибуты внешнего ключа обозначаются символами (FK) после своего имени. Прямоугольник для дочерней сущности автоматически становится прямоугольником с округлёнными углами.
Для отображения имени связи (Verb Phrase – характеризует отношение между родительской и дочерней сущностями):
Щелкнули правой кнопке мыши по любому месту диаграммы, не занятому объектами модели;
Выбрали пункт Relations Display;
Выбрали пункт Verb Phrase
Для отображения кардинальности (мощности) связи (Cardinality): (по умолчанию символ, обозначающий мощность связи, не показывается на диаграмме)
Щелкнули правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели;
Выбрали пункт Relations Display;
Выбрали пункт Cardinality
Для изменения формы линии связи:
Захватить мышью нужную линию связи и перенести её на новое место
Для редактирования свойств связи:
Щелкнули правой кнопкой мыши по связи
Выбрали пункт меню Relations Properties
Для изменения формы линии связи:
Захватить мышью нужную линию связи и перенести её на новое место
В окне New Attribute:
Blob ( Binary Large Object) |
большой двоичный объект, «блоб» (тип данных ) |
DateTime |
дата/время (тип данных ) |
Number |
числовой тип (тип данных ) |
String |
строка (тип данных ) |
Reset |
восстановление |
general |
общий, обычный, основной, всеобщий, полный, генеральный |
require |
требовать |
valid |
действительный, имеющий силу |
note |
записка, запись, замечать, отмечать, записывать |
rule |
правило; норматив, масштаб |
fit |
приспосабливать, соответствовать, подходить; согласовываться, подходящий, соответствующий |
role |
роль (объекта в отношении), ролевое имя ( символическое имя, определяющее класс пользователей, которым разрешен доступ к некоторому набору компонентов ) |
action |
действие; воздействие, операция, поведение, линия поведения |
pick |
выбирать |
В окне Relationship:
Relationship Cardinality |
кардинальность (мощность) связи |
UDP (User defined Properties) |
свойства, определённые пользователем |
Relationship |
связь, зависимость |
Relationship Type |
тип связи |
Cardinality |
кардинальность (мощность) |
Parent-to-Child |
характеризует отношение от родительской к дочерней сущности |
Child-to-Parent |
характеризует отношение от дочерней сущности к родительской |
Verb Phrase |
имя связи |
General |
общий |
Definition |
описание, определение |
Rolename |
для задания имени роли и правил ссылочной целостности. Имя роли (функциональное имя) это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности |
Exactly |
точно |
Nulls Allowed |
необязательная связь |
No Nulls |
обязательная связь |
Identifying |
идентифицирующая |
Non-Identifying |
не идентифицирующая |
Вкладка RI Actions (referential integrity) – для указания правил ссылочной целостности (значения ограничения ForeignKeyConstraint)
ForeignKey - внешний ключ Constraint - ограничение
RESTRICT (запрет на действия) |
Child Insert - нельзя добавить экземпляр в дочернюю сущность со ссылкой на несуществующий экземпляр родительской сущности. Child Update - нельзя изменить экземпляр дочерней сущности таким образом, чтобы он ссылался на несуществующий экземпляр родительской сущности. Parent Delete – запрещено удаление экземпляра родительской сущности, если на неё ссылаются экземпляры дочерней сущности. Parent Update – нельзя изменить первичный ключ экземпляра родительской сущности, если на него ссылаются экземпляры дочерней сущности. |
CASCADE (каскадные изменения) |
При удалении (обновлении) экземпляра родительской сущности удаляются (обновляются) все экземпляры дочерней сущности, связанные с данным экземпляром родительской сущности (каскадное удаление, каскадное обновление). |
NONE (никаких действий СУБД не предпринимает) |
Parent Insert – разрешено добавление нового экземпляра в родительскую сущность. Child Delete – при удалении экземпляра дочерней сущности никаких действий предприниматься не будет. При удалении (обновлении) экземпляра родительской сущности в экземплярах дочерней сущности не производится никаких действий, т.е. значение атрибута внешнего ключа не меняется и экземпляр дочерней сущности будет ссылаться на несуществующий экземпляр родительской сущности. |
SET NULL (установка значения Null) |
При удалении экземпляра родительской сущности атрибут внешнего ключа соответствующих экземпляров дочерней сущности примет значение NULL (только для неидентифицирующих связей принадлежности) |
SET DEFAULT (установка значения по умолчанию) |
При удалении экземпляра родительской сущности атрибуту внешнего ключа соответствующих экземпляров дочерней сущности присваивается значение по умолчанию (только для неидентифицирующих связей принадлежности). |
Процедуры обеспечения ссылочной целостности:
U:C означает Update:Cascade (Обновление: каскадное)
D:C означает Delete:Cascade (Удаление: каскадное)
U:R означает Update:Restrict (Обновление: ограничить )
D:R означает Delete:Restrict (Удаление: ограничить)
I:SN означает Insert: Set to Null (Вставка: установка Null)
I:SD означает Insert: Set Default (Вставка: установка по умолчанию)
I:R означает Insert: Restrict (Вставка: ограничить)
SN означает Set to Null (При удалении экземпляра родительской сущности внешний ключ соответствующих экземпляров дочерней сущности примет значение NULL)
SD означает Set Default (При удалении экземпляра родительской сущности атрибуту внешнего ключа присваивается значение по умолчанию).
Для создания физической модели по существующей логической модели:
Tools / Derive New Model (получить новую модель)
выбрать переключатель, указывающий конкретный тип модели (в данном случае Physical)
в группе Target Database (текущая БД) выбрать
в списке Database Access
в списке Version 2000
нажать кнопку Далее
в окне Derive Models – Select Source Model Objects выбрать объекты для включения в физическую модель
установить флажки для автоматического преобразования связи “многие-ко-многим” к связи “один-ко-многим”, если связь такого типа присутствовала в логической модели
нажать кнопку Далее
нажать кнопку Готово
Для создания подмножества модели (Subject Area)
Model / Subject Area
В окне Subject Area нажимаем кнопку New
В окне New Subject Area в поле Name вводим имя нового подмножества модели
OK
В окне Subject Area в поле Author вводим имя автора – создателя подмножества модели
Раскрываем вкладку Members (члены). Выбираем в левой колонке требуемые сущности и переносим их в правую колонку, используя кнопки
,
. Если нужно переместить в подмножество сущность вместе со всеми связанными с ней сущностями, то следует использовать кнопку
OK
Для переключения между областями
В окне проводника моделей (Model Explorer) щелкнуть правой кнопкой по названию области;
Выбрать Go To;
Для генерации системного каталога БД:
Создать пустую БД Access в своём рабочем каталоге (c:\Личное\Ощепкова\......)
В среде ERWin выполнить следующее:
Нажать кнопку
или выбрать пункт меню Tools/Forward Engineer/Schema Generation.
Появится окно Access Schema Generation, имеющее три вкладки
Options (служит для задания опций генерации объектов БД – триггеров, таблиц, представлений, колонок, индексов и т.д. Нужно выбрать объект в левом списке и включить необходимые опции в правом списке).
Summary (предназначена для отображения всех опций, заданных во вкладке Options. Список опций на этой вкладке тоже можно редактировать).
Comment (Позволяет внести комментарий для каждого набора опций).
Каждый набор опций может быть именован (окно Option Set, кнопки New, Rename, Delete) и использован многократно.
Кнопка Preview вызывает окно Access Schema Generation Preview, в котором отображается SQL-скрипт, создаваемый ERWin для генерации системного каталога СУБД. Нажатие на кнопку Generate запустит процесс генерации схемы.
Кнопка Print предназначена для вывода на печать создаваемого скрипта.
Кнопка Report сохраняет скрипт в текстовом формате.
Кнопка Generate запускает процесс генерации схемы.
Появится окно Access Connection (Connection – соединение). Указываем
User Name: Admin
Password: SA
Database: имя пустой БД
Нажимаем кнопку Connect
Если в окне Generate Database Schema включена опция Stop If Failure, то при первой же ошибке выполнение скрипта прекращается. Выполнение можно продолжить, нажав кнопку Continue. Кнопка Abort прерывает выполнение. Если опция Stop If Failure выключена, то скрипт будет выполняться, несмотря на встречающиеся ошибки.
Литература
С.В. Маклаков “BPWin и ERWin. CASE-средства разработки информационных систем.”, 1999, стр.70-206
Д.Э. Федотова, Ю.Д. Семёнов, К.Н. Чижик ”CASE-технологии”, 2005, стр.63-91
Д. Крёнке “Теория и практика построения баз данных”, 2005, стр. 80-94
А. Шкрыль “Разработка клиент-серверных приложений в DELPHI”, 2006, стр.363-437
Контрольные вопросы (стр.14)
Методическое пособие для работы с ERWin