- •1. Понятие базы данных и банка данных.
- •1.1 Основные определения.
- •1.2 Составляющие банка данных.
- •1.3 Цели использования банков данных.
- •1.4 Трехуровневая архитектура базы данных.
- •1.5 Основные функции субд.
- •1.5.1 Управление данными во внешней памяти.
- •1.5.2 Управление оперативной памятью.
- •1.5.3 Управление транзакциями
- •1.5.4 Журнализация
- •1.5.5. Поддержка языков бд
- •2. Модели данных.
- •2.1 Ранние модели данных.
- •2.1.1 Иерархическая модель данных.
- •2.1.2 Сетевая модель данных.
- •2.2 Реляционная модель данных.
- •2.4 Объектная модель данных.
- •2.5 Нереляционные субд.
- •3. Реляционная модель данных.
- •3.1 Структура и основные понятия реляционной модели данных.
- •3.2 Правила Кодда для реляционных субд.
- •3.3 Реляционная алгебра и реляционное исчисление.
- •3.3.1 Реляционная алгебра.
- •3.3.2 Реляционное исчисление.
- •4. Проектирование баз данных.
- •4.1 Проектирование при помощи нормализации.
- •4.1.1 Первая нормальная форма.
- •4.1.2 Вторая нормальная форма.
- •4.1.3 Третья нормальная форма и нормальная форма Бойса-Кодда.
- •4.1.4 Четвертая нормальная форма.
- •4.1.5 Пятая нормальная форма.
- •4.2 Модель «сущность-связь».
- •4.2.1 Появление и развитие метода. Современное состояние.
- •4.2.2 Метод Баркера.
- •4.2.3 Метод idef1x.
- •4.2.4 Получение схемы базы данных из модели «сущность-связь».
- •4.3 Денормализация базы данных.
- •5. Язык sql.
- •5.1 Появление и развитие языка.
- •5.2 Современная структура языка.
- •5.3 Язык определения данных.
- •5.4 Язык манипулирования данными.
- •5.4.1 Запросы insert, update, delete.
- •5.4.2 Запрос select.
- •6. Управление транзакциями.
- •6.1 Понятие транзакции. Основные свойства транзакций.
- •7.2 Восстановление.
- •6.3 Параллельность.
- •6.3.1 Проблемы параллельных транзакций и уровни изолированности.
- •6.3.2 Блокировки данных.
- •6.4 Поддержка транзакции в языке sql и библиотеках ado.Net.
- •Рекомендуемая литература
4.1.4 Четвертая нормальная форма.
Отношение находится в четвёртой нормальной форме (4НФ), если оно находится в НФБК и все нетривиальные многозначные зависимости фактически являются функциональными зависимостями от её потенциальных ключей.
Поясним понятие многозначной зависимости. Формальное определение выглядит следующим образом:
Пусть R - переменная отношения, а А, B и C являются произвольными подмножествами множества атрибутов переменной отношения R. Тогда подмножество в многозначно зависит от подмножества А, что символически выражается следующей записью
А →→ В
(читается как «А многозначно определяет B» или «А двойная стрелка B»), тогда и только тогда, когда в каждом допустимом значении R множество значений B, соответствующее заданной паре значений А, C, зависит только от значения А и не зависит от значения C.
Для иллюстрации многозначной зависимости воспользуемся следующим примером из [1]. Предположим, что у нас имеется перечень учебных дисциплин, а также преподавателей, которые могут их вести, и учебников, которые могут использоваться в процессе изучения дисциплины. Отношение имеет следующий вид:
Дисциплина |
Преподаватель |
Учебник |
Математика |
Иванов С. В. |
«Линейная алгебра и аналитическая геометрия» |
Математика |
Иванов С. В. |
«Теория вероятностей и математическая статистика» |
Математика |
Петров А. Н. |
«Линейная алгебра и аналитическая геометрия» |
Математика |
Петров А. Н. |
«Теория вероятностей и математическая статистика» |
В приведенном отношении все атрибуты входят в состав первичного ключа, так что оно находится в НФБК. В то же время, очевидно, что перечень преподавателей и список используемых учебников зависят только от дисциплины, но не друг от друга. Также очевидно, что в отношении имеется избыточность – если появится новый преподаватель математики, то нам придется добавить две записи – по числу имеющихся учебников.
Чтобы преобразовать отношение в 4НФ, необходимо разделить его на два – ПреподавателиДисциплины (Дисциплина, Преподаватель) и ЛитератураПоДисциплине (Дисциплина, Учебник). После этого мы сможем независимо вести списки преподавателей и рекомендуемой литературы.
4.1.5 Пятая нормальная форма.
Отношение находится в пятой нормальной форме (5НФ), или, иначе, в проекционно-соединительной нормальной форме, тогда и только тогда, когда каждая нетривиальная зависимость соединения определяется потенциальным ключом (ключами) этого отношения.
Под зависимостью соединения понимается следующее: пусть имеется переменная отношения R, а {A, B, C, …, Z} – подмножества атрибутов этого отношения. Тогда переменная R удовлетворяет зависимости соединения, если любое допустимое значение переменной отношения R эквивалентно соединению ее проекций по подмножествам A, B, C, …, Z множества ее атрибутов.
При этом существенно, что эта зависимость должна удовлетворяться в любой момент времени, для любого значения атрибутов, то есть, для любого отношения, являющегося значением переменной отношения R.
Тривиальная зависимость соединения – это такая зависимость соединения, в которой одно из подмножеств атрибутов A, B, C, …, Z включает в себя все атрибуты исходного отношения.
Зависимость соединения является более общим случаем многозначной зависимости, в то время, как многозначная зависимость является более общим случаем функциональной зависимости. Таким образом, можно сказать, что 5НФ – это наивысшая нормальная форма.
Существует также шестая нормальная форма (6НФ), но она определена для так называемых темпоральных баз данных, которые в настоящем курсе не рассматриваются, соответственно, обсуждение этой нормальной формы также излишне.
