В чем разница между объектно-ориентированными и документными базами данных?


В чем разница между объектно-ориентированными и документальными базами данных?

Я не использовал объектно-ориентированные базы данных, но когда я использую document database (RavenDb), я храню и читаю обычные объектно-ориентированные классы без проблем.

1 9

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 здесь:

Http://ravendb.net/docs/theory/document-structure-design