Атрибуты, ключи

19.09.2025 Обновлено: 19.09.2025

Лекция 3. Атрибуты и ключи

Термины

  • Отношение — таблица в БД.
  • Кортеж — строка значений в таблице.
  • Атрибут — столбец в таблице.

Свойства

  • Отношения не упорядочены между собой.
  • Атрибуты внутри отношения не упорядочены.
  • Каждый кортеж уникален.

У каждого атрибута (столбца) должно быть уникальное имя в рамках своей таблицы.

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

Info

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

Основные виды атрибутов

Вид атрибутаОписаниеПример
ПростойНеделимый, нельзя разделить на более мелкие частиИмя, цена
СоставнойДелимый, состоит из нескольких податрибутовАдрес (страна, город, улица, дом)
ОднозначныйИмеет одно значение для каждой записиДата рождения, ID пользователя
МногозначныйМожет иметь несколько значенийНомера телефонов, e-mail’ы человека
ПроизводныйВычисляется из других атрибутовСтоимость со скидкой = цена − цена × процент_скидки

Основные виды доменов

Вид доменаПример
Тип данных + ограниченияVARCHAR(50) (имя), DECIMAL(10, 2) (цена), ограничения UNIQUE, NOT NULL
Целостность данныхСвязывание таблиц через FOREIGN KEY → PRIMARY KEY гарантирует связность и целостность данных
СогласованностьE-mail должен содержать @, возраст $\ge 0$ и т.д.

Характеристики

  • Степень отношения — количество атрибутов.
  • Кардинальность отношения — количество кортежей в таблице.
  • Кардинальность атрибута — количество уникальных значений в атрибуте.
  • Селективность — количество (или доля) строк, удовлетворяющих выражению WHERE.

Реляционные ключи

  • Суперключ — набор атрибутов, уникально идентифицирующий каждый кортеж.
  • Потенциальный ключ — минимальный суперключ (нельзя выбросить ни одного атрибута без потери уникальности).
  • Первичный ключ (Primary Key) — выбранный потенциальный ключ.
  • Внешний ключ (Foreign Key) — ссылается на PK из другой таблицы.
  • Альтернативный ключ — потенциальный ключ, не выбранный первичным.

Типы реляционных ключей

  • Простой — состоит из одного атрибута.
  • Составной — из нескольких атрибутов.
  • Естественный — атрибут, который сущность содержит сама по себе и который имеет смысл (фамилия, если есть гарантия уникальности).
  • Суррогатный — атрибут, не имеющий смысла для сущности (например, id).
Important

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

Tip

Лучше всего использовать суррогатный ключ:

  • целочисленный (SERIAL, BIGSERIAL), или
  • UUID (Universal Unique Identifier).

Типы данных

  • Целочисленные (smallint, int, bigint)
  • С плавающей точкой (decimal, real)
  • Строки (varchar, char, text)
  • Дата и время (date, time, timestamp, interval)
  • Логический (bool)
  • Геометрические (point, path, line)
  • JSON
  • NULL
Тип данныхПояснение
smallintЦелое небольшого диапазона ($-32768 … 32767$)
intСтандартное целое, 4 байта ($-2^{31} … 2^{31}-1$)
bigintОчень большие целые числа, 8 байт
decimalЧисло с фиксированной точностью
realЧисло с плавающей точкой (аналог float)
varcharСтрока переменной длины с ограничением
charСтрока фиксированной длины
textДлинный текст без ограничения длины
date / timeДата / время
timestampОтметка времени (дата + время)
intervalПромежуток времени
booltrue / false
pointГеометрическая точка
pathГеометрический путь из нескольких точек
lineЛиния бесконечной длины
JSONСтруктурированные данные в формате JSON

DML

Info

Язык манипулирования данными.

ВидыОписание
SELECTПолучение данных из таблиц
INSERTДобавляет новые кортежи в таблицу
UPDATEОбновляет существующие кортежи
DELETEУдаляет существующие записи по условию
MERGEВыполняет вставку и обновление одновременно:
• запись существует → обновляем
• записи нет → добавляем новую

DDL

Info

Язык описания (определения) данных.

ВидыОписание
CREATE TABLEСоздаёт таблицу
ALTER TABLEИзменяет структуру существующей таблицы
DROPУдаляет таблицу из БД
TRUNCATEУдаляет все кортежи, оставляя структуру таблицы для дальнейшего использования