相关疑难解决方法(0)

非关系数据库设计

我有兴趣听听你用过非关系型"nosql"数据库的设计策略- 也就是说,不使用传统关系设计或SQL的(通常是新的)数据存储类(如Hypertable,CouchDB, SimpleDB,Google App Engine数据存储,Voldemort,Cassandra,SQL数据服务等).它们通常也被称为"键/值存储",而在基础上它们就像巨大的分布式持久哈希表.

具体来说,我想了解概念数据设计与这些新数据库的差异.什么更容易,更难,什么不能完成?

  • 您是否想出了在非关系世界中工作得更好的替代设计?

  • 你有没有碰到任何看似不可能的东西?

  • 您是否与任何设计模式弥合了差距,例如从一个设计模式转换为另一个设计模式?

  • 你现在甚至都在做明确的数据模型(例如在UML中),还是让你完全放弃它们以支持半结构化/面向文档的数据blob?

  • 您是否错过了RDBMS提供的任何主要额外服务,例如关系完整性,任意复杂的事务支持,触发器等?

我来自SQL关系数据库背景,所以标准化在我的血液中.也就是说,我获得了非关系数据库的优点,简化和扩展,我的直觉告诉我必须有更丰富的设计功能重叠.你做了什么?

仅供参考,这里有类似主题的StackOverflow讨论:

database nosql

114
推荐指数
3
解决办法
2万
查看次数

我可以在CouchDB中进行交易和锁定吗?

我需要做事务(开始,提交或回滚),锁(选择更新).我怎样才能在文档模型db中执行此操作?

编辑:

案例是这样的:

  • 我想经营拍卖网站.
  • 我认为如何直接购买.
  • 在直接购买中,我必须减少商品记录中的数量字段,但仅限于数量大于零的情况.这就是我需要锁和交易的原因.
  • 我不知道如何在没有锁和/或交易的情况下解决这个问题.

我可以用CouchDB解决这个问题吗?

database couchdb nosql

80
推荐指数
5
解决办法
3万
查看次数

谷歌的Bigtable与关系数据库

重复

我对Google的Bigtable了解不多,但我想知道Google的Bigtable和MySQL之类的关系数据库之间的区别是什么.两者有什么限制?

database relational bigtable

29
推荐指数
2
解决办法
5万
查看次数

面向文档的数据库是否意味着取代关系数据库?

最近我和MongoDB一直在合作,我不得不说我非常喜欢它.然而,它是一个完全不同类型的数据库然后我被使用.我注意到它对于某些类型的数据肯定更好,但是对于高度规范化的数据库,它可能不是最佳选择.

然而,在我看来,它可以完全取代你可能拥有的任何关系数据库,并且在大多数情况下表现更好,这令人难以置信.这让我想问几个问题:

  1. 面向文档的数据库是否正在开发为下一代数据库,并且基本上完全取代了关系数据库?
  2. 是否可能更好地使用面向文档的数据库和关系数据库,以获得更适合其中一种的各种数据?
  3. 如果面向文档的数据库不是要替换关系数据库,那么有没有人有一个数据库结构的例子,在关系数据库中绝对会更好(反之亦然)?

database document-oriented-db relational-database mongodb

28
推荐指数
2
解决办法
4745
查看次数

CouchDB与RDBMS的优点是什么?

我最近听说过很多关于couchdb的事情,并对它提供的内容感到困惑.

database couchdb

9
推荐指数
2
解决办法
6267
查看次数

如何将spring hibernate mysql迁移到mongodb

我正在尝试将hibernate/mysql项目迁移到mongodb.hibernate是否支持迁移到mongodb?如果是这样,ORM映射如何转换为一对一或一对多关系?

java hibernate mongodb

8
推荐指数
1
解决办法
4702
查看次数

何时适合使用couchDB?

我目前正在编写一个应用程序,在不同的层上有很多不同的数据持久性需求,我一直想知道......什么时候适当,什么时候不适合使用couchDB来满足我的持久性需求?

couchdb

7
推荐指数
1
解决办法
1484
查看次数

使用存储库模式抽象出数据库特定的 id:s?

我正在学习 DDD(域驱动设计)和存储库模式(在 C# 中)。我希望能够使用存储库模式来持久化一个实体,而不关心实际使用的是哪个数据库(Oracle、MySQL、MongoDB、RavenDB 等)。但是,我不确定如何处理数据库特定的 id:s 大多数(全部?)数据库使用。例如,RavenDB 要求它应该存储的每个实体都有一个字符串类型的 id 属性。其他可能需要 int 类型的 id 属性。由于这由不同的数据库以不同的方式处理,因此我无法将数据库 ID 设为实体类的一部分。但它必须在某个时候存在,至少在我存储实际实体时是这样。我的问题是关于此的最佳实践是什么?

我目前追求的想法是,对于我想要支持的每个数据库,为每个业务对象类型实现特定于数据库的“值对象”。这些值对象将具有数据库特定的 id 属性,我将在读取和写入时在两者之间进行映射。这看起来是个好主意吗?

c# database domain-driven-design repository

5
推荐指数
1
解决办法
1107
查看次数