Первичные и альтернативные ключи
Семантика первичных и альтернативных ключей Возможный ключ сущности - это один или несколько атрибутов, чьи значения однозначно определяют каждый экземпляр сущности., Например, НОМЕР_ЗАКАЗА_НА_ПОКУПКУ может однозначно определить экземпляр сущности ЗАКАЗ_НА_ПОКУПКУ. Комбинация атрибутов НОМЕР_СЧЕТА и НОМЕР_ЧЕКА может однозначно определить экземпляр сущности ЧЕК. Каждая сущность должна обладать хотя бы одним возможным ключом. В некоторых случаях сущность может иметь более одного атрибута или группу атрибутов, однозначно идентифицирующих экземпляры сущности. Например, каждый из атрибутов НОМЕР_СЛУЖАЩЕГО и НОМЕР_ПОЛИСА может однозначно идентифицировать экземпляр сущности СЛУЖАЩИЙ. При существовании нескольких возможных ключей один из них ключей обозначается в качестве первичного ключа, а остальные – как альтернативные ключи. Если существует только один возможный ключ, то он является, конечно, первичным ключом. Синтаксис первичных и альтернативных ключей Определяющие первичный ключ атрибуты размещаются наверху списка атрибутов в блоке сущности и отделяются от других атрибутов горизонтальной чертой (см. рис. 3-7). Каждому альтернативному ключу присваивается уникальный целый номер. Этот ключ указывается с помощью размещения справа от каждого атрибута ключа заключенных в скобки букв АК с номером альтернативного ключа, например, (АК1) (см. рис. 3-8). Отдельный атрибут может входить в качестве компоненты в более чем один альтернативный ключ. Атрибут первичного ключа может служить также частью альтернативного ключа. Рис. 3-8. Синтаксис альтернативных ключей Правила первичных и альтернативных ключей
Внешние ключи Семантика внешних ключей Если между двумя сущностями имеется специфическое отношение связи или категоризации, то атрибуты, входящие в первичный ключ родительской или общей сущности, наследуются в качестве атрибутов сущностью-потомком или категорией сущностью соответственно. Эти наследуемые атрибуты называются внешними ключами. Например, если существует отношение между сущностью ПРОЕКТ как родителем и сущностью ЗАДАНИЕ как потомком, то атрибуты первичного ключа сущности ПРОЕКТ будут наследуемыми атрибутами сущности ЗАДАНИЕ. Например, если атрибут ПРОЕКТ_ID являлся первичным ключом сущности ПРОЕКТ, то ПРОЕКТ_ID будет также наследуемым атрибутом или внешним ключом сущности ЗАДАНИЕ.
Наследуемый атрибут может использоваться в сущности в качестве. части или целого первичного ключа, альтернативного ключа или неключевого атрибута. Если все атрибуты первичных ключей сущности-родителя наследуются в качесте части первичного ключа сущности-потомка, то отношение, через которое эти атрибуты были унаследованы; называется идентифицирующим отношением. Если какой-нибудь из наследуемых атрибутов не является частью первичного ключа, то отношение называется неидентифицирующим отношением (см. раздел 3.2). Например, если задания имеют номера, уникальные только в пределах своего проекта, то для определения первичного ключа ЗАДАНИЯ необходимо соединить наследуемый атрибут ПРОЕКТ_ID с собственным атрибутом НОМЕР_ЗАДАНИЯ. Сущность ПРОЕКТ будет обладать идентифицирующим отношением с сущностью ЗАДАНИЕ. Если, с другой стороны, атрибут НОМЕР_ЗАДАНИЯ всегда уникален (даже для разных проектов), то наследуемый атрибут ПРОЕКТ_ID будет неключевым атрибутом сущности ЗАДАНИЕ. В этом случае сущность ПРОЕКТ будет обладать неидентифицирующим отношением с сущностью ЗАДАНИЕ. В отношении категоризации и общая сущность, и сущности-категории изображают один и тот же предмет реального мира. Поэтому для всех сущностей-категорий первичный ключ наследуется через отношение категоризации из первичного ключа общей сущности. Например, ШТАТНЫЙ_СЛУЖАЩИЙ и СЛУЖАЩИЙ_ПОЧАСОВИК являются сущностями-категориями, а СЛУЖАЩИЙ является общей сущностью. Если атрибут НОМЕР_СЛУЖАЩЕГО является первичным ключом для сущности СЛУЖАЩИЙ, то он будет также первичным ключом для сущностей ШТАТНЫЙ_СЛУЖАЩИЙ и СЛУЖАЩИЙ_ПОЧАСОВИК. В некоторых случаях сущность-потомок может иметь несколько отношений с одной и той же сущностью-родителем. Первичный ключ сущности-родителя появится для каждого отношения в качестве наследуемых атрибутов в сущности-потомке. Для данного экземпляра сущности-потомка значения наследуемых атрибутов могут быть различными для различных отношений, т.е. может быть ссылка на два разных экземпляра сущности-родителя. Например, спецификация некоторого устройства может изображаться двумя сущностями: ДЕТАЛЬ и УЗЕЛ. Сущность ДЕТАЛЬ в качестве сущности-родителя обладает двойным отношением с сущностью УЗЕЛ. Одна и та же деталь может служить как компонентой, из которой производится узел (т.е. деталь может быть компонентой одного или многих узлов), так и иногда быть узлом, в который собираются компоненты (т.е. деталь может быть узлом для одной или более деталей-компонент). Если НОМЕР-ДЕТАЛИ является первичным ключом для сущности ДЕТАЛЬ, то НОМЕР-ДЕТАЛИ дважды появляется в сущности УЗЕЛ в качестве наследуемого атрибута.
Когда отдельный атрибут наследуется более одного раза, для каждого случая должно назначаться имя роли. В предыдущем примере имена ролей НОМЕР_КОМПОНЕНТЫ и НОМЕР_УЗЛА могут назначаться для различения двух наследуемых атрибутов НОМЕР_ДЕТАЛИ. Имена ролей могут использоваться и при единственном появлении наследуемого атрибута для более точного выражения его смысла в контексте сущности-потомка, но это не является обязательным. Синтаксис внешних ключей Внешний ключ изображается с помощью помещения внутрь блока сущности имен наследуемых атрибутов, после которых следуют буквы FK в скобках (FK), см рис.3-9. Рис. 3-9. Примеры синтаксиса внешних ключей Если наследуемый атрибут принадлежит первичному ключу сущности-потомка, то он помещается выше горизонтальной линии, а сущность изображается с закругленными углами для указания на то, что идентификатор (первичный ключ) сущности зависит от атрибута, наследуемого через отношение. Если наследуемый атрибут не принадлежит первичному ключу сущности-потомка, то он изображается ниже линии. Наследуемые атрибуты могут быть также частью альтернативного ключа. Имена ролей, как и имена атрибутов, являются грамматическими оборотами существительного. За именем роли следует имя наследуемого атрибута, отделенное точкой (см.рис.3-10).
Рис. 3-10. Синтаксис имени роли Правила внешних ключей
Процедуры моделирования
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|