
 
 
 
  Итак мы убедились, что иногда, заменив отношение его полной декомпозицией, 
можно избежать дублирования данных. Но в других случаях такая замена не удается. 
Очевидно,  необходим  критерий,  позволяющий  судить  о  целесообразности 
декомпозиции отношения.  Заметим,  что  проекции  proj
Поставщик,Тел
P  и 
proj
КодТовара,Поставщик
P (образующие  полную декомпозицию) не содержат общего ключа 
исходного отношения, в то время как проекции proj
КодТовара,Тел
P и proj
КодТовара,Поставщик
P 
(не  образующие  полную  декомпозицию)  обе  содержат  ключ  исходного отношения  – 
КодТовара. 
  5.3 Висячие записи 
 
  Важно  не  только  устранить  дублирование,  но  и  обеспечить  хранение  висячих 
(иначе,  присоединенных)  записей.  Пусть  в  отношение  P  из  предыдущего  пункта 
требуется ввести телефон фирмы, еще не поставлявшей товара. Но КодТовара – ключ, 
его нельзя оставить пустым! Значит невозможно ввести такой телефон! Но в проекцию  
proj
Поставщик,Тел
P его ввести можно. 
 
proj
 Поставщик, Тел
P : 
Поставщик    Тел 
ГЛОБУС    33-33-33 
МИР      99-99-99 
ОКЕАН    77-77-77 
КОНТИНЕНТ  55-55-55 
 
  Правда,  запись  о  фирме  ―КОНТИНЕНТ‖  не  войдет  в 
proj
КодТовара, Поставщик
P   join   proj
Поставщик,Тел
P.  Такая  запись  называется  висячей  (или 
присоединенной).  Отношение,  включающее  висячие  записи,  перестает  быть  точной 
проекцией P.  
  С  другой  стороны,  если  использовать  проекции  proj
КодТовара, Поставщик
P  и 
proj
КодТовара, Тел
P, то снова не удастся вставить телефон поставщика, не поставившего еще 
ни одного товара. 
  Заметим,  что  декомпозиция  proj
Поставщик, Тел
P  и  proj
КодТовара, Поставщик
P  (позволяющая 
записать  сведения  о  поставщике,  не  осуществившего  еще  ни  одной  поставки) 
составлена из проекций, не содержащих общего ключа исходного отношения. В то же 
время  декомпозиция  proj
КодТовара, Тел
P  и  proj
КодТовара, Поставщик
P  (не  позволяющая  записать 
данные  такого  поставщика)  составлена  из  проекций,  содержащих  ключ  исходного 
отношения – КодТовара. 
  Примеры из двух последних пунктов позволяют сделать вывод о том, что выбор 
той  или  иной  структуры  таблиц  может  привести  к  несовершенствам  или  наоборот 
обеспечить  удобство  использования  данных.  Почему  же  вообще  может  быть  плох 
проект базы данных? 
5.4 Проблемы, возникающие из-за неудачной структуры данных 
 
1.  Аномалия  изменения  (избыточность  и  потенциальная  противоречивость). 
Информация во многих столбцах многократно повторяется. Чем  больше данных 
в  отношении,  тем  больше  дублируется  информации  и  тем  больше 
непроизводительных  затрат.  Из-за  наличия  многих  дублей  одних  и  тех  же 
данных  возможна  ситуация,  когда  одна  часть  избыточных  копий  будет 
изменена, а другая – нет. Если меняется имя поставщика (или оно было внесено 
с  ошибкой),  то  придется  изменить  много  строк,  в  которых  упоминается  этот 
поставщик – иначе получится, что имеется два разных поставщика.