在数据库的使用,过去十年的年龄奥姆数百个竞争的坚持我们的对象图在普通的老式的RMDBS.现在我们似乎看到未来的年龄的面向文件的数据库。 这些 数据库 是高度优化架构免费的文件,但也是非常有吸引力,为其能力规模和查询一个集群是并行的。

面向文件数据库还举行了几个优点数据库的保持数据模型的面向对象的设计。如表架构,一个可以存放对象属于不同的类别,在继承层次结构侧面。此外,作为该领域模型的变化,因此长的代码可以应付回对象从旧版本的领域类,一个是可以避免的具有迁移的整个数据库可在每一个变化。

另一方面,性能的益处的文件为导向的数据库的主要出现以来,有关当存储更深层的文件。在面向对象的条款,类构成的其他类别,例如,博文和其评论意见。在大多数这样的例子,我可以拿不过,如博客中的一个,增加阅读的访问似乎是抵消了罚款,在编写整个博客"文件"每一次新的评论。

在我看来,虽然面向文件的数据库可以带来显着的好处,以面向对象的系统,如果一个需要极端小心组织的对象深刻的图表进行了优化方式的数据将被阅读和写,但这意味着知道的使用情况。在现实世界中,我们往往不知道直到我们实际上有一个活的执行情况我们可以轮廓。

所以是这种情况的关系与面向文件的数据库之一的波动和环岛?我感兴趣的人的意见和建议,特别是如果任何人已经建立的任何重大的应用程序上的文件为导向的数据库。

有帮助吗?

解决方案

嗯,这取决于如何数据的结构和数据访问的模式。

文件数据库的存储和检索文件和基本的原子储存单元是一个文件。正如你说的,你需要想想你的数据访问的模式/使用情况创造一个聪明的文档模型。当你领域模型可以分割和分配中遇到了一些文件,一个文档数据库的工作。例如博客-软件,CMS或wiki软件的一个文档数据库的工作非常好。只要你能找到一个很好的方式来挤压你的数据成文档你没有任何问题。但不要尝试 适合一种关系模式进入一个文档数据库.尽快为您数据访问模式使用了大量的'航行'关系,图或目标数据库是一个更自然的选择。

另一件事是关于read/write-性交易。例如博客-软件。在一个过渡时期的关系型数据库的数据模型数据进行归一化。这意味着,即读取的数据是昂贵的,因为从中读取不同的表,计算的关系同等读的一个博客。在交流,改变一个标签是廉价的。与此相反,在一个文档数据库读的博客,后是便宜,因为你只载后文件。但是更新是可能更加昂贵,因为你需要储存的整体的文件。或者更糟的是,经过大量的文件,以改变的东西(重新命名一个标签的设想)。在大多数系统,阅读的方式更重要比文字。所以它实际上使用的重新归一化的数据存储。

我认为,在大型数据库的模式的设计可以有其优点。在RDBMS你需要升级你的架构,这是一个非常痛苦的过程。特别是将现有数据的新架构。在一个架构的免费数据库、应用程序需要处理,其中提供了更多的灵活性。例如,你可以升级架构,在一个旧的文档访问。这样,就可以保持你的巨大数据库的建立和运行,而应用程序处理的旧版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top