значение до четырех десятичных цифр;
■ ■BBBBBBB номера деталей должны быть в форме Рппппп, где ппппп может принимать
значение до пяти десятичных цифр;
■ ■BBBBBBB значение статуса поставщика должно быть в диапазоне 1-100;
■ ■BBBBBBB города поставщиков и деталей должны выбираться из определенного списка;
■ ■BBBBBBB цвета деталей должны выбираться из определенного списка;
■ ■BBBBBBB вес деталей должен быть больше нуля;
■ ■BBBBBBB количество при отправке должно быть умножено на 100;
■ ■BBBBBBB все красные детали должны сдаваться на хранение в Лондоне;
■ ■BBBBBBB если город поставщика — Лондон, то статус поставщика должен быть равен
20; и т.д.
Любое данное правило целостности является специфическим для базы
данных в том смысле, что оно применяется к одной конкретной базе данных, и все
вышеприведенные примеры в этом смысле, Очевидно, тоже специфичны для
определенной базы данных. Однако в дополнение к специфическим правилам
(которые кратко рассматриваются в следующей главе и подробно будут описаны
далее в этой книге) в реляционной модели есть два общих особых правила
целостности. Эти особые правила применяются к любой базе данных, а не только к
некоторым определенным, таким как базы данных поставщиков и деталей. Эти два
особых правила относятся к потенциальным (и первичным) ключам и ко внешним
ключам. Потенциальные и внешние ключи будут рассмотрены ниже в этой главе.
Хотя основная идея потенциальных и внешних ключей довольно проста,
имеется, к сожалению, один осложняющий дело фактор— это null-значения
(неопределенные значения). Возможность того, что данный внешний ключ может
допускать null-значения, портит всю картину. Из педагогических соображений при
изложении материала вначале мы не будем касаться, null-значений, а рассмотрим их
влияние позже в этой главе.
Прежде чем углубиться в детали, необходимо сделать еще одно замечание.
Правила целостности будут рассматриваться главным образом с точки зрения их
применения к базовым отношениям. Причина, конечно, в том, что именно базовые
отношения должны отражать действительность, а значит, именно для базовых
отношений необходимы ограничения по содержанию верной или, по крайней мере
правдоподобной, конфигурации значений. Однако на самом деле к производным
отношениям также применяются правила целостности. Например, если к базовому
отношению S применимо правило, гласящее, что номер поставщика должен быть
уникальным, это правило, очевидно, также применимо к каждой выборке строк
этого отношения.
Как видно из этого примера, производными отношениями автоматически
наследуются определенные правила целостности отношений, от которых они
произведены. Но возможно, что для производных отношений существуют
некоторые дополнительные правила целостности, противоречащие или
дополняющие автоматически наследуемые правила. А значит, может возникнуть
необходимость указать все правила целостности для определенных производных
отношений в явном виде. Примером тому может служить определение
потенциального ключа для представления.
Этот вопрос еще будет обсуждаться в последующих главах. В этой главе мы
ограничимся лишь базовыми отношениями, потому что после их освоения можно