SQL и BD

Теорема CAP

Свойство Что означает
C — Consistency (Согласованность) Все узлы возвращают одни и те же данные при обращении.
A — Availability (Доступность) Каждый запрос получает ответ (успешный или с ошибкой) — даже если какие-то узлы отвалились.
P — Partition tolerance (Устойчивость к разделению сети) Система продолжает работать, даже если есть сбой связи между узлами.

В распределённой системе невозможно одновременно гарантировать все три свойства: C, A и P. При наличии сетовой перегородки (Partition), нужно выбрать между Consistency и Availability.

Выбор Поведение
CP (Consistency + Partition tolerance) Лучше отказать в доступности, чем вернуть несогласованные данные
AP (Availability + Partition tolerance) Всегда возвращать ответ, даже если он устарел или неточный
CA невозможно при P Если есть Partition, ты не можешь обеспечить и C, и A одновременно
Система Класс CAP Пояснение
MongoDB (в базе) AP Гарантирует доступность, но может вернуть устаревшие данные
HBase / Bigtable CP Строгая согласованность, но может быть недоступна
Cassandra AP (по умолчанию), но можно настраивать tradeoff
Zookeeper CP Используется там, где критична согласованность

DDL операции

Операторы определения данных (Data Definition Language, DDL): • CREATE создает объект БД (базу, таблицу, представление, пользователя и т. д.); • ALTER изменяет объект; • DROP удаляет объект; • TRUNCATE удаляет таблицу и создает ее пустую заново, но если в таблице были foreigh key, то создать таблицу не получится, rollback после TRUNCATE невозможен.

❔ ****Создание view к какому типу sql операций относится? ❔ Создание представления (VIEW) в SQL относится к DDL-операциям (Data Definition Language) — языку определения данных

DML

Операторы манипуляции данными (Data Manipulation Language, DML): • SELECT выбирает данные, удовлетворяющие заданным условиям; • INSERT добавляет новые данные; • UPDATE изменяет существующие данные; • DELETE удаляет данные при выполнении условия WHERE;

TCL

Операторы управления транзакциями (Transaction Control Language, TCL): • BEGIN служит для определения начала транзакции; • COMMIT применяет транзакцию; • ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции; • SAVEPOINT разбивает транзакцию на более мелкие

В SQL SetTransaction используется для установки свойств текущей транзакции, таких как уровень изоляции. В зависимости от СУБД (PostgreSQL, Oracle, Firebird и т.д.), синтаксис может немного отличаться, но общее назначение — установить параметры до начала транзакции.

DCL

Операторы определения доступа к данным (Data Control Language, DCL): • GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом; • REVOKE отзывает ранее выданные разрешения; • DENY задает запрет, имеющий приоритет над разрешением