- •Оглавление
- •1. Введение. Представление данных в памяти компьютера 3
- •2. Модели представления данных 43
- •3. Проектирование реляционных бд 83
- •4 Реляционная алгебра 114
- •5. Case – технологии 127
- •6. Организация доступа прикладной программы 178
- •1. Введение. Представление данных в памяти компьютера
- •1.1 Предмет дисциплины и ее задачи
- •1.2 Основные понятия
- •1.3 Файловые системы, как первый шаг к субд
- •1.4 Структурная схема субд и основные функции
- •1.5 Преимущества и недостатки субд по сравнению с файловыми системами
- •1.6 Организация внешней памяти реляционной субд
- •1.7 Типы и структуры данных
- •1.8 Типы и структуры данных, применяемые в реляционных бд
- •1.9 Типы и структуры данных, применяемые в объектно-реляционных бд
- •1.10 Понятие модели данных
- •2. Модели представления данных
- •2.1 Иерархическая модель данных
- •2.2 Сетевая модель данных
- •2.3 Реляционная модель данных
- •2.4 Свойства отношений. Отличие отношений от таблиц.
- •2.5 Понятие целостности данных
- •2.6 Ограничения реляционных баз данных
- •2.7 Суть постреляционного объектно-ориентированного подхода
- •2.8 Объектно-ориентированные субд и стандарт odmg
- •2.9 Объектно-реляционные субд
- •2.10 No sql бд и субд
- •1. NoSql базы в-основном оупенсорсные и созданы в 21 столетии.
- •6. Распределенные системы
- •3. Проектирование реляционных бд
- •3.1 Этапы разработки базы данных
- •3.2 Критерии оценки качества логической модели данных
- •3.3 Проектирование баз данных на основе нормализации отношений
- •3.4 Первая нормальная форма
- •3.5 Аномалии обновления
- •3.6 Функциональные зависимости
- •3.7 Вторая нормальная форма
- •3.8 Третья нормальная форма
- •3.9 Алгоритм нормализации (приведение к 3nf)
- •3.10 Oltp и olap-системы
- •3.11 Корректность процедуры нормализации. Теорема Хеза
- •3.12 Нормальная Форма Бойса-Кодда (nfbk)
- •3.13 Четвертая Нормальная Форма
- •3.14 Пятая Нормальная Форма
- •3.15 Продолжение алгоритма нормализации (приведение к 5 nf)
- •4 Реляционная алгебра
- •4.1 Операции над отношениями: общие сведения
- •4.2 Синтаксис операторов реляционной алгебры
- •4.3 Оптимизация алгоритмов реализации запросов
- •5. Case – технологии
- •5.1 Общие вопросы проектирования ис, понятие case-технологии
- •5.2 Жизненный цикл по ис
- •5.3 Модели жизненного цикла по
- •5.4 Методология rad
- •5.5 Структурный подход к проектированию ис
- •5.6 Методология функционального моделирования sadt (idef0)
- •5.7 Моделирование потоков данных (методология Гейна-Сарсона)
- •5.8 Методы построения диаграмм «сущность-связь» (erd)
- •5.9 Моделирование данных case-методом Баркера
- •5.10 Методология idef1
- •6. Организация доступа прикладной программы к серверу базы данных
- •6.1 Общие сведения
- •6.2 Использование специализированных библиотек и встраиваемого sql
- •6.4 Odbc – открытый интерфейс к бд на платформе ms Windows
- •6.5 Jdbc - интерфейс к базам данных на платформе Java
- •6.6 Прикладные интерфейсы ole db и ado
- •Литература
3.14 Пятая Нормальная Форма
Функциональные и многозначные зависимости позволяют произвести декомпозицию исходного отношения без потерь на две проекции. Можно, однако, привести примеры отношений, которые нельзя декомпозировать без потерь ни на какие две проекции.
Рассмотрим следующее отношение :
Таблица 30 – Отношение
X |
Y |
Z |
1 |
1 |
2 |
1 |
2 |
1 |
2 |
1 |
1 |
1 |
1 |
1 |
Все проекции отношения , включающие по два атрибута, имеют вид R1=R[X,Y], R2=R[X,Z], R3=R[Y,Z] и приведены в таблице 31-33.
Таблица 31.Проекция R1 Таблица 32. Проекция R2 Таблица 33. Проекция R3
|
|
|
||||||||||||||||||||||||
|
|
|
Можно заметить, что отношение не восстанавливается ни по одному из попарных соединений , или . Действительно, соединение имеет вид:
Таблица 34 – Отношение
X |
Y |
Z |
1 |
1 |
2 |
1 |
1 |
1 |
1 |
2 |
2 |
1 |
2 |
1 |
2 |
1 |
1 |
Серым цветом выделен лишний кортеж, отсутствующий в отношении . Аналогично (в силу соображений симметрии) и другие попарные соединения не восстанавливают отношения .
Однако отношение восстанавливается соединением всех трех проекций:
.
Это говорит о том, что между атрибутами этого отношения также имеется некоторая зависимость, но эта зависимость не является ни функциональной, ни многозначной зависимостью.
Пусть является отношением, а , , …, − произвольными (возможно пересекающимися) подмножествами множества атрибутов отношения . Тогда отношение удовлетворяет зависимости соединения тогда и только тогда, когда оно равносильно соединению всех своих проекций с подмножествами атрибутов , ,…, , т.е. .
Можно предположить, что отношение в рассматриваемом примере удовлетворяет следующей зависимости соединения:
Утверждать, что это именно так сразу нельзя, т.к. определение зависимости соединения должно выполняться для любого состояния отношения , а не только для состояния, приведенного в примере.
Зависимость соединения является обобщением понятия многозначной зависимости и теорема Фейджина для зависимости соединения может быть переформулирована следующим образом:
Отношение удовлетворяет зависимости соединения тогда и только тогда, когда имеется многозначная зависимость .
Это значит, что многозначная зависимость является частным случаем зависимости соединения, т.е., если в отношении имеется многозначная зависимость, то имеется и зависимость соединения. Обратное, конечно, неверно.
Зависимость соединения называется нетривиальной зависимостью соединения, если выполняется два условия:
Одно из множеств атрибутов не содержит потенциального ключа отношения .
Ни одно из множеств атрибутов не совпадает со всем множеством атрибутов отношения .
Для удобства работы сформулируем это определение так же и в отрицательной форме:
Зависимость соединения называется тривиальной зависимостью соединения, если выполняется одно из условий:
Либо все множества атрибутов содержат потенциальный ключ отношения .
Либо одно из множеств атрибутов совпадает со всем множеством атрибутов отношения .
Отношение находится в пятой нормальной форме (5NF) тогда и только тогда, когда любая имеющаяся зависимость соединения является тривиальной.
Определения 5NF может стать более понятным, если сформулировать его в отрицательной форме:
Отношение не находится в 5NF, если в отношении найдется нетривиальная зависимость соединения.
Таким образом, в приведенном примере не зная ничего о том, какие потенциальные ключи имеются в отношении и как взаимосвязаны атрибуты, нельзя делать выводы о том, находится ли данное отношение в 5NF (как, впрочем, и в других нормальных формах).