- •Проектирование информационных систем
- •Лабораторная работа № 8
- •Учебные вопросы:
- •Литература, техническое и программное обеспечение:
- •Вопрос 1. Уровни физической модели
- •Вопрос 2. Индексы
- •Вопрос 3. Правила валидации и значения по умолчанию
- •Вопрос 4. Денормализация отношений
- •Вопрос 5. Построение физической модели данных
Вопрос 3. Правила валидации и значения по умолчанию
ERwin поддерживает правила валидации для колонок, а также значение, присваиваемое колонкам по умолчанию.
Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. В список допустимых значений можно вносить новые значения. ERwin позволяет сгенерировать правила валидации соответственно синтаксису выбранной СУБД с учетом границ диапазона или списка значений.
Значение по умолчанию – значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию. Список значений можно редактировать.
После создания правила валидации и значения по умолчанию их можно присвоить одной или нескольким колонкам или доменами.
Создание правил валидации и значений по умолчанию будет рассмотрено ниже при построении физической модели данных.
Вопрос 4. Денормализация отношений
После нормализации все взаимосвязи данных становятся определены, исключая ошибки при оперировании данными. Но нормализация данных снижает быстродействие БД. Для более эффективной работы с данными, используя возможности конкретного сервера БД, приходится производить процесс, обратный нормализации, – денормализацию.
Для процесса денормализации не существует стандартного алгоритма, поэтому в каждом конкретном случае приходится искать свое решение (рис. 4.1). Денормализация обычно проводится на физическом уровне модели.
Рисунок 4.1 – Пример денормализации
Слева данные находятся в 3НФ. Но для получения из БД информации о сотруднике, включая его оклад, приходится обращаться к таблицам Должность и Сотрудник. Если в таблицу Сотрудник добавить колонку Оклад (справа на рисунке), то тогда при выборке информации о сотруднике достаточно обратиться к таблице Сотрудник (исключается объединение). При этом нарушается 3НФ и возникают аномалии, в том числе аномалии при обновлении (например, информации об окладе). Для решения этой проблемы можно делать выборку только из таблицы Сотрудник, а обновлять значение оклада только в таблице Должность.
ERwin имеет следующие возможности по поддержке процесса денормализации:
Сущности, атрибуты, группы ключей и домены можно создавать только на логическом уровне модели. В ERwin существует возможность выделения элементов логической модели таким образом, чтобы они не появлялись на физическом уровне.
Таблицы, столбцы, индексы и домены можно создавать только на физическом уровне. В ERwin существует возможность выделения элементов модели таким образом, чтобы они не появлялись на логическом уровне. Эта возможность напрямую поддерживает денормализацию физической модели, так как позволяет проектировщику включать таблицы, столбцы и индексы в физическую модель, ориентированную на конкретную СУБД.
Разрешение связей «многие-ко-многим». При разрешении этих связей в логической модели ERwin добавляет ассоциированные сущности и позволяет добавить в них атрибуты. При разрешении связей в логической модели автоматически разрешаются связи и в физической модели.
