什么是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始终是一种趋势。
开源时代的到来,对与技术人员是一个巨大的考验
QQ:876162454
|