
- •3.2. Реляционные системы
- •Язык sql и реляционные операции.
- •Сравнения, ограниченные доменом
- •Домены и определение данных
- •Значения отношений
- •Определение данных
- •Свойства отношений
- •Виды отношений
- •Потенциальные ключи
- •Первичные и альтернативные ключи
- •22. Внешние ключи. Определение и свойства. Синтаксис для указания внешнего ключа. Ссылочная целостность.
- •Ссылочная целостность
- •23. Правила внешних ключей. Расширенный синтаксис задания внешнего ключа
Потенциальные ключи
Первичный ключ — это просто уникальный идентификатор для некоторого отношения.
Первичный ключ является частным случаем более общего понятия — потенциального ключа.
Определение
Пусть R— некоторое отношение. Тогда потенциальный ключ К для R — это подмножество множества атрибутов R, обладающее следующими свойствами:
1. Свойством уникальности Нет двух различных кортежей в отношении R с одинаковым значением К.
2. Свойством неизбыточности.
Никакое из подмножеств К не обладает свойством уникальности.
Каждое отношение имеет, по крайней мере, один потенциальный ключ, так как не содержит одинаковых кортежей; т.е. поскольку кортежи уникальны, то, по крайней мере, комбинация всех атрибутов обладает свойством уникальности и поэтому возможны два варианта.
Либо эта комбинация обладает свойством неизбыточности, а значит, будет потенциальным ключом (на самом деле единственным потенциальным ключом).
Либо существует по крайней мере одно подходящее подмножество этой комбинации, заведомо обладающее свойством уникальности и к тому же обладающее свойством неизбыточности.
Синтаксис операторов определения потенциального ключа для базового отношения (каждый оператор create base relation должен включать в себя, по крайней мере, одно определение потенциального ключа):
На практике отношения чаще всего имеют только один потенциальный ключ, хотя их может быть несколько.
Пример. Отношение ELEMENTS, представляет таблицу химических элементов. У каждого элемента есть уникальное имя, уникальное обозначение (например, обозначение свинца — "РЬ") и уникальное атомное число. Поэтому ясно, что в отношении есть три различных потенциальных ключа:
Терминология. Потенциальный ключ, состоящий из более чем одного атрибута, называется составным. Потенциальный ключ, состоящий из одного атрибута, называется простым.
Причина важности потенциальных ключей заключается в том, что они обеспечивают основной механизм адресации на уровне кортежей в реляционной системе.
Следовательно, единственный гарантируемый системой способ точно указать на какой-нибудь кортеж — это указать значение некоторого потенциального ключа.
Пример. С помощью выражения
S WHERE S# = 'S3‘
мы гарантированно получим не больше одного кортежа.
Аналогично, если атрибут SNAME также будет потенциальным ключом для отношения S с помощью выражения
S WHERE SNAME = 'Blake'
мы также гарантированно получим не более одного кортежа.
Потенциальные ключи имеют такое же фундаментальное значение для успешной работы реляционной системы, как адресация основной памяти для успешной работы машины, на которой эта система установлена
Выводы:
Отношения", которые не имеют потенциальных ключей, т.е. "отношения", допускающие дублирование кортежей, ограничивают отображение нарушений или отклонений от нормального режима работы в определенных обстоятельствах
Система, в которой не используются потенциальные ключи, иногда ограничена в возможностях отображения состояния, которое не является "действительно реляционным", даже если используемые в ней отношения и не допускают дублирования кортежей.