Ответ
Первичный ключ (Primary Key, PK) — это столбец или набор столбцов в таблице реляционной базы данных, который однозначно идентифицирует каждую запись (строку).
Основные свойства и назначение:
- Уникальность: Каждое значение первичного ключа должно быть уникальным в пределах таблицы. Это гарантирует, что каждая запись может быть однозначно найдена.
- Неизменность (NOT NULL): Первичный ключ не может содержать
NULLзначения. Каждая запись должна иметь определенный идентификатор. - Единственность: В одной таблице может быть только один первичный ключ, который может состоять из одного или нескольких столбцов (составной ключ).
- Индексирование: Как правило, первичный ключ автоматически индексируется, что значительно ускоряет операции поиска и соединения таблиц.
- Целостность данных: Обеспечивает ссылочную целостность при создании связей с другими таблицами через внешние ключи (Foreign Key).
Пример создания таблицы с первичным ключом в SQL (SQLite):
CREATE TABLE users (
id INTEGER PRIMARY KEY, -- Столбец 'id' является первичным ключом
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE
);
В этом примере id — это первичный ключ. При добавлении новой записи СУБД автоматически гарантирует его уникальность и непустоту.
Пример в Django ORM:
В Django ORM первичный ключ обычно создается автоматически как поле id для каждой модели, если не указан явно другой столбец с primary_key=True.
from django.db import models
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
email = models.EmailField(unique=True)
# Поле 'id' (AutoField) будет автоматически создано как PrimaryKey
def __str__(self):
return self.username
Первичные ключи являются фундаментальным элементом для организации данных, обеспечения их целостности и построения эффективных связей между таблицами в реляционных базах данных.