В каких проектах лучше использовать SQL, а в каких NoSQL?
Интересует не сама теория в каких случаях лучше использовать ту или иную СУБД, а хоть приблизительные случаи в реальной практике. Я напишу пример, как я понял все прочитанное в интернете, а кто сможет - подскажите правильно я мыслю, но и по возможности - прибавьте свои варианты.
К примеру в каком-нибудь банковском деле, где есть необходимость хранить данные в разных таблицах(пример: депозиты, лицевые счета, клиенты банка) и связывать их между собой лучше(или даже необходимо) использовать SQL. А при разработке каких-нибудь социальных сетей, где основное направление будет обмен сообщениями, фото, видео и т.д. между пользователями - то лучше использовать NoSQL. В приложениях интернет-магазинов лучше использовать SQL, а при разработке какого-то хостинга типа YouToube - лучше NoSQL.
Ответы (1 шт):
Правильнее будет говорить о необходимой модели данных. А их существует четыре основных: реляционная, объектная, иерархическая и плоская.
Для описания данных банковской системы (как это описано в вопросе) лучше подходит реляционная модель и, соответственно, реляционная СУБД с поддержкой SQL.
Для хранения временных рядов подходит плоская модель данных и т. н. time-series СУБД.
Для хранения объектных данных (может в чём-то перекликаться с иерархической структурой) походит объектно-ориентированная СУБД.
К т. н. NOSQL СУБД как правило относят все нереляционные СУБД, но среди них тоже есть деление, как видите.
Идентифицировать ту или иную структуру данных достаточно просто, и уже под неё нужно подбирать соответствующую СУБД.
С помощью реляционной СУБД можно хранить и обрабатывать все модели данных, что зачастую и делают. Для некоторых применений, например, временные ряды, специализированные СУБД показывают гораздо более высокую эффективность.
В большой и сложной системе могут использоваться несколько СУБД различного назначения.