Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
srs_IPOVS_BD.doc
Скачиваний:
41
Добавлен:
05.06.2015
Размер:
1.19 Mб
Скачать

5.2. Цели проектирования рбд

Среди множества целей проектирования наиболее важными являются:

  1. возможность хранения всех необходимых данных в БД;

  2. исключение избыточности данных;

  3. сведение числа хранимых в БД отношений к минимуму;

  4. нормализация отношений для упрощения решения проблем, связанных с обновлением и удалением данных.

Рассмотрим каждую из целей отдельно.

5.2.1. Возможность хранения всех необходимых данных в бд

БД должна содержать все данные, представляющие интерес для решаемой задачи. Первым шагом в процессе проектирования является определение всех атрибутов, которые впоследствии будут помещены в БД. После определения атрибутов проектировщик решает, сколько отношений необходимо и какие атрибуты включать в какие отношения.

5.2.2. Исключение избыточности данных

Суть этой цели станет понятной, если уяснить четкое различие между дублированием данных и избыточным дублированием данных. Рассмотрим отношение, приведенное на рис.5.4(а). Отношение П-3 имеет два атрибута - НП (номер преподавателя) и ЗавК (зав.кафедрой). В отношении содержатся данные, указывающие непосредственного начальника каждого преподавателя в институте.

П-3 П-3

НП

ЗавК

НП

ЗавК

102

Шаньгин

102

Шаньгин

104

Вернер

104

Вернер

108

Вернер

108

-

125

Шаньгин

125

-

(а) (б)

Рис.5.4. Дублирование данных, не являющееся избыточным

Фамилии зав. кафедрами могут неоднократно появляться в отношении, что и видно на рисунке. Но несмотря на дублирование фамилий, ни одна из дублируемых фамилий не является избыточной. Отсутствие избыточности легко обнаруживается, если из отношения удалить одну из дублируемых фамилий (рис.5.4(б)). Видно, что в результате удаления теряется информация: невозможно определить фамилии зав. кафедрами, на которых работают преподаватели с номерами 108 и 125.

На рис 5.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

Шаньгин

(а) (б) (в)

Рис.5.5. Избыточное дублирование данных и исключение избыточных данных

В приведенном экземпляре отношения номера телефонов Шаньгина и Вернера появляются более чем один раз, и дублированная информация о телефонных номерах является избыточной. Причина избыточности в том, что, если, например, удалить один из телефонных номеров Шаньгина, то эта информация может быть получена из других кортежей отношения. Из рис.4.5(б) видно, что телефонные номера Шаньгина и Вернера не утеряны, поскольку каждый из них обнаруживается в одном из кортежей отношения.

Такой способ исключения избыточности плох по двум причинам. Во-первых, пустых полей в БД следует избегать, так как при их наличии необходимо дополнительное программирование, направленное на определение действительных значений пустых полей. Во-вторых, что более важно, отношение, представленное на рис.4.5(б), имеет структуру, которая создает серьезные проблемы при удалении информации. Если преподаватель с номером НП=102 уволится с кафедры и кортеж <102, Шаньгин, 2854> будет удален из отношения, произойдет утеря телефонного номера Шаньгина, поскольку нигде в отношении этот номер больше не представлен.

Чтобы исключить избыточность телефонных номеров, отношение П-3-Т заменяется двумя отношениями, одно из которых П-3 содержит информацию о номерах преподавателей и фамилиях зав. кафедрами, а другое 3-Т - информацию о телефонных номерах зав. кафедрами. Теперь преподаватель с номером 102 может быть удален из отношения П-3 без потери номера телефона бывшего начальника этого преподавателя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]