06. Главный и внешний ключи

  1. Идентификация первичных ключей
  2. Композитные ключи
  3. Проверка правильности ключей
  4. Проверка правильности ключей
  5. суммирование

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

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

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


Ядро базы данных не позволит вам вставить значение внешнего ключа, которое не имеет ссылки на внешний ключ

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

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

Идентификация первичных ключей

Первичный ключ должен однозначно идентифицировать строку. Каждая строка в нашей таблице должна иметь значение, которое однозначно ее идентифицирует.

Чтобы квалифицировать атрибут как первичный ключ, нам нужно убедиться, что он имеет следующие свойства:

Если бы у нас была таблица с пользователями, зарегистрированными на интернет-портале, ключ входа был бы основным. Он уникален во всей таблице, и после удаления логина пользователь удаляется. Главным ключом не может быть фамилия, потому что может быть много людей, которых зовут Ковальский. И это нарушает второй принцип, согласно которому ценность должна быть уникальной.
В некоторых случаях у нас может быть несколько кандидатов на первичный ключ. Рассмотрим тот же случай еще раз. Предположим, у нас есть дополнительная информация о пользователе: дата рождения, PESEL, электронная почта. Мы знаем, что два значения уникальны: PESEL и электронная почта. Поэтому оба могут быть предложены для первичного ключа в таблице User . Теперь только от нас зависит, выберем ли мы адрес электронной почты или PESEL. Я лично выбрал бы PESEL, потому что поиск в базах данных после значения типа INT (то есть целочисленного типа) намного быстрее, чем после строки. Однако, если это будет портал для входа в систему, вы должны принять во внимание, что заставить пользователя ввести PESEL при входе в систему сложнее, чем заставить его вписаться в адрес электронной почты.

@ @ HOME

Композитные ключи

Иногда одного значения недостаточно для однозначной идентификации стихотворения.

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

LessonID

StudentID

знак

01

01

5

01

02

2

02

01

3

Мы назначаем классы с основным ключом 01, а ученик с основным ключом 01 - пятый класс. К тому же студенту только по другому предмету с основным ключом 02 уже присвоено три балла. В этом случае у нас есть сложный мастер-ключ. Поскольку ни LessonID, ни StudentID по отдельности не отвечают требованиям к уникальности ключа, мы должны использовать составной ключ. В этом случае связывание LessonID и StudentID будет ключевым. Никто из них не может выполнить эту задачу индивидуально, но все они однозначно определяют каждую строку.

Проверка правильности ключей

Основные принципы управления и идентификации первичных ключей:

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

Проверка правильности ключей

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

В примере с составным корневым ключом у нас было два столбца LessonID и StudentID . Если бы мы могли видеть, как это выглядит в более широком контексте, мы могли бы сделать очень интересный вывод. LessonID и StudentID являются внешними ключами из таблиц Lesson и Student . Потому что с помощью LessonID мы можем получить информацию о LessonID 01, который lessonID 01, и из таблицы Student мы можем выбрать информацию о человеке, которому назначен StudentID .
Это суть ключей. Нам не нужно хранить значение поля, все, что нам нужно, это ключ. С его уникальной ценностью мы можем легко извлечь интересующую нас ценность.

суммирование

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

Вам понравилась эта статья? Поделись с другими!

Похожие

Мультиспортивные кардио часы TomTom [ВИДЕО]
TomTom, когда-то связанный главным образом с производством устройств спутниковой навигации, уже стал крупным игроком на рынке устройств для физически активных людей. Младший ребенок компании - TomTom Multi-Sport Cardio - попал в мои руки (и фактически в мою руку). Вот его тест. Начальные предположения Прежде всего - пока я использовал сторонние часы. Я потратил много
Бартош Горалевич из SEO агентство Elephate представляет результаты своего эксперимента, которые показывают, что по...
Бартош Горалевич из SEO агентство Elephate представляет результаты своего эксперимента, которые показывают, что поиск CTR не является фактором, влияющим на положение страницы. Бартош Горалевич, 08.12.2015, 11:15.
Сара о ситуации с Азаром: пришло время решить эту проблему
7 удивительных фактов о человеческом теле Многие из нас не осознают, насколько удивительны наши тела. От BrightSide они представляют несколько фактов, которые наверняка поразят вас. Количество
Вам понравилась эта статья?