Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Базы данных
Посмотреть оригинал

Средства автоматизации проектирования баз данных

CASE — сокращение от Computer Aided Software Engineering. CASE- средства позволяют автоматизировать создание информационных систем на протяжении всего их жизненного цикла. Современные средства проектирования могут быть разделены на две большие категории. Первую составляют CASE-системы, обеспечивающие проектирование БД и приложений в комплексе с интегрированными средствами разработки приложений клиент-сервер (например, Westmount I-CASE+Uniface, Designer/2000+Developer/2000). Их основное достоинство заключается в том, что они позволяют разрабатывать всю информационную систему целиком, оставаясь в одной технологической среде. Инструменты этой категории, как правило, обладают существенной сложностью, широкой сферой применения и высокой гибкостью.

Вторую категорию составляют собственно средства проектирования баз данных, реализующие ту или иную методологию, как правило сущность—связь (entity — relationship), и рассматриваемые в комплексе со средствами разработки приложений. К средствам этой категории можно отнести такие, как SILVERRUN+JAM, ERwin/ERX+PowerBuilder, S-Designor (SDP), DataBase Designer (ORACLE) и др.

Помимо указанных категорий средства проектирования можно классифицировать по следующим признакам:

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

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

Рассмотрим применение одного программного продукта ERwin.

ERwin разработан компанией Logic Works, которая в 1988 г. была приобретена фирмой Platinum Technologies, а ее в свою очередь приобрела компания Computer Associates. Этот продукт в течение последних десяти лет занимает лидирующие позиции среди средств проектирования данных. ERwin представляет собой специализированное средство проектирования данных без ориентации на какую-то конкретную СУБД и поддерживает более 20 типов СУБД, включая СУБД всех ведущих производителей серверов баз данных {Oracle, Sybase, Microsoft, IBM, Informix), а также все популярные форматы настольных СУБД (включая dBase, Clipper, FoxPro, Access, Paradox).

Процесс моделирования в ERwin базируется на методологии проектирования реляционных баз данных IDEF1X. Она определяет стандарты терминологии и графического изображения типовых элементов на ER-диаграммах.

Процесс проектирования базы данных включает в себя концептуальное, логическое и физическое проектирование. Результатом процесса проектирования является создание модели данных. Этапы построения информационной модели:

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

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

При запуске ERwin появляется диалоговое окно, в котором нужно указать, следует ли создать новую модель или открыть существующий файл. Также предлагается список последних использовавшихся файлов ERwin. При первом запуске ERwin 4.0 этот список пуст (рис. 2.17).

Диалоговое окно выбора режима работы

Рис. 2.17. Диалоговое окно выбора режима работы

Диалоговое окно выбора типа модели

Рис. 2.18. Диалоговое окно выбора типа модели

При выборе пункта Create a new model (Создать новую модель) открывается окно Create Model (Создание модели), которое предоставляет возможность выбора типа создаваемой модели (рис. 2.18). Типы моделей являются частью новой архитектуры уровня проектирования ERwin, которая позволяет пользователям кроме всего прочего создавать и поддерживать синхронизацию между одной логической и несколькими физическими моделями. Окно Create Model также позволяет с самого начала выбрать целевую базу данных.

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

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

  • • диаграмма сущность—связь (Entity Relationship Diagram, ERD)
  • • модель данных, основанная на ключах {Key Based model, КВ) '
  • • полная атрибутивная модель {Fully Attributed model, FA).

Диаграмма сущность—связь представляет собой модель данных

верхнего уровня. Она включает в себя сущности и взаимосвязи, отражающие основные бизнес-правила предметной области. Такая диаграмма не слишком детализирована, в нее входят основные сущности и связи между ними, которые удовлетворяют основным требованиям, предъявляемым к ИС. Диаграмма сущность—связь может содержать связи многие-ко-многим и не включать описание ключей. Как правило, FRD используется для презентаций и обсуждения структуры данных с экспертами предметной области. Модель данных, основанная на ключах, — более подробное представление данных. Она включает в себя описание всех сущностей и первичных ключей и предназначена для представления структуры данных и ключей, которые соответствуют предметной области.

