- •4. Реляционная даталогическая модель
- •4.1. Основные понятия
- •4.2. Цели проектирования рбд
- •4.2.1. Возможность хранения всех необходимых данных в бд
- •4.2.2. Исключение избыточности данных
- •4.2.3. Сведение числа хранимых в бд отношений к минимуму
- •4.2.4. Нормализация отношений
- •Вопросы для самоконтроля
4.2. Цели проектирования рбд
Среди множества целей проектирования наиболее важными являются: 1) возможность хранения всех необходимых данных в БД; 2) исключение избыточности данных; 3) сведение числа хранимых в БД отношений к минимуму; 4) нормализация отношений для упрощения решения проблем, связанных с обновлением, вставкой и удалением данных.
Рассмотрим каждую из целей отдельно.
4.2.1. Возможность хранения всех необходимых данных в бд
БД должна содержать все данные, представляющие интерес для решаемой задачи. Первым шагом в процессе проектирования является определение всех атрибутов, которые впоследствии будут помещены в БД. После определения атрибутов проектировщик решает, сколько отношений необходимо и какие атрибуты включать в какие отношения.
4.2.2. Исключение избыточности данных
Суть этой цели станет понятной, если уяснить четкое различие между дублированием данных и избыточным дублированием данных. Рассмотрим отношение, приведенное на рис.4.4(а). Отношение П-3 имеет два атрибута - НП (номер преподавателя) и ЗавК (зав.кафедрой). В отношении содержатся данные, указывающие непосредственного начальника каждого преподавателя в институте.
П-3 П-3
НП |
ЗавК |
|
НП |
ЗавК |
102 |
Шаньгин |
|
102 |
Шаньгин |
104 |
Вернер |
|
104 |
Вернер |
108 |
Вернер |
|
108 |
- |
125 |
Шаньгин |
|
125 |
- |
(а) (б)
Рис.4.4. Дублирование данных, не являющееся избыточным
Фамилии зав. кафедрами могут неоднократно появляться в отношении, что и видно на рисунке. Но несмотря на дублирование фамилий, ни одна из дублируемых фамилий не является избыточной. Отсутствие избыточности легко обнаруживается, если из отношения удалить одну из дублируемых фамилий (рис.4.4(б)). Видно, что в результате удаления теряется информация: невозможно определить фамилии зав. кафедрами, на которых работают преподаватели с номерами 108 и 125.
На рис 4.5(а) приведен пример отношения с избыточным дублированием данных. Отношение П-3-Т похоже на отношение П-3, но включает дополнительный атрибут Нтел, представляющий собой номер телефона зав. кафедрой.
П-3-Т П-3-Т П-3 3-Т
НП |
ЗавК |
Нтел |
|
НП |
ЗавК |
Нтел |
|
НП |
ЗавК |
|
ЗавК |
Нтел |
102 |
Шаньгин |
2854 |
|
102 |
Шаньгин |
2854 |
|
102 |
Шаньгин |
|
Шаньгин |
2854 |
104 |
Вернер |
2882 |
|
104 |
Вернер |
2882 |
|
104 |
Вернер |
|
Вернер |
2882 |
108 |
Вернер |
2882 |
|
108 |
Вернер |
- |
|
108 |
Вернер |
|
|
|
125 |
Шаньгин |
2854 |
|
125 |
Шаньгин |
- |
|
125 |
Шаньгин |
|
|
|
(а) (б) (в)
Рис.4.5. Избыточное дублирование данных и исключение избыточных данных
В приведенном экземпляре отношения номера телефонов Шаньгина и Вернера появляются более чем один раз, и дублированная информация о телефонных номерах является избыточной. Причина избыточности в том, что, если, например, удалить один из телефонных номеров Шаньгина, то эта информация может быть получена из других кортежей отношения. Из рис.4.5(б) видно, что телефонные номера Шаньгина и Вернера не утеряны, поскольку каждый из них обнаруживается в одном из кортежей отношения.
Такой способ исключения избыточности плох по двум причинам. Во-первых, пустых полей в БД следует избегать, так как при их наличии необходимо дополнительное программирование, направленное на определение действительных значений пустых полей. Во-вторых, что более важно, отношение, представленное на рис.4.5(б), имеет структуру, которая создает серьезные проблемы при удалении информации. Если преподаватель с номером НП=102 уволится с кафедры и кортеж <102, Шаньгин, 2854> будет удален из отношения, произойдет утеря телефонного номера Шаньгина, поскольку нигде в отношении этот номер больше не представлен.
Чтобы исключить избыточность телефонных номеров, отношение П-3-Т заменяется двумя отношениями, одно из которых П-3 содержит информацию о номерах преподавателей и фамилиях зав. кафедрами, а другое 3-Т - информацию о телефонных номерах зав. кафедрами. Теперь преподаватель с номером 102 может быть удален из отношения П-3 без потери номера телефона бывшего начальника этого преподавателя.