Классика баз данных - статьи



         

Реляционные инварианты - часть 6


Сначала мы поясним несколько пунктов в , а затем мы проанализируем некоторые важные свойства инициируемых операций. Как обычно в реляционных моделях, мы предполагаем, что ни для какого кортежа не допускается значение "пусто" ни в одном из ключевых доменов. Нарушение этого условия должно быть единственной причиной, по которой отвергается "корректная" операция обновления.

Единственным случаем, когда инвариант (ii) может быть нарушен корректной операцией обновления, является вставка кортежа-дубликата. При этом корректирующим действием служит просто удаление одного из дубликатов. Инвариант (v) никогда не может быть нарушен при заданных нами предположениях корректности. Наконец, инварианты (i), (iii) и (iv) могут быть нарушены любым корректным обновлением. В каждом случае корректирующее действие соответствует абстракнотной структуре реляционных моделей. Рассмотрим несколько примеров.

Предположим, что мы нарушаем инвариант (i), вставляя кортеж t. Это означает, что t должен ссылаться на несуществующий кортеж в некотором отношении R'. Для устранения такого нарушения мы должны вставить подходящий кортеж (например, t') в R'. Не располагая какой-либо другой входной информацией, мы знаем единственную подробность относительно t' – его ключ, который входит в t. Следовательно, в неключевые домены t' должны быть вставлены значения "пусто". С семантической точки зрения, эффект этого корректирующего действия состоит в том, чтобы ввести абстрактный объект t', о котором известно, что он находится в связи с t.

Допустим теперь, что мы нарушаем инвариант (iii), удаляя кортеж t. Это означает, что кортеж t', который был образом потомка t, больше не имеет образа предка в R. Чтобы устранить это нарушение, мы должны удалить кортеж t'. Такое корректирующее действие отражает семантическое требование, состоящее в том, что объект, который не появляется в некотором классе на верхнем уровне обобщения, не может появиться в каком-либо классе на более низком уровне обобщения.




Содержание  Назад  Вперед