关系型数据库web
所谓关系型数据库,,就是指采用了关系模型来组织数据的数据库。数据库
什么是关系模型,简单说,关系模型就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。数据结构
关系模型中经常使用的概念:并发
一、关系高并发
能够理解为一张二维表,每一个关系都有一个关系名,在数据库中被称为表名性能
二、元组大数据
能够理解为二维表中的一行,在数据库中被称为记录网站
三、属性spa
能够理解为二维表中的一列,在数据库中被称为字段设计
四、域
属性的取值范围,在数据库中为某一列的取值限制
五、关键字
一族能够惟一标识元组的属性,在数据库中被称为主键
六、关系模型
指对关系的描述,其格式为:关系名(属性一、属性二、属性三、...、属性N),在数据库中称为表结构
关系型数据库的优缺点
关系型数据库有以下优势:
一、容易理解
二维表结构是很是贴近逻辑世界的一个概念,关系模型相对网状、层次等其余模型来讲更容易理解
二、使用方便
通用的SQL语言使得操做关系型数据很是方便
三、易于维护
丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大见底了数据冗余和数据不一致的几率
关系型数据库有以下缺点:
一、高并发读写
网站的用户并发性很是高,每每达到每秒上万次的读写请求,对于传统关系型数据库来讲,硬盘I/O是一个很大的瓶颈
二、海量数据的高效率读写
网站天天产生的数据量是巨大的,对于关系型数据库来讲,在一张包含海量数据的表中查询,效率是很低的
三、扩展性和可用性低
基于Web的结构当中,数据库是最难进行横向扩展的,同时对于数据库的升级也是很是痛苦的,每每须要停机维护和数据迁移
对于一个网站来讲,关系型数据库的不少特性是不须要的:
一、事务一致性
关系型数据库在对事物一致性的维护中有很大的开销,而如今不少Web系统对事物读写一致性的要求都不高
二、读写实时性
对关系型数据库而言,插入一条数据以后当即查询,那确定是能够读出这条数据的。可是对于不少Web系统来讲并不须要这么高的实时性,好比发了一条消息后,过几秒乃至十几秒以后才看到这条动态数据是彻底能够接受的
三、复杂SQL特别是多表关联查询
任何大数据的Web系统,都很是忌讳多个大表的关联查询以及复杂的数据复杂类型的复杂SQL报表查询,对不少网站来讲,都要经常避免这点,所以极大弱化了SQL的功能
NoSQL
NoSQL,Not only SQL,即不只仅是SQL,泛指非关系型数据库。由于传统的关系型数据库在应付Web2.0网站,尤为是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了不少难以克服的问题,NoSQL的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤为是大数据应用难题。
NoSQL提出另外一种不一样的存储理念,例如以键值对存储,且结构不固定,每个元组能够有不同的字段,每一个元组能够根据须要增长一些本身的键值对,这样就不会局限于固定的结构,能够减小一些时间和空间的开销。使用这种方式,用户能够根据须要去添加本身的资源,这样获取信息的时候就不须要像关系型数据库那样,对多表进行关联查询了。只须要根据键,拿到对应的value就能够完成一次查询。
不过,NoSQL因为极少的约束,所以它不可以像关系型数据库所提供的where这种对于字段属性值状况的查询,而且难以体现设计的完整性,它只适合存储一些较为简单的数据,对于须要进行较复杂查询的数据,关系型数据库显得更为合适。
关系型数据库VS非关系型数据库
关系型数据库最大的特色就是事物的一致性:传统的关系型数据库读写操做都是事物的,具备ACID的特色,这个特性使得关系型数据库能够用在几乎全部对一致性有要求的系统中,好比火车购票系统,抢票的时候同一时间只能有一个用户抢到某一张固定的车票。
可是,在网页应用中,尤为是SNS应用中,一致性却不是显得那么重要,比方说淘宝吧,某件商品有10个库存量,用户A和用户B同时点了下单,照理说应该点击以后用户A和用户B看到的剩余库存量应该是8,可是实际上他们看到的可能同时都是9,这又有什么关系呢?在某些业务场景下,数据在几秒、十几秒的更新存在时间差是彻底能够容忍的,所以,关系型数据库的最大特色在这里已经被淡化了。
相反地,关系型数据库为了维护一致性所付出的巨大代价就是其读写性能较差,而像微博、facebook这类SNS应用,对并发读写能力要求极高,关系型数据库已经没法应对了,所以,必须用一种新型的数据结构来替代关系型数据库。
关系型数据库的另外一个特色就是其具备固定的表结构,所以,其扩展性能极差,而在SNS中,系统的升级、功能的增长,每每意味着数据结构巨大的变更,这一点关系型数据库也难以应付,须要新的结构化数据存储,
因而,非关系型数据库就应运而生,因为不可能用一种数据结构化存储应付全部的新需求,所以非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合