Для обновления отношений необходимо иметь возможность выполнять следующие операции:
Рассмотрим их по порядку.
Операция добавления для отношения r (A1, A2, ... An) имеет вид:
ADD (r; A1=d1, A2=d2, ... An=dn ).
Если порядок атрибутов фиксирован, возможна более короткая запись:
ADD (r; d1, d2, ... dn).
Выполнение этой операции может стать невозможным в ряде случаев:
Операция удаления предназначена для удаления кортежей. Она может быть записана так:
DEL (r; A1=d1, A2=d2, ... An=dn),
или для упорядоченных атрибутов:
DEL (r; d1, d2, ... dn).
Для удаления некоторого кортежа часто достаточно указать значение некоторого ключа: DEL (r; ключ).
Если указанный кортеж в отношении отсутствует, то отношение остается неизменным.
Операция изменения предназначена для модификации части кортежа. Для отношения r ее можно при {c1, c2, ... cp} ? {A1, A2, ... An} определить так:
CH (r; A1=d1, A2=d2, ... An=dn;
c1=e1, c2=e2, ... cp=ep).
Если K={B1, B2, ... Bm} является ключом, то запись данной операции может быть сокращена:
CH (r; B1=d1, B2=d2, Bm=dm;c1=e1, c2=e2, ... cp=ep).
Возможные ошибки в данном случае те же, что и у предыдущих операций:
Целостность базы данных
Состояние базы данных связанной с поддержкой данных базы в целостном непротиворечивом состоянии гарантирует корректность данных. Поддержка целостности базы данных реализуется посредством ряда ограничений, накладываемых на данные.
Первый тип ограничений проистекает из того факта, что каждый атрибут определяется на своем домене, или наоборот: домен атрибута задает множество значений, которые может принимать атрибут. Указанное ограничение называется ограничением домена.
Если значение атрибута в настоящий момент неизвестно или неприемлемо для данного кортежа, то в этом случае в реляционной теории Кодда рекомендуется использовать понятие NULL, которое он рассматривал как неотъемлемую его часть. Следует помнить, что NULL — это не значение атрибута. Это понятие призвано обозначать отсутствие какого-либо значения атрибута. Например, фирма выпускает изделие, но стоимость его еще уточняется, преподаватель оформлен на работу, но состав его нагрузки еще не определен.
В системе для атрибута может быть разрешено или запрещено иметь NULL значения. В том случае, когда атрибуту запрещается иметь такие значения, система должна отвергать любые попытки ввода NULL значения.
Категорная целостность ограничивает набор значений первичных ключей базовых отношений. Такого рода целостность заключается в следующем: кортеж не может записываться в БД до тех пор, пока значения его ключевых атрибутов не будут полностью определены. Иными словами: никакой ключевой атрибут любого кортежа отношения не может содержать отсутствующего значения, обозначаемого определителем NULL.
Для не базовых отношений в реляционной модели допускается присутствие определителя NULL в его первичном ключе.
Целостность на уровне ссылок. При построении отношений для связывания строк одной таблицы со строками другой таблицы используются внешние ключи. База данных, в которой все непустые внешние ключи ссылаются на текущие значения ключей другого отношения, обладает целостностью на уровне ссылок. Добавим, что из этого утверждения вытекает и другое: внешние ключи также не должны содержать NULL значений.