Разработени ли са документно-ориентирани бази данни, за да бъдат следващото поколение бази данни и по същество да заменят напълно релационните бази данни?
Не. Документно ориентираните бази данни (като MongoDB) са много добри в типа задачи, които обикновено виждаме в съвременните уеб сайтове (бързо търсене на отделни елементи или малки набори от елементи).
Но те правят някои големи компромиси с релационните системи. Без неща като съответствие с ACID те няма да могат да заменят определени RDBMS. И ако погледнете системи като MongoDB, липсата на съответствие с ACID е голяма причина да е толкова бърза.
Възможно ли е проектите да са по-добре да използват както документно-ориентирана база данни, така и релационна база данни една до друга за различни данни, които са по-подходящи за едното или другото?
да. Всъщност управлявам много голям производствен уеб сайт, който използва и двете. Системата беше стартирана в MySQL, но ние мигрирахме част от нея към MongoDB, тъй като имаме нужда от магазин за ключ-стойност и MySQL просто не е много добър в намирането на един елемент в 150 милиона записа.
Ако документно-ориентираните бази данни не са предназначени да заменят релационни бази данни, тогава някой има ли пример за структура на база данни, която би била абсолютно по-добра в релационна база данни (или обратното)?
Документно-ориентирани бази данни са страхотно съхранение на данни, които лесно се съдържат в "ключ-стойност" и прости, линейни връзки "родител-дете". Прости примери тук са неща като блогове и Wikis.
Въпреки това, релационни бази данни все още имат силна позиция за неща като отчитане, което обикновено е „базирано на набор“.
Честно казано, виждам свят, в който повечето данни се „обработват“ от документно-ориентирана база данни, но където отчитането се извършва в релационна база данни, която се актуализира от задания Map-reduce.