SQL и Qt 65

SQL и Qt

Репликация: master-slave, master-master, для чего нужна

Введение Репликация поддерживает синхронизированные копии БД на нескольких серверах — в статье разберём основные топологии репликации и типичные практические задачи, которые она решает: отказоустойчивость (доступность БД при отказе…

SQL и Qt

Шардинг: горизонтальное масштабирование на уровне СУБД

Введение Репликация (статья 429) масштабирует чтение, распределяя нагрузку между несколькими полными копиями одних и тех же данных, но не решает проблему масштабирования записи или ограничения по объёму данных,…

SQL и Qt

Резервное копирование и восстановление БД

Введение Независимо от используемой СУБД, репликации (статья 429) или иных мер отказоустойчивости, резервное копирование остаётся фундаментальной, незаменимой защитой от потери данных — в статье разберём основные подходы к…

SQL и Qt

Выбор СУБД для проекта: критерии и компромиссы

Введение В заключительной статье блока 4 подведём практический итог — систематизируем критерии выбора между PostgreSQL, MySQL, SQLite, SQL Server и другими СУБД для конкретного нового проекта, опираясь на…

SQL и Qt

SQL-инъекции: механизм атаки и параметризованные запросы

Введение SQL-инъекция — одна из самых известных и опасных уязвимостей веб/desktop-приложений, работающих с БД, упоминавшаяся вскользь в статье 425 (QSqlQuery::bindValue()) — в этой статье разберём механизм атаки подробно,…

SQL и Qt

Права доступа и роли в СУБД: GRANT/REVOKE, принцип наименьших привилегий

Введение Статья 406 кратко упомянула использование представлений для ограничения доступа — в этой статье разберём систему прав доступа СУБД подробнее: роли, конкретные привилегии (SELECT, INSERT, UPDATE, DELETE отдельно…

SQL и Qt

Шифрование данных в БД: at-rest и in-transit

Введение Криптографический цикл (статьи 371-380) разобрал шифрование на общем, прикладном уровне — в этой статье применим эти концепции конкретно к данным, хранимым в БД: шифрование «в покое» (at-rest,…

SQL и Qt

ORM: концепция, плюсы и минусы относительно чистого SQL

Введение Весь предыдущий цикл разбирал SQL напрямую — ORM (Object-Relational Mapping) предлагает альтернативный подход: работу с данными через объекты языка программирования, автоматически транслируемую в SQL-запросы соответствующей библиотекой, без…

SQL и Qt

Пул соединений (connection pooling): зачем и как

Введение Установка нового соединения с БД — относительно затратная по времени операция (сетевой handshake, аутентификация, статья 434) — пул соединений избегает повторения этой затраты для каждого отдельного запроса,…