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

NoSQL简单介绍

程序员文章站 2024-01-12 21:41:10
...

近几年NoSQL,这个词极受关注,而且很多最初看到这个词的人很可能会误解为“No SQL”的缩写,这其实是错误的,实际上,它是“ Not only SQL ”的缩写。 引用本人刚刚看的一本书上的解释,它的意义是“ 适用关系型数据库的时候就使用关系型数据库,不适用的时

近几年NoSQL,这个词极受关注,而且很多最初看到这个词的人很可能会误解为“No SQL”的缩写,这其实是错误的,实际上,它是“Not only SQL”的缩写。

引用本人刚刚看的一本书上的解释,它的意义是“适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储”,可以理解为:为了弥补关系型数据的不足,NoSQL数据库应运而生。

为了更好的理解NoSQL,下面先介绍一下关系型数据库:

在关系型数据库还未出现之前,存在另外两种类型的数据库:

① 阶层型数据库,顾名思义,它是把数据通过阶层结构的方式表现出来的,这样虽然可以提高查询效率,但是不理解数据库结构就无法进行高效的查询,而且结构更改的时候维护量大。

② 网络型数据库,是在阶层型数据库的基础上发展而来的,它使子记录可以同时拥有多个父记录,从而解决了数据冗余的问题,但是结构间复杂的网络关系使得维护起来更加复杂。

为了弥补上述两种数据库的不足, E.F.Codd 于1970年发表了一篇题为“A Ralation Model of Data for Large Shared Data banks”,掀起了关系型数据库的热潮,现如今关系型数据库已经发展的相当成熟,常见的有Oracle,MSSQLServer,MySQL..

关系型数据库的优势:

① 保持数据一致性;

② 由于以标准化为前提,数据更新的开销很小;

③ 可以进行多表间的复杂查询(join);

④ 技术成熟;

关系型数据库的不足:

① 大量数据的写入处理

② 为有数据更新的表做索引或表结构变更

③ 对于不固定字段的处理

④ 对简单查询(没有复杂条件的查询)快速返回结果,需解析

对于NoSQL数据库,因为它本身就不支持join,所以不必向关系型数据库一样把需要join的多个表保存在一个服务器上。相反,NoSQL的各个数据都是独立设计的,很容易分散到多个服务器,从而可以减少每个服务器的数据量,即使进行大量数据写入,处理起来也更加高效。