Ответ
Primary Key (PK) — это ограничение (constraint), которое однозначно идентифицирует каждую строку (запись) в таблице реляционной базы данных.
Основные свойства:
- Уникальность: В таблице не может быть двух строк с одинаковым значением первичного ключа.
- Отсутствие NULL: Поле (или комбинация полей) первичного ключа не может содержать значение
NULL. - Стабильность: Значение PK, как правило, не должно изменяться в течение жизни строки.
Практическое применение:
- Гарантия целостности данных.
- Создание кластеризованного индекса (в большинстве СУБД), что ускоряет поиск по PK.
- Использование в качестве Foreign Key в связанных таблицах для установления отношений.
Пример в SQL и JPA:
-- SQL: Создание таблицы с первичным ключом
CREATE TABLE users (
id BIGINT PRIMARY KEY, -- Простой первичный ключ
email VARCHAR(255) UNIQUE NOT NULL
);
// Java (JPA/Hibernate): Аннотация @Id
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; // Поле первичного ключа
private String email;
// ... другие поля и методы
}
PK может быть простым (одно поле) или составным (несколько полей, аннотация @IdClass или @EmbeddedId).