1 Модели данных ERwin имеет два уровня представления
27120-erwin.ppt
- Количество слайдов: 61
1 Модели данных ERwin имеет два уровня представления моделей - логический и физический. Для переключения служит выпадающий список в правой части панели инструментов. На физическом уровне объекты могут называться так, как требуют ограничения СУБД. На логическом можно давать имена на кириллице. После создания логической модели ERwin автоматически создаст физическую модель. На ее основе ERwin может сгенерировать системный каталог СУБД или SQL-скрипт. Этот процесс называется прямым проектированием (Forward Engineering). По системному каталогу СУБД или SQL-скрипту ERwin может воссоздать физическую и логическую модель данных (Reverse Engineering). Таким образом, облегчается задача переноса структуры данных из одной СУБД в другую.
2 Панель инструментов Создание, открытие, сохранение и печать модели Вызов диалога Report Browser для генерации отчета Изменения уровня просмотра модели: сущности, атрибуты и определения Изменения масштаба просмотра модели Генерация схемы БД, выравнивание схемы с моделью и выбор сервера (доступны на физическом уровне) Вызов панели инструментов ModelMart Переключение между областями модели - Subject Area
3 Палитра инструментов на логическом уровне 1 Для создания сущности надо щелкнуть по кнопке сущности и по свободному пространству модели. 2 Для установления категориальной связи надо щелкнуть по кнопке категории, затем по сущности - родовому предку, затем - по сущности-потомку. сущность1 текст перемещение атрибутов между сущностями и внутри них (способ drag&drop) категория2 идентифицирующая связь неидентифицирующая связь режим мыши связь «многие-ко-многим»
4 Палитра инструментов на физическом уровне таблица текст перемещение столбцов между таблицами и внутри них (способ drag&drop) представление (view) идентифицирующая связь неидентифицирующая связь режим мыши связь представлений
5 Нотации В ERwin можно использовать нотации IDEF1X (Intergrated DEFinition) и IE (Information Engineering). Переключение между нотациями можно сделать с помощью пункта меню Option-Preferences
6 Уровни отображения ERwin имеет несколько уровней отображения диаграмы: уровень сущностей; уровень атрибутов; уровень определений; уровень первичных ключей; уровень пиктограмм. Переключение между первыми 3 уровнями можно с использованием кнопок панели инструментов Переключиться на другие уровни можно с помощью пункта Display Level конт.меню свободного места диаграммы, затем пункт Primary Key или Icon. При переключении на уровень иконок показывается большая иконка. Для отображения малой иконки надо выбратьв конт.меню пункт Display Options-Entities-Enitity Icon.
7 Уровни отображения Сущности (Entity) Атрибуты (Attribute) Первичный ключ (Primary Key) Определение (Definition) Сущности с отображением малых иконок Пиктограммы (иконки, Icon) с отображением малых иконок ключевые неключевые
8 Установка цвета и шрифта Панель инструментов Font and Color Toolbar Выбор гарнитуры Выбор кегля шрифта Выбор начертания шрифта Выбор цвета шрифта Выбор цвета заливки Выбор цвета линий
9 Установка цвета и шрифта Для редактирования цвета и шрифта отдельного объекта надо выбрать в конт.меню сущности или связи пункт Object Font/Color…. Закладки Fill и Entity Outline используются только для сущностей.
10 Установка цвета и шрифта Для редактирования цвета и шрифта всех объектов модели или отдельной категории объектов надо выбрать пункт меню Option-Default Font/Color….
11 Установка цвета и шрифта Каждая закладка позволяет редактировать шрифт и цвет для определенной категории объектов: All Fonts - все объекты модели; Entity Name - имена сущностей и таблиц; Entity Definition - определение сущностей и таблиц (показываются на уровне определений) Relationship - связи, включая имя и обозначение мощности; Subtype - иерархия категорий, включая дискриминатор категории; Text Block Text - текстовые блоки;
12 Установка цвета и шрифта Page Number - номер страницы при печати диаграммы; Owned Entity Attributes - атрибуты и поля, кроме внешних ключей; Foreign Key - атрибуты и поля внешних ключей; Background Color - цвет фона диаграммы; Entity Line - линии, которыми прорисовываются сущности и таблицы; Entity Fill - заливка сущностей и таблиц; Subtype Fill - заливка символов, обозначающих категории.
13 Подмножества модели (Subject Area) В подмножество модели может входить произвольный набор сущностей, связей и текстовых комментариев. Для создания, удаления и редактирования подмножеств модели надо вызвать диалог Subject Are Editor (пункт меню Edit-Subject Area), в котором указывается имя подмножества и входящие в него сущности. Одна и та же сущность может входить в несколько подмножеств. Subject Area можно создавать в логической и в физической модели. По умолчанию исходная модель получает имя Main Subject Area. Кнопка служит для перемещения сущности вместе со всеми связанными с ней сущностями. При этом можно задать уровень взаимосвязи как для потомков (Descedants), так и для предков (Ancestors).
14 Подмножества модели (Subject Area)
15 Хранимое отображение (Stored Display) Это представление подмножества данных, отобржающее специфический аспект структуры данных. Одна Subject Area может включать несколько хранимых отображений. В хранимое отображение входят те же самые сущности и связи, что и в Subject Area, но они могут по-разному располагать на экране, иметь разные уровни отображения, различный масштаб и цвет объектов или фона. Для создания хранимого отображения служит диалог Stored Display Editor (пункт меню Edit-Stored Display). При определении нового отображения надо задать его имя, автора (вкладка General), описание (вкладка Defifnition) и свойства как для логической, так и для физической модели. Хранимое отображение позволяет отобразить линии связей не только ортогональными, но и диагональными (вкладка General, радиокнопка Diagonal).
16 Хранимое отображение (Stored Display)
17 Хранимое отображение (Stored Display) При создании Subject Area в нее могут не входить либо родительская, либо дочерняя сущность. По умолчанию связи с сущностями, не вошедшими в Subject Area, не показываются. Для их отображения надо включить флажок Для переключение между отображениями служат закладки в нижней части диаграммы:
18 Уровни логической модели Диаграмма сущность-связь (Entity Relationship Diagram, ERD) включает сущности и взаимосвязи, отражающие основные бизнес-правила предметной области. Как правило, ERD используется для обсуждения структуры данных с экспертами предметной области. Модель данных, основанная на ключах (Key Based model, KB) - более подробное представление данных. Включает описание всех сущностей и первичных ключей и предназначена для представления структуры данных и ключей, которые соответствуют предметной области. Полная атрибутивная модель (Fully Attributed model, FA) - наиболее детальное представление структуры данных. Представляет данные в 3-й нормальной форме и включает все сущности, атрибуты и связи.
19 Сущности и атрибуты Имя сущности и ее атрибуты можно задать как при создании сущности (после щелчка инструментом Сущность на области диаграммы набрать имя сущности и ее атрибуты, переходя к новому атрибуту нажатием клавиши
20 Сущность
21 Сущность Закладка Definition используется для ввода определения сущности. Эти определения можно использовать и на физическом уровне, экспортируя как часть схемы и используя в реальной БД (CREATE COMMENT on entity_name). Закладка Note позволяет добавлять дополнительные замечания о сущности, не отраженные в определении. Здесь можно ввести замечание, описывающее какое-либо бизнес-правило или соглашение по организации диаграммы. В закладке Note2 можно задокументировать некоторые возможные запросы, которые, как ожидается будут использоваться по отношению к сущности в БД. Закладка Note3 позволяет вводить примеры данных для сущности (в произвольной форме). В закладке Icon сущности можно поставить в соответствие изображение, которое будет отображаться на уровне пиктограмм (Small Icon и Large Icon).
22 UDP
23 UDP ERwin поддерживает для UDP 6 типов данных: Date. Дата в формате MM/DD/YY. Для выбора значения можно использовать контекстный календарь. Int. Целое число. Real. Действительное число. Text. Строка (ASCII). List. Список значений, разделенных запятой; значение по умолчанию выделяется символом “~”. Command. Команда - выполняемая строка. В этом диалоге надо указать вид объекта, для которого заводится UDP, и тип данных. Для внесения нового свойства надо щелкнуть по кнопке + и внести имя, тип данных, значение по умолчанию и определение. Диалог User-Defined Property Editor можно вызвать как с помощью меню Edit-UDPs, так и в Entity Editor, закладка UDP, кнопка …
24 Атрибуты
25 Атрибуты В диалоге New Аttribute, появляющемся после щелчка по кнопке New, можно указать имя атрибута, имя соответствующего ему в физической модели поля и домен. Домен атрибута будет использоваться для определения типа поля на уровне физической модели.
26 Атрибуты В закладке General для атрибутов первичного ключа надо установить флажок Primary Key. Закладка Definition позволяет записать определения отдельных атрибутов. Определения атрибутов можно сгенерировать как часть схемы (CREATE COMMENT on entity_name.attribute_name). Закладка Note позволяет добавить замечания об одном или нескольких атрибутах сущности, не вошедших в определения. Закладка UDP служит для задания значений свойств, определяемых пользователем. Предварительно эти свойства должны быть занесены в диалог User-Defined Property Editor как свойства атрибутов. При установлении связей между сущностями атрибуты первичного ключа родительской сущности мигрируют в качестве внешних ключей в дочернюю сущность. Кнопка Migrate… вызывает диалог Migrate Attribute Property, в котором можно задать свойства, сохраняеые при миграции.
27 Атрибуты В закладке General с помощью выпадающего списка Icon можно каждый атрибут связать с пиктограммой. Каждому домену соответствует стандартная пиктограмма, однако можно импортировать и другие изображения с помощью кнопки …
28 Атрибуты Для отображения иконки атрибута следует выбрать в конт.меню диаграммы Display Options/Entitites-Attribute Icon. Атрибуты должны именоваться в единств.числе. Согласно синтаксису IDEF1X имя атрибута д.б. уникально в рамках модели. По умолчанию при попытке внесения уже существующего имени атрибута ERwin переименовывает его. Можно отменить эту опцию с помощью пункта меню Option-Unique Name, вызывающего диалог Unique Name Option. Allow - позволить одинаковые имена; Rename - переименовать атрибуты; Ask - запрашивать возможный действия Disallow - запретить одинаковые имена.
29 Связи Каждая связь должна именоваться глаголом или глагольной формой (Relationship Verb Phrases). Имя связи выражает некоторое ограничение или бизнес-правило и облегачает чтение диаграммы, например: Каждый КЛИЕНТ <размещает> ЗАКАЗы; Каждый ЗАКАЗ <выполняется> СОТРУДНИКом. По умолчанию имя связи не показывается. Для отображения имени следует в конт.меню диаграммы выбрать пункт DisplayOptions/Relationship-Verb Phrase.
30 Связи В IDEF1X различаются зависимые и независимые сущности. Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Независимая сущность изображается прямоугольником, зависимая - прямоугольником со скругленными углами. При установлении идентифицирующей связи атрибуты первичного ключа родителя автоматически переносятся в состав первичного ключа дочерней сущности и помечаются как внешний ключ (FK).
31 Связи Недентифицирующая связь служит для связывания независимых сущностей. Атрибуты первичного ключа родительской сущности мигрируют в состав неключевых атрибутов первичного ключа дочерней сущности. Линии связи и имя связи можно переносить с места на место.
32 Редактор связи (Relationship Editor) Его можно вызвать или через пункт меню Edit-Relationship… или через пункт конт.меню связи Relationship Editor В закладке General можно задать мощность, имя и тип связи.
33 Редактор связи (Relationship Editor) Мощность связи (Cardinality) обозначает отношение числа экземпляров родительской сущности к числу экземпляров дочерней. ПО умолчанию мощность не показывается, для показа надо выбрать пункт конт.меню связи Display/Relationship-Cardinality. Различают 4 типа мощности: не помечается - когда одному экземпляру родителя соответствуют 0, 1 или много экземпляров дочерней сущности; Р - когда одному экземпляру родителя соответствуют 1 или много экземпляров дочерней сущности; Z - когда одному экземпляру родителя соответствуют 0 или 1 экземпляр дочерней сущности; цифра - точное соответствие, когда одному экземпляру родителя соответствует заданное число экземпляров дочерней сущности. 0, 1 или много 1 или много 0 или 1 точно N (5) P Z 5
34 Редактор связи (Relationship Editor) Имя связи (Verb Phrase) - фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим (идент. или неидент.) достаточно указать имя, характеризующее отношение от родительской сущности к дочерней (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent.
35 Редактор связи (Relationship Editor) Тип связи (идентифицирующая / неидентифицирующая). Для идентифицирующей связи можно указать обязательность ( группа Nulls). В закладке Definition можно дать более полное определение связи. В закладке Rolename/RI Actions можно задать имя роли и правила ссылочной целостности. В случае обязательной связи (No Nulls) атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что он не войдет в состав первичного ключа. В случае необязательной (Nulls Allowed) внешний ключ может принимать значения NULL. Необязательная связь помечается прозрачным ромбом с родительской стороны.
36 Редактор связи (Relationship Editor) Имя роли (функциональ-ное имя) - это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности.
37 Функциональное имя Для отображения полного имени атрибута надо в пункте Display Options/Entities конт.меню диаграммы включить опцию Rolename/Attribute. Полное имя показывается как как функциональное имя (имя роли) и базовое имя (имя атрибута), разделенные точкой.
38 Функциональное имя Обязательно присвоение имен ролей при рекурсивных связях (fish hook - «рыболовный крючок»; рекурсивная связь может быть только неидентифицирующей) или тогда, когда два или более атрибутов одной сущности определены по одной и той же области. Например:
39 Рекурсия Рекурсивная связь может быть: иерархической (hierarchical recursion) - когда руководитель (экземпляр родительской сущности) может иметь множество подчиненных (экземпляров дочерней сущности), но подчиненный имеет только одного руководителя; сетевой (network recursion) - когда руководитель может иметь множество подчиненных, и, наоборот, подчиненный может иметь множество руководителей. Сущность находится сама с собой в связи многие-ко-многим.
40 Ролевые имена. Ссылочная целостность. Если атрибут мигрирует в качестве внешнего ключа более чем на один уровень, то на 1-м уровне отображается полное имя внешнего ключа (имя роли + базовое имя атрибута), на втором и более - только имя роли. Правила ссылочной целостности (referential integrity, RI) - логические конструкции, которые выражают бизнес-правила использования данных и представляют собой правила вставки, замены и удаления. При генерации БД на основе опций логической модели (закладка Rolename/RI Actions) будут сгенерированы правила декларативной ссылочной целостности и триггеры (программы, выполняемые при выполнении команд вставки, замены или удаления).
41 Ссылочная целостность. Правила удаления: RESTRICT (ограничение) - запрет на удаление сильной сущности, пока не удалены все ее слабые сущности; CASCADE (каскад) - удаление сильной сущности вместе со всеми ее слабыми сущностями; SET DEFAULT - при удалении атрибуту внешнего ключа присваивается значение по умолчанию; NONE - при удалении значение атрибута внешнего ключа не меняется. Запись «повисает воздухе». Аналогично управляют и правила вставки и обновления. Например, правило, разрешающее вносить новую команду только тогда, когда в нее зачислен хотя бы один игрок: 1) задать мощность “One or More”; 2) триггер “Parent Insert-CASCADE”; 3) триггер “Parent Delete-CASCADE”
42 Связь «многие-ко-многим» Эта связь возможна только на уровне логической модели. При переходе к физическому уровню ERwin автоматически преобразует связь, добавляя новую таблицу с именем “Имя1_Имя2” и устанавливая две новые связи один-ко-многим от старых к новой таблице. Новую таблицу можно переименовать и добавить в нее новые новые поля.
43 Типы сущностей. Иерархия наследования Различают несколько типов зависимых сущностей: характеристическая - зависимая дочерняя сущность связана только с одной родительской и хранит информацию о характеристиках родительской сущности; ассоциативная - сущность, связанная с несколькими родительскими сущностями, содержит информацию о связях сущностей; именующая - частный случай ассоциативной, не имеющей собственных атрибутов (только мигрировавшие атрибуты родительской); категориальная - дочерняя сущность в иерархии наследования.
44 Иерархия наследования Иерархия наследования (иерархия категорий) особый тип объединения сущностей, которые разделяют общие характеристики. Для каждой категории можно указать дискриминатор - атрибут родового предка, который показывает как отличить одну категориальную сущность от другой. Иерархии категорий делятся на полные (одному экземпляру родового предка обязательно соответствует экземпляр в каком-либо потомке) и неполные (в родовом предке могут существовать экземпляры, не имеющие соответствующих экземпляров в потомках). Для создания категориальной связи надо щелкнуть по родовому предку, затем по потомку. Для установления остальных связей надо щелкнуть по символу категории, затем по потомку.
45 Неполная категория
46 Полная категория
47 Комбинация полной и неполной категорий
48 Иерархия наследования Для редактирования категорий в конт.меню символа категорий надо выбрать пункт Sybtype Relationship Editor. В диалоге Subtype Relationship можно указать атрибут - дискриминатор категории (список Discriminator Attribute Choice) и тип категории - полная/неполная (радиокнопки Compete/Incomplete).
49 Ключи Первичный ключ (Primary Key) - атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности. Чтобы сделать атрибут первичным ключом надо в диалоге Attribute Editor в закладке General установить флажок Primary Key или перенести инструментом “Рука” атрибут в верхнюю часть прямоугольника, обозначающего сущность. Потенциальные ключи (Candidate Key) - атрибут или группа атрибутов, претендующие на роль первичного ключа. Альтернативный ключ (Alternate Key) - потенциальный ключ, не ставший первичным. Внешние ключи (Foreign Key) создаются автоматически, когда связь соединяет сущности.
50 Ключи При работе часто надо обеспечить доступ к нескольким экземплярам сущности, объединенным каким-либо признаком. Для повышения производительности в таком случае используются неуникальные индексы. ERwin позволяет на уровне логической модели назначить атрибуты, участвующие в неуникальных индексах - инверсионные входы (Inversion Entry). Inversion Entry - атрибут или группа атрибутов, которые не определяют экземпляр сущности уникальным образом, но часто используются для обращения к экземплярам сущности. ERwin генерирует неуникальный индекс для каждого Inversion Entry. Создать альтернативные ключи и инверсионные входы можно в диалоге Key Group Editor, вызываемом как из конт.меню сущности (пункт Key Group Editor...), так и в закладке Key Group диалога Attribute Editor.
51 Ключи
52 Ключи
53 Ключи Имя нового ключа присваивается автоматически (“Alternate Key N” для альтернативного ключа и “Inversion Entry N” для инверсионного входа, где N - порядковый номер ключа. Каждому ключу соответствует индекс, имя котороо также присваивается автоматически (“XAKNentity” и “XIENentity”, где N - порядковый номер ключа, entity - имя сущности. Имена ключа и индекса можно изменить вручную. На диаграмме атрибуты обозначаются как (AKn.m), где n - порядковый номер ключа, m - порядковый номер атрибута в ключе. Инверсионные входы обозначаются как (IEn.m), где n - порядковый номер входа, m - порядковый номер атрибута в нем. По умолчанию имена альтернативных ключей и инверсионных входов не показываются. Чтобы их показать, надо в конт.меню диаграммы выбрать пункт Display Option/Entities Alternate Key Designator (AK).
54 Ключи
55 Ключи ERwin проводит унификацию (комбинирование или объединение идентичных атрибутов) - если сущность получает внешний ключ от нескольких родителей или от одного родителя, но через несколько связей, то в диаграмме атрибут внешнего ключа будет только в одном экземпляре.
56 Домены Домен - совокупность значений, из которых берутся значения атрибутов. Каждый атрибут может быть определен только на одном домене, но на каждом домене может быть определено множество атрибутов. В ERwin домен может быть определен только один раз и использоваться как в логической, так и в физической модели. На логическом уровне домены можно описать без конкретных физических свойств.На физическом уровне они автоматически получают специфические свойства, которые можно изменить вручную. Для создания домена служит диалог Domain Dictionary Editor. Вызвать его можно с помощью пункта меню Edit-Domain Dictionary или с помощью кнопки … на вкладке General диалога Attribute Editor.
57 Домены
58 Домены Домен может быть создан на основе уже созданного домена или существующего изначально (String, Blob, Number, Datetime). Новый домен наследует все свойства родительского, но эти свойства можно далее переопределить. Каждый домен может быть описан в закладке Definition, снабжен комментарием в закладке Note или свойством, определенным пользователем в закладке UDP. В ERwin существует инструмент создания новых атрибутов в модели с использованием описания доменов - Independent Attribute Browser. Этот диалог вызывается/скрывается по нажатию клавиш
59 Домены
60 Домены На физическом уровне диалог Domain Dictionary Editor позволяет редактировать физические свойства домена. Имя закладки зависит от выбранного сервера БД (пункт меню Server-Target Server…). На ней можно задать тип данных, правила присвоения NULL-значений, правила валидации (проверки допустимых значений) и значения по умолчанию. Правила валидации и значения по умолчанию должны быть предварительно описаны в физической модели. Вызов диалогов редактирования их - по кнопкам … справа от соответствующих списков выбора (Valid и Default). Вкладка General позволяет задать родительский домен (Domain Parent) и имя, присваиваемое полю при его создании с помощью Independent Column Browser). С помощью опции Physical Only домен можно определить только на уровне физической модели. Вкладка Comment позволяет внести комментарии к атрибуту, вкладка UDP - свойства, определяемые пользователем. Вкладка Visual Bacis - Power Builder позволяет задать специальные свойства домена для кодогенерации клиентского приложения.
61 Домены