近几年Nosql,这个词极受关注,而且很多最初看到这个词的人很可能会误解为“No sql”的缩写,这其实是错误的,实际上,它是“Not only sql”的缩写。
引用本人刚刚看的一本书上的解释,它的意义是“适用关系型数据库的时候就使用关系型数据库,不适用的时候也没有必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储”,可以理解为:为了弥补关系型数据的不足,Nosql数据库应运而生。
① 阶层型数据库,顾名思义,它是把数据通过阶层结构的方式表现出来的,这样虽然可以提高查询效率,但是不理解数据库结构就无法进行高效的查询,而且结构更改的时候维护量大。
② 网络型数据库,是在阶层型数据库的基础上发展而来的,它使子记录可以同时拥有多个父记录,从而解决了数据冗余的问题,但是结构间复杂的网络关系使得维护起来更加复杂。
为了弥补上述两种数据库的不足,E.F.Codd 于1970年发表了一篇题为“A Ralation Model of Data for Large Shared Data banks”,掀起了关系型数据库的热潮,现如今关系型数据库已经发展的相当成熟,常见的有Oracle,MSsqlServer,MysqL..
关系型数据库的优势:
① 保持数据一致性;
② 由于以标准化为前提,数据更新的开销很小;
③ 可以进行多表间的复杂查询(join);
④ 技术成熟;
关系型数据库的不足:
① 大量数据的写入处理
② 为有数据更新的表做索引或表结构变更
③ 对于不固定字段的处理
对于Nosql数据库,因为它本身就不支持join,所以不必向关系型数据库一样把需要join的多个表保存在一个服务器上。相反,Nosql的各个数据都是独立设计的,很容易分散到多个服务器,从而可以减少每个服务器的数据量,即使进行大量数据写入,处理起来也更加高效。
原文链接:https://www.f2er.com/nosql/204284.html