NoSQL聚合数据模型

NoSQL聚合数据模型

特点

聚合数据模型的特点就是把经常访问的数据放在一起(聚合在一块);
这样带来的好处很明显,对于某个查询请求,能够在与数据库一次交互中将所有数据都取出来;
当然,以这种方式存储不可避免的会有重复,重复是为了更少的交互;

缺点

  • 聚合结构对某些交互有利,却阻碍另一些交互;
    比如:以学生学号聚合学生信息(含学生姓名、班级、年龄、等信息,甚至英语学科成绩),通过学号查询时,能够在一次交互中查询出该学生的所有信息,但如果想通过学生姓名来查询,就很困难;

  • 不支持跨越多个聚合的ACID事务
    聚合结构在事务方面的支持有限;有一些NOSQL产品实现了简单的事务支持,但对于跨越多个聚合结构的事务并不完善;

规划数据访问方式

选用NoSQL数据库,首要的工作就是设计键名及存放的数据;
设计的原则是尽量减少所需要访问的聚合个数,在尽量少的交互中拿到所需要的数据;
如果发现需要通过多种查询条件来获取数据,可能就选用NOSQL就不合适;关系数据库才是首选;

面向聚合的数据库

  • 键值数据库
    可以存储任意数据,存储的数据对用户不透明,从外面看,只是包含了没有太多意义的大块数据;

    访问方式:通过键来查找

  • 文档数据库
    文档数据库存储时定义了其允许的结构和数据类型,从外面看,可以看到内部结构;
    在存储时限制其中存放的数据,这样带来的好处是能够更灵活的访问数据;
    访问方式:
    1.可用键名查询
    2.可用聚合中的字段查询(定义存储的数据的结构所带来的好处)
    3.可按照聚合内容创建索引

相关:关系数据模型

对于数据模型,我们最熟悉的莫过于关系数据模型;
关系数据模型是一种“聚合无知模型”;
在组织数据时,使用E-R模型规划清晰;
这样带来的好处是很容易以不同的方式来查询数据(各种where条件甚至join)
关系型数据库都是使用关系数据模型,比如oracle;

附 思维导图

NoSQL:数据模型

 

参考

《NoSql精粹》

 

Posted by: 大CC | 27APR,2014
博客:blog.me115.com [订阅]
微博:新浪微博

posted @   大CC  阅读(5750)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
木书架 大CC的博客
点击右上角即可分享
微信分享提示