Автор работы: Пользователь скрыл имя, 23 Марта 2011 в 19:20, реферат
ERwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки. Однако ERwin далеко не только инструмент для рисования.
6. Моделирование в ERwin
Место ERwin в информационном
моделировании
Процесс построения информационной модели
состоит из следующих шагов:
ERwin создает визуальное представление (модель данных) для решаемой задачи. Это представление может использоваться для детального анализа, уточнения и распространения как части документации, необходимой в цикле разработки. Однако ERwin далеко не только инструмент для рисования. ERwin автоматически создает базу данных (таблицы, индексы, хранимые процедуры, триггеры для обеспечения ссылочной целостности и другие объекты, необходимые для управления данными).
Отображение логического и физического уровня модели данных в ERwin
В ERwin существуют два
уровня представления и моделирования
- логический и физический . Логический
уровень означает прямое отображение
фактов из реальной жизни. Например, люди,
столы, отделы, собаки и компьютеры являются
реальными объектами. Они именуются на
естественном языке, с любыми разделителями
слов (пробелы, запятые и т.д.). На логическом
уровне не рассматривается использование
конкретной СУБД, не определяются типы
данных (например, целое или вещественное
число) и не определяются индексы для таблиц.
Целевая СУБД, имена объектов и типы данных,
индексы составляют второй (физический)
уровень модели ERwin.
ERwin предоставляет возможности создавать
и управлять этими двумя различными уровнями
представления одной диаграммы (модели),
равно как и иметь много вариантов отображения
на каждом уровне.
Компоненты диаграммы ERwin и основные виды представлений диаграммы
Диаграмма ERwin строится
из трех основных блоков - сущностей, атрибутов
и связей. Если рассматривать диаграмму
как графическое представление правил
предметной области, то сущности являются
существительными, а связи - глаголами.
Выбор между логическим и физическим уровнем
отображения осуществляется через линейку
инструментов или меню. Внутри каждого
из этих уровней есть следующие режимы
отображения:
Диаграмма может занимать более чем один экран и более чем один лист при печати. Для обзора модели предусмотрены, кроме прокруток экрана, режимы уменьшения/увеличения изображения, отображение всей модели, отображение выделенной части модели.
Инструменты для создания модели в ERwin
Основные инструменты
создания модели доступны как из меню,
так и через окно инструментов.
С их помощью создаются независимые
и зависимые сущности, идентифицирующие
и неидентифицирующие связи, полные
и неполные категории, неспецифические
связи и текстовые элементы.
Нажатием мыши над сущностью производится
вход в один из многочисленных редакторов
ERwin:
Идентификация сущностей. Сущности в ERwin
На диаграмме сущность
изображается прямоугольником. В зависимости
от режима представления диаграммы
прямоугольник может содержать
имя сущности, ее описание, список ее
атрибутов и другие сведения.
Горизонтальная линия прямоугольника
разделяет атрибуты сущности на два набора
- атрибуты, составляющие первичный ключ
в верхней части и прочие (не входящие
в первичных ключ) в нижней части.
Сущность представляет собой множество
реальных или абстрактных объектов, например,
люди, места, события, факты, которые имеют
общие характеристики. Сущность - это логическое
понятие. Сущности соответствует таблица
в реальной СУБД. В ERwin сущность визуально
представляет три основных вида информации:
Первичный ключ - это
атрибут или набор атрибутов,
уникально идентифицирующий экземпляр
сущности. Если несколько наборов
атрибутов могут уникально
Для каждого первичного ключа ERwin создает
при генерации структуры БД уникальный
индекс.
Экземпляры независимой сущности могут
быть уникально идентифицированы без
определения ее связей с другими сущностями;
зависимая сущность, наоборот, не может
быть уникально идентифицирована без
определения ее связей с другими сущностями.
Зависимая сущность отображается в ERwin
прямоугольником с закругленными углами.
Связи (relationships) в ERwin
Связь - это функциональная
зависимость между двумя
Связь называется идентифицирующей,
если экземпляр дочерней сущности идентифицируется
через ее связь с родительской
сущностью. Атрибуты, составляющие первичный
ключ родительской сущности, при этом
входят в первичный ключ дочерней
сущности. Дочерняя сущность при идентифицирующей
связи всегда является зависимой.
Связь называется неидентифицирующей,
если экземпляр дочерней сущности идентифицируется
иначе, чем через связь с родительской
сущностью. Атрибуты, составляющие первичный
ключ родительской сущности, при этом
входят в состав неключевых атрибутов
дочерней сущности.
Для определения связей ERwin выбирается
тип связи, затем мышью указывается родительская
и дочерняя сущность. Идентифицирующая
связь изображается сплошной линией; неидентифицирующая
- пунктирной линией. Линии заканчиваются
точкой со стороны дочерней сущности.
При определении связи происходит миграция
атрибутов первичного ключа родительской
сущности в соответствующую область атрибутов
дочерней сущности. Поэтому такие атрибуты
не вводятся вручную.
Атрибуты первичного ключа родительской
сущности по умолчанию мигрируют со своими
именами. ERwin позволяет ввести для них
роли, т.е. новые имена, под которыми мигрирующие
атрибуты будут представлены в дочерней
сущности. В случае неоднократной миграции
атрибута такое переименование необходимо.
Например, сущность "посредническая
сделка" имеет атрибут "код предприятия-продавца"
и "код предприятия-покупателя". В
данном случае первичный ключ сущности
"предприятие" ("код предприятия")
имеет две роли в дочерней сущности.
На физическом уровне имя роли - это имя
колонки внешнего ключа в дочерней таблице.
Мощность связи представляет собой отношение
количества экземпляров родительской
сущности к соответствующему количеству
экземпляров дочерней сущности. Для любой
связи, кроме неспецифической, эта связь
записывается как 1:n.
ERwin в соответствии с методологией IDEF1X
предоставляет 4 варианта для n, которые
изображаются дополнительным символом
у дочерней сущности: ноль, один или больше
(по умолчанию); ноль или один; ровно N, где
N - конкретное число.
Допустимость пустых (NULL) значений в неидентифицирующих
связей ERwin изображает пустым ромбиком
на дуге связи со стороны родительской
сущности.
Обозначения мощности соответственно
ноль, один или больше, один или больше,
ноль или один в нотации IE приведены на
рис. 1.
Рис.1. Обозначения мощности связи в нотации IE
Имя связи на логическом уровне представляет собой "глагол", связывающий сущности. Физическое имя связи (которое может отличаться от логического) для ERwin означает имя ограничения (constraint) или индекса.
Графическое редактирование модели
Все объекты модели
ERwin могут редактироваться средствами,
принятыми в Windows - группировка, копирование,
удаление, перемещение, использование
системного буфера. Установка цветов и
шрифтов осуществляется в удобных диалогах.
Компоненты модели, представленные текстом
(имена сущностей, атрибутов, текстовые
элементы) могут редактироваться непосредственно
на экране.
Альтернативные ключи
Альтернативный ключ
- это атрибут (или группа атрибутов),
несовпадающий с первичным
Для альтернативного ключа, как и для первичного,
ERwin автоматически создает индексы при
генерации БД.
Инвертированные индексы
Атрибуты, составляющие
альтернативный ключ, однозначно (уникально)
идентифицируют экземпляры сущности.
В ERwin можно также составлять группы
атрибутов, которые не идентифицируют
уникально экземпляры сущности, но часто
используются для доступа к данным. Для
каждой такой группы атрибутов ERwin создает
неуникальные индексы.
Одни и те же атрибуты сущности могут входить
в несколько различных групп ключей.
Унификация атрибутов
Зависимая сущность
может наследовать один и тот
же внешний ключ от более чем одной
родительской сущности, или от одной и
той же родительской сущности через несколько
связей. Если не введены различные роли
для такого множественного наследования,
ERwin считает, что в зависимой сущности
атрибуты внешнего ключа появляются только
один раз.
Унификация - это объединение двух или
более групп атрибутов внешних ключей
в один внешний ключ (группу атрибутов),
в предположении, что значения одноименных
атрибутов в дочерней сущности всегда
одинаковы.
Рассмотрим пример: сущность "сотрудник"
имеет первичный ключ "код сотрудника"
и связан идентифицирующей связью с сущностями
"супруга" и "дети". При этом
происходит миграция первичного ключа
в зависимые сущности. В свою очередь,
сущность "супруга" связана неидентифицирующей
связью с сущностью "дети". Имеются
два пути миграции ключа, однако в сущности
"дети" атрибут "код сотрудника"
появляется один раз в качестве элемента
первичного ключа.
Существуют случаи, когда унификация атрибутов
дает неверный с точки зрения предметной
области результат. Для отмены унификации
для атрибутов вводятся имена ролей.
Связи категоризации
Некоторые сущности
определяют целую категорию объектов
одного типа. В ERwin в таком случае создается
сущность для определения категории и
для каждого элемента категории, а затем
вводится для них связь категоризации.
Родительская сущность категории называется
супертипом, а дочерние - подтипом.
Например, сущность "сотрудник" может
содержать данные как о штатных работниках,
так и о временно нанятых. Первые и вторые
имеют различные, частично пересекающиеся
наборы атрибутов (минимальное пересечение
подтипов составляет первичный ключ).
Общая часть этих атрибутов, включая первичный
ключ, помещается в сущность-супертип
"сотрудник".
Различная часть (например, данные почасовой
оплаты для временных работников и данные
о зарплате и отпуске для штатных работников)
помещается в сущности-подтипы.
В сущности-супертипе вводится атрибут-дискриминатор,
позволяющий различать конкретные экземпляры
сущности - подтипа.
В зависимости от того, все ли возможные
сущности-подтипы включены в модель, категорийная
связь является полной или неполной. Продолжая
пример, если супертип может содержать
данные об уволенных сотрудниках, то эта
связь - неполной категоризации, так как
для него не существует записи в сущностях
- подтипах.
В ERwin полная категория изображается окружностью
с двумя подчеркиваниями, а неполная -
окружностью с одним подчеркиванием.
Реализация ссылочной целостности с помощью ERwin
Ссылочная целостность
- это обеспечение требования, чтобы
значения внешнего ключа экземпляра
дочерней сущности соответствовали
значениям первичного ключа в
родительской сущности. Ссылочная целостность
может контролироваться при всех
операциях, изменяющих данные (INSERT/UPDATE/DELETE).
Средства контроля ссылочной целостности
в ERwin включают автоматическую генерацию
триггеров и использование механизмов
декларативной ссылочной целостности
(для тех СУБД, которые поддерживают данные
механизмы).
Для каждой связи на логическом уровне
могут быть заданы требования по обработке
операций INSERT/UPDATE/DELETE для родительской
и дочерней сущности. ERwin представляет
следующие варианты обработки этих событий:
В соответствии с
выбранным вариантом ERwin автоматически
создает необходимые триггеры на диалекте
SQL целевой СУБД. При этом ERwin пользуется
библиотекой шаблонов триггеров, которые
можно модифицировать.
При генерации структуры базы данных триггеры,
обеспечивающие ссылочную целостность
могут быть переопределены на трех уровнях: