Создание физической модели данных
ERwinимеет специальные инструменты для создания и редактирования представлений. Для внесения представления в модель нужно щелкнуть по кнопке в палитре инструментов (рис.2), затем по свободному месту диаграммы. По умолчанию представление получает номер V_n, где n — уникальный порядковый номер представления. Для установления связи нужно щелкнуть по кнопке, затем по родительской таблице и, наконец… Читать ещё >
Создание физической модели данных (реферат, курсовая, диплом, контрольная)
Предположим, что логическая модель некоторой информационной системы создана, т. е. определены сущности и их атрибуты, организованы связи между сущностями, заданы первичные и альтернативные ключи, модель приведена к требуемому уровню нормальной формы. После завершения логического этапа проектирования разработчик переходит к созданию физической модели. Ниже приведено описание основных процедур этого процесса.
Физический уровень представления модели. Если логическая модель уже создана, то для просмотра физической модели необходимо воспользоваться списком выбора, расположенным в правой части панели инструментов ERwin (рис.1).
Палитра инструментов. На физическом уровне палитра инструментов (рис.2) несколько отличается от палитры инструментов на логическом уровне:
- — вместо кнопки категорий (третья кнопка слева в верхнем ряду) используется кнопка внесения представлений (View);
- — кнопка связи «многие ко многим» (третья кнопка слева в нижнем ряду) заменена на кнопку связей представлений.
Выбор сервера. Для выбора сервера служит редактор (рис.3) TargetServer (меню Server/TargetServer доступно только на физическом уровне). При составлении методических указаний использовалась СУБД типа InterBase, поэтому необходимо щелкнуть по кнопке рядом с названием этого сервера. В редакторе содержаться следующие окна:
- — DefaultInterBaseDatatype. Показывает тип данных, который по умолчанию присваивается каждой колонке таблицы.
- — TableNameMacro. Шаблон генерации по умолчанию имени таблицы.
- — IndexNameMacro. Шаблон генерации по умолчанию имени индекса.
- — Default Non-Key Null Option. Позволяет разрешить или запретить значение NULL для не ключевых колонок.
- — TriggerDelimiter. Разделитель для кода триггера.
Кнопка ResetNames вызывает диалог, позволяющий заменить имена (таблиц, колонок, индексов и т. д.), заданные вручную на значения по умолчанию.
Кнопка RIDefaults вызывает диалог, который позволяет присвоить каждой связи между таблицами значение ссылочной целостности по умолчанию.
Создание новой таблицы. Для внесения новой таблицы в модель на физическом уровне служит кнопка на палитре инструментов. Связи между таблицами создаются так же, как на логическом уровне.
база данные реляционный информационный Задание свойств таблицы. Свойства таблицы задаются в редакторе TableEditor (щелкните правой кнопкой мыши по изображению таблицы и выберите пункт TableEditor).
Окна Nameи Owner (рис.4) используются для ввода имени таблицы и имени владельца таблицы, отличающегося от имени пользователя, производящего генерацию БД. Опция PhysicalOnlyслужит для указания на то, что данная таблица создается только на физическом уровне (в логической модели сущность не создается). Если выбрана опция Generate, то при генерации схемы БД будет выполняться команда CREATETABLE. В окне Comment вводятся комментарии к созданной таблице.
Диалог TableEditor содержит ряд закладок, которые могут быть использованы на последующих этапах проектирования.
Задание свойств колонок. Свойства колонок таблицы задаются в редакторе ColumnEditor (щелкните правой кнопкой мыши по изображению таблицы и выберите пункт ColumnEditor).
В верхней части редактора (рис.5) содержится раскрывающийся список выбора таблиц модели, а в левой части — список созданных колонок редактируемой таблицы.
Для редактирования используются следующие кнопки:
New, Rename, Delete. Служат соответственно для создания, переименования и удаления колонки.
Reset.Вызывает диалог который позволяет изменить свойства колонки, заданные вручную, на значения по умолчанию.
Migrate.Позволяет определить, какие характеристики мигрировавшей колонки будут сохранены в дочерней таблице.
DBSync.Служит для запуска процесса синхронизации модели с системным каталогом БД.
Кнопки. Предназначены для перемещения выделенной колонки в списке на позицию вверх или вниз.
В правой части редактора ColumnEditorотображается информация, соответствующая одной из выбранных закладок:
General. Позволяет присвоить колонку таблицы определенному домену (String, Numberи т.д.), создать колонку только на физическом уровне (окно PhysicalOnly) и включить ее в состав первичного ключа (окно PrimaryKey).
Закладка, соответствующая выбранной СУБД (на рис. 5 — InterBase). Имя закладки устанавливается автоматически и соответствует выбранной СУБД. Позволяет задать тип данных, опцию NULL, правила валидации и значения по умолчанию. Правила валидации и значения по умолчанию должны быть предварительно описаны и именованы соответственно в диалогах ValidationRuleиDefault/InitialEditor. Для вызова этих диалогов служат кнопки справа от соответствующих раскрывающихся списков.
Comment.Служит для внесения комментариев к каждой колонке.
UDP. Задание свойств, определяемых пользователем.
Index.Используется для включения колонки в состав индексов.
Для создания новой колонки необходимо щелкнуть по кнопке New, затем ввести в появившемся диалоге NewColumnимя атрибута и имя соответствующей ему колонки, а после этого указать домен.
Правила валидации. ERwinподдерживает правила валидации, которые определяют диапазон изменения, список допустимых значений или какие-либо другие ограничения, которым должны удовлетворять значения конкретной колонки.
Например, значения вводимое в колонку Age, должно быть больше 18, но меньше 40. Для описания этого условия можно было бы непосредственно создать правило валидации с именем «Проверка возраста», которое должно содержать выражение: AgeBETWEEN 18 AND 40. Однако, при использовании ERwin этот процесс упрощается.
Для создания нового правила валидации необходимо войти в редактор ColumnEditor, открыть закладку InterBaseи выполнить следующие действия:
выбрать в списке Column нужную колонку;
щелкнуть по кнопке справа от окна Valid;
в окне редактора ValidationRuleEditor (рис.6) щелкнуть по кнопке New, ввести имя правила валидации в поле Name диалога NewValidation и нажать на кнопку OK;
ввести значения нижней (окно Min) и верхней (окно Max) границы диапазона и выбрать, например, опцию Server.
Кнопка SetExpr диалога позволяет сгенерировать шаблон правила валидации в соответствии с синтаксисом выбранной СУБД с учетом границ диапазона значений (см. окно ServerExpression). Полученное правило валидации может быть окончательно связано с именем конкретной колонки в редакторе ColumnEditor.
Другая возможность проверки достоверности вводимой информации связана с созданием списка всех допустимых значений, которые можно хранить в колонке.
Например, для колонки Category можно создать список допустимых значений: «Местный», «Иногородний» и «Иностранный». Эта возможность может быть реализована, если после ввода имени нового правила валидации щелкнуть по кнопке ValidValue и перейти в редактор ValidValue.
Для определения значения в списке допустимых значений, следует щелкнуть по кнопке New, ввести значение в поле Name диалога NewValidValue и щелкнуть по кнопке ОК. В нижнем окне редактора ValidValueможно ввести определения для каждого значения. Кнопки Rename, Deleteи Sort позволяют соответственно изменить, удалить и отсортировать введенные допустимые значения. Переключатель Insert должен быть выбран при необходимости изменения порядка вставки новых допустимых значений.
При выходе из редактора ValidValue (кнопка ОК) ERwinавтоматически создает шаблон правила валидации, используя введенные допустимые значения, например, «%AttFieldNameIN ('Местный', 'Иногородний', 'Иностранный')».
Если включить опцию Copy (окно выбора в верхней части редактора ValidationRule), новому правилу будут присвоен список допустимых значений, связанный с уже имеющимися в списке и выбранным правилом валидации.
Чтобы автоматически заключить каждое значение списка в тексте правила валидации в одинарные кавычки, нужно включить опцию Quote. Опция Not позволяет сгенерировать правило валидации в инверсном виде.
Значение по умолчанию — значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. Иногда наиболее часто встречающиеся (наиболее вероятное) в колонке значение присваивается этой колонке в качестве значения по умолчанию. Например, в колонке «возраст призывника» по умолчанию может быть указано 18.
Для создания нового значения по умолчанию необходимо войти в редактор ColumnEditor, открыть закладку InterBaseи выполнить следующие действия:
- — войти в редактор InterBaseDefault/Initial (щелкнуть по кнопке справа от окна Default);
- — щелкнуть по кнопке New, ввести имя правила в поле Name диалога NewDefaultи щелкнуть по кнопке ОК;
- — ввести в окне ServerValueзначение (выражение) по умолчанию.
После выхода из редактора InterBaseDefault/Initial (кнопка ОК) ERwin автоматически покажет имя вновь созданного правила в окне Defaultредактора ColumnEditor. Это правило может быть связано с одной или несколькими колонками модели.
Индексы. Чтобы эффективно решить проблему поиска данных, СУБД использует особый объект, называемый индексом. Индекс содержит отсортированную по колонке или нескольким колонкам информацию и указывает на строки, в которых хранится конкретное значение колонки.
ERwin автоматически создает отдельный индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей, внешних ключей и инверсных входов.
Имя индекса — строка символов, являющихся объединением трех составляющих:
ИМЯ ИНДЕКСА = Х + ИМЯ КЛЮЧА + ИМЯ ТАБЛИЦЫ.
где Х — первый символ строки имени индекса;
ИМЯ ТАБЛИЦЫ — физическое имя таблицы.
На определенном этапе проектирования можно отказаться от генерации индексов по умолчанию и для повышения эффективности информационной системы создать собственные индексы.
Изменить характеристики существующего индекса или создать новый можно в редакторе IndexEditor. Для выбора следует щелкнуть правой кнопкой мыши по изображению таблицы модели и выбрать во всплывающем меню пункт InterBaseIndex.
РедакторIndexEditor позволяет включить колонки в состав существующего индекса, создавать новые индексы (кнопка New), вводить соответствующие комментарии и т. д.
ERwin создает индексы, которые могут иметь либо уникальные, либо повторяющиеся значения. При создании нового уникального индекса (диалог NewIndex) следует включить опцию Unique. Если колонка вошла в состав уникального индекса, то при попытке вставить запись с неуникальным (повторяющимся значением) сервер выдаст ошибку и значение не будет вставлено.
Иногда необходимо разрешить повторяющиеся значения, если предполагается, что индексированная колонка с большой вероятностью будет содержать повторяющуюся информацию.
Следует обратить внимание на то, что при создании нового индекса автоматически создается альтернативный ключ для уникального и инверсный вход для неуникального индекса.
Триггеры. Триггером называется процедура, которая выполняется автоматически как реакция на событие. Триггер ссылочной целостности (RI — триггер) — особый вид триггера, используемый для поддержания целостности между двумя таблицами, которые связаны между собой. Если в данной таблице выполняется ВСТАВКА (Insert), ИЗМЕНЕНИЕ (Update) или УДАЛЕНИЕ (Delete), то триггер ссылочной целостности сообщает СУБД, что нужно делать с теми строками у других таблиц, у которых значения внешнего ключа совпадают со значениями первичного ключа вставляемой, изменяемой или удаляемой строки.
Когда триггер связывается с таблицей, то он автоматически настраивается так, чтобы поддерживать одно из правил ссылочной целостности, в зависимости от типа связи (идентифицирующая, не идентифицирующая) и роли сущности (родитель, потомок) в связи. Ниже приведено описание типовых правил ссылочной целостности.
RESTRUCT. Запрещает СУБД производить требуемое изменение (INSERT, UPDATEили DELETE). Например, при наличии идентифицирующей связи между сущностями КОМАНДА и ИГРОК это правило запрещает удаление названия команды (ParentDelete) до тех по, пока в ней числиться хотя бы один игрок.
CASCADE.Производит требуемое изменение в первой таблице и распространяет его на связанные с ней таблицы (вместе с названием команды удаляются все ее игроки). Использовать правило удаление каскадом следует с большой осторожностью.
SETNULL. Производит требуемые изменения в первой таблице и устанавливает нулевые (пустые) значения внешнего ключа в связанных с ней таблицах. Это правило часто используется при наличии неидентифицирующей связи между таблицами. Например, при удалении отдела сотрудник остается работать в организации не будучи приписан к какому-либо отделу и информация о нем сохраняется.
SETDEFAULT.Работает как SETNULL, с той разницей, что вместо нулевого значения присваивает внешнему ключу значение по умолчанию.
NONE. Ничего не делает (ERwin не усиливает ссылочную целостность). Это правило используется, например, при вставке значений в родительскую таблицу (ParentInsert).
ERwinавтоматически присваивает каждой связи значение ссылочной целостности, устанавливаемой по умолчанию, прежде чем добавить ее в диаграмму. Режимы RI, присваиваемыеERwinпо умолчанию, могут быть изменены в редакторе ReferentIntegrityDefault (рис.7), который вызывается, если щелкнуть по кнопке RIDefaults диалога TargetServer (меню Server/TargetServer).
Для генерации по умолчанию кода триггера на языке SQL используются встроенные шаблоны ссылочной целостности, которые автоматически присваиваются каждой связи. Если встроенные шаблоны не удовлетворяют бизнес — правилам, можно изменить коды, генерируемые на основе встроенных шаблонов. ERwin позволяет изменить шаблон и указать, что при генерации модифицированная версия должна заменить встроенный шаблон.
Для редактирования триггера следует щелкнуть правой кнопкой мыши по изображению таблицы физической модели и выбрать во всплывающем меню пункт InterBaseTrigger. Появляется диалог TableTriggerViewer, в нижней части которого имеются две колонки, которые вызывают диалоги, предназначенные для создания и редактирования триггеров.
Хранимые процедуры — именованные наборы предварительно откомпилированных команд SQL, которые могут вызываться из клиентского приложения или других хранимых процедур. В отличии от триггера хранимая процедура не выполняется в ответ на какое-то событие, а вызывается из другой программы, которая передает на сервер имя хранимой процедуры.
Для создания или редактирования хранимой процедуры следует щелкнуть правой кнопкой мыши по таблице и выбрать в каскадном меню пункт TableEditor/StoredProcedure. Появляется закладка StoredProcedure диалога TableEditor, которая содержит все элементы, необходимые для ввода, отображения, редактирования кода хранимой процедуры и связывания ее с таблицей.
Представления (view) — производные таблицы, данные в которых не хранятся постоянно, как в основных таблицах, а формируются динамически при обращении к представлению. Представление данных это «окно», через которое видна часть базы данных. Представление не может существовать само по себе, а определяется только в терминах одной или нескольких таблиц. Применение представлений позволяет разработчику обеспечить каждому пользователю или группе пользователей свой взгляд на данные, что решает проблемы простоты использования и безопасности данных. Представления данных полезны для поддержания конфиденциальности путем ограничения доступа к определенным частям базы данных. Например, для того чтобы сохранить конфиденциальность, мы можем создать представление данных, показывающее всю информацию о сотруднике кроме его оклада.
ERwinимеет специальные инструменты для создания и редактирования представлений. Для внесения представления в модель нужно щелкнуть по кнопке в палитре инструментов (рис.2), затем по свободному месту диаграммы. По умолчанию представление получает номер V_n, где n — уникальный порядковый номер представления. Для установления связи нужно щелкнуть по кнопке, затем по родительской таблице и, наконец, по представлению (связь показывается пунктирной линией (рис.8)). Для редактирования представления служит диалог ViewEditor (рис.9). Для его вызова следует щелкнуть правой кнопкой мыши по представлению и выбрать в меню пункт ViewEditor.
Раскрывающийся список View позволяет выбрать для редактирования любое представление модели. Окно Name служит для редактирования имени, а Owner — владельца представления.
Диалог ViewEditorимеет следующие закладки:
Select (рис.9). Имеет два списка: в правом отображаются колонки представления, в левом — колонки доступные для включения в представление. Кнопка NewExpressionпозволяет задать выражение в качестве выходного столбца.
From.Позволяет выбрать родительские таблицы представления. Каждой таблице можно задать синоним (поле Alias), который будет использоваться при создании SQL-команды создания представления.
Where. Закладка содержит три поля — Where, GroupByи Having. На основе этой информации ERwin генерирует SQL-команду создания представления.
SQL.Закладка содержит поле, в котором отображается SQL-запрос создания представления.
StoredProcedure. Позволяет связать с представлением хранимые процедуры.
Для редактирования свойств колонок служит редактор ViewColumnEditor. Для его вызова следует щелкнуть правой кнопкой мыши по представлению и выбрать пункт ViewColumnEditor. Редактор позволяет ассоциировать колонку с доменом. По умолчанию колонка представления принадлежит тому же домену, что и колонка родительской таблицы. Так же как в диалоге ViewEditor (закладка Select, кнопка New), здесь можно создать выражение для колонки.
Более подробные сведения касающиеся различных особенностей процесса создания физических моделей реляционных баз данных читатели могут найти в учебнике [3].