Полная атрибутивная модель — наиболее детальное представление структуры данных: представляет данные в третьей нормальной форме и включает все сущности, атрибуты и связи.

Выбор между логическим и физическим уровнем отображения осуществляется через линейку инструментов или меню (рис. 2.19). Внутри каждого из этих уровней есть следующие режимы отображения:

режим «сущности»: внутри прямоугольников отображается имя сущности (для логической модели) или имя таблицы (для физического представления модели); служит для удобства обзора большой диаграммы или размещения прямоугольников сущностей на диаграмме;

Окно проектирования логической модели

Рис. 2.19. Окно проектирования логической модели

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

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

Все объекты модели ERwin могут редактироваться средствами, принятыми в Windows: группировкой, копированием, удалением, перемещением, использованием системного буфера. Установка цветов и шрифтов осуществляется в удобных диалогах. Компоненты модели, представленные текстом (имена сущностей, атрибутов, текстовые элементы), могут редактироваться непосредственно на экране.

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

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

Для внесения сущности в модель необходимо щелкнуть по кнопке сущности на панели инструментов (ERwin Toolbox) 3 , затем по тому месту на диаграмме, где необходимо расположить новую сущность (рис. 2.20). Щелкнув правой кнопкой мыши по сущности и выбрав из всплывающего меню пункт Entity Editor, можно вызвать диалог Entity Editor, в котором определяются имя, описание и комментарии сущности (рис. 2.21).

Добавление сущности

Рис. 2.20. Добавление сущности

Каждая сущность должна быть полностью определена с помощью текстового описания в закладке Definition. Эти определения полезны как на логическом уровне, поскольку позволяют понять, что это за объект, так и на физическом уровне, поскольку их можно экспортировать

Окно определения сущности

Рис. 2.21. Окно определения сущности

как часть схемы и использовать в реальной БД (CREATE COMMENT on entity name).

Закладки Note, Note2, Note3, UDP(User Defined Properties — Свойства, определенные пользователем) служат для внесения дополнительных комментариев и определений к сущности. В закладке Icon (рис. 2.22) каждой сущности можно поставить в соответствие изображение, которое будет отображаться в режиме просмотра модели на уровне иконок, и изображение, которое будет отображаться на всех других уровнях.

Закладка UDP диалога Entity Editor служит для определения свойств, определяемых пользователем (User Defined Properties). При нажатии на кнопку этой закладки вызывается диалог User Defined Property- Editor (также вызывается из меню Edit/UDPs) (рис. 2.23). В нем необходимо указать вид объекта, для которого заводится UDP (диаграмма в целом, сущность, атрибут и т.д.) и тип данных. Для внесения нового свойства следует щелкнуть в таблице по кнопке + J и внести имя, тип данных, значение по умолчанию и определение.

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

Закладка Icon

Рис. 2.22. Закладка Icon

Определение свойств пользователем

Рис. 2.23. Определение свойств пользователем

основании анализа предметной области и учета следующих требований к первичному ключу:

  • • первичный ключ не должен принимать пустые (NULL) значения;
  • • первичный ключ не должен изменяться с течением времени;
  • • размер первичного ключа должен быть как можно меньшим.

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

Для описания атрибутов следует, щелкнув правой кнопкой по сущности, выбрать в появившемся меню пункт Attribute Editor. Появится диалог Attribute Editor (рис. 2.24) — окно редактора атрибутов.

Окно редактора атрибутов

Рис. 2.24. Окно редактора атрибутов

Если щелкнуть по кнопке New, то в появившемся диалоге New Attribute можно указать имя атрибута, имя соответствующей ему в физической модели колонки и домен. Домен атрибута будет использоваться при определении типа колонки на уровне физической модели (рис. 2.25).

Для атрибутов первичного ключа в закладке General диалога Attribute Editor необходимо сделать пометку в окне выбора Primary Key (рис. 2.26).

Закладки Definition, Note и UDP выполняют те же функции, что и при определении сущности, но на уровне атрибутов. Для большей наглядности диаграммы каждый атрибут можно связать с иконкой. Это можно сделать с помощью списка выбора Icon в закладке General.

Очень важно дать атрибуту правильное имя. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Согласно синтаксису IDEF1X, имя атрибута должно быть уникальным в рамках модели (а не только в рамках сущности!). По умолчанию при попытке внесения уже существующего имени атрибута

