Справочная информация: Хорошо, поэтому я ищу, как мне кажется, объектную базу данных. Однако (по общему признанию несколько) объектные базы данных, на которые я смотрел, были простыми уровнями персистентности, а не полноценными СУБД. Я не знаю, считается ли то, что я ищу, объектной базой данных, поэтому любая помощь в указании меня в правильном направлении была бы очень признательна.
Я не хочу давать вам две страницы с описанием того, что я ищу, поэтому я буду использовать пример, чтобы проиллюстрировать мою точку зрения. Допустим, у меня есть объект BlogPost, который мне нужно сохранить. Примерно так, в псевдокоде:
class BlogPost
title:String
body:String
author:User
tags:List<String>
comments:List<Comment>
(Предположим, Comment
- это его собственный класс.)
Теперь в реляционной базе данных author
будет храниться как внешний ключ, указывающий на User.id
, а tags
и comments
будут храниться как один ко многим или многие ко многим многие отношения используют отдельную таблицу для хранения отношений. То, что я хотел бы, является механизмом базы данных, который делает следующее:
- Хранит связанные объекты (
author
, tags
и т. Д.) С прямой ссылкой вместо использования внешних ключей, которые требуют дополнительного поиска; другими словами, объекты друг над другом должны изначально поддерживаться базой данных
- Позволяет добавить комментарий или тег к сообщению в блоге, не извлекая весь объект, не обновляя его, а затем помещая обратно в базу данных (например, в документ-ориентированную базу данных - например, CouchDB)
Я думаю, что я ищу навигационную базу данных, но я не знаю. Есть ли хоть что-то похожее на то, о чем я думаю? Если так, то как это называется? (Или еще лучше, дайте мне настоящую рабочую базу данных.) Или я слишком разборчив?
Edit:
Просто чтобы уточнить, Я НЕ ищу ORM или уровень абстракции или что-то в этом роде. Я ищу фактическую базу данных, которая делает это внутренне. Извините, если мне трудно, но я искал и ничего не смог найти.
Edit:
Кроме того, что-то для JVM было бы превосходно, но на данный момент мне действительно все равно, на какой платформе он работает.