База данных
Введение в базы данных
С JSON разобрались. Переходим к главному, к базам данных. Данные в них могут хранится самыми различными способами. При этом исторически сложилось так, что наибольшее распространение получила реляционная модель баз данных.
При использовании реляционной модели данные хранятся в виде таблиц, с определенным набором данных, чья структура жестко задается на этапе проектирования базы данных. Описание структуры данных в реляционных базах данных называется схемой. Она определяет состав таблиц, структуру полей в этих таблицах, а также отношения между ними.
SQL
В СУБД (Система Управления Базами Данных) для управления данными с реляционной моделью используется язык SQL.
SQL - Structured Query Language (Язык структурированных запросов). Это декларативный язык, и это означает, что его команды описывают только необходимое действие (найти данные, удалить их, изменить), а каждая СУБД уже сама решает, как именно его выполнить.
Существует множество различных реляционных СУБД. В числе самых распространенных можно назвать Oracle, MySQL, MS SQL, PostgreSQL. Кстати, AppMaster использует именно PostgreSQL, а это означает, что используется современная продвинутая СУБД, которая работает в огромном количестве различных организаций и к тому же является свободным ПО (то есть за использование не нужно платить дополнительных денег).
Обратили внимание на наличие аббревиатуры SQL практически в каждом названии СУБД? Собственно, альтернативным названием реляционной базы данных является SQL-база данных.
NoSQL
При этом существует и альтернативный подход. Нереляционные базы данных, или NoSQL. Стоит заметить, что No в данном случае является не отрицанием “нет”, а аббревиатурой от Not only. То есть “Не только SQL”.
Нереляционные СУБД не используют общий формат запроса (как SQL), каждая из них реализует свой собственный способ работы с данными.
Они не требуют однозначно определенной структуры хранения данных. Сами данные хранятся в них уже не в виде строгих таблиц, а в виде объектов с произвольным набором атрибутов (примерно так же, как JSON). Это может быть актуально при работе с данными, чья структура подвержена частым изменениям.
При этом, благодаря своей свободной структуре, NoSQL решения легче масштабируются, если необходимо создать базу распределенную на множестве серверов.
В качестве примера NoSQL СУБД можно назвать MongoDB и Redis.