1. CRUD-операции в базах данных (Create, Read, Update, Delete)
Архитектура управления данными: концепция CRUD
Любое современное программное обеспечение, от простых мобильных заметок до сложных банковских систем, базируется на постоянном взаимодействии с информацией. Для стандартизации этого взаимодействия в программировании и проектировании баз данных используется концепция CRUD. Это фундаментальный паттерн, описывающий жизненный цикл любой информационной сущности.
> CRUD — это акроним, обозначающий четыре базовые функции, используемые при работе с базами данных: Create (создание), Read (чтение), Update (модификация) и Delete (удаление). > > Intellect.icu
Термин был популяризирован в 1983 году Джеймсом Мартином в его книге по проектированию информационных систем. С тех пор эти четыре операции стали стандартом де-факто для реляционных баз данных, таких как PostgreSQL и MySQL, а также легли в основу архитектурного стиля REST API.
Create: Создание новых записей
Операция создания отвечает за добавление новых данных в систему. В контексте реляционных баз данных это означает добавление новой строки в существующую таблицу. Каждая новая запись обычно получает уникальный идентификатор (Primary Key), который позволяет в дальнейшем обращаться именно к ней.
В языке структурированных запросов (SQL) за операцию создания отвечает команда INSERT INTO.
При выполнении этой команды база данных проверяет соответствие типов данных и ограничения (например, уникальность email). Если проверка пройдена успешно, данные физически сохраняются на диске.
Представим интернет-магазин, который ежедневно регистрирует новых покупателей. Если в день регистрируется 500 новых пользователей, база данных выполняет операцию Create 500 раз. Если каждая запись пользователя занимает 2 килобайта памяти, то за день база данных увеличится на 1000 килобайт (около 1 мегабайта) только за счет новых регистраций.
Read: Извлечение и чтение информации
Чтение — это процесс получения данных из базы без их изменения. Это самая частая операция в большинстве веб-приложений. Когда пользователь открывает ленту новостей, просматривает каталог товаров или заходит в свой профиль, система выполняет операцию Read.
Для извлечения данных используется команда SELECT. Она обладает мощным синтаксисом, позволяющим не просто скачивать всю таблицу, но и гибко фильтровать информацию.
Основные возможности операции чтения: * Фильтрация по условиям (поиск конкретных значений) * Сортировка результатов (по алфавиту, по дате, по возрастанию цены) * Ограничение количества возвращаемых строк (пагинация) * Объединение данных из нескольких связанных таблиц
В данном запросе используется математический оператор сравнения , где — это возраст пользователя, а — минимально допустимое значение. База данных просканирует таблицу и вернет только тех пользователей, чей возраст больше или равен 18 годам, отсортировав их по имени.
Если в таблице магазина находится 100 000 товаров, операция SELECT без фильтрации попытается загрузить все 100 000 записей в оперативную память сервера. Это может привести к сбою. Использование правильных условий фильтрации позволяет извлечь, например, только 20 товаров для одной страницы каталога, что занимает миллисекунды.
Update: Обновление существующих данных
Жизнь данных динамична: пользователи меняют пароли, товары получают скидки, а статьи редактируются. За изменение уже существующих записей отвечает операция Update, которая реализуется через SQL-команду UPDATE.
Критически важным элементом операции обновления является точное указание того, какие именно строки нужно изменить. Если не указать условие, база данных обновит абсолютно все записи в таблице.
В этом примере мы обновляем цену и количество на складе только для того товара, у которого идентификатор .
Рассмотрим финансовый пример. Допустим, товар стоил 2000 руб., и магазин решил применить скидку в 25%. Новая цена рассчитывается как руб. Система выполняет операцию Update, заменяя старое значение 2000 на новое значение 1500 в соответствующей ячейке базы данных.
Delete: Удаление информации
Последняя операция жизненного цикла — удаление. Она применяется, когда данные больше не нужны системе. В SQL для этого используется команда DELETE.
Как и в случае с обновлением, операция удаления требует строгой фильтрации, иначе можно потерять всю таблицу.
Здесь используется оператор строгого неравенства , который указывает базе данных удалить всех пользователей, чья дата последней авторизации меньше (то есть раньше), чем 1 января 2022 года.
В современной разработке существует два подхода к удалению данных:
DELETE. Данные исчезают навсегда (если нет резервных копий).is_deleted меняется с 0 на 1). Для этой операции фактически используется команда UPDATE, а не DELETE.Мягкое удаление позволяет восстановить данные при случайном нажатии кнопки "Удалить" пользователем. Если пользователь удаляет свой профиль, система просто скрывает его, меняя статус. База данных размером 50 гигабайт не уменьшится в объеме при мягком удалении, так как физически байты остаются на диске.
Сводная таблица операций
Для лучшего понимания того, как концепция CRUD проецируется на различные технологии, полезно сопоставить ее с командами баз данных и методами сетевых протоколов.
| Операция CRUD | Назначение | Команда SQL | Метод HTTP (REST API) |
| :--- | :--- | :--- | :--- |
| Create | Создание новой сущности | INSERT | POST |
| Read | Чтение и поиск данных | SELECT | GET |
| Update | Изменение существующих данных | UPDATE | PUT / PATCH |
| Delete | Удаление сущности | DELETE | DELETE |
Понимание этих четырех базовых операций является ключом к разработке любых информационных систем. Независимо от того, используете ли вы чистый SQL-код или современные ORM-библиотеки вроде Sequelize, под капотом всегда будут выполняться именно эти фундаментальные действия.