Что касается использования баз данных, последнее десятилетие было эпохой ORM, когда сотни конкурировали за сохранение наших объектных графов в простом старомодном RMDBS. Сейчас мы, кажется, являемся свидетелями наступления эры документно-ориентированных баз данных. Эти базы данных высоко оптимизированы для документов без схемы, но также очень привлекательны своей возможностью масштабирования и параллельного запроса кластера.
Документно-ориентированные базы данных также обладают рядом преимуществ перед РСУБД для сохранения моделей данных в объектно-ориентированных проектах. Поскольку таблицы не содержат схемы, можно хранить объекты, принадлежащие разным классам, в иерархии наследования бок о бок. Кроме того, при изменении модели предметной области, если код может справиться с получением объектов из старой версии классов предметной области, можно избежать необходимости переносить всю базу данных при каждом изменении.
С другой стороны, преимущества в производительности документно-ориентированных баз данных, по-видимому, в основном проявляются при хранении более глубоких документов. В объектно-ориентированных терминах классы, которые состоят из других классов, например, сообщение в блоге и его комментарии. В большинстве примеров этого, которые я могу придумать, например, в блоге, выигрыш в доступе для чтения, по-видимому, компенсируется штрафом, заключающимся в необходимости писать весь «документ» сообщения в блоге каждый раз, когда появляется новый комментарий. добавлен.
Мне кажется, что документно-ориентированные базы данных могут принести значительные преимущества объектно-ориентированным системам, если проявить особую осторожность, чтобы организовать объекты в глубокие графы, оптимизированные для способа чтения и записи данных, но это означает знание вариантов использования. фронт. В реальном мире мы часто не знаем, пока у нас не будет реальной реализации, которую мы можем профилировать.
Так является ли случай реляционных баз данных по сравнению с документно-ориентированными базами данных колебаниями и обходными путями? Меня интересуют мнения и советы людей, особенно если кто-нибудь создал какие-либо важные приложения на базе данных, ориентированной на документы.