Что такое уникальный ключ (primary key) в контексте баз данных?

«Что такое уникальный ключ (primary key) в контексте баз данных?» — вопрос из категории Базы данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Уникальный ключ (первичный ключ, primary key) — это атрибут или минимальный набор атрибутов таблицы, однозначно идентифицирующий каждую её запись (строку). Его значение должно быть уникальным и не равным NULL для всех строк в таблице.

Примеры в iOS-технологиях:

1. Core Data (атрибут с флагом): В модели данных (.xcdatamodeld) для атрибута устанавливается свойство "Primary Key".

// Entity "User" с атрибутом "id" как первичным ключом
@NSManaged public var id: UUID

2. Realm:

import RealmSwift

class User: Object {
    @Persisted(primaryKey: true) var _id: ObjectId // Авто-генерируемый
    // ИЛИ
    @Persisted(primaryKey: true) var userId: String // Пользовательский
}

3. SQLite (прямой запрос):

CREATE TABLE Users (
    id INTEGER PRIMARY KEY AUTOINCREMENT, -- Искусственный ключ
    email TEXT UNIQUE NOT NULL            -- Естественный ключ
);

Зачем он нужен?

  • Гарантия уникальности: Исключает дублирование записей.
  • Связи между таблицами: Используется как внешний ключ (foreign key) для создания отношений "один-ко-многим".
  • Эффективный поиск: Индексируется по умолчанию, что ускоряет операции SELECT, UPDATE, DELETE по ключу.
  • Типы ключей:
    • Естественный (Natural): Имеет смысл в предметной области (email, паспорт).
    • Суррогатный (Surrogate): Искусственный идентификатор без бизнес-смысла (UUID, автоинкрементное число).