Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Построение физической модели данных. Генерация схемы базы данных



Цель работы:

· освоение роли CASE-средства Erwin при нормализации и денормализации;

· построение физической модели заданной предметной области;

· генерация средствами Erwin содержимого системного каталога для заданной СУБД.

Задание:

Построить физическую модель поставки товаров в соответствии с договорами средствами Erwin. Сгенерировать схему базы данных для СУБД Access.

 

Теоретические сведения

 

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

Существуют следующие виды действий или правил, определяемых в логической модели:

ü RESTRICT – запрет удаления, вставки или изменения экземпляра сущности.

ü CASCADE – при удалении экземпляра родительской сущности удаление всех экземпляров дочерней сущности, ссылающихся на удаляемый родительский экземпляр.

ü SET NULL – при удалении экземпляра родительской сущности атрибутам внешнего ключа всех экземпляров дочерней сущности присваивается значение NULL.

ü SET DEFAULT – то же самое, что и в предыдущем случае, только вместо значения NULL присваивается значение по умолчанию.

ü NONE – никаких действий не предпринимается.

Эти правила задаются на вставку, удаление и изменение экземпляра как родительской, так и дочерней сущности. Таким образом, каждая связь должна обладать набором из шести правил, которые вводятся в поля, объединенные общим заголовком «RI Actions». При добавлении связи в диаграмму Erwin по умолчанию устанавливает для нее набор правил, которые можно редактировать.

Завершающим этапом подготовки логической модели является проведение нормализации данных. Erwin не содержит полного алгоритма нормализации и не может проводить нормализацию автоматически, однако его возможности облегчают создание нормализованной модели данных:

ü Erwin отмечает повторное использование имени сущности и атрибута;

ü запрещает присвоение неуникальных имен атрибутов внутри одной модели (при соответствующей установке опции Unique Name), соблюдая правило «в одном месте – один факт».

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

ü Сущности, атрибуты, ключи и домены можно создавать только на уровне логической модели, включив в соответствующих редакторах опцию Logical Only. Такие объекты не будут отображаться на уровне физической модели и не будут создаваться при генерации базы данных.

ü Таблицы, колонки, домены и индексы можно создавать только на уровне физической модели (опция Physical Only ).

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

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

 

Последовательность выполнения работы

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

· Находясь на логическом уровне модели данных, выделите связь «заключает» между сущностями Покупатель и Договор, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Relationship Properties (редактор связей).

· В окне редактора связей Relationship перейдите на вкладку RI Actions. Ознакомьтесь с правилами ссылочной целостности для связи «Покупатель – Договор», присвоенными по умолчанию. Данные установки запрещают вставку и изменение экземпляра дочерней сущности, а также удаление и изменение родительской сущности. Это означает, что не допускается удаление или изменение покупателя, если в базе данных имеются заключенные с ним договоры, а также ввод договора без указания покупателя или со ссылкой на несуществующего покупателя. Тем самым мы выполнили условие, по которому договор может существовать только для конкретного покупателя.

· Проанализируйте установленные правила ссылочной целостности для всех остальных связей.

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

 

 

Нормализация данных

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

· Создайте сущность Телефон, содержащую следующие атрибуты: КОД_ТЕЛ (первичный ключ, тип – number) и ТЕЛ (тип – string).

· Свяжите сущности Покупатель и Телефон идентифицирующей связью. Установите мощность связи – One or More (P) и введите имя связи – имеет.

Переход к физическому уровню модели

· В раскрывающемся списке, расположенном в правой части панели инструментов, выберите пункт Physical.

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

Выбор сервера

· Выполните команду Database | Choose Database.

· В диалоговом окне Erwin/ERX – Target Server необходимо задать тип сервера – Access и его версию – 2000. Кроме того, здесь указывается используемый по умолчанию тип данных и условие NULL для вновь созданных колонок. Некоторые опции данного диалогового окна зависят от выбранного типа сервера.

· После выбора сервера нажмите кнопку ОК.

Денормализация данных

На модели имеются две связи типа «многие-ко-многим»: Товар – Договор и Товар – Накладная, которые должны быть разрешены на физическом уровне. Результат разрешения данных связей представлен в табл. 2.1.

 

 

Таблица 2.1.

Результат разрешения связей «многие-ко-многим»

Связь многие-ко многим Имя ассоциативной таблицы Новые колонки ассоциативной таблицы Тип данных
Товар-Договор Поставка_План СРОК_ПОСТ Datetime
КОЛ_ПОСТ Number
СУММА_ПОСТ Number
 
Товар-Накладная Отгрузка КОЛ_ОТГР Number
СУММА_ОТГР Number

 

Разрешение связей «многие-ко-многим» осуществляется автоматически при переходе на физический уровень, либо с помощью специального мастера Many Relationship Transform Wizard.

· Для вызова данного мастера выделите связь «Товар – Договор», щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Create Association Table (создать ассоциативную таблицу). На экране появится первый диалог мастера, содержащий текст о его назначении.

· Нажмите кнопку Далее. На экране появится второй диалог мастера, в котором задается им ассоциативной таблицы.

· Введите в поле Table Name (имя таблицы) – Поставка_План. В поле Table Comment (комментарии к таблице) введите текст: Сведения о поставках товара по договору.

· Нажмите кнопку Далее. На экране появится следующий диалог мастера, в котором указывается Transform Name (имя преобразования) и Transform Definition (определение преобразования).

· Нажмите кнопку Далее и затем Готово.

· На модели появилась новая таблица Поставка_План, связанная идентифицирующей связью с таблицами Товар и Договор.

· Новую таблицу необходимо дополнить тремя колонками (см. табл. 2.1). Для этого выделите таблицу Поставка_План, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Columns ( редактор колонок). Работа с данным редактором аналогична работе с редактором атрибутов.

· Самостоятельно введите три новых колонки в соответствии с табл. 2.1.

· Рассмотренным выше способом (с использованием мастера) преобразуйте связь «Товар – Накладная» и дополните полученную ассоциативную таблицу Отгрузка двумя колонками согласно табл. 2.1.


Поделиться:



Последнее изменение этой страницы: 2017-04-13; Просмотров: 542; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.023 с.)
Главная | Случайная страница | Обратная связь