- •Введение
- •1. Концепция информационных систем
- •1.1. Информация и данные предметных областей
- •1.2. Структура банка данных
- •1.2.1. База данных
- •1.2.2. Система управления базами данных
- •1.2.3. Словарь данных
- •1.2.4. Администратор базы данных и его функции
- •1.3. Контрольные вопросы
- •2. Инфомационное моделирование предметных областей для баз данных
- •2.1. Отображение явлений реального мира данными
- •2.2. Инфологическое моделирование по
- •2.3. Трехуровневое представление информационных объектов
- •2.4. Структурные элементы для моделирования данных
- •2.5. Ключи бд
- •2.6. Интеграция полей бд в отношения
- •2.7. Требования интеграции полей в отношения
- •2.8. Обобщенная структура модели данных в бнд
- •2.9. Er-модель бд
- •2.10. Формирование связей сущностей
- •Способ 1. Определение связи сущностей введением дополнительной сущности
- •Способ 2. Определение связей сущностей добавлением в тип сущности общих атрибутов
- •2.11. Бинарные отношения сущностей
- •2.12. Формы представления структур данных
- •2.13. Организация систем бд
- •2.14. Средства поддержки бд
- •2.15. Виды моделей данных для бд
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Контрольные вопросы
- •3. Системы управления базами данных
- •3.1. Функции и состав универсальной субд
- •3.2. Лингвистическое обеспечение субд
- •3.3. Независимость прикладных программ от данных
- •3.4. Операции над данными
- •Селекция данных
- •Обработка данных
- •Запросы к бд
- •3.5. Схема реализации запроса в БнД
- •Распределенная обработка данных
- •Комбинированная обработка данных
- •3.7. Целостность и ограничения целостности данных
- •3.8. Защита данных в бд
- •Контрольные вопросы
- •4.2.2. Вторичный ключ
- •4.3. Функциональные и многозначные зависимости
- •4.3.1. Функциональные зависимости
- •X y (X влечет y).
- •4.3.2. Аксиомы функциональных зависимостей
- •Контрольные вопросы
- •5. Реляционная алгебра
- •5.1. Операции над отношениями
- •5.2. Оператор "объединение" (union)
- •5.3. Оператор "вычитание" (difference)
- •5.4. Оператор "пересечение" (intersection)
- •5.5. Оператор "проектирование" (proj)
- •5.6. Оператор "выбор" (sel)
- •Комбинированный запрос с операторами proj и sel
- •5.7 Оператор "соединение" (join)
- •Запрос с соединением по одному полю
- •Алгоритм реализации
- •Запрос с соединением по нескольким полям
- •Алгоритм реализации
- •Оператор "соединение по условию"
- •5.8. Оператор "умножение" (product)
- •Запрос с оператором умножения
- •Алгоритм реализации
- •5.9. Оператор "деление" (division)
- •5.10. Оптимизация алгоритмов реализации запросов
- •Контрольные вопросы
- •6. Нормализация реляционных бд
- •6.1. Задачи нормализации Бд
- •6.2. Первая нормальная форма
- •6.3. Декомпозиция реляционных таблиц
- •Проблема дублирования, операторы реляционной алгебры для декомпозиции и объединения таблиц
- •Присоединенные записи
- •Теорема Хита
- •Критерий полной декомпозиции с исключением дублирования
- •6.4. Вторая нормальная форма
- •6.5. Третья нормальная форма
- •6.6. Экстранормализационные формы
- •Нормальная форма Бокса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •6.7. Методические аспекты реализации нормализации
- •Контрольные вопросы
6.6. Экстранормализационные формы
Нормальная форма Бокса-Кодда
Если в отношении R нет многозначных зависимостей, но есть два или более ключей-кандидатов, то ЗНФ может создавать аномалии операций. В этом случае целесообразно применить "усиленную" ЗНФ, называемую также нормальной формой Бокса-Кодда.
Нормализованная схема отношения R находится в усиленной ЗНФ, или нормальной форме Бокса-Кодда, если каждый детерминант является ключом-кандидатом. Отметим, что в отношении R атрибут или комбинация атрибутов называется детерминантом, если от него функционально зависит какой-либо другой атрибут.
Отношение в нормальной форме Бокса-Кодда (или усиленной ЗНФ) при отсутствии в отношении многозначных зависимостей не создает аномалий операций включения, удаления и модификации.
Четвертая нормальная форма
Если в отношении R, находящемся в ЗНФ, имеются многозначные зависимости, то оно для исключения аномалий операций должно быть нормализовано до четвертой нормальной формы.
Отношение R представлено в четвертой нормальной форме (ЧНФ) тогда и только тогда, когда каждая его полная декомпозиция из двух проекций такова, что обе проекции не содержат общего ключа-кандидата.
Пятая нормальная форма
Реляционная таблица, любая полная декомпозиция которой содержит во всех проекциях ключ-кандидат, считается находящейся в пятой нормальной форме (5НФ). Кроме того, реляционная таблица, для которой невозможна ни одна полная декомпозиция, также считается находящейся в 5НФ. В общем случае замена реляционной таблицы в 5НФ на любую ее полную декомпозицию, во-первых, не устраняет дублирования и, во-вторых, не обеспечивает сохранение присоединенных записей.
С другой стороны, если реляционная таблица не в 5НФ, то возможна ее полная декомпозиция с устранение дублирования и возможностью сохранения присоединенных записей. Если составляющие полную декомпозицию проекции, в свою очередь, не являются реляционными таблицами в 5НФ, то для каждой из них можно рассмотреть возможность последующей полной декомпозиции.
Таким образом, этапы нормализации составляют процесс последовательного перехода к полным декомпозициям. Основные цели нормализации:
исключение дублирования данных;
обеспечение сохранения присоединенных записей.
6.7. Методические аспекты реализации нормализации
Проектировщик БД при решении информационных задач должен выявить в предметной области поля, выполнить их объединение реализовать процесс нормализации. Нормализация наиболее часто реализуется за три шага. Это наглядно иллюстрирует Рис. 0 .38. При
-
Ненормализо-ванная форма БД
1НФ
2НФ
3НФ
Рис. 0.38
установлении взаимозависимости данных имеется определенная свобода выбора количества и семантики типов полей в отношениях, а также состава отношений. Разработчик должен выбирать такие атрибуты и отношения, которые наиболее устойчивы к пополнениям и модификациям в БД.
Особое внимание должно быть уделено выбору ключей-кандидатов и первичного ключа из их числа. Например, нецелесообразно ключом-кандидатом назначать ФИО, так как в дальнейшем возможно появление однофамильцев. Недопустимо включение в состав ключа типов полей, значения которых в некоторых записях могут отсутствовать, так как это приведет к потере экземпляров записей и соответственно всех значений атрибутов.
Таким образом, как это отмечалось ранее, этапы нормализации составляют процесс последовательного перехода к полным декомпозициям. Основные цели нормализации обеспечиваются за счет:
исключения дублирования данных;
обеспечения сохранности присоединенных записей.