Определение ключевых атрибутов и доменов

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

В рассматриваемом примере для выделенных сущностей можно предложить следующие ключи и домены:

УЧИТЕЛЬ/E3

Первичный ключ: в качестве первичного ключа удобно выделить некоторый искусственный атрибут – ЛИЧНЫЙ НОМЕР (КОД) УЧИТЕЛЯ. Значения атрибута – целые положительные числа (порядковый номер). Следовательно, атрибут ЛИЧНЫЙ НОМЕР УЧИТЕЛЯ будет определен на домене НОМЕР.

Альтернативный ключ: составной ключ, состоящий из трех атрибутов – ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО учителя (вряд ли в школе будут работать учителя – полные тезки). Значениями каждого атрибута являются строки символов определенной длины; соответственно, данные атрибуты будут определены на одном домене – ИМЯ.

КЛАСС/E2

Первичный ключ: в соответствии с обычной практикой классы в школе идентифицируются по принципу: год обучения и буква, если есть несколько классов одного года обучения, например: 1А; 6А, 6Б и так далее. Поэтому целесообразно определить составной первичный ключ из двух атрибутов – ГОД ОБУЧЕНИЯ и ГРУППА; первый атрибут определен на домене НОМЕР, второй – на домене БУКВА.

Внешний ключ: так как данное множество сущностей связано с множеством сущностей УЧИТЕЛЬ/E3, эта связь приводит к появлению атрибута внешнего ключа – ЛИЧНЫЙ НОМЕР УЧИТЕЛЯ; атрибут определен на домене НОМЕР.