阅读更多

0顶
0踩

数据库

转载新闻 论 NoSQL 的数据模型

2012-03-06 16:57 by 副主编 wangguo 评论(2) 有7201人浏览
本文内容是对《NoSQL Data Modeling Techniques》一文的简单概述,原文对NoSQL的几种数据模型进行了详细深入的讨论,是了解NoSQL数据模型不可错过的全面资料。

NoSQL的一些非功能性的特性,比如扩展性、性能以及一致性的讨论,目前已经有很多。而对于NoSQL产品内部数据模型相关的知识一直比较欠缺,本文希望能够系统地对NoSQL数据模型进行一些探讨。

我们大致先将NoSQL数据模型划分为下面几类:Key-Value存储、类BigTable数据库、文档数据库,全文索引引擎以及图数据库。

下面通过一个简单有趣的示例图,简单描述各个不同数据模型的构造:


对照上面的图片,我们对几种数据模型进行简单的描述:

  • Key-Value模型是最简单,也是使用最方便的数据模型,它支持简单的key对value的键值存储和提取;
  • Key-Value模型的一个大问题是它通常是由HashTable实现的,所以无法进行范围查询,所以有序Key-Value模型就出现了,有序Key-Value支持范围查询;
  • 虽然有序Key-Value模型能够解决范围查询和问题,但是其Value值依然是无结构的二进制码或纯字符串,通常我们只能在应用层去解析相应的结构。而类BigTable的数据模型,能够支持结构化的数据,包括列、列簇、时间戳以及版本控制等元数据的存储;
  • 而文档型存储相对到类BigTable存储又有两个大的提升,一是其Value值支持复杂的结构定义,二是支持数据库索引的定义;
  • 全文索引模型与文档型存储的主要区别在于文档型存储的索引主要是按照字段名来组织的,而全文索引模型是按字段的具体值来组织的;
  • 图数据库模型也可以看作是从Key-Value模型发展出来的一个分支,不同的是它的数据之间有着广泛的关联,并且这种模型支持一些图结构的算法。
对于NoSQL与关系型的差别,简单总结如下:

  • NoSQL数据库的数据模型通常与实际需求更贴近。通常使用关系型数据库时,需要关心的问题是“数据库能提供哪些功能”,而NoSQL模型关心更多的是“可以解决哪些问题”;
  • 使用NoSQL数据模型,通常需要你对存储的内部结构和实现算法有一定的了解;
  • 使用NoSQL数据库,通常要自己处理数据结构解析和数据的冗余复制问题;
  • 对于关系型数据库来说,对数据分级存储的处理并不强。但是对图数据库,或者说其它的NoSQL数据库来说,对数据的分级处理都是预先考虑的。
目前简单将NoSQL几个分类的代表产品列举如下:

  • Key-Value 存储:Oracle Coherence、Redis、Kyoto Cabinet
  • 类BigTable存储:Apache HBase、Apache Cassandra
  • 文档数据库:MongoDB、CouchDB
  • 全文索引:Apache Lucene、Apache Solr
  • 图数据库:neo4j、FlockDB
更多内容可参阅原文:Nosql Data Modeling Techniques
  • 大小: 92 KB
