NoSQL – 非关系数据库的新天地?
今天来介绍一个最近的技术趋势,针对企业IT不一定用的上,但开会讨论的时候听到,如果对他有些瞭解,总让人感觉比较跟的上潮流、比较厉害一些,不是吗?
关系数据库从Oracle在1980左右根据Codd在IBM的研究论文作出第一个商业化的关系数据库以来,几乎已经成为数据库的代名词,也成为几乎所有企业必备的数据管理工具。但是在Web如此风行的今天,是什么事情让有些人不想用继续关系数据库呢?
关系数据库之所以强大,在于他可以支持非常复杂的数据表结构,以及利用SQL语言能作出的各式各样查询。这样的功能,对于数据库工程师来说是非常方便而好用的。另外,关系数据库也作出了各种机制,以确保数据库在任何时候,都不会因为太多人同时修改,而造成数据的错误。
但是这样的强大功能,也是有他的代价的。在没有Web的时候,很少数据库系统会像是今天的Google或是Facebook,有这么大量的用户同时使用。而这样的使用量,已经远超过了传统关系数据库使用方式能负荷的。因此各大规模站点都必须设计非常多层的高速缓存、Replication等机制,来减轻、分散他们数据库的负担,SQL数据库已经成为许多站点系统的扩大能力重要瓶颈。
这时候我们就会回头想到,对于很多大规模站点,其实根本用不到关系数据库和SQL里面提到这么多强大的功能,其实我们需要的只是他里面一点点把简单数据存进去的功能。像是Twitter, Plurk等,他们根本不需要复杂的SQL查询,而数据如果有时候暂时出了一点点错误,也不是这么的要紧。我们是不是能够放弃一些关系数据库里面的功能,来换取更高效率,更适合分散处理大量用户的数据库功能呢?
因此在这个NoSQL的潮流中,就跑出了像是Google的BigTable、Facebook的Cassandra等等为了能更快速处理更多用户,而放弃了关系数据库里面像是SQL等功能的新型态数据库。他们没办法下SQL,但是速度飞快,又适合利用多台计算机一起运行,来服务成千上万的用户。
这样的潮流,目前对一般的企业有什么影响呢?我们的看法是:没有影响。一般企业的数据库的用户数量通常没有必要利用这样的技术来处理。所以各位朋友稍微瞭解一下这样的潮流就可以啦!