- •Глава 1
- •§1. Классификация баз данных.
- •Классификация баз данных по принципам обработки.
- •Классификация баз данных по используемой модели данных.
- •§1. Требования к реляционной модели данных. Основные понятия.
- •§1. Логическое проектирование баз данных.
- •Нормализация.
- •Универсальное отношение.
- •I нормальная форма.
- •II Нормальная форма.
- •III нормальная форма.
- •Нормальная форма Бойса-Кодда (нфбк).
- •Типы связей между таблицами.
- •§1. Понятие о субд (dbms).
- •§1. Общение пользователя с бд. Sql как язык реляционных баз данных.
§1. Логическое проектирование баз данных.
-
Нормализация.
Нормализация – процесс дальнейшего совершенствования реляционной модели.
Определение: нормализация – процесс приведения структур данных в состояние, обеспечивающее лучшие условия выбора, включения, изменения и удаления данных.
Главная цель нормализации – исключение избыточности данных, т.е. данные будут сохраняться только в одном месте (если не считать внешних ключей).
Отсюда следует:
-
Нормализация обеспечивает целостность данных. (данные сохраняют корректность и достоверность, т.е. представлены в единственном экземпляре, поэтому нет необходимости следить за синхронными изменениями всех копий данных).
-
Нормализация снижает требования к объему памяти.
Прежде чем приступить к описанию нормализации, нужно сказать об универсальном отношении.
Таблица, в которую включены все интересующие атрибуты, называется универсальным отношением. Т.е. вся база данных заключена в одной таблице.
Неключевое поле - каждое поле таблицы, не входящее в состав первичного ключа.
Проведем пример пошаговой нормализации для базы данных с информацией о работниках некоторого предприятия.
-
Универсальное отношение.
Сведения о сотрудниках предприятия
№ отдела |
Название отдела |
Кол-во сотрудников |
Фамилия |
Паспортные данные |
Дата начала работы |
Стаж, лет |
1 |
Сбыта |
2 |
Иванов |
40 00 25369 |
12.12.1962 |
40 |
1 |
Сбыта |
2 |
Петров |
40 01 25369 |
12.12.1982 |
20 |
2 |
Закупок |
1 |
Сидоров |
40 02 25369 |
12.12.1992 |
10 |
3 |
Рекламный |
1 |
Николаев |
40 03 25369 |
12.12.2001 |
1 |
-
I нормальная форма.
Таблица находится в I нормальной форме (Н.Ф.), если ни одно поле не содержит более одного значения и любое ключевое поле не пусто. То есть ни один элемент таблицы не является, в свою очередь, таблицей и не содержит сложных данных.
Нетрудно заметить, что данное условие автоматически следует из требований к реляционной базе данных. Таким образом, любая таблица в реляционной базе данных находится в I Н.Ф.
-
II Нормальная форма.
Таблица находится во II Н.Ф., если она находится в I Н.Ф. и каждое неключевое поле зависит от полного первичного ключа (т.е. от всех его составляющих).
В нашем примере информация о сотруднике не зависит от информации об отделе. Чтобы привести нашу БД ко II НФ разделяем универсальное отношение на 2 объекта:
Таблица отделов
№ отдела |
Название отдела |
Кол-во сотрудников |
1 |
Сбыта |
2 |
2 |
Закупок |
1 |
3 |
Рекламный |
1 |
Таблица сотрудников
№ отдела |
Фамилия |
Паспортные данные |
Дата начала работы |
Стаж, лет |
1 |
Иванов |
40 00 25369 |
12.12.1962 |
41 |
1 |
Петров |
40 01 25369 |
12.12.1982 |
21 |
2 |
Сидоров |
40 02 25369 |
12.12.1972 |
11 |
3 |
Николаев |
40 03 25369 |
12.12.2001 |
2 |