来自: NoSQLFan
0
0
评论 共 2 条 请登录后发表评论
2 楼 chris开到荼縻 2014-03-10 15:26
不太懂。。。
1 楼 duantonghai 2012-05-11 17:11
写这么点,说的不是很明白阿

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 论文研究 - 键值NoSQL数据库的冲浪并发事务处理模型

    本文提出了一个包含Redis的键值NoSQL数据库的事务模型,以使用户能够以ACID(原子性,一致性,隔离性和持久性)方式访问数据,该模型被生动地称为冲浪并发事务模型。 详细描述了体系结构,重要功能和实现原理。 还...

  • 论NoSQL的数据模型

    是了解NoSQL数据模型不过错过的全面资料。 NoSQL的一些非功能性的特性,比如扩展性、性能以及一致性的讨论,目前已经有很多。而对于NoSQL产品内部数据模型相关的知识一直比较欠缺,本文就希望能够系统地对NoSQL数据...

  • 使用NoSQL数据库提供云级别数据可伸缩性

    SQL)数据库,它包含一些非常有用的特性:水平可伸缩性、对弱一致性模型的支持、更灵活的模式和数据模型,以及对简单的低级别查询接口的支持。本文将探讨 NoSQL数据库(包括NoSQL系统HBase、MongoDB和SimpleDB)的...

  • TA,业界领先的全球分布式多模型 NoSQL 数据库

    NoSQL 云数据库服务广泛使用在游戏玩家信息和状态管理、配对、排行榜、装备财产清单、社交、埋点数据捕获与分析等场景,它可以在全球范围内提供更低延迟的多玩家体验,并大幅减少数据库管理运维工作。 《我的世界:...

  • 数据模型设计必读方法论!很实用

    首先,我们明确什么是数据模型及数据建模:数据建模是发现、分析和确定数据需求范围,然后以称为数据模型的精确形式表示和传达这些数据需求的过程。数据建模是数据管理的重要组成部分。数据模型描述了组织的数据资产...

  • NoSQL数据库与RDBMS之间的战斗-研究论文

    关系数据库管理系统(RDBMS)是基于数据关系模型的数据库管理系统,是一种完全结构化的数据存储方式。 但是NoSQL是一种非结构化的数据存储方式。 NoSQL是RDBMS吗? 本文是我们将讨论NoSQL的各种功能,相对于RDBMS的...

  • Nosql 理解篇+实战篇 二 NoSQL的数据模型Ⅰ

    二 NoSQL的数据模型Ⅰ   NoSQL的核心数据模型思想?NoSQL模型的模型分类及其常用模型结构思想?我的项目应该选用哪种NoSQL数据库? 1) 正如C演变到C++那样,其所演变的核心思想是将面向过程演变为面向对象。而...

  • 基于NoSQL的PDM产品结构数据组织 (2013年)

    MBD/MBE技术的出现,使全三维模型成为产品设计、制造过程中的唯一依据,但基于传统关系型数据库的PDM系统不仅难以满足其数据格式要求,在高并发读写、海量数据的高效率存储和访问、数据库的高可扩展性和高可用性等诸多...

  • 基于NoSQL的租房(链家)信息数据分析(附代码)

    python爬取(链家)房源信息进行数据分析(附代码) 可视化效果图如下: 爬取后的房源数据如下: 下面是正文 一、项目背景与项目分析 近年来,持续高昂的房价将很多想要安身立命的人挡在了买房的门槛之外。在外...

  • NoSQL 简介

    1970年 E.F.Codd’s提出的关系模型的论文 “A relational model of data for large shared data banks”,这使得数据建模和应用程序编程更加简单。 通过应用实践证明,关系模型是非常适合于客户服务器编程,远远...

  • 基于FPGA的四相八拍步进电机控制系统设计:集成交付、正反转、加速减速及调速功能

    内容概要:本文详细介绍了基于FPGA的四相八拍步进电机控制系统的开发过程。主要内容包括:1. 使用VHDL和Verilog编写LED显示屏驱动代码,用于显示角度、学号和姓名等信息;2. 实现步进电机的正反转控制,通过状态机管理相序变化;3. 开发加速减速控制模块,确保电机启动和停止时的平稳性;4. 设计调速功能,通过调节脉冲频率实现速度控制。此外,文中还讨论了调试过程中遇到的问题及其解决方案。 适合人群:对FPGA开发和步进电机控制感兴趣的电子工程师、嵌入式系统开发者以及相关专业的学生。 使用场景及目标:适用于需要高精度运动控制的应用场合,如工业自动化、机器人技术和精密仪器等领域。目标是帮助读者掌握FPGA控制步进电机的基本原理和技术细节。 其他说明:文中提供了详细的代码片段和调试经验分享,有助于读者更好地理解和应用所学知识。同时,作者还提到了一些实用技巧,如通过PWM调节实现多级变速,以及如何避免步进电机的共振问题。

  • Android开发:基于SQLite的日历备忘录记事本项目详解与实现

    内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据存储,通过CalendarView、EditText、Button等控件实现用户交互,并利用AlarmManager和PendingIntent实现闹钟提醒功能。此外,项目还包括数据库的设计与管理,如创建DatabaseHelper类来管理数据库操作,确保数据的安全性和完整性。文章还探讨了一些常见的开发技巧和注意事项,如时间戳的使用、手势监听的实现等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解Android开发基础知识和技术细节的人群。 使用场景及目标:该项目旨在帮助开发者掌握Android开发的基本技能,包括UI设计、数据库操作、闹钟提醒机制等。通过实际项目练习,开发者能够更好地理解和应用这些技术,提升自己的开发能力。 其他说明:文中提到一些进阶任务,如用Room替换SQLite、增加分类标签、实现云端同步等,鼓励开发者进一步扩展和优化项目。同时,项目源码公开,便于学习和参考。

  • Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文档详细介绍了一个基于SVM(支持向量机)和Adaboost集成学习的时间序列预测项目。该项目旨在通过结合这两种强大算法,提升时间序列预测的准确性和稳定性。文档涵盖了项目的背景、目标、挑战及其解决方案,重点介绍了模型架构、数据预处理、特征选择、SVM训练、Adaboost集成、预测与误差修正等环节。此外,文档还探讨了模型在金融市场、气象、能源需求、交通流量和医疗健康等多个领域的应用潜力,并提出了未来改进的方向,如引入深度学习、多任务学习、联邦学习等先进技术。 适合人群:具备一定机器学习基础的研究人员和工程师,特别是那些从事时间序列预测工作的专业人士。 使用场景及目标:①用于金融市场、气象、能源需求、交通流量和医疗健康等领域的复杂时间序列数据预测;②通过结合SVM和Adaboost,提升预测模型的准确性和稳定性;③处理噪声数据,降低计算复杂度,提高模型的泛化能力和实时预测能力。 其他说明:文档不仅提供了详细的理论解释,还附有完整的Matlab代码示例和GUI设计指导,帮助读者理解和实践。此外,文档还讨论了模型的部署与应用,包括系统架构设计、实时数据流处理、可视化界面、GPU加速推理等方面的技术细节。

  • #游戏之追逐奶酪123

    #游戏之追逐奶酪123

  • 威纶通触摸屏配方管理系统解析:宏程序、数据结构与UI设计

    内容概要:本文详细介绍了威纶通触摸屏配方管理系统的实现方法及其应用场景。首先,文章讲解了配方管理的基本概念和技术背景,强调了配方管理在工业自动化中的重要性。接着,通过具体的宏程序代码示例,展示了如何实现配方的保存、加载以及安全校验等功能。文中还提到配方数据结构的设计,如使用寄存器地址偏移来确保数据不冲突,并通过CSV文件格式方便地管理和维护配方数据。此外,文章深入探讨了UI设计方面的内容,包括动态图层技术和按钮交互效果的应用,使得用户界面更加友好和直观。最后,作者分享了一些实际项目中的经验和技巧,如文件操作的异常处理和宏指令调试方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对触摸屏配方管理系统感兴趣的读者。 使用场景及目标:适用于需要频繁切换设备参数的生产环境,如食品加工、注塑成型等行业。通过使用威纶通触摸屏配方管理系统,可以提高工作效率,减少人为错误,同时简化设备调试和维护流程。 其他说明:附带的工具包提供了完整的宏指令注释版、图库资源和调试工具,帮助用户更好地理解和应用该系统。

  • 张彩明-图形学简明教程 配书资源

    张彩明-图形学简明教程 PPT课件

Global site tag (gtag.js) - Google Analytics