Аномалии удаления

При удалении из отношения Staff Branch строки с информацией о последнем сотруднике некоторого отделения компании сведения об этом отделении будут полностью удалены из базы данных. Например, после удаления из отношения Staff Branch строки для сотрудника 'Mary Howe с табельным номером ' SA9' из базы данных неявно будут удалены все сведения об отделении с номером В007. Однако структура отношений, показанных в табл. 1 и 2, позволяет избежать возникновения этой проблемы, поскольку строки со сведениями об отделениях компании хранятся отдельно от строк со сведениями о сотрудниках. Связывает эти два отношения только общий атрибут branchNo. При удалении из отношения Staff строки с номером сотрудника ' SA9' сведения об отделении 'ВО07' в отношении Branch останутся нетронутыми.

Аномалии обновления

При попытке изменения значения одного из атрибутов для некоторого отделения компании в отношении Staff Branch (например, адреса отделения 'ВООЗ') необходимо обновить соответствующие значения в строках для всех сотрудников этого отделения. Если такой модификации будут подвергнуты не все требуемые строки отношения Staff Branch., база данных будет содержать противоречивые сведения. В частности, в нашем примере для отделения компании с номером 'ВООЗ' в строках, относящихся к разным сотрудникам, ошибочно могут быть указаны разные значения адреса этого отделения.

Все приведенные выше примеры иллюстрируют то, что представленные в табл. 1 и 2 отношения Staff и Branch обладают более приемлемыми свойствами, чем отношение Staff Branch, представленное в табл. 3. Это доказывает, что отношение Staff Branch подвержено аномалиям обновления, но этих аномалий можно избежать путем декомпозиции первоначального отношения на отношения Staff и Branch. С декомпозицией крупного отношения на более мелкие связаны два важных свойства. Во-первых, свойство соединения без потерь гарантирует, что любой экземпляр первоначального отношения может быть определен с помощью соответствующих экземпляров более мелких отношений. Во-вторых, свойство сохранения зависимостей гарантирует, что ограничения на первоначальное отношение можно поддерживать, просто применяя такие же ограничения к каждому из более мелких отношений. Иными словами, для проверки того, не нарушается ли ограничение, которое распространялось на первоначальное отношение, нет необходимости выполнять операции соединения на более мелких отношениях.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: