<<
>>

Ключи отношения

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

Более строго определить понятие первичного ключа можно следующим образом. Если Я — отношение с атрибутами Д, Д, ..., А,„ то множество атрибутов К = (Д, Ар ..., Д.) отношения Я является первичным ключом этого отношения тогда, и только тогда, когда удовлетворяются два независимых от времени условия:

? уникальность — в произвольный момент времени никакие два кортежа отно­шения Я не имеют одного и того же значения для Д, Д,..., Д;

? минимальность — ни один из атрибутов Д, Д,..., Д не может быть исключен из К без нарушения уникальности.

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

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

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

Сложный, или составной, ключ — это ключ, состоящий из нескольких атрибутов.

ПРИМЕЧАНИЕ------------------------------------------------------------------------------

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

В зависимости от того, содержит ли атрибут, являющийся первичным ключом, какую-либо информацию, различают искусственные и естественные ключи. Искусственный, или суррогатный, ключ — это ключ, созданный самой СУБД или пользователем с помощью некоторой процедуры, но сам по себе не содержащий информации. Искусственный ключ используется для создания уникальных иден­тификаторов строк, когда сущность должна быть описана полностью, чтобы одно­значно идентифицировать конкретный элемент. Искусственный ключ часто задей­ствуют вместо значимого сложного ключа, который является слишком громоздким, чтобы применяться в реальной базе данных. Система поддерживает искусствен­ный ключ, но он никогда не виден пользователю.

Естественный ключ — это ключ, в который включены значимые атрибуты и кото­рый, таким образом, содержит информацию.

ПРИМЕЧАНИЕ------------------------------------------------------------------------------

В рассматриваемом нами, примере в качестве первичного ключа отношения СТУДЕН­ТЫ можно рассматривать атрибут №_студенческого_билета. Причем данный ключ является естественным, так как несет вполне определенную информацию.

Каждый из типов первичных ключей имеет свои достоинства и недостатки; их об­суждению посвящено большое'количество публикаций. Мы не будем проводить подробное их сравнение, а отметим лишь основные плюсы и минусы каждого из видов ключей.

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

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

ПРИМЕЧАНИЕ------------------------------------------------------------------------------

В некоторых реляционных СУБД допускается изменение первичного ключа. Иногда это бывает действительно полезно. Однако прибегать к этому следует лишь в случае крайней необходимости.

Типичным примером изменчивой предметной области, в которой для сущности невозможно определить неизменяемый естественный ключ, является любая об­ласть с человеком в качестве сущности.,

Второй довольно существенный недостаток естественных ключей состоит в том, что, как правило, уникальные естественные ключи являются составными и содер­жат строковые атрибуты. Как уже отмечалось, максимальная скорость выполнения операций над данными обеспечивается при использовании простых целочислен­ных ключей. Таким образом, с точки зрения быстродействия системы естествен­ные ключи часто оказываются неоптимальными.

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

Однако за это приходится платить избыточностью дан­ных в таблицах.

ПРИМЕЧАНИЕ------------------------------------------------------------------------------

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

В любой из таблиц может оказаться несколько наборов атрибутов, которые допу­стимо выбрать в качестве ключа. Такие наборы называются потенциальными или альтернативными ключами.

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

? UNIQUE — ограничение уникальности, значения вторичных ключей при данном ограничении не могут дублироваться;

? NOT NULL — при данном ограничении ни один из атрибутов, входящих в состав вторичного ключа, не может принимать значение NULL.

Перекрывающиеся ключи — сложные ключи, которые имеют один или несколько общих столбцов.

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Ключи отношения:

  1. 3 ГЛАВА. Ключи к трансформации Часть 1
  2. Ключи
  3. Энерго-информационные ключи к памяти Атлантиды
  4. Часть 2 Ключи к трансформации.
  5. § 1 Общие свойства семейственных отношений. – Общественный их характер. – В чем они подчиняются юридическому определению. – Свойство семейной власти и отличие ее от обладания. – Вопросы и иски о состоянии, соединенные с семейными правами. – Восстановление семейной власти. – Вмешательство правительственной власти в семейные отношения. – Отношения родственные.
  6. Статья 9. Применение Гражданского кодекса Украины к урегулированию отношений в сферах хозяйствования, использование естественных ресурсов, охраны окружающей среды, а также к трудовым и семейным отношениям
  7. з) Совершение преступления в отношении женщины, заведомо для виновного находящейся в состоянии беременности, а также в отношении малолетнего, другого беззащитного или беспомощного лица, либо лица, находящегося в зависимости от виновного
  8. § 45 Договор о найме имуществ. – Предмет его. – Плата. – Отношение сторон. – Обязанность хозяина. – Передача. – Поддержание имущества. – Обязанности наемщика и права его. – Сублокация. – Эмфитевтическое пользование и бессрочный наем. – Право отказа. – Значение владения в найме и отношение его к праву собственности. – Действие давности. – Возобновление найма. – Ограждение наемщика и хозяина особым процессом. – Отношение найма к узуфрукту. – Наем земельный. – Правила арендных договоров. – Наем изп
  9. Взаимоотношения и сексуальность в Телосе Адама, расскажи, пожалуйста, об отношениях между мужчинами и женщинами в Телосе. Как относятся к сексуальности в вашем городе? Как люди в третьем измерении могут эволюционировать до такого уровня отношений?
  10. § 14 Отношения супругов по имуществу. – Германское начало общения имуществ в браке и римская система приданого. – Особое имущество жены. – Разнообразные системы западных законодательств. – Раздел имуществ по прекращении брака. – Ограничения брачных договоров и сделок между супругами. – Английский закон об отношениях супругов по имуществу.
  11. § 83 Историческое значение писцовых книг. – Писцовые книги как доказательство по межевым делам. – Отношение межевых доказательств к вотчинным. – Могут ли межевые акты служить к предосуждению вотчинных прав? Значение межевых актов и планов в спорных вотчинных делах. – Общее замечание об отношении вотчинного права к межевому
  12. ОТНОШЕНИЕ
  13. Отношение
  14. ОТНОШЕНИЕ МАТЕРИНСКОЕ
  15. I. 1. 2. Отношения.
  16. ОТНОШЕНИЕ МЕЖЛИЧНОСТНОЕ
  17. ОТНОШЕНИЕ МЕЖЭТНИЧЕСКОЕ