имеют ли документно-ориентированные базы данных целостность?

StackOverflow https://stackoverflow.com/questions/2057723

Вопрос

Я имею опыт работы с MySQL и интересуюсь документо-ориентированными базами данных, в частности CouchDB.Одна из вещей, которые меня интересуют, — это целостность данных.Как с этим справляются документо-ориентированные базы данных?Например, в СУБД существуют способы предотвратить дублирование записей или гарантировать, что если у вас есть один бит информации, у вас будет другой, или вообще ничего.

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

Кроме того, используя свои базы данных, я делаю много отчетов с суммированием и усреднением значений, а также историческими тенденциями.Подходит ли это для документно-ориентированных баз данных?

Это было полезно?

Решение

Большинство баз данных документов поддерживают лишь очень ограниченную целостность или вообще не поддерживают проверки целостности.Они полагаются на приложение, чтобы убедиться в правильности данных.Могу рассказать, как обстоят дела в CouchDB.

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

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

Однако это не означает, что вам нужно ограничиваться СУБД.Вы можете объединить две технологии.Представьте себе блог-программу.Вы сохраняете «живые» данные приложения, такие как сообщения в блогах и комментарии, в базе данных документов.Данные для отчетов, такие как статистика кликов и входов в систему, хранятся в СУБД.Смотрите также Пост Роба Конериса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top