Первичный ключ в базе данных SQL: что это такое, преимущества и как выбрать
Опубликовано: 2021-05-25Оглавление
Что такое первичный ключ?
Проектирование новой базы данных в SQL сопряжено со множеством уникальных возможностей. Определение подходящего первичного ключа является одним из наиболее важных решений, которые вам придется принять. Основная цель первичного ключа проста и понятна.
Первичный ключ играет двоякую фундаментальную роль. Во-первых, это помогает определить отношения. Во-вторых, это помогает реализовать эти отношения. Другими словами, без первичного ключа базы данных отношений не существовали бы. Понятно, что понятие первичного ключа звучит необычно.
Но что, если мы скажем вам, что вы использовали первичные ключи в своей повседневной жизни, не осознавая этого. В каждый момент бодрствования мы буквально окружены первичными ключами в мире баз данных, и тем не менее принимаем их как должное. Например, рассмотрите свой студенческий билет. Это классический пример необходимости первичного ключа. Точно так же каждый сотрудник имеет уникальный код компании, и каждая страна в мире имеет уникальное имя и код.
Читать: Нормализация в SQL
Каковы преимущества первичного ключа?
Первичный ключ в SQL определяется как единственное значение или комбинация нескольких значений из таблицы. Он отчетливо представляет каждую запись в таблице. Доступ к этому значению гарантирует своевременный доступ к размещению связанной записи в таблице в дополнение к другим значениям из той же записи. На этом этапе у вас может возникнуть важный вопрос. Обязательно ли генерировать первичный ключ в каждой таблице? Точно нет.
SQL не требует создания первичного ключа. Однако лучшие и наиболее эффективные методы моделирования баз данных настоятельно рекомендуют создавать первичный ключ для каждой таблицы в SQL. Помимо того, что первичный ключ является общим полем связи между таблицами, он обладает многочисленными преимуществами.
В приведенном ниже списке перечислены основные преимущества первичного ключа:
- Поскольку первичный ключ служит индексом, операции с базой данных, основанные на скорости, такие как сортировка и поиск записей, становятся быстрее.
- Первичный ключ помогает быстро идентифицировать и находить уникальные строки в конкретной таблице базы данных.
- В безопасном режиме только определенные записи могут быть однозначно идентифицированы с использованием первичного ключа, чтобы обновления и удаление затрагивали только определенные строки, а не большие объемы данных.
- При использовании в качестве внешних ключей в других таблицах базы данных они помогают поддерживать ссылочную целостность.
Как выбрать первичный ключ?
Таблицы составляют основные объекты в базе данных SQL. Эти таблицы хранят данные в виде записей или строк. Следовательно, чтобы идентифицировать каждую строку таблицы, нам нужно найти столбец в той же таблице с другим входным значением для каждой строки. Например, предположим, что у нас есть таблица с данными о каждом гражданине США. Столбец с именем 'social_security_number' поможет отличить одну строку от другой в такой таблице.
Аналогично рассмотрим еще один пример. Предположим, у нас есть таблица сберегательных счетов в частном банке. Столбец с именем «account_number» можно использовать для уникальной идентификации определенных строк в этой таблице.
В обоих этих примерах после того, как вы определили столбец с другим значением для каждой строки в таблице, то есть «social_security_number» и «account_number», вы можете создать свой первичный ключ. Этот первичный ключ будет вашим основным идентификатором для каждой строки в таблице на основе определенного столбца, который вы идентифицировали.
Таким образом, признаком образцового дизайна базы данных является первичный ключ в SQL. Поэтому само собой разумеется, что выбранный первичный ключ должен быть уникальным на 100%, и должно существовать уникальное значение первичного ключа для каждой строки данных. Как правило, отдельные лица склонны полагаться на саму систему управления базами данных для создания уникального идентификатора.
Характеристики сильного первичного ключа следующие:
- Надежный первичный ключ обычно имеет небольшую длину, компактен и содержит наименьшее количество возможных атрибутов. Длинные типы данных и составные ключи усложняют SQL. Длина первичного ключа не должна превышать 900 байт.
- Первичные ключи, которые являются полностью числовыми, помогают повысить производительность запросов.
- Избегайте использования специальных символов или комбинации прописных и строчных букв. Избегайте использования текстовых типов данных, так как для сравнения строковых значений SQL требуется значительно больше времени, чем для числовых значений.
- Избегайте идентифицирующей информации из неключевых столбцов в той же строке, таких как почтовые индексы, адреса электронной почты и номера социального страхования. Если первичный ключ основан на реальных данных, возможно, в какой-то момент в будущем его придется изменить, что является нежелательной практикой моделирования. Если первичные ключи являются произвольными идентификаторами, данные, отображаемые для пользователя, могут позже измениться, но идентификаторы не обязаны изменяться.
- Значение первичного ключа должно оставаться стабильным и не изменяться.
Необходимо отметить, что первичные ключи используют технический механизм, гарантирующий, что каждая строка имеет уникальное непустое значение в столбце первичного ключа. Это означает, что значение первичного ключа записи не может быть нулевым. Кроме того, предположим, что вы пытаетесь вставить новое значение, дубликат которого можно найти в столбце первичного ключа. В этом случае вставка новой строки будет отклонена первичным ключом.
Оформить заказ: идеи и темы проекта SQL
Первичные ключи с более чем одним столбцом
В некоторых случаях не существует естественного первичного ключа с одним столбцом. Когда для определения первичного ключа используется несколько столбцов, он называется многостолбцовым или составным первичным ключом. Например, предположим, что у нас есть таблица «reservation» со столбцами «customer_name», «reservation_day», «reservation_time» и «number_of_people».
Здесь «имя_клиента» нельзя использовать как первичный ключ, потому что, естественно, у клиента может быть более одного бронирования на разные дни или даже на один и тот же день. Поэтому мы добавляем «reservation_day» и «reservation_time» к первичному ключу, чтобы сделать комбинацию уникальной для каждого значения.
Это соображение не должно превышать более 32 столбцов. Чем больше столбцов, тем больше требуется места для хранения. Синтаксис добавления первичного ключа с несколькими столбцами отличается от добавления первичного ключа с одним столбцом.
Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Подводя итоги
Вы когда-нибудь звонили в службу поддержки и просили ваш номер клиента? Возможно, вы даже забыли об этом, когда у вас спрашивают ваш почтовый индекс или номер телефона.
Вы когда-нибудь задумывались, почему? Ну, короткий ответ - первичные ключи. Длинный ответ заключается в том, что преимущества первичного ключа являются отправной точкой всех систем баз данных. Без первичных ключей базы данных не работали бы так, как сейчас, или, если быть точным, вообще не работали бы.
Если вам интересно узнать о SQL и разработке полного стека, ознакомьтесь с программой Executive PG IIIT-B и upGrad по разработке программного обеспечения полного стека, которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические практические семинары, наставничество с отраслевыми экспертами, индивидуальные встречи с отраслевыми наставниками, более 400 часов обучения и помощь в трудоустройстве в ведущих фирмах.
Что такое первичные ключи в SQL?
Первичный ключ — это поле с уникальными значениями, которое используется для определения личности объекта. После определения первичного ключа его нельзя удалить или изменить. По сути, первичный ключ — это особая характеристика таблицы, которая становится основой для связей между таблицами. Первичный ключ всегда определяется в первом столбце таблицы, который нельзя изменить. Он играет очень важную роль в логической и физической структуре записи данных. Поскольку первичный ключ используется для уникальной идентификации записей, они называются ключами-кандидатами.
Каковы характеристики первичного ключа в SQL?
Первичный ключ — это столбец или группа столбцов, которые однозначно идентифицируют каждую запись в таблице. Таблица может иметь только один первичный ключ. Для поддержания целостности всегда требуется первичный ключ. Первичный ключ должен состоять из комбинации столбцов, которые отличаются друг от друга. Если первичный ключ состоит только из одного столбца, он называется простым первичным ключом. Механизм базы данных использует первичный ключ для поиска и обновления записи в базе данных. Первичный ключ не может быть нулевым, потому что нулевой означает, что он не определен или неизвестен. Первичный ключ может быть одностолбцовым или многостолбцовым. Значения первичного ключа могут быть уникальными или неуникальными. Первичный ключ может быть проиндексирован. Первичный ключ помогает ядру базы данных поддерживать целостность таблицы. Первичный ключ может быть легко идентифицирован в базе данных.
Как выбрать первичный ключ в SQL?
Первичный ключ — самый важный столбец в таблице. Это идентификаторы, используемые вашими приложениями для уникальной идентификации каждой записи. Поле, которое вы выбираете в качестве первичного ключа, должно быть уникальным и не нулевым. Первичные ключи обычно являются лучшими столбцами-кандидатами для индексации. Первичный ключ используется для: уникальной ссылки на каждую запись в таблице, для поиска идентификатора записи, данные которой у вас уже есть, чтобы гарантировать, что каждая строка имеет допустимое значение в первичном ключе. Чтобы данные в таблице оставались действительными и непротиворечивыми, убедитесь, что все значения первичного ключа уникальны и что ни одно значение первичного ключа не равно null.