Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НИНХ лабораторные Access 2007.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
9.08 Mб
Скачать

Создание физической модели

Для переключения между логической и физической моделью данных служит список выбора в стандартной панели инструментов ERWin. При переключении на физический уровень автоматически создается физическая модель (рис. П.8).

Рис. П.8. Физическая модель торговой фирмы

Сервер

Физический уровень представления модели зависит от выбранного сервера. ERwin поддерживает практически все распространенные СУБД, всего более 20 реляционных и нереляционных БД.

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

Диалоговое окно Target Server (рис. П.9) позволяет задать тип данных и опцию NULL для новых колонок, а также принимаемые по умолчанию правила ссылочной целостности. Кнопки в группе Default Non-Key Null Option разрешают или запрещают значения NULL для неключевых колонок.

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

Рис. П.9. Диалоговое окно Target Server для выбора СУБД

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

Таблицы

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

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

Редактор Table Editor позволяет задать свойства любой таблицы модели, отличные от значений по умолчанию, в том числе имя таблицы, синонимы, правила валидации, процедуры и т.д.

Колонки

Для задания свойств колонок, отличных от значений по умолчанию, служит редактор Column Editor. Чтобы вызвать его, нужно щелкнуть правой клавишей мыши по таблице и во всплывающем меню выбрать пункт Column Editor.

По умолчанию ERwin присваивает режимы нулевых значений всем неключевым колонкам, исходя из значений по умолчанию, устанавливаемых в редакторе Target Server. Для колонок первичного ключа и альтернативных ключей устанавливается режим NOT NULL.

При создании связи колонки первичного ключа родительской таблицы мигрируют в состав колонок дочерней таблицы в качестве внешнего ключа. Кнопка Migrate вызывает диалоговое окно Migrate Column Property, где можно определить, какие характеристики мигрировавшей колонки будут сохранены в дочерней таблице. В частности, для переноса каких-либо характеристик колонки необходимо включить соответствующую опцию, а для отказа от переноса – выключить.

Опциями в окне Migrate Column Property следует пользоваться очень осторожно. Это обусловлено следующими обстоятельствами:

1) новые свойства колонки перезаписывают (уничтожают) старые;

2) установленные опции действуют в рамках всей диаграммы, а не только текущей таблицы.

Представления

Представления (view) или, как их иногда называют, временные (производные) таблицы – это объекты БД, в которых данные не хранятся постоянно, как в обычной таблице, а формируются динамически при обращении к представлению.

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

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

По умолчанию представление получает номер V_n, где n – уникальный порядковый номер представления. Для установления связи нужно щелкнуть по кнопке , затем по родительской таблице и, наконец, по представлению. Связи с представлениями и прямоугольники представлений отображаются на диаграмме пунктирными линиями.

Для редактирования представления служит диалоговое окно View Editor. Чтобы вызвать это окно, нужно щелкнуть правой кнопкой мыши по представлению и выбрать в меню пункт View Editor.

Правила валидации и значения по умолчанию

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

Если щелкнуть по кнопке , расположенной справа от раскрывающегося списка Valid, то появляется диалоговое окно Validation Rule Editor, предназначенное для формирования правил валидации. Здесь можно задать максимальное и минимальное значение, а также тип валидации: проверка на сервере или в клиентском приложении.

Например, значение в колонке Age должно быть больше 18, но меньше 150. Для описания этого условия можно создать правило валидации, присвоив ему имя «Проверка_возраста» и включив в него выражение: Age BETWEEN 18 AND 150. Использование этого правила гарантирует, что СУБД выдаст сообщение об ошибке, если вводимый возраст находится вне границ заданного диапазона.

Правила валидации и значения по умолчанию после их создания можно присвоить одной или нескольким колонкам или доменам.

Индексы

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

Например, если требуется искать клиента по его фамилии (рис. П.8), то можно создать индекс по колонке Фамилия покупателя таблицы Покупатель. В индексе имена клиентов будут отсортированы в алфавитном порядке. Для конкретного имени индекс будет содержать ссылку на соответствующую строку таблицы.

Для поиска клиента серверу направляется запрос с условием поиска: Фамилия покупателя = «Иванов». При выполнении запроса СУБД вместо того, чтобы просматривать по порядку все строки таблицы Покупатель, обращается к индексу. Поскольку в индексе значения хранятся в определенном порядке, нужно будет просмотреть данные в гораздо меньшем объеме, что значительно ускоряет выполнение запроса. Индексы можно создать для всех колонок таблицы, по которым часто производится поиск.

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

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

Изменить характеристики существующего индекса или создать новый можно в редакторе Index Editor. Для его вызова следует щелкнуть правой кнопкой мыши по таблице и выбрать во всплывающем меню пункт Index.