ERwin переименовывает его. Например, если атрибут Комментарий уже существует в модели, другой атрибут (в другой сущности) будет назван Комментарий/2, затем Комментарий/3 и т.д. При переносе атрибутов внутри и между сущностями можно воспользоваться техникой drag&drop, выбрав кнопку ^ в палитре инструментов.

Определение нового атрибута

Рис. 2.25. Определение нового атрибута

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

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

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

Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, являющиеся первичным ключом родительской сущности, при этом входят в состав неключевых атрибутов дочерней сущности. Для определения связей ERwin выбирается тип связи, затем мышью указываются родительская и дочерняя сущности. Идентифицирующая связь изображается сплошной линией; неидентифицирующая — пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности (рис. 2.27). Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешние ключи FK.

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

Для создания новой связи следует выбрать идентифицирующую или неидентифицирующую связь в палитре инструментов (ERwin Toolbox), щелкнуть сначала по родительской, а затем по дочерней сущности. В палитре инструментов кнопка 2^ соответствует идентифицирующей связи, кнопка '-i J связи многие-ко-многим и кнопка !-; соответствует неидентифицирующей связи. Для редактирования свойств связи следует щелкнуть правой кнопкой мыши по связи и выбрать на контекстном меню пункт Relationship Editor. В закладке General появившегося диалога можно задать мощность, имя и тип связи (рис. 2.28).

Установление идентифицирующей связи

Рис. 2.27. Установление идентифицирующей связи

Для неидентифицирующей связи можно указать обязательность (Nulls в закладке General диалога Relationship Editor). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение NULL. Допустимость пустых (NULL) значений в неидентифицирующих связях ERwin изображает пустым ромбиком на дуге связи со стороны родительской сущности.

Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1 :п. Различают четыре типа мощности:

  • • общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочерней сущности; не помечается каким-либо символом;
  • • случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение); помечается символом Р;
  • • случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочерней сущности (исключены множественные значения); помечается символом Z;
  • • случай, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности; помечается цифрой.

По умолчанию символ, обозначающий мощность связи, не показывается на диаграмме. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию CARDINALITY (рис. 2.29).

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

Первичный ключ (Primary key) — это атрибут или группа атрибутов, однозначно идентифицирующие экземпляр сущности. Атрибуты первичного ключа на диаграмме не требуют специального обозначения — это те атрибуты, которые находятся в списке атрибутов выше горизонтальной линии. При внесении нового атрибута в диалоге Attribute Editor, для того чтобы сделать его атрибутом первичного ключа, нужно включить флажок Primary Key в нижней части закладки General (см. рис. 2.26). На диаграмме ключевой атрибут можно внести в состав первичного ключа, воспользовавшись режимом переноса атрибутов (кнопка в палитре инструментов).

В одной сущности может оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (Candidate key). Ключи могут быть сложными, т.е. содержащими несколько атрибутов. Сложные первичные ключи не требуют специального обозначения, это список атрибутов выше горизонтальной линии. При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т.е. ключам, содержащим меньшее количество атрибутов. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные — альтернативными ключами.

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

Внешние ключи (Foreign Key) создаются автоматически, когда связь соединяет сущности: связи образуют ссылку на атрибуты первичного ключа в дочерней сущности и эти атрибуты создают внешний ключ в дочерней сущности (миграция ключа). Атрибуты внешнего ключа обозначаются символом FK после своего имени (см. рис. 2.26). Зависимая сущность может иметь один и тот же ключ из нескольких родительских сущностей. Сущность может также получить один и тот же внешний ключ несколько раз от одного и того же родителя через несколько разных связей. Когда ERwin обнаруживает одно из этих событий, он распознает, что два атрибута одинаковы, и помещает атрибуты внешнего ключа в зависимой сущности только один раз. Это комбинирование или объединение идентичных атрибутов называется унификацией.

