5. Понятие ключей

5. Понятие ключей

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

Итак, дадим строгое определение ключа отношения.

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

t = t(S) = {t(a) | a ? def( t) ? S} определение кортежа,

t(S) [S’ ] = {t(a) | a ? def (t) ? S’}, S’ ? S — определение унарной операции проекции;

Понятно, что проекции кортежа на подсхему соответствует подстрока строки таблицы.

Итак, что же такое ограничение уникальности ключевых атрибутов?

Объявление ключа К для схемы отношения S приводит к формулированию следующего инвариантного условия, называемого, как мы уже говорили, ограничением уникальности и обозначаемого как:

Inv < K ? S > r(S):

Inv < K ? S > r(S) = ?t1, t2 ? r (t 1[ K] = t2 [K ] ? t 1(S) = t2(S)), K ? S;

Итак, данное ограничение уникальности Inv < K ? S > r(S) ключа К означает, что если любые два кортежа t1 и t2, принадлежащие отношению r(S), равны в проекции на ключ К, то это непременно влечет за собой равенство этих двух кортежей и в проекции на всю схему отношения S. Другими словами, все значения кортежей, принадлежащих ключевым атрибутам, уникальны, единственны в своем отношении.

И второе важное требование, предъявляемое к ключу отношения, – это требование неизбыточности. Что это значит? Это требование означает, что ни для какого строгого подмножества ключа требование уникальности не предъявляется.

На интуитивном уровне понятно, что ключевой атрибут – это тот атрибут отношения, который однозначно и точно определяет каждый кортеж отношения. Например, в следующем отношении, заданном таблицей:

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

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

1) простой ключ – это ключ, состоящий из одного и не более атрибута.

Например, в экзаменационной ведомости по конкретному предмету простым ключом является номер зачетки, потому что по нему можно однозначно идентифицировать любого студента;

2) составной ключ – это ключ, состоящий из двух и более атрибутов. Например, составным ключом в списке учебных аудиторий являются номер корпуса и номер аудитории. Ведь каким-то одним из этих атрибутов однозначно определить каждую аудиторию не представляется возможным, а их совокупностью, т. е. составным ключом, это сделать довольно легко;

3) суперключ – это любое надмножество любого ключа. Следовательно, сама схема отношения заведомо является суперключом. Из этого можно сделать вывод, что любое отношение теоретически имеет, как минимум, один ключ, а может иметь их и несколько. Однако объявление суперключа вместо обычного ключа логически недопустимо, так как связано с ослаблением автоматически контролируемого ограничения уникальности. Ведь супер ключ хоть и обладает свойством уникальности, но не обладает свойством неизбыточности;

4) первичный ключ – это просто ключ, который при задании базового отношения был объявлен первым. Важно, что допустимо объявление одного и только одного первичного ключа. Кроме того, атрибуты первичного ключа ни в коем случае не могут принимать Null-значений.

При создании базового отношения в записи на псевдокоде первичный ключ обозначается primary key и в скобках указывается имя атрибута, который и является этим ключом;

5) кандидатные ключи – это все остальные ключи, объявленные после первичного ключа.

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

На псевдокоде при задании базового отношения кандидатные ключи объявляются при помощи слов candidate key и в скобках рядом, как и в случае объявления первичного ключа, указывается имя атрибута, который и является данным кандидатным ключом;

6) внешний ключ – это ключ, объявленный в базовом отношении, который при этом ссылается на первичный или кандидатный ключ того же самого или какого-то другого базового отношения.

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

В записи на псевдокоде внешний ключ обозначается как foreign key, в скобках непосредственно после этих слов указывается имя атрибута данного отношения, являющегося внешним ключом, а после этого записывается ключевое слово references («ссылается») и указать имя базового отношения и имя атрибута, на который и ссылается данный конкретный внешний ключ.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

24.4.4 Количество ключей аутентификации

Из книги автора

24.4.4 Количество ключей аутентификации Сколько ключей аутентификации нужно для работы сервера с клиентами? Может показаться, что серверу достаточно иметь один ключ MD5, с помощью которого он может сказать: "Я тот самый сервер".Однако этот ключ будут знать все клиенты. Один из


24.5.6 Обслуживание ключей

Из книги автора

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


13.3 Связки ключей

Из книги автора

13.3 Связки ключей Есть ещё один интересный механизм, связанный с обеспечением безопасности. Дело в том, что для хранения различных пользовательских паролей в Ubuntu используются так называемые связки ключей (keyrings). Весь этот механизм служит одной цели — никто, кроме


5.4.1. Создание ключей OpenPGP

Из книги автора

5.4.1. Создание ключей OpenPGP С The Bat! как уже отмечено, все проще – она обладает встроенной PGP. Итак, приступим. Выберите команду Свойства | OpenPGP | Управление ключами OpenPGP. Откроется окно мастера создания ключей OpenPGP (рис. 5.15). Просто нажмите кнопку Далее.Укажите свое имя и адрес


3. Связи и миграция ключей

Из книги автора

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


Как PGP следит за корректностью ключей.

Из книги автора

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


Добавление ключей к кольцу.

Из книги автора

Добавление ключей к кольцу. Теперь вам, вероятно, захочется добавить открытые ключи ваших друзей к вашему кольцу. Для этого вам потребуется получить эти кольца: с сервера ключей, непосредственно от этого человека, при помощи команды finger, по e-mail, и т.д. Вспомним, что открытые


11.1.12. Несколько ключей сортировки

Из книги автора

11.1.12. Несколько ключей сортировки При использовании опций +позиция и -k следует быть особенно аккуратным. Если вы внимательно прочитали их описание в табл. 11.1, то должны были отметить такой факт: когда не указана конечная позиция, ключ сортировки считается заканчивающимся


Инфраструктуры открытых ключей (PKI)

Из книги автора

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


Генерация пар ключей

Из книги автора

Генерация пар ключей При помощи этого сервиса генерируется пара ключей (открытый ключ/секретный ключ), секретный ключ хранится в файле, защищенном паролем или иными средствами (например, на смарт-карте или при помощи другого аппаратного или программного средства,


Автоматическое обновление ключей

Из книги автора

Автоматическое обновление ключей Сертификат имеет ограниченный срок действия, который устанавливается в зависимости от возможностей современных криптографических алгоритмов и используемых длин ключей, а также с учетом практических соображений (например, объем


Управление историями ключей

Из книги автора

Управление историями ключей Концепция обновления ключей, ручного или автоматического, подразумевает, что в данный момент времени пользователь имеет много "старых" сертификатов и, по крайней мере, один "текущий" сертификат. Этот набор сертификатов и соответствующих


Взаимосвязи сертификатов и пар ключей

Из книги автора

Взаимосвязи сертификатов и пар ключей Если субъект PKI имеет много пар ключей, то должен иметь и много сертификатов, поскольку формат сертификата стандарта X.509 не позволяет ему указывать в поле Subject Public Key Info (информация об открытом ключе субъекта) несколько ключей. Это,


Порядок обновления ключей

Из книги автора

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