В чем разница между объектно-ориентированными и документными базами данных?
В чем разница между объектно-ориентированными и документальными базами данных?
Я не использовал объектно-ориентированные базы данных, но когда я использую document database (RavenDb), я храню и читаю обычные объектно-ориентированные классы без проблем.
1 ответ:
Я перешел из db4o (OODB) в RavenDB (document DB). Большая разница, которую я обнаружил, заключается в том, что object DBs хранит полные объекты, и когда объект хранится с другим объектом внутри него, этот подобъект хранится полностью, и это последняя версия этого объекта. В БД документов объекты все еще хранятся, но они организованы по-другому. Объект aggregate / root будет хранить части подобъекта, так что объект aggregate/root будет автономным. Когда вы извлекаете корневой объект, вы не протягиваете руку и не хватаете объекты, которые связаны с ним.
ООДБ будет хранить команду следующим образом:
TeamName City List<Player> // The entire player objects would be stored here
БД документов будет хранить команду следующим образом:
TeamName City List<string> PlayerNames
Имена игроков будут сохранены здесь, потому что это все, что нужно объекту team.
RavenDB имеет хорошее объяснение теории документа DBs здесь: