Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Первичные ключи

Читайте также:
  1. III. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ
  2. P.S.: не забываем исключить другую хирургическую патологию с болями в верхнем этаже брюшной полости (холецистит и т.п.)!!!
  3. Агапе благодаря исключительно силе воли?
  4. Биографическая реконструкция. Метки, ключи, границы памяти и ограничения метода
  5. ВЕТВИ ПОДКЛЮЧИЧНОЙ АРТЕРИИ.
  6. Включите затем аппарат вхолостую и убедитесь, что диск правильно вращается в направлении, обратном часовой стрелке.
  7. Включите моторчик мотивации!

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

Первичный ключ - это один из потенциальных ключей. Тот, который нам больше понравится. Вам какой больше нравиться? В реальной ситуации, новичок выберет номер паспорта. А что выберет профессионал? Профессионал добавит еще одно поле-счетчик, которое будет содержать уникальное для каждой записи значение. В Delphi такой тип поля называется AutoIncrement, в SQL Server есть целых 2 варианта - TimeStamp и свойтсво Identity поля.

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

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

Исторически термин “первичный ключ” появился и стал использоваться существенно ранее термина “потенциальный ключ”. Вследствие этого множество определений в реляционной теории были изначально сформулированы с упоминанием первичного (а не потенциального) ключа, например, определения нормальных форм. Так же термин “первичный ключ” вошёл в формулировку 12 правил Кодда как основной способ адресации любого значения отношения (таблицы) наряду с именем отношения (таблицы) и именем атрибута (столбца).

Альтернативный ключ - После выбора первичного ключа из набора потенциальных ключей, оставшиеся ключи называются альтернативными.

Внешний ключ - это ключ, расшифровка которого лежит в другой таблице.

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

Когда мы создаем какую-нибудь базу данных, например, для начисления зарплаты, нам не удобно всех работников упоминать в одной таблице. Если, например, какой-нибудь из них упоминается там не один раз (зарплата, премия, надбавки, снятия, налоги и пр.), то при изменении его/ее фамилии надо будет пробежаться по всем строкам, и поменять все вхождения. Это неудобно. Есть и другие поводы разделить такую таблицу.

Итак, имеем две таблицы:

Код работника Вид движения Сумма
  Оклад  
  Премия  
  Налоги -25
  Оклад  
... ... ...

 

Код работника Фамилия Имя Отчество
  Иванов Иван Иванович
  Петров Петр Иванович
  Сидорова Мария Ивановна

В первой таблице - с деньгами - столбец "Код работника" называется внешним ключом. Ясно, что он не может существовать без соответствующей строки из второй таблицы, в которой столбец "Код работника" - уже знакомый нам обычный первичный ключ. Вторая таблица - с фамилиями - является как бы "справочником фамилий" для первой.

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

Ранее мы обошли вопрос "А что будет, если не найдется работника с кодом, который мы использовали?" Ничего хорошего не будет. Такой ситуации надо всячески избегать, так как при этом возникнут сбои в нашей программе.

Ссылочная целостность, Refential Integrity - такое состояние, когда у нас все что надо правильно находится. Контроль ссылочной целостности - обеспечение такого состояния.

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

Простой ключ - это первичный ключ, состоящий из единственного атрибута.

Составной ключ - Если первичный ключ состоит из двух и более атрибутов, его называют составным ключом.

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

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


Дата добавления: 2015-07-14; просмотров: 190 | Нарушение авторских прав


Читайте в этой же книге: Лекция 1. Введение. История развития баз данных | Задачи управления базами данных | Статическое хэширование | Архитектура базы данных. Физическая и логическая независимость | Процесс прохождения пользовательского запроса | Пользователи банков данных | Основные функции группы администратора БД | Классификация моделей данных | Физическое проектирование базы данных | Иерархическая модель данных |
<== предыдущая страница | следующая страница ==>
Третий уровень| Усовершенствованные сбалансированные древовидные индексы

mybiblioteka.su - 2015-2024 год. (0.008 сек.)