Имя связи (Verb Phrase) — фраза, характеризующая отношение между родительской и дочерней сущностями. Для идентифицирующей или неидентифицирующей связи один-ко-многим достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent. Для отображения имени следует в контекстном меню, которое появляется, если щелкнуть правой кнопкой мыши по любому месту диаграммы, не занятому объектами модели, выбрать пункт Display Options/Relationship и затем включить опцию Verb Phrase (рис. 2.30). На рис. 2.31 показана ER-модель с отображенными на ней именами связей.

Имя роли, или функциональное имя (Rolename), — это синоним атрибута внешнего ключа, который показывает, какую роль играет атрибут в дочерней сущности. Задать имя роли можно в закладке Rolename/ RI Actions диалога Relationship Editor (рис. 2.32). Обязательно применение имен ролей в том случае, когда два или более атрибутов одной сущности определены по одной и той же области, т.е. они имеют одну и ту же область значений, но разный смысл. Другим примером обязательного применения имен ролей служат рекурсивные связи, когда одна и та же сущность является и родительской и дочерней одновременно.

В ERwin включены средства контроля ссылочной целостности. Ссылочная целостность — это обеспечение требования соответствия значений внешнего ключа экземпляра дочерней сущности значениям первичного ключа в родительской сущности. Ссылочная целостность может контролироваться при всех операциях, изменяющих данные: добавлении, изменении и удалении (INSERT/UPDATE'/ DELETE). Средства контроля ссылочной целостности в ERwin включают в себя автоматическую генерацию триггеров и использование механизмов декларативной ссылочной целостности (для тех СУБД, которые поддерживают данные механизмы). Для каждой связи на логическом уровне могут быть заданы требования по обработке операций INSERT/UPDATE/DELETE для родительской и дочерней сущностей. ERwin представляет следующие варианты обработки этих событий:

  • • отсутствие проверки;
  • • проверка допустимости;
  • • запрет операции;
  • • каскадное выполнение операции (DELETE/UPDATE)',
  • • установка пустого (NULL-значения) или заданного значения по умолчанию.

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

1. Могут быть переопределены триггеры, обеспечивающие правила для всей модели (RI Type Override).

  • 2. Могут быть переопределены триггеры, указанные для конкретной связи (Relationship Override).
  • 3. Могут быть переопределены триггеры, указанные для конкретной таблицы (Entity Override).
Отображение имени связи

Рис. 2.31. Отображение имени связи

Задать правила ссылочной целостности можно в закладке Rolename/ RI Actions диалога Relationship Editor (рис. 2.33). При генерации схемы БД на основе опций логической модели будут сгенерированы правила декларативной ссылочной целостности, которые должны быть предписаны для каждой связи, и триггеры, обеспечивающие ссылочную целостность.

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

Рис. 2.33. Определение правил ссылочной целостности

Домен можно определить как совокупность значений, из которых берутся значения атрибутов. Каждый атрибут может быть определен только на одном домене, но на каждом домене может быть определено множество атрибутов. В понятие домена входит не только тип данных, но и область значений данных. Например, домен Возраст можно определить как положительное целое число и определить атрибут Возраст сотрудника как принадлежащий этому домену. В ERwin домен может быть определен только один раз и использоваться как в логической, так и в физической моделях. На логическом уровне домены можно описать без конкретных физических свойств. На физическом уровне они получают специфические свойства, которые можно изменить вручную. Так, домен Возраст может иметь на логическом уровне тип Number, на физическом уровне домену будет присвоен тип INTEGER.

Для создания домена в логической модели служит диалог Domain Dictionary Editor. Его можно вызвать из меню Edit/Domain Dictionary по кнопке, расположенной в верхней левой части закладки General диалога Attribute Editor (рис. 2.34).

Определение домена

Рис. 2.34. Определение домена

Для создания нового домена в диалоге Domain Dictionary Editor следует:

  • • щелкнуть по кнопке New, появляется диалог New Domain;
  • • выбрать родительский домен из списка Domain Parent. Новый домен можно создать на основе уже созданного пользователем домена либо на основе изначально существующего. По умолчанию Erwin имеет четыре предопределенных домена (String, Number, Blob, Datetime). Новый домен наследует все свойства родительского домена. Эти свойства в дальнейшем можно переопределить;
  • • набрать имя домена в поле Logical Name. Можно также указать имя домена на физическом уровне в поле Physical Name. Если физическое имя не указано, по умолчанию оно принимает значение логического имени;
  • • щелкнуть по кнопке ОК.

В диалоге Domain Dictionary Editor (рис. 2.35) можно связать домен с иконкой, с которой он будет отображаться в списке доменов {Domain Icon), иконкой, с которой атрибут, определенный на домене, будет отображаться в модели {Icon Inherited by Attribute). Каждый домен может быть описан в закладке Definition, снабжен комментарием в закладке Note или свойством, определенным пользователем, в закладке UDP. ERwin имеет специальный инструмент Independent Attribute Browser, который значительно облегчает создание новых атрибутов в модели, используя описание доменов.

Создание нового домена

Рис. 2.35. Создание нового домена

Этот диалог вызывается (и скрывается) по горячему ключу Ctrl+B. С его помощью можно выбрать в списке домен и по методу drag&drop перенести его в какую-либо сущность. В ней будет создан новый атрибут с именем, которое следует задать в окне Name Inherited by Attribute диалога Domain Dictionary Editor. Если значение поля не задано, по умолчанию принимается имя домена. На физическом уровне диалог Domain Dictionary Editor позволяет редактировать физические свойства домена. Имя этой закладки зависит от выбранного сервера БД. На ней можно задать конкретный тип данных, соответствующих домену, правила присвоения NULL-значений, правила валидации (правила проверки допустимых значений) и задания значения по умолчанию.

Правила валидации и значения по умолчанию должны быть предварительно описаны и именованы. Для вызова диалогов редактирования правил валидации и значений по умолчанию служат кнопки . справа от соответствующего списка выбора (Valid и Default). Функции других закладок диалога Domain Dictionary Editor.

• General — задание родительского домена (Domain Parent) и имени, присваиваемого колонке при ее создании с помощью Independent

Column Browser. С помощью опции Phisical Only домен можно определить только на уровне физической модели;

  • Comment — внесение комментария к атрибуту;
  • UDP — свойства, определяемые пользователем.

Обычно модели ERwin сохраняются на диск в виде файла. Имеется возможность хранить модель в целевой СУБД. Для этого с помощью самого ERwin в целевой СУБД создается метабаза ERwin. В этой базе данных сохраняется информация модели.

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

При генерации имени таблицы или колонки по умолчанию все пробелы автоматически преобразуются в символы подчеркивания, а длина имени обрезается до максимальной длины, допустимой для выбранной СУБД. Все изменения, сделанные в Table Editor или Column Editor, не отражаются на именах сущностей и атрибутов, поскольку информация на логическом и физическом уровнях в ERwin хранится отдельно. Редактор Table Editor позволяет задать свойства любой таблицы модели, отличные от значения по умолчанию, в том числе имя таблицы, синонимы, правила валидации, процедуры и т.д. Переключиться на другую таблицу можно с помощью раскрывающегося списка выбора в верхней части диалога.

Окно Name служит для задания имени текущей таблицы. Окно Owner позволяет внести имя владельца таблицы, отличное от имени пользователя, производящего генерацию схемы БД. Окно выбора Physical Only служит для создания объектов только на физическом уровне. Если выбрана опция Generate, при генерации схемы БД будет выполняться команда CREATE TABLE. Кнопка DB Sync служит для немедленной синхронизации модели с системным каталогом БД.

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

Процесс генерации физической схемы БД из логической модели данных называется прямым проектированием (Forward Engineering). При генерации физической схемы ERwin включает триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие возможности, доступные при определении таблиц в выбранной СУБД. Процесс генерации логической модели из физической БД называется обратным проектированием (Reverse Engineering). ERwin позволяет создать модель данных путем обратного проектирования имеющейся БД. После того как модель создана, можно переключиться на другой сервер (модель будет конвертирована) и провести прямое проектирование структуры БД для другой СУБД. Кроме режима прямого и обратного проектирования ERwin поддерживает синхронизацию между логической моделью и системным каталогом СУБД на протяжении всего жизненного цикла создания ИС.

Пример. Рассмотрим технологию построения логической модели БД «Библиотека».

  • 1. Для создания новой модели выбираем в диалоговом окне Computer Associaes ERwin опцию CREATE A NEW MODEL.
  • 2. В диалоговом окне Create ModelSelect Template выбираем вид модели Logical/Phisical.
  • 3. Выбираем инструмент сущность на панели инструментов (ERwin Toolbox) и располагаем на диаграмме новую сущность.
  • 4. Задаем имя сущности Books и определяем атрибуты сущности (рис. 2.36). Щелкнув правой кнопкой мыши по сущности и выбрав из всплывающего меню пункт Entity Properties, вызываем диалог Entities, в котором определяются имя, описание и комментарии сущности.
  • 5. Определяем первичный ключ для сущности BooksId book.
  • 6. Создаем сущность Klient и определяем атрибуты сущности.
  • 7. Две созданные сущности находятся в отношении многие-ко- многим: одну книгу могут читать несколько читателей и один читатель может читать много книг. Для устранения избыточности данных и приведения к третьей нормальной форме создадим еще одну сущность — Gets, которая будет определять процесс выдачи книг читателям. Определим атрибуты этой сущности.
Создание сущности Books

Рис. 2.36. Создание сущности Books

8. Теперь можно установить связи между сущностями. Для создания новой связи установим курсор на нужной кнопке в палитре инструментов (идентифицирующая связь) и нажмем левую кнопку мыши. Щелкнем сначала по родительской, а затем по дочерней сущности. Полученная логическая модель представлена на рис. 2.37.

Логическая модель базы данных «Библиотека»

Рис. 2.37. Логическая модель базы данных «Библиотека»

9. Для создания физической модели переключимся на список выбора в левой части панели инструментов ERwin (рис. 2.38).

Переход на физический уровень моделирования

Рис. 2.38. Переход на физический уровень моделирования

10. Физический уровень представления модели зависит от выбранного сервера. Для выбора СУБД служит редактор Target Server (меню Database/ Choose Database доступно только на физическом уровне) (рис. 2.39).

Окно выбора СУБД

Рис. 2.39. Окно выбора СУБД

11. Имена таблиц и колонок по умолчанию будут сгенерированы на основе имен сущностей и атрибутов логической модели (рис. 2.40).

Физическая модель базы данных «Библиотека»

Рис. 2.40. Физическая модель базы данных «Библиотека»

12. При закрытии окна проектирования физической модели выберем опцию сохранения SAVE AS (рис. 2.41).

Закрытие и сохранение физической модели

Рис. 2.41. Закрытие и сохранение физической модели

  • 13. Определим новую базу данных в выбранной СУБД, задав ее имя.
  • 14. Выберем в меню Database пункт Database Connection и в окне диалога выберем базу данных (рис. 2.42). Нажмем кнопку Connect. В результате будет создана база данных в выбранной СУБД.
Выбор базы данных

Рис. 2.42. Выбор базы данных

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

  • 1. Что собой представляет модель данных?
  • 2. Приведите классификацию моделей данных.
  • 3. Укажите достоинства и недостатки иерархической модели.
  • 4. Охарактеризуйте сетевую модель.
  • 5. Охарактеризуйте реляционную модель данных.
  • 6. Объясните термины: отношение, кортеж, атрибут, первичный и внешний ключ, домен.
  • 7. Каким образом реализуется поддержка целостности базы данных?
  • 8. Объясните, что означает избыточность данных.
  • 9. Перечислите этапы проектирования баз данных.
  • 10. Какая информация является исходной для построения концептуальной модели?
  • 11. Объясните, в чем состоит процесс нормализации.
  • 12. Приведете примеры отношений, не находящихся в первой нормальной форме, во второй.
  • 13. Что называется инфологической моделью?
  • 14. Какие преимущества дает использование ER-моделирования при создании базы данных?
  • 15. Какие CASE-средства вы знаете?
  • 16. Каково назначение пакета ERwin и его основные функции?
  • 17. В чем состоят главные преимущества пакета ERwin?
  • 18. Опишите этапы построения информационной модели.
  • 19. Из каких элементов состоит диаграмма сущность—связь?
  • 20. Опишите характеристики связей в методологии IDEF1X.
  • 21. Какие типы ключей используются в пакете ERwin, каково их назначение?
  • 22. Каково предназначение доменов? Приведите примеры доменов различного вида.
 
Посмотреть оригинал
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы