На Горох
Информатика, 9 класс

§ 2. Ключ таблицы базы данных

"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.

Объяснение темы В оглавлении: § 2. Ключ таблицы базы данных

Кратко о теме

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

Объяснение темы

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

Определения и обозначения

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

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

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

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

Как это устроено

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

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

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

Бывает, что ни одно поле не уникально отдельно. Тогда для идентификации объединяют несколько полей: например, код ученика и код мероприятия. Код ученика повторяется, потому что один человек может участвовать во многих мероприятиях; код мероприятия тоже повторяется, потому что в нём участвуют разные ученики. Но их сочетание может быть уникальным для каждой записи.

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

Виды ключей таблицы базы данных

Вид ключаИз чего состоитУсловие уникальностиПример
Ключ из одного поляОдно полеЗначения поля не повторяютсяНомер читательского билета
Составной ключДва или более полейУникально сочетание значений полейКод ученика и код предмета
Первичный ключОдно поле или набор полейОднозначно определяет каждую записьНомер записи в таблице

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

Разбор задач

Задача 1. В таблице «Книги» есть поля «Название», «Автор» и «Инвентарный номер». Определите, какое поле можно выбрать ключом. Для решения нужно проверить не значимость каждого поля, а возможность отличить по нему любую книгу от остальных. Название и автор могут встретиться у нескольких экземпляров.

  1. Проверяем название: разные книги могут иметь одинаковые названия, поэтому поле не гарантирует уникальность.
  2. Проверяем автора: один автор может написать несколько книг, значит, его имя тоже может повторяться.
  3. Проверяем инвентарный номер: если он присвоен каждой книге отдельно, его значение уникально для каждой записи.

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

Задача 2. В таблице «Участие» записаны код ученика, код мероприятия и результат. Один ученик может участвовать во многих мероприятиях. Предложите ключ, который отличает записи об участии друг от друга. Учтите, что в таблице может быть много учеников и мероприятий.

  1. Код ученика не уникален, потому что один ученик появляется в таблице для каждого мероприятия, в котором участвует.
  2. Код мероприятия тоже не уникален: на одном мероприятии могут выступать разные ученики.
  3. Проверяем сочетание кодов ученика и мероприятия: оно указывает на конкретное участие, если одна запись хранится для каждой такой пары.

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

Задача 3. В таблице «Заказы» поле «Номер заказа» уникально, а поле «Дата» повторяется. Записи нужно связывать с таблицей «Клиенты». Укажите ключ таблицы заказов и объясните, почему дата для этого не подходит. Нужно отделить идентификатор записи от сведений о ней.

  1. Проверяем номер заказа: по условию он не повторяется и потому позволяет найти одну запись.
  2. Проверяем дату: в один день может быть оформлено несколько заказов, так что она не указывает на один заказ.
  3. Для связи с таблицей клиентов используют однозначный идентификатор заказа, а не дату оформления.

Ответ: ключом таблицы «Заказы» служит поле «Номер заказа». Дата — описательное поле: она сообщает, когда заказ сделан, но может совпадать у нескольких записей. Уникальный номер позволяет точно выбрать нужный заказ для связи.

Типичные ошибки

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

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

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

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

Связь с другими темами

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

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

Что запомнить

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

Частые вопросы по теме

Может ли в таблице быть несколько подходящих ключей?

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

Обязательно ли ключ должен состоять из одного поля?

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

Почему фамилия человека не всегда подходит на роль ключа?

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

Могут ли значения отдельных полей составного ключа повторяться?

Да. Например, код ученика может встречаться во многих записях, а код мероприятия — у многих участников. Главное, чтобы уникальным было сочетание значений обоих полей.

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

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

Спросить по теме параграфа

§ 2. Ключ таблицы базы данных

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.