Я слышал много разговоров о безсистемных (часто распространяемых) системах баз данных, таких как MongoDB, CouchDB, SimpleDB и т.д.
Хотя я понимаю, что они могут быть полезны для некоторых целей, в большинстве моих приложений я пытаюсь сохранить объекты, которые имеют определенное количество полей определенного типа, и я просто автоматически думаю в реляционной модели. Я всегда думаю о строках с уникальными идентификаторами целых чисел, нулевых/не нулевых полях, типах данных SQL и выборе запросов для поиска наборов.
В то время как меня привлекают распределенный характер и легкие интерфейсы JSON/RESTful из этих новых систем, я не понимаю, как свободно вводимые хэши ключей/значений помогут мне в моей разработке. Почему бы свободная типизированная система без схем была хорошей для хранения чистых наборов данных? Как я могу, например, найти все элементы с датами между x и y, если у них могут отсутствовать даты? Существует ли какое-либо понятие соединения?
Я понимаю, что у многих систем есть свои различия и сильные стороны, но я задаюсь вопросом о различии в парадигме. Я полагаю, что это открытый вопрос, но, возможно, ответы сообщества и способы, которыми они лично видели преимущества этих систем, помогут рассказать мне и другим о том, когда я захочу использовать эти (правда, более бедные) системы вместо традиционной РСУБД.