Базы данных нужны для хранения данных и их обработки. Бывают реляционные (SQL) и NoSQL системы управления базами данных.
Реляционные базы данных (SQL)
Наиболее распространенными базами данных являются реляционные или SQL — данные в них хранятся во взаимосвязаанных таблицах. Реляционные СУБД поддерживают транзакционную модель работы с данными, что важно для использования в составе систем, требовательных к надёжности хранения и целостности информации. Транзакция — это набор операций, который может быть выполнен либо весь и успешно, либо не выполнен вообще. Транзакционный подход гарантирует сохранение целостности данных, надёжную и предсказуемую работу с системой.
Типичные представители SQL СУБД: MySQL / MariaDB, PostgreSQL, MS SQL и Oracle. MySQL, MariaDB и PostgreSQL — бесплатны и для сайтов используются чаще всего. MS SQL и Oracle — платные и реже используются в веб‑проектах, но чаще применяются в корпоративных приложениях. Для обычных проектов в техническом плане нет существенной разницы какую СУБД использовать, но в экономическом плане выгоднее использовать самую распространенную MariaDB или PostgreSQL — больше разработчиков, ниже стоимость поддержки и разработки.
Базы данных и хранилища NoSQL
Есть еще так называемые NoSQL базы данных и хранилища — например, MongoDB, CouchDB, Redis, Memcached, Cassandra и Scylla. Они значительно моложе реляционных баз данных, а также существенно отличаются от них по структуре хранения и механикам работы с данными. NoSQL СУБД применяются чаще не для хранения всех данных приложения, а лишь для решения специфических задач (журналирование, кэширование, очереди заданий, распределённое хранение данных) и поэтому менее распространены в простых проектах.
Рекомендации
В качестве основного хранилища предпочтительнее использовать реляционную СУБД из‑за поддержки транзакционности и общей надёжности. Для обычных проектов рационально использовать MySQL или PostgreSQL — на простых операциях не очень заметна разница между различными реляционными базами данных. В наших проектах мы обычно склоняемся к использованию PostgreSQL.
Как правило, выбор платформы — системы управления сайтом или фреймворка, а иногда даже языка программирования уже в какой‑то мере обуславливает выбор базы данных для проекта. Системы управления сайтами на PHP обычно полноценно поддерживают в качестве БД только MySQL / MariaDB, а продукты от Microsoft, как правило, используют в одной связке, например, .NET + MS SQL. Фреймворки реже диктуют выбор конкретной СУБД — обычно они поддерживают практически все реляционные системы управления базами данных.
Нереляционные СУБД лучше применять там, где их использование позволит увеличить скорость работы приложения, но нет необходимости в обеспечении сверхнадёжного хранения данных.