В каких проектах лучше использовать SQL, а в каких NoSQL?

Интересует не сама теория в каких случаях лучше использовать ту или иную СУБД, а хоть приблизительные случаи в реальной практике. Я напишу пример, как я понял все прочитанное в интернете, а кто сможет - подскажите правильно я мыслю, но и по возможности - прибавьте свои варианты.

К примеру в каком-нибудь банковском деле, где есть необходимость хранить данные в разных таблицах(пример: депозиты, лицевые счета, клиенты банка) и связывать их между собой лучше(или даже необходимо) использовать SQL. А при разработке каких-нибудь социальных сетей, где основное направление будет обмен сообщениями, фото, видео и т.д. между пользователями - то лучше использовать NoSQL. В приложениях интернет-магазинов лучше использовать SQL, а при разработке какого-то хостинга типа YouToube - лучше NoSQL.


Ответы (1 шт):

Автор решения: rotabor

Правильнее будет говорить о необходимой модели данных. А их существует четыре основных: реляционная, объектная, иерархическая и плоская.

Для описания данных банковской системы (как это описано в вопросе) лучше подходит реляционная модель и, соответственно, реляционная СУБД с поддержкой SQL.

Для хранения временных рядов подходит плоская модель данных и т. н. time-series СУБД.

Для хранения объектных данных (может в чём-то перекликаться с иерархической структурой) походит объектно-ориентированная СУБД.

К т. н. NOSQL СУБД как правило относят все нереляционные СУБД, но среди них тоже есть деление, как видите.

Идентифицировать ту или иную структуру данных достаточно просто, и уже под неё нужно подбирать соответствующую СУБД.

С помощью реляционной СУБД можно хранить и обрабатывать все модели данных, что зачастую и делают. Для некоторых применений, например, временные ряды, специализированные СУБД показывают гораздо более высокую эффективность.

В большой и сложной системе могут использоваться несколько СУБД различного назначения.

→ Ссылка