关于对象关系映射器有很多信息以及如何最好地避免阻抗不匹配,如果使用对象数据库,所有这些似乎都没有实际意义.我的问题是为什么不经常使用这个?是因为性能原因还是因为对象数据库导致您的数据成为应用程序的专有数据,还是因为其他原因?
假设您正在编写某种Web应用程序.人们可以贡献内容的东西,例如简单的照片共享网站.
您可以想到多少有理由不使用面向对象的数据库(例如db4o)?
我一直在阅读有关数据库模型的内容,但仍然不了解面向对象和对象关系模型之间的根本区别.
到目前为止,我了解到对象关系数据库是一个支持对象的关系数据库.是什么让面向对象数据库与众不同?(除了不支持关系模型).
面向对象的数据库是否也给出了对象方法 - 行为(如在OO编程语言中),而对象关系数据库只将它们视为具有属性和对其他对象的引用的结构?如果是这样,如何在OO数据库中使用这些对象方法?
面向对象和文档数据库之间有什么区别?
我没有使用面向对象的数据库,但是当我使用文档数据库(RavenDb)时,我存储和读取通常的面向对象的类没有问题.
我不断发现使用像db4o这样的对象数据库非常困惑的一件事是你应该如何处理通常由SQL/PL-SQL处理的复杂迁移.
例如,假设您在关系数据库中有一个名为my_users的表.最初您有一个名为"full_name"的列,现在您的软件在V2中,您希望删除此列,在空白处拆分全名,并将第一部分放在名为"first_name"的列中,将第二部分放在列中名为last_name.在SQL中,我只需填充"first_name"和"second_name"列,然后删除名为"full_name"的原始列.
我怎样才能在像db4o这样的东西上做到这一点?我是否编写了一个Java程序,脚本查找User.class的所有对象,在设置first_name和last_name时将full_name设置为null?当我执行下一个svn提交时,将没有与full_name对应的字段/ bean属性,这是一个问题吗?似乎在我的"架构"更改的生产应用程序中使用它我想编写一个脚本将数据从版本x迁移到版本x + 1然后在版本x + 2中实际删除我想要的属性摆脱版本x + 1,因为我无法编写Java脚本来修改不再属于我的类型的属性.
似乎问题的一部分是RDBMS基于一个简单的不区分大小写的基于字符串的名称来解析你所指的对象,在像Java这样的语言中,输入比这更复杂,如果getter你不能引用属性/ setter/field不是运行时加载的类的成员,所以你基本上需要在同一个脚本中有两个版本的代码(嗯,自定义类加载器听起来很痛苦),你的类的新版本属于另一个包(听起来很乱),或使用我提到的版本x + 1 x + 2策略(需要更多的计划).也许有一些明显的解决方案我从未从db4o文档中收集过.
有任何想法吗?希望这有一定道理.
我很难理解GemStone for Smalltalk的大图.我知道GLASS是一个使用Linux,Seaside和Apache的应用服务器.但我想知道它是否适用于非海边应用程序.
我也很难找到一些基本问题:
我不清楚GLASS或GemStone/S是否独立于所使用的VM.例如,如果我使用支持黑线程的VM,这是否意味着GemStone/S将透明地工作?
对于我所看到的,它对3D应用程序没有用.例如,如果我在Pharo或VisualWorks中开发的应用程序使用OpenGL,我可以考虑使用GemStone/S进行扩展吗?
我已经读过你可能在VisualWorks中有对象和GemStone/S中的对象,但这让我很困惑.我怎么知道我刚刚创建的对象是已经持久存在还是在"客户端"端?在哪种情况下我需要GemBuilder?
我正在开展一个小型教育项目来锻炼perst.net.
我们有一个很小的设计问题,那就是如何最好地解决两类对象之间的关系,即参与者和冠军.这是一个多对多的关系,因为参与者可以参加许多锦标赛,而锦标赛可以有多个参与者.
请告知如何在C#中做到最好,我应该使用'关系数据库'技术类吗?
我看到了Eloquera db并对它印象深刻.目前我正在考虑在Eloquera而不是Sql Server上开发我的下一个项目.所以我有几个问题.
database relational-database object-oriented-database eloquera
我有一个应用程序,我的域模型正常工作.它非常清晰,干净,可以很好地映射到物体.我的问题是它没有很好地映射到关系数据库.考虑到这一点,我正在寻找可以很好地使用.Net/C#的对象数据库.
是否有针对Microsoft .Net世界的事实上最佳的对象数据库?
我一直在使用关系数据库一段时间,最近遇到了不同类型的数据库:对象数据库.围绕这个想法构建的产品之一有一个描述:一个可扩展的"后关系型"数据库,带有用于分布式Web应用程序的多维数据和应用程序服务器.
这让我很奇怪,我什么时候应该使用这样的数据库?我的意思是,Facebook必须使用MySQL,它似乎做得很好,它可以被认为是一个大规模的分布式Web应用程序.其他一些Web应用程序也是如此,例如Twitter和Orkut.鉴于这种情况,我什么时候应该使用Object数据库?
database architecture web-applications relational-database object-oriented-database