- •Оглавление
- •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.11 Корректность процедуры нормализации. Теорема Хеза
Как было показано выше, алгоритм нормализации состоит в выявлении функциональных зависимостей предметной области и соответствующей декомпозиции отношений.
При декомпозиции из одного отношения получаем два или более отношений, каждое из которых содержит часть атрибутов исходного отношения. В полученных новых отношениях необходимо удалить дубликаты строк, если таковые возникли. Это означает, что декомпозиция отношения есть не что иное, как взятие одной или нескольких проекций исходного отношения так, чтобы эти проекции в совокупности содержали (возможно, с повторениями) все атрибуты исходного отношения. Т.е., при декомпозиции не должны теряться атрибуты отношений и сами данные.
Данные можно считать не потерянными в том случае, если возможна обратная операция – по декомпозированным отношениям можно восстановить исходное отношение в точности в прежнем виде. Операцией, обратной операции проекции, является операция соединения отношений. Существует их множество видов, но т.к. при восстановлении исходного отношения путем соединения проекций не должны появиться новые атрибуты, то необходимо использовать естественное соединение.
Проекция отношения на множество атрибутов называется собственной проекцией, если множество атрибутов является собственным подмножеством множества атрибутов отношения (т.е. множество атрибутов не совпадает с множеством всех атрибутов отношения ).
Собственные проекции и отношения называются декомпозицией без потерь, если отношение точно восстанавливается из них при помощи естественного соединения для любого состояния отношения : .
Рассмотрим пример, показывающий, что декомпозиция без потерь происходит не всегда. Пусть дано отношение :
Таблица 8. – Отношение
Номер |
Фамилия |
Зарплата |
1 |
Иванов |
1000 |
2 |
Петров |
1000 |
Рассмотрим первый вариант декомпозиции отношения на два отношения:
-
Таблица 9. – Отношение
Таблица 10. – Отношение
Номер
Зарплата
1
1000
2
1000
Фамилия
Зарплата
Иванов
1000
Петров
1000
Естественное соединение этих проекций, имеющих общий атрибут "Зарплата" будет следующим (каждая строка одной проекции соединится с каждой строкой другой проекции):
Таблица 11. – Отношение
Номер |
Фамилия |
Зарплата |
1 |
Иванов |
1000 |
1 |
Петров |
1000 |
2 |
Иванов |
1000 |
2 |
Петров |
1000 |
Данная декомпозиция не является декомпозицией без потерь, т.к. исходное отношение не восстанавливается в точном виде по его проекциям (серым цветом выделены лишние кортежи).
Рассмотрим другой вариант декомпозиции:
Таблица 12. – Отношение |
Таблица 13. – Отношение |
||||||||||||
|
|
По данным проекциям, имеющие общий атрибут "Номер", исходное отношение восстанавливается в точном виде. Тем не менее, нельзя сказать, что данная декомпозиция является декомпозицией без потерь, т.к. рассмотрено только одно конкретное состояние отношения , и нельзя сказать, будет ли и в других состояниях отношение восстанавливаться точно. Например, предположим, что отношение перешло в следующее состояние:
Таблица 14. – Отношение
Номер |
Фамилия |
Зарплата |
1 |
Иванов |
1000 |
2 |
Петров |
1000 |
2 |
Сидоров |
2000 |
Кажется, что этого не может быть, т.к. значения в атрибуте "Номер" повторяются. Но ведь ничего не было сказано о ключе этого отношения! Сейчас проекции будут иметь вид:
Таблица 15. – Отношение |
Таблица 16. – Отношение |
||||||||||||||||
|
|
Естественное соединение этих проекций будет содержать лишние кортежи:
Таблица 17. – Отношение
Номер |
Фамилия |
Зарплата |
1 |
Иванов |
1000 |
2 |
Петров |
1000 |
2 |
Петров |
2000 |
2 |
Сидоров |
1000 |
2 |
Сидоров |
2000 |
Таким образом, без дополнительных ограничений на отношение нельзя говорить о декомпозиции без потерь.
Такими дополнительными ограничениями и являются функциональные зависимости. Имеет место следующая теорема Хеза:
Пусть является отношением, и − атрибуты или множества атрибутов этого отношения. Если имеется функциональная зависимость , то проекции и образуют декомпозицию без потерь.
Основной смысл теоремы Хеза заключается в доказательстве того, что не появятся новые кортежи, отсутствовавшие в исходном отношении.
Т.к. алгоритм нормализации (приведения отношений к 3NF) основан на имеющихся в отношениях функциональных зависимостях, то теорема Хеза показывает, что алгоритм нормализации является корректным, т.е. в ходе нормализации не происходит потери информации.
Нормальных форм вплоть до 3NF в большинстве случаев вполне достаточно, чтобы разрабатывать вполне работоспособные БД. Но для научного подхода к проектированию БД более сложной структуры используются нормальные формы более высоких порядков.