
- •Т.Е.Ильиных л.И.Шустова проектирование реляционных баз данных в нотациях idef1x
- •Содержание
- •Этапы проектирования базы данных
- •Инфологическое проектирование базы данных
- •Общие сведения
- •Описание бизнес компонентов и бизнес процессов
- •Сущность
- •Атрибут
- •Другие компоненты инфологической модели
- •Уровни представления данных
- •Этапы инфологического проектирования Инициирование проекта (фаза 0)
- •Определение сущностей (фаза 1)
- •Построение модели уровня сущностей (фаза 2)
- •Построение модели уровня ключей (фаза 3)
- •Построение полноатрибутной модели (фаза 4)
- •Нормализация данных
- •Даталогическое проектирование базы данных
- •Создание даталогической модели Общие сведения
- •Получение спецификаций внутренней схемы базы данных
- •Ограничения целостности
- •Результаты этапа даталогического проектирования
- •Имя таблицы
- •Основы нормализации отношений Общие сведения
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса – Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Денормализация
- •Примеры проектирования баз данных различных бизнес приложений
- •Общие замечания
- •Проектирование базы данных "Школа" Постановка задачи
- •Инициирование проекта (фаза 0)
- •Определение множеств сущностей (фаза 1) Выделение множеств сущностей
- •Описание множеств сущностей
- •Пул сущностей
- •Построение модели уровня сущностей (фаза 2)
- •Концептуальная схема уровня сущностей
- •Построение модели уровня ключей (фаза 3) Разрешение неопределенных связей
- •Пул сущностей
- •Определение связей
- •Определение ключевых атрибутов и доменов
- •Изучаемый предмет/e5
- •Описание доменов
- •Описание атрибутов
- •Концептуальная схема
- •Построение полноатрибутной модели (фаза 4)
- •Описание доменов
- •Описание атрибутов
- •Явные ограничения целостности
- •Даталогическая модель
- •Проектирование базы данных "Обмен валюты" Постановка задачи
- •Инициирование проекта (фаза 0)
- •Определение множеств сущностей (фаза 1) Выделение множеств сущностей
- •Описание множеств сущностей
- •Пул сущностей
- •Фаза 2. Построение модели уровня сущностей Матрица связей
- •Матрица связей
- •Описание связей
- •Описание связей
- •Концептуальная схема уровня сущностей
- •Построение модели уровня ключей (фаза 3) Разрешение неопределенных связей
- •Пул сущностей
- •Определение связей
- •Определение ключевых атрибутов и доменов
- •Описание доменов
- •Описание атрибутов
- •Концептуальная схема
- •Построение полноатрибутной модели (фаза 4)
- •Описание доменов
- •Описание атрибутов
- •Явные ограничения целостности
- •Даталогическая модель
- •Проектирование базы данных "Торговля" Постановка задачи
- •Инициирование проекта (фаза 0)
- •Определение множеств сущностей (фаза 1) Выделение множеств сущностей
- •Описание множеств сущностей
- •Пул сущностей
- •Построение модели уровня сущностей (фаза 2)
- •Концептуальная схема уровня сущностей
- •Построение модели уровня ключей (фаза 3) Разрешение неопределенных связей
- •Пул сущностей
- •Описание связей
- •Определение ключевых атрибутов и доменов
- •Товар в списке цен/e5
- •Описание доменов
- •Описание атрибутов
- •Концептуальная схема
- •Построение полноатрибутной модели (фаза 4)
- •Описание доменов
- •Описание атрибутов
- •Явные ограничения целостности
- •Даталогическая модель
- •Список литературы
- •115409, Москва, Каширское ш., 31
Денормализация
В результате нормализации правильно определяются все взаимосвязи данных, исключаются аномалии при операции с данными, нормализованную модель данных легче поддерживать. Однако часто нормализация не ведет к повышению производительности информационной системы в целом. Дело в том, что при поиске данных зачастую требуется организовать обращение сразу к нескольким взаимосвязанным отношениям. Причем время выполнения такого запроса может во много раз превышать время выполнения запроса к одному (пусть и ненормализованному) отношению. Поэтому в целях повышения производительности иногда сознательно отказываются от достижения некоторого нормального уровня или даже производят денормализацию (объединение) некоторых ранее нормализованных отношений. В отличие от процесса нормализации денормализация не может быть представлена в виде четко сформулированных правил. В каждом конкретном случае необходимо искать конкретные решения, учитывая специфику информационной системы и предметной области.
Примеры проектирования баз данных различных бизнес приложений
Общие замечания
Ниже приводятся примеры проектирования баз данных. В изложении примеров используются следующие допущения:
Приводимые разработки не претендуют на полноту отображения соответствующей предметной области и включают в себя только те аспекты, которые с необходимостью присутствуют в реальных ситуациях.
В примерах реализованы этапы только инфологического и даталогического проектирования.
Разработка информационных моделей осуществляется в соответствии с методологией IDEF1X.
В описании связей для определенных связей указывается мощность только для одного конца связи (ассоциированного с дочерней сущностью), для неопределенных – для обоих концов; при этом первой указывается мощность связи, соответствующей отображению первого множества сущностей на второе.
Для обозначения мощности связи, определенной как «нуль, один или более» и не требующей специальных пометок на диаграмме, в таблицах использован символ B.
При описании атрибутов сначала должны быть определены атрибуты родительских множеств сущностей, затем дочерних.
При описании ограничений целостности указываются только явные ограничения; не приводятся внутренние ограничения, присущие моделям сущность – связь.
В результате проектирования в точном соответствии методологии IDEF1X получаемые схемы отношений удовлетворяют 4НФ; дополнительная нормализация отношений на этапе даталогического проектирования в примерах не рассматривается.
В примерах приводится описание внутренней схемы БД средствами языка описания данных, в качестве которого в реляционных СУБД используется подмножество языка SQL. Подробное описание языка можно найти в документации используемых на практике СУБД, а также в [1, 16]. В примерах приводятся фрагменты определения БД: предложения CREATE TABLE (создать таблицу) и ALTER TABLE (изменить таблицу).
В примерах приводятся предложения SQL, соответствующие стандарту SQL/92. Особенности языка, специфические для каждой конкретной СУБД (например, задание альтернативных ключей, построение уникальных индексов), в примерах не рассматриваются.
Реализация явных ограничений целостности, представленных в инфологических моделях, требует создания триггеров и написания процедур на языке разработки приложений. Данные возможности реализуются по-разному в каждой конкретной СУБД, поэтому здесь не рассматриваются.