При проектировании БД необходимо наметить прежде всего цели проектирования. В частности, необходимо определить, в чем заключается желаемый конечный результат процесса проектирования реляционных БД?
Среди множества целей, стоящих перед проектированием, следующие цели необходимо выделить специально, так как они представляются наиболее важными:
· возможность хранения всех необходимых данных в БД;
· исключение избыточных данных;
· сведение числа хранимых в БД отношений к минимуму;
· нормализация отношений для упрощения решения проблем, связанных с обновлением и удалением данных.
Из этих целей вторая и четвертая цели требуют дополнительного разъяснения.
Определение 1.5
Дублированием данных называется повторное появление одного и того же элемента какого-либо домена в различных кортежах.
Пример:
ТАБNo - табельный номер служащего,
НАЧК - фамилия его начальника.
ТАБNo | НАЧК |
Иванов | |
Петров | |
Петров | |
Иванов |
Удаление дублирования приводит к тому, что теряется информация о начальниках служащих:
|
|
ТАБNo | НАЧК |
Иванов | |
Петров | |
- | |
- |
Определение 1.6
Избыточным дублированием называется такое дублирование, при котором удаление дубликатов в отношении не приводит к потере информации.
Пример:
НТЕЛ - номер телефона начальника.
ТАБNo | НАЧК | НТЕЛ |
Иванов | ||
Петров | ||
Петров | ||
Иванов |
Удаление дублирования телефонных номеров не приводит к потере информации о них, так как эти номера можно найти из других кортежей:
ТАБNo | НАЧК | НТЕЛ |
Иванов | ||
Петров | ||
Петров | - | |
Иванов | - |
Однако такой способ исключения избыточности имеет существенные недостатки:
· если из кортежа <195, Петров, - > пользователь не может определить номер телефона, ему необходимо предпринять дополнительные усилия по поиску этой информации из других кортежей;
· если служащий с номером 138 будет уволен, то кортеж <138,Петров,234567>, будет исключен, что повлечет за собой потерю информации ни в чем не повинного начальника.
Корректный способ исключения избыточности заключается в разбиении отношения на два отношения следующим образом:
ТАБNo | НАЧК | НАЧК | НТЕЛ | |
Иванов | Иванов | |||
Петров | Петров | |||
Петров | ||||
Иванов |
Методы проектирования БД