【IT168 专稿】什么是NoSQL数据库?它与关系型数据库管理系统(RDBMS)有哪些区别?
在计算机领域,NoSQL(通常会被扩展到“Not Only SQL”)是数据库管理系统中一个较为宽泛的种类,它的一些关键特性不同于传统模式的关系型数据库管理系统(RDBMS),其中最重要的是NoSQL不使用SQL作为其查询语言。NoSQL的数据存储不需要固定的表结构,通常情况下避免Join操作,并且是典型的横向扩展。学术研究人员通常把这些数据库称作结构化存储——这一概念同样包含传统关系型数据库。
通常情况下,NoSQL数据库根据存储数据的方式进行分类,如key-value存储数据库、文档存储数据库和图形数据库等。NoSQL数据库系统与大多数互联网企业共同发展,如谷歌、亚马逊、Twitter和Facebook等,互联网企业在数据处理方面面临着明显不同于其他企业的挑战,这些挑战是传统关系型数据库管理系统(RDBMS)无法应对的。随着实时网络的兴起 ,企业需要从大量数据中提取出可供决策的信息,这些数据或多或少的遵循类似的横向结构。这些互联网企业意识到性能和实时性要比一致性更加重要,而一致性正是传统关系型数据库耗费大量时间追求的特性。同样的,NoSQL数据库通常高度优化检索和附加操作,并且经常提供超过记录存储的小功能。NoSQL与完整的SQL数据库相比,减少了运行时(run time)的灵活性,换取了某些数据模型的可扩展性和性能等关键特性。
NoSQL数据库的分类
NoSQL数据库通常根据存储数据的方式进行分类,具体类型如下:
·列存储数据库(Wide Column Store / Column Families)。代表:HBase、Apache Cassandra、 Hypertable、Amazon SimpleDB等。
·文档存储数据库。代表:MongoDB、CouchDB、OrientDB等。
·键值/元组(Key Value / Tuple)存储数据库。代表:Azure Table Storage、MemcacheDB、Berkeley DB等。
·图形数据库。代表:Bigdata、HyperGraphDB、Infinite Graph、FlockDB等
·对象数据库。代表:db40、Objectivity、Versant等。
·网格&云数据库。代表:Hazelcast、GigaSpaces
·XML数据库。代表:EMC Documentum xDB、eXist、Berkeley DB XML等。
NoSQL——SWOT分析模型
1.竞争优势
·不间断存取/高可用性;
·可扩展性;
·安全性和灵活性;
·自由选择。
2.竞争劣势
·移植应用程序;
·没有规范化、协会或联合;
·更新丢失。
3.机会
·巨额投资
·数据密集型应用
4.挑战
·自由及开源软件(Free and Open Source Software,简称FOSS)商业模式。
·用户对NoSQL的FUD (Fear, uncertainity and doubt,意思为惧、惑、疑)
NoSQL的黑暗面
目前绝大多数NoSQL数据库都有其黑暗面,人们却很少提及,他们只讨论性能、非结构化数据库简单易用、API等等。他们大多是开发者,而不是实际操作者和系统管理员。也没有人咨询过这些问题,但是它们依然存在:
·特定的数据操纵——既没有可用的查询语言,也没有技巧;
·特定的报告——既没有可用的查询语言,也没有内部技巧;
·数据输出——有时没有API访问所有数据。
总之,是否选用NoSQL数据库取决于企业内部的需求,但是,NoSQL始终是一种趋势。