赞
踩
关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。
主要代表SQL server,Oracle,Mysql
1.容易理解,二维表的结构非常贴近现实世界
2.使用方便,使用sql语句使得操作关系型数据库非常方便
3.易于维护,数据库的ACID属性,大大降低了数据的冗余和数据不一致的问题
1.海量数据的读写效率
对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘IO是一个很大的挑战
2.高扩展性和高可用性
在基于web的结构中,数据库是最难以横向拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web server那样简单的通过添加更多的硬件和服务结点来拓展性能和负载能力。
关系型数据库的最大优点就是事务的一致性,这个特性,是的关系数据库可以适用于一切要求一致性比较高的系统中。比如银行系统
但是在网页应用中,对这种一致性的要求不是那么严格,允许有一定的时间间隔,所以非关系型数据库这个特点不是那么重要了。相反,关系型数据库为了维护一致性所付出的巨大代价就是读写性能较差。而像微博、facebook这类应用,对于并发读写能力要求极高,关系型数据库已经无法应付。所以必须用一种新的数据结构存储来代替关系型数据库。所以非关系型数据库出现了。
NoSQL非关系型数据库,主要是指那些非关系的、分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CounchDB。
NoSQL提出了另一种理念,以键值来存储,且结构不稳定,每一个元组都可以有不一样的字段,这种就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,为了获取用户的不同信息,不需要像关系型数据中,需要进行多表查询。仅仅需要根据key来取出相应的value值即可。
非关系型数据库大部分是开源的,实现比较简单,大都是针对一些特性的应用需求出现。根据结构化方法和应用场景的不同,分为一下几类。
1.面向高性能并发读写的key-value数据库
主要特点是具有极高的并发读写能里,例如Redis,Tokyo Cabint等
2.面向海量数据访问的面向文档数据库
特点是,可以在海量的数据库快速查询数据。例如MongoDb以及CouchDB
3.面向可拓展的分布式数据库
解决的主要问题是传统数据库的扩展性上的缺陷
由于NoSQL的约束少,所以不能够像sql哪样提供where字段属性的查询。因此适合存储较为简单的数据。
关系型数据库是以表格的形式进行存储的,而非关系型数据库是以key-value的形式存储的
关系型数据库汇总有事务的概念,而非关系型数据库中没有,它的每一个数据集都是原子级别的
关系型数据库的是表格型的,存储在数据表的行和列中,彼此关联,容易提取。而非关系型是大块存储的再一起的。
关系型数据库的结构是预先定义好的的,例如主键、索引、外键等,定义好这些结构之后才能添加数据。
在非关系型数据库中,数据可以在任何时候任何地方添加。不需要预先定义。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。