Для каждой сущности необходимо указать индентификатор, служащий для однозначного распознавания экземпляров сущности. Идентификатором может служить один атрибут или совокупность из нескольких атрибутов (в этом случае идентифицирующий атрибут является составным атрибутом), набор значений которых является уникальным, т.е. значения идентифицирующего атрибута находятся во взаимно однозначном соответствии с экземплярами сущности.
В системах обработки данных атрибут или некоторая совокупность атрибутов, значения которых уникально идентифицируют каждый объект в наборе объектов, называется ключом.
В системах обработки данных используется гипотеза: каждый объект в наборе объектов различим (т.е. его описание отличается от описания других объектов). В соответствии с этой гипотезой каждый набор объектов имеет ключ. Однако, если для описания набора объектов выбирается совокупность атрибутов, не содержащих ключа, в этом случае в состав атрибутов вводится специальный атрибут, выступающий в качестве ключа. Во многих случаях это некоторый последовательный номер (например, в АСУ СБЕРКАССА в качестве ключа для идентификации счета вводят атрибут Номер счета, представляющий собой следующий свободный порядковый номер в реестре счетов сберкассы).
У одного и того же набора объектов может оказаться несколько ключей. Один из них назначается первичным ключом набора объектов и служит в дальнейшем ключом соответствующего этому набору файла (его еще называют ключом записи, кортежа). Все остальные ключи набора в этом случае называются возможными ключами.
Выбор ключа является важным моментом в проектировании моделей данных. Это связано с тем, что, с одной стороны, ключ должен выполнять свою главную задачу – задачу однозначной идентификации, а с другой стороны, он должен включать в свой состав минимально необходимое (для выполнения задачи идентификации) количество атрибутов. На заключительных этапах проектирования БД для некоторых приложений может оказаться возможным уточнение второй задачи: из множества возможных ключей в качестве первичного выбирают тот, для хранения которого требуется меньший объем памяти ЭВМ.
|
Кроме понятий «ключ», «первичный ключ», «возможный ключ» существует еще понятие «составной ключ» – для обозначения ключа, состоящего из двух атрибутов и более.
Назначение сущности описательных атрибутов
Выделенным сущностям в дополнение к идентифицирующим атрибутам назначаются описательные атрибуты, которые описывают представляющие для приложений интерес свойства сущностей.
Например, сущность Служащий может иметь такие описательные атрибуты, как Дата рождения, Образование, Домашний адрес.
Спецификация атрибутов должна быть закончена указанием для каждого атрибута множества значений или домена, которые этот атрибут может принимать. Если это множество является бесконечным, то оно задается указанием типа принимаемых значений – алфавитно-цифровой, цельный, вещественный и т.п. – и диапазона значений для числовых величин либо количества символов для представления алфавитно-цифровых значений.
В системах обработки данных используется понятие «вторичный ключ» – это атрибут или совокупность атрибутов, которые идентифицируют не уникальный объект в наборе, а все объекты, имеющие определенные значения этих атрибутов, т.е. вторичный ключ позволяет при необходимости выделять из набора те объекты, которые обладают интересующими нас свойствами. Вторичный ключ еще называют ключом поиска. Ограничения на состав вторичных ключей определяются только логикой запроса. В качестве вторичного ключа может выступать любой атрибут или любая совокупность атрибутов, описывающих набор объектов.
|
Спецификация связей
В локальном представлении выявляются зависимости между двумя (и более) сущностями. Устанавливается, какие связи являются важными, а какие – избыточными. Для выявленных связей определяются их характеристики, каждый тип связи «сущность–сущность» именуется.
Кроме спецификации связей типа «сущность–сущность» выполняется спецификация связей типа «сущность–атрибут» (т.е. указываются атрибут и сущность, для описания которых он используется), а также спецификация связей типа «атрибут–атрибут».
Связь типа «атрибут–атрибут» представляет собой отношение между атрибутами, которые относятся к одной и той же сущности или к одной и той же связи типа «сущность–сущность».
Пример. В локальном представлении для сущности Служащий были назначены следующие атрибуты: Табельный номер, Фамилия имя отчество, Дата рождения, Название вуза, Адрес вуза, Специальность, Имя ребенка, Дата рождения ребенка, Дата поступления, Дата увольнения.
Между атрибутами существуют определенные связи. Во-первых, поскольку все эти атрибуты описывают одну и ту же сущность Служащий, которая имеет идентифицирующий атрибут Табельный номер, следовательно, все атрибуты этой сущности имеют зависимость от идентифицирующего атрибута, т.е. при описании конкретных экземпляров сущности Служащий описательные атрибуты не могут принимать произвольные значения. Их значения зависят от значений идентифицирующего атрибута. Кроме этой зависимости среди атрибутов в рассматриваемом примере наблюдается и ряд других зависимостей между описательными атрибутами: значение атрибута Адрес вуза определяется значением атрибута Название вуза, значение атрибута Дата рождения ребенка – значением атрибута Имя ребенка.
|
Рис. 3.5. Диаграмма бинарных связей между сущностями
Эту информацию целесообразно представить в виде отдельной диаграммы бинарных связей между атрибутами. На рис. 3.5 связи представлены направленными дугами.
Анализ диаграммы связей между атрибутами сущности позволяет судить о том, насколько удачно был сделан выбор основных конструкций модели (в данном случае – сущность и атрибут) с точки зрения простоты представления смысловых связей между используемыми конструкциями при представлении конкретной порции информации.
Целесообразно стремиться к случаю, когда наблюдаются только зависимости описательных атрибутов от идентифицирующего и никаких иных зависимостей нет, т.е. зависимость «атрибут–атрибут» для сущности имеет вид, представленный на рис. 3.6.
С этой точки зрения в нашем примере целесообразно сущность Служащий представить с помощью следующих конструкций, представленных графической диаграммой (рис. 3.7). При этом исходная диаграмма бинарных связей типа «атрибут–атрибут» распадается на три диаграммы:
для сущности Служащий (рис. 3.8).
для сущности Вуз (рис. 3.9).
для сущности Ребенок (рис. 3.10).
Рис. 3.6. Зависимость «атрибут–атрибут»
Рис. 3.7. Пример графической диаграммы локального представления
Рис. 3.8. Диаграмма связей атрибутов сущности Служащий
Рис. 3.9. Диаграмма связей атрибутов сущности Вуз
Рис. 3.10. Диаграмма связей атрибутов сущности Ребенок
Возможны случаи, когда экземпляры сущности различают не по атрибутам, а по их связям с экземплярами сущности другого типа. Например, создается АС некоторого производственного объединения, включающего в состав несколько предприятий. Каждое предприятие имеет свою независимую систему присвоения табельных номеров служащим, причем структура табельных номеров на всех предприятиях одинакова, например пять десятичных знаков. В этом случае в БД, хранящей информацию о кадрах объединения, табельный номер потерял свою уникальность (может встретиться несколько одинаковых значений табельных номеров у различных сотрудников). Чтобы однозначно идентифицировать в БД описание конкретного служащего, придется помимо его табельного номера использовать также шифр предприятия, т.е. использовать связь между сущностями Служащий и Предприятие. При спецификации таких связей указывается, что они используются для идентификации сущностей и каких именно.
Моделирование локального представления заканчивается графическим оформлением всех выявленных сущностей, связей между ними и атрибутами и составлением всех перечисленных выше спецификаций.