Глава 4. Проектирование реляционных баз данных
4.1. Уточнение целей проектирования БД
Цели, стоящие перед проектировщиком БД:
1. Возможность хранения всех необходимых данных в БД.
2. Исключение избыточности данных.
3. Сведение числа хранимых в БД отношений к минимуму.
4. Нормализация отношений для упрощения решения проблем, связанных с обновлением, удалением и включением данных.
Рассмотрим эти цели более детально.
1-я цель – очевидна, предполагается, что БД должна содержать все данные, представляющие интерес для предприятия (пользователя).
2-я цель – следует четко различать дублирование данных и избыточное дублирование данных. Например, дано отношение с двумя атрибутами (рис. 4.1).
1. СТУДЕНТ
ФИО |
ГРУППА |
Иванов |
111 |
Петров |
222 |
Сидоров |
111 |
Макаров |
222 |
2. СТУДЕНТ
ФИО |
ГРУППА |
Иванов |
111 |
Петров |
222 |
Сидоров |
– |
Макаров |
– |
Рис. 4.1. Дублирование данных, не являющихся избыточными
Видно дублирование данных в столбце ГРУППА. Однако нет избыточности, т.к. удаление повторяющихся значений влечет потерю информации о номере группы, в которой учатся студенты Сидоров и Макаров.
1. СТУДЕНТ
ФИО |
ГРУППА |
КУРАТОР |
Иванов |
111 |
Котов |
Петров |
222 |
Собакин |
Сидоров |
111 |
Котов |
Макаров |
222 |
Собакин |
2. СТУДЕНТ
ФИО |
ГРУППА |
КУРАТОР |
Иванов |
111 |
Котов |
Петров |
222 |
Собакин |
Сидоров |
111 |
– |
Макаров |
222 |
– |
Рис. 4.2. Пример избыточных данных
В приведенном выше (рис. 4.2) отношении 1 имеется избыточность данных. В отношении 2 эта избыточность ликвидирована, т.к. отсутствующую информации в кортежах 3 и 4 можно восстановить из кортежей 1 и 2. Однако при таком способе возможна потеря информации после удаления кортежей 1 или 2, для извлечения информации требуются дополнительные усилия и т.д.
3-я цель – обусловлена тем, что разбиение одного отношения на два и более меньших отношений желательно с точки зрения исключения определенных проблем, но это неудобно для пользователя. Нельзя допускать неограниченный рост числа отношений.
4-я цель – сводится к нормализации отношений. Нормализация представляет собой разбиение одного отношения на два или более в соответствии со специальной процедурой определения разбиения.
3-я и 4-я цели являются противоречивыми, поэтому требуется найти взаимный компромисс, что и достигается на завершающих стадиях этапа инфологического проектирования.