Виды декомпозиций. Декомпозиция без потерь

         

Ключи Неопределенность значений атрибутов в ключах


Подмножество атрибутов схемы отношения, однозначно идентифицирующее любую запись в отношении и не имеющее собственного подмножества, также идентифицирующего любую запись в отношении, называется ключом отношения.

Как следует из определения, ключ отношения должен отвечать следующим требованиям:

-

идентифицировать кортеж;

-          не содержать "лишних" атрибутов.

Одно отношение может иметь несколько ключей. Ключ может состоять как из одного атрибута, так и нескольких. Во втором случае мы говорим, что ключ является составным.

Ключ, который используется в данный момент называется первичным. Все остальные ключи являются возможными. При выборе первичного ключа учитывается:

-          Желательно, чтобы ключ был несоставной

-          Его значение не должно меняться в процессе жизни БД.

Когда невозможно найти идентификатор, отвечающий этим требованиям вводится суррогатный

ключ, значение которого является внутренним делом системы.

Поскольку БД представляет собой совокупность отношений, которые должны быть связаны между собой, то должен существовать механизм организации этой связи, в котором основное место занимает так называемый внешний ключ.

Внешний ключ отношения r есть множество атрибутов, которые являются первичным ключом в отношении q.

ПРИМЕР:

R(Студент) = {№ зачетки, Фамилия, Имя, Отчество, …}

R(Успеваемость) = {№ зачетки, Название предмета, Название вида отчетности, Оценка}

Внешний ключ - № зачетки.

Отношение, содержащее внешний ключ, называется ссылающимся отношением (в приведенном выше примере это отношение Успеваемость).

Отношение, содержащее первичный ключ, адекватный внешнему ключу другого отношения, называется ссылочным

отношением (в приведенном выше примере это отношение Студент).

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

Недопустимо, чтобы атрибуты, входящие в первичный или внешний ключ принимали NULL

значения. Если в каком то кортеже отсутствуют данные о значении атрибута, то говорят, что его значение NULL (не определено, неизвестно, неприемлемо для данного кортежа).

Определитель NULL следует воспринимать как логическую величину «неизвестно». Т. е. либо это значение не входит в область определения некоторого кортежа, либо никакое значение еще не задано. Ключевое слово NULL представляет собой способ обработки неполных или необычных данных.

Значение NULL не эквивалентно не нулевому численному значению, не пустой строке.

Для избежания NULL значений в первичном и внешнем ключах целесообразно вводить т. н. суррогатный ключ.



Содержание раздела