Термины SQL: query, join, index, transaction, deadlock

Тема дорожной карты · Английский для IT

🔊 Словарь терминов с произношением →

Словарь SQL и реляционных СУБД устоялся за полвека, и русские переводы большинства терминов существуют, но в речи инженеров всё равно звучат английские. Query — запрос, to query the database — обращаться к БД; statement — оператор (SELECT, INSERT, UPDATE, DELETE). Table — таблица, row / record — строка, column / field — столбец, cell — ячейка. Primary key — первичный ключ, foreign key — внешний, composite key — составной, surrogate key — суррогатный, natural key. Constraint — ограничение: unique, not null, check, default. Index — индекс, to index a column, covering index, partial index, B-tree, hash index. Join — соединение: inner, left / right outer, full outer, cross join, self join; on clause — условие соединения. Clause — часть запроса: where clause, group by clause, having, order by, limit / offset. Aggregate — агрегатная функция, window function — оконная. Subquery — подзапрос, CTE (common table expression, конструкция WITH), view — представление, materialized view. Transaction — транзакция: begin, commit, rollback, savepoint; ACID — atomicity, consistency, isolation, durability; isolation level — уровень изоляции: read uncommitted, read committed, repeatable read, serializable. Lock — блокировка: row-level, table-level, shared, exclusive, to acquire / release a lock, lock contention — конкуренция за блокировки. Deadlock — взаимная блокировка, deadlock detected. Dirty read, phantom read, lost update — аномалии. Execution plan / query plan — план запроса, EXPLAIN, sequential scan / seq scan — полное сканирование, index scan, nested loop, hash join, cost. Normalization — нормализация, normal form, denormalize. Migration — миграция схемы, schema change, DDL / DML. Replication — репликация: primary / replica (ранее master / slave), lag — отставание реплики, failover — переключение. Sharding — шардирование, partitioning — секционирование. Vacuum (PostgreSQL) — сборка мусора, bloat — раздувание таблицы. Connection pool — пул соединений. Stored procedure, trigger, function. NULL — «нал», nullable — допускающий NULL. Cardinality — мощность (число уникальных значений), selectivity — селективность.

Как произносится

Query /ˈkwɪəri/, join /dʒɔɪn/, index /ˈɪndɛks/, transaction /trænˈzækʃən/, deadlock /ˈdɛdlɒk/, constraint /kənˈstreɪnt/ («констрЕйнт»), primary /ˈpraɪməri/, foreign /ˈfɒrɪn/ (g немая, «фОрин»), surrogate /ˈsʌrəɡət/, clause /klɔːz/ (как claws), aggregate /ˈæɡrɪɡət/ как существительное, subquery /ˈsʌbkwɪəri/, view /vjuː/, materialized /məˈtɪəriəlaɪzd/, isolation /ˌaɪsəˈleɪʃən/, serializable /ˌsɪəriəˈlaɪzəbl/, durability /ˌdjʊərəˈbɪləti/, acquire /əˈkwaɪər/, contention /kənˈtɛnʃən/, sequential /sɪˈkwɛnʃəl/, normalization /ˌnɔːrməlaɪˈzeɪʃən/, replica /ˈrɛplɪkə/ (ударение на первый слог), failover /ˈfeɪloʊvər/, shard /ʃɑːrd/, vacuum /ˈvækjuːm/, bloat /bloʊt/, cardinality /ˌkɑːrdɪˈnæləti/, NULL /nʌl/, SQL «сиквел» или по буквам, Postgres /ˈpoʊstɡrɛs/, ACID /ˈæsɪd/ как слово.

Как употребляется

  • The query does a seq scan on a ten-million-row table; add an index on created_at. — Запрос делает полное сканирование десяти миллионов строк, добавь индекс.
  • We hit a deadlock because two transactions lock rows in opposite order. — Deadlock, потому что две транзакции блокируют строки в противоположном порядке.
  • Wrap both writes in one transaction so they commit atomically. — Оберни обе записи в одну транзакцию, чтобы они фиксировались атомарно.
  • Left join users to orders and filter where order id is null. — Левое соединение users с orders и фильтр по пустому id заказа.
  • Replica lag is at 30 seconds; reads are stale. — Отставание реплики 30 секунд, чтение отдаёт устаревшее.
  • The migration adds a not-null column with a default. — Миграция добавляет столбец not null с дефолтом.
  • Run EXPLAIN ANALYZE and look at the cost. — Прогони EXPLAIN ANALYZE и посмотри стоимость.

Ловушки

Первая ловушка — row и raw: /roʊ/ (строка) и /rɔː/ (сырой) звучат по-разному, и raw SQL — «сырой SQL», а не «строка SQL». Вторая — foreign с произносимой g. Третья — primary / replica против master / slave: с 2020 года PostgreSQL и большинство проектов используют новые термины; в документации и речи предпочтительнее они. Четвёртая — index во множественном числе: в техническом контексте indexes, в математическом indices. Пятая — transaction и «транзакция» в биллинге: разные вещи. Шестая — schema как «схема архитектуры»: в контексте БД это структура таблиц; архитектурная схема — diagram. Седьмая — NULL читать как «нулл» с русским «у»: /nʌl/, как dull.

Связанные понятия

Полезные ресурсы