欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

NoSQL建模技术 博客分类: nosql Nosql建模

程序员文章站 2024-03-17 10:13:40
...

作者:Jason204 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明

 

网址:http://jason204.iteye.com/admin/blogs/1676984

 

1. 背景

 

NOSQL家族包括KeyValue、BigTable-style、Document、Full-Text Search、Graph等数据库,如下图所示。


NoSQL建模技术
            
    
    博客分类: nosql Nosql建模

解决类似Bigtable/Hbase/Cassandra等列存储NOSQL的建模问题,下文介绍NOSQL的建模技术。(下文所提及的NOSQL默认为列存储NOSQL)

 

2. NOSQL建模

 

2.1 非规范化(Denormalization)

 

简单地说,在3NF建模中,那就是数据冗余、重复。解决查询数据量、处理复杂性(多Join关联)的问题。

 

2.2 复制(Duplication)

 

2.3 Intelligent 键(Keys)

 

Intelligent键,是由查询条件的属性列组合,以便查询。

 

2.4 聚合(Aggregates)

 

Nosql具有软模式性(soft-schema),也就是列族(column families),列( columns), 和时间戳( timestamped versions)。软模式允许复杂的结构(内嵌实体)和特殊实体具有不同结构,one-to-many关系最小化利用内嵌实体,异构实体差异利用公共表表达。举例如下图,利用单一聚合表(product)建模产品的所有类型和属性。


NoSQL建模技术
            
    
    博客分类: nosql Nosql建模

 

2.5 应用方面的关联

 

在Nosql中,很少支持关联特性,经常在模型设计阶段被处理,利用非规范化、聚合(内嵌实体)避免关联,而不像RDBMS在执行阶段处理。但是下面情况是无法避免的,而且必须在应用层处理。

 

· Many-to-many

 

· 由于内嵌实体常变动,聚合不能应用。例如,信息系统含有内嵌信息实体的用户实体(左图,Static one-to-many),信息实体经常Append,建议剥离信息实体,然后在查询阶段再关联用户实体(右图,Dynamic-Many-to-Many)。


NoSQL建模技术
            
    
    博客分类: nosql Nosql建模

 

2.6 索引表(Index Table)

 

创建和维护Key(用于访问模式)的特殊表。例如,主表存储用户帐户,通过user ID访问;一条查询,通过特定的城市返回所有用户,通过维护城市为关键字的特殊表来实现。


NoSQL建模技术
            
    
    博客分类: nosql Nosql建模

3. 参考文献

 

Cloud Data Structure Diagramming Techniques and Design Patterns

 

NoSQL Data Modeling Techniques

  • NoSQL建模技术
            
    
    博客分类: nosql Nosql建模
  • 大小: 188.4 KB
  • NoSQL建模技术
            
    
    博客分类: nosql Nosql建模
  • 大小: 30 KB
  • NoSQL建模技术
            
    
    博客分类: nosql Nosql建模
  • 大小: 27.1 KB
  • NoSQL建模技术
            
    
    博客分类: nosql Nosql建模
  • 大小: 56.7 KB
相关标签: Nosql 建模