- •Белорусский государственный университет модели данных и субд Учебное пособие
- •Введение
- •Раздел 5 посвящен семантическим или инфологическим моделям, используемым в современных программных системах поддержки проектирования, называемых case-системами (Computer Aided Software Engineering).
- •Раздел 10 посвящен вопросам распределенной обработки данных, здесь рассматриваются проектирование распределенных систем обработки данных, уделяется большое внимание фрагментации данных.
- •1. Основные понятия и определения теории баз данных.
- •1.1. Причины возникновения систем баз данных.
- •1.3. Системы управления базами данных.
- •2. Классификация моделей данных.
- •2.1. Моделирование данных.
- •2.2. Иерархическая модель.
- •2.3. Сетевая модель.
- •2.4. Реляционная модель.
- •2.5. Объектно-ориентированная модель.
- •2.6. Объектно-реляционная модель.
- •2.7. Многомерная модель.
- •3. Реляционная алгебра и реляционное исчисление.
- •3.1. Реляционная алгебра.
- •3.2. Реляционное исчисление.
- •4. Проектирование реляционных баз данных на основе нормализации.
- •4.1. Нормализация отношений, цели нормализации.
- •4.2. Структура функциональных зависимостей.
- •4.2.1. Функциональные зависимости и их свойства.
- •4.2.2. Ключи схем отношений.
- •4.2.3. Полные и неполные функциональные зависимости.
- •4.2.4. Покрытие множеств зависимостей.
- •4.2.5. Декомпозиция схем отношений.
- •4.2.6. Декомпозиции, сохраняющие зависимости.
- •4.3 Нормальные формы отношений.
- •4.3.1. Первая и вторая нормальные формы схем отношений.
- •4.3.2. Третья нормальная форма схем отношений.
- •4.3.4. Четвертая нормальная форма схем отношений.
- •4.3.5. Пятая нормальная форма схем отношений.
- •5. Семантическое моделирование
- •5.1. Цели и средства семантического моделирования.
- •5.2. Метод “сущность-связь”.
- •5.3. Этапы моделирования.
- •5.4. Правила формирования отношений.
- •Формирование отношений для связи 1:1.
- •Формирование отношений для связи 1:м.
- •6. Структура субд и основные функции.
- •6.1. Типовая организация современной субд.
- •6.2. Поддержка языков бд.
- •6.3. Управление данными во внешней памяти.
- •6.4. Управление буферами оперативной памяти.
- •6.5. Управление транзакциями.
- •6.6. Журнализация и восстановление после сбоев.
- •7. Управление транзакциями.
- •7.1. Свойства транзакций. Проблемы параллельного выполнения.
- •7.2. Консервативные методы управления транзакциями.
- •7.2.1. Метод блокировки.
- •7.2.2. Метод временных отметок.
- •7.3. Оптимистические методы управления транзакциями.
- •7.4. Уровень детализации блокируемых элементов данных.
- •8. Восстановление базы данных после сбоев.
- •8.1. Основные принципы и функции восстановления.
- •8.3. Создание контрольных точек.
- •8.4. Методы восстановления.
- •9. Защита баз данных.
- •9.1. Основные понятия.
- •9.2. Компьютерные средства защиты.
- •9.3. Некомпьютерные средства защиты.
- •10. Распределенные базы данных
- •10.1. Основные концепции.
- •10.2. Функции распределенных субд.
- •10.3. Разработка распределенных реляционных баз данных.
- •10.4. Распределение данных.
- •10.5. Фрагментация.
- •10. 6. Обеспечение прозрачности в рсубд.
- •11. Введение в субд oracle.
- •11.1. Характеристика субд Oracle.
- •11.2. Объекты базы данных Oracle.
- •11.4. Архитектура базы данных Oracle.
- •11.5. Архитектура экземпляра базы данных Oracle.
- •11.6. Формирование базы данных и экземпляра Oracle.
- •12. Основы языка sql.
- •12.1. Алфавит и лексемы языка sql.
- •12.2. Типы данных языка sql.
- •12.3. Операторы языка sql.
- •12.4. Операции языка sql.
- •12.5. Функции языка sql.
- •12.6. Создание, модификация и удаление таблиц.
- •12.7. Выбор информации из базы данных.
- •13. Основы языка pl/sql.
- •13.1. Алфавит и лексемы языка.
- •13.3. Типы данных и объявление переменных.
- •13.4. Операторы.
- •13.5. Курсоры.
- •13.6. Обработка исключительных ситуаций.
- •13.7. Триггеры базы данных.
- •13.8. Хранимые процедуры и функции.
- •13.9. Пакеты.
- •13.10. Объекты.
- •Литература
4.3.4. Четвертая нормальная форма схем отношений.
На практике проектирование реляционной базы данных завершается после нахождения третьей или усиленной третьей нормальной формы исходной схемы отношения. Однако даже усиленная третья нормальная форма не всегда избавляет от избыточности данных. Связано это с существованием так называемых многозначных зависимостей. Простейшая ситуация появления многозначных зависимостей возникает при приведении исходного отношения к первой нормальной форме.
Рассмотрим следующий пример.
ФИО_преподавателя |
Группа |
Вид нагрузки |
Иванов И.И. |
1 |
Лекции |
Иванов И.И. |
1 |
Практика |
Иванов И.И. |
1 |
Лабораторные |
Иванов И.И. |
2 |
Лекции |
Иванов И.И. |
2 |
Практика |
Иванов И.И. |
2 |
Лабораторные |
Сидоров С.С. |
1 |
Практика |
Сидоров С.С. |
1 |
Лабораторные |
Сидоров С.С. |
2 |
Практика |
Сидоров С.С. |
2 |
Лабораторные |
Предположим, что преподаватели некоторой кафедры должны вести занятия в каждой группе студентов, специализирующихся по данной кафедре. Кроме этого существует требование обязательного включения в общую нагрузку преподавателя определенных видов нагрузки (лекции, практические, лабораторные занятия). Поскольку между номерами групп и видами нагрузки нет никакой прямой связи, то в отношении, содержащем атрибуты ФИО_преподавателя, Группа, Вид_нагрузки, каждый кортеж должен содержать комбинации групп и видов нагрузки. Данное отношение находится в усиленной третьей нормальной форме, так как имеется только один ключ, включающий все три атрибута. Тем не менее, имеется явная избыточность данных из-за повторения для каждого преподавателя комбинации группы и вида нагрузки. Связано это с тем, что в отношении между атрибутами существуют две независимые связи типа один ко многим: ФИО_преподавателя : Группа, ФИО_преподавателя : Вид_нагрузки. При этом верно следующее ограничение: если кортежи (A, B, C) и (A, D, E) присутствуют одновременно, то кортежи (A, B, E) и (A, D, C) также присутствуют в отношении.
Ситуацию можно улучшить, если выполнить декомпозицию на две подсхемы (ФИО преподавателя, Группа) и (ФИО преподавателя, Вид нагрузки)
ФИО преподавателя |
Группа |
|
ФИО преподавателя |
Вид нагрузки |
Иванов И.И. |
1 |
|
Иванов И.И. |
Лекции |
Иванов И.И. |
2 |
|
Иванов И.И. |
Практика |
Сидоров С.С. |
1 |
|
Иванов И.И. |
Лабораторные |
Сидоров С.С. |
2 |
|
Сидоров С.С. |
Практика |
|
|
|
Сидоров С.С. |
Лабораторные |
Введем понятие многозначной зависимости.
Пусть R схема отношений с атрибутами U={A1, …, An} и подмножествами X, Y, ZU. Подмножество Y многозначно зависит от X, обозначаем XY/Z, тогда и только тогда, когда в каждом отношении со схемой R множество значений Y, соответствующее заданной паре значений (X, Z), зависит от X, но не зависит от Z.
Нетрудно показать, что для данной схемы R(A, B, C) многозначная зависимость A>>B/C выполняется тогда и только тогда, когда выполняется многозначная зависимость A>>C/B. То есть многозначные зависимости всегда образуют связные пары.
Многозначные зависимости являются обобщениями функциональных зависимостей в том смысле, что всякая функциональная зависимость является многозначной. Точнее говоря, функциональная зависимость A>B – это многозначная зависимость A>>B/(U\(AB)), в которой множество зависимых значений B, соответствующее значению A, является одноэлементным множеством.
Теорема Фейгина. Пусть R схема отношений с множеством атрибутов U=ABC. Декомпозиция =(R1, R2), где R1=(A, B), R2=(A, C) обладает свойством соединения без потерь тогда и только тогда, когда выполняется многозначная зависимость A>>B/C.
Теорема Фейгана является более строгой версией теоремы Хита.
Дадим теперь определение четвертой нормальной формы (4НФ).
Четвертая нормальная форма схемы отношения это либо данная схема, если она находится в УТНФ и все ее многозначные зависимости представляют собой функциональные зависимости от ключей, либо декомпозиция исходной схемы, каждая подсхема которой удовлетворяет этим же требованиям, а сама декомпозиция обладает свойством соединения без потерь.
Четвертая нормальная форма существует для любой схемы отношения.
