NoSQL 中的聚合数据模型
我们知道,NoSQL 是以关系数据库以外的另一种格式存储数据的数据库。如今,NoSQL 几乎涉及所有行业。对于与数据库中的数据进行交互的人,聚合数据模型将有助于该交互。
NoSQL 数据库的特点:
- Schema Agnostic:与传统 RDBMS 相比,NoSQL 数据库不需要任何特定的模式或存储结构。
- 可扩展性: NoSQL 数据库随着数据的快速增长而水平扩展,可以添加某些商品硬件,并且可以为 NoSQL 保留可扩展性功能。
- 性能:为了提高 NoSQL 系统的性能,可以添加不同的商品服务器,而不是以最小的开销可靠和快速地访问数据库传输。
- 高可用性:在传统的 RDBMS 中,它依赖于主节点和辅助节点来获取数据,一些 NoSQL 数据库使用主节点架构。
- 全球可用性:由于数据在多个服务器和云之间复制,任何人都可以访问数据,这可以最大限度地减少延迟期。
聚合数据模型:
术语聚合是指我们用来作为一个单元对待的对象的集合。聚合是我们作为一个单元与之交互的数据集合。这些数据单元或聚合构成了 ACID 操作的边界。
聚合数据模型示例:
图中这里有两个聚合:
- 他们之间的客户和订单链接代表一个聚合。
- 菱形显示数据如何适应聚合结构。
- 客户包含帐单地址列表
- 付款还包含帐单地址
- 地址出现3次,每次都复制
- 该域适合我们不想更改送货地址和帐单地址的地方。
聚合方向的后果:
- 聚合不是一个逻辑数据属性 它是关于应用程序如何使用数据的全部内容。
- 聚合结构可能是其他人的障碍,但有助于一些数据交互。
- 它对交易有重要影响。
- NoSQL 数据库不支持 ACID 事务,因此牺牲了一致性。
- 面向聚合的数据库支持一次对单个聚合的原子操作。
优势:
- 它可以用作在线应用程序的主要数据源。
- 轻松复制。
- 无单点故障。
- 它提供了快速的性能和水平的可扩展性。
- 它可以同等地处理结构化的半结构化和非结构化数据。
坏处:
- 没有标准规则。
- 查询能力有限。
- 不适用于关系数据。
- 在企业中不那么受欢迎。
- 当数据的价值增加时,很难保持唯一的价值。