关系型与非关系型数据库(1)

合集下载

关系型数据库与非关系型数据库的比较

关系型数据库与非关系型数据库的比较

关系型数据库与非关系型数据库的比较数据库是用来存储和管理数据的工具。

随着数据量的不断增加,数据库的选择也变得越来越重要。

在数据库的选择上,关系型数据库(RDBMS)和非关系型数据库(NoSQL)是两个常见的选项。

本文将对关系型数据库和非关系型数据库进行比较,探讨它们的特点、优势和劣势。

一、关系型数据库关系型数据库是一种使用结构化表格来存储和管理数据的数据库。

它使用了事先定义好的模式(Schema)来描述数据的结构,采用表格的形式来组织数据。

常见的关系型数据库管理系统包括MySQL、Oracle和SQL Server等。

1. 特点和优势(1)结构化数据:关系型数据库适用于处理结构化和规范化的数据,可以确保数据的一致性和完整性。

每个表格都有明确定义的列和数据类型,通过约束和关系可以准确地建立不同表格之间的关联。

(2)强大的查询语言:关系型数据库使用结构化查询语言(SQL)进行数据查询和操作,SQL具有强大的功能和灵活性,可以灵活地进行各种复杂的查询和数据操作。

(3)事务支持:关系型数据库支持事务处理,保证数据的一致性和完整性。

在事务中要么全部操作成功,要么全部失败回滚,确保数据的可靠性。

2. 劣势(1)扩展性限制:关系型数据库在面对大规模数据处理和高并发访问时,性能和扩展性有限。

由于数据和关系的复杂性,关系型数据库在水平扩展(即增加更多的机器)方面有一定的限制。

(2)固定模式:关系型数据库使用固定的表格和模式来组织数据,不太适用于经常变化的数据结构。

如果需要频繁修改表格结构,会带来一定的开销和复杂性。

二、非关系型数据库非关系型数据库是一种用于存储和管理非结构化和半结构化数据的数据库。

非关系型数据库摒弃了传统的表格模式,采用键值对、文档、列族和图等形式来组织数据。

常见的非关系型数据库包括MongoDB、Cassandra和Redis等。

1. 特点和优势(1)灵活的数据模型:非关系型数据库拥抱半结构化和非结构化数据,对数据的存储没有固定的模式和结构要求。

后端开发知识:数据库设计中的关系型数据库和非关系型数据库

后端开发知识:数据库设计中的关系型数据库和非关系型数据库

后端开发知识:数据库设计中的关系型数据库和非关系型数据库随着互联网和信息技术的不断发展,数据已经成为了现代社会中最重要的资源之一。

对于企业和开发者来说,如何存储、管理和处理数据已经成为了一个必须要面对的重要问题。

而数据库就是解决这一问题的最重要的技术手段之一。

目前大多数数据库可以被划分为关系型数据库和非关系型数据库两大类,下面将分别介绍这两种不同类型的数据库,以及它们的优缺点和适用情况。

一、关系型数据库关系型数据库是最为经典的数据库类型之一。

它使用了一种被称为关系模型的数据结构,将数据存储在结构化表格中,并且它们之间具有一定的关系和约束。

在关系型数据中,表格通常称作表或关系,表中的每一行称为记录或元组,列则为属性或字段。

关系型数据库是以ACID(原子性、一致性、隔离性、持久性)为基础的传统事务型数据库。

优点1.保证数据一致性进过多年的发展,关系型数据库已经拥有了非常成熟稳定的事务管理机制,能够确保数据的完整性和一致性。

尤其是在高并发业务中,只要开发者正确地设计了事务处理,关系型数据库可以完美地保证并发访问的数据正确性和安全性。

2.灵活的查询方式关系型数据库使用SQL(Structured Query Language)查询语句,支持强大、灵活的数据检索功能。

通过SQL语句,用户可以方便地进行各种数据查询、统计和分析,并且在一些规模较小的数据管理应用中,这种查询方式已经足够高效,不需要过于复杂的业务逻辑。

3.数据的可维护性高在关系型数据库中,数据库管理员可以根据需求对表结构和数据进行修改和维护,保持数据的高可用性。

同时,由于关系模型本身就是高度规范化的,所以它容易被理解和改变,开发人员可以根据实际应用需求,更好地设计和实现数据库结构,以满足不断变化的业务需求。

缺点1.不适合分布式架构关系型数据库需要在一个独立的服务器上提供服务,有很强的中心化特征,这意味着无法轻松地实现分布式架构。

同时,关系型数据库面对大量的读写请求时,无法快速扩展到多个服务器来提高运行的效率。

关系型与非关系型数据库的特点与应用优缺点对比研究与综述

关系型与非关系型数据库的特点与应用优缺点对比研究与综述

关系型与非关系型数据库的特点与应用优缺点对比研究与综述引言:在当今数字信息时代,数据库扮演着重要的角色,不仅用于存储和管理海量数据,还能为企业提供有效的数据处理和分析工具。

关系型数据库(RDBMS)和非关系型数据库(NoSQL)是最常见的两种数据库类型。

本文将对这两种数据库进行深入探讨,比较他们的特点与应用优缺点,以便读者更好地根据实际需要选择适当的数据库。

一、关系型数据库的特点与应用优缺点对比研究1. 特点:关系型数据库是由关系代数和规范化理论为基础设计得到的数据库,其特点如下:(1)表结构:数据以表的形式储存,表之间通过键值进行关联。

(2)事务支持:保证了数据的一致性和可靠性。

(3)严格的数据一致性: 关系型数据库遵循ACID(原子性、一致性、隔离性、持久性)规则确保数据的一致性。

(4)灵活的查询:可以使用SQL语言进行复杂的查询操作。

(5)存储容量大: 关系型数据库可以处理海量数据的存储需求。

2. 应用优缺点对比:(1)优点:灵活的查询语言:关系型数据库使用结构化查询语言(SQL)进行数据查询,几乎可以处理任何复杂的查询操作。

严格的数据一致性:关系型数据库通过ACID规则保证数据的一致性和完整性。

可靠性和稳定性:关系型数据库经过长期发展,已经成为一种成熟和稳定的技术,具有高可靠性。

各种故障恢复、备份和容灾方案都有较好的支持。

(2)缺点:可扩展性:关系型数据库在面对海量数据时,存在扩展性的瓶颈,往往无法满足大规模数据存取的需求。

高昂的成本:关系型数据库的许可证和硬件成本通常较高,消耗较多的资源。

复杂的数据模型:关系型数据库要求数据建模要符合固定的表结构,对于非规范化数据和复杂的关系不够灵活。

二、非关系型数据库的特点与应用优缺点对比研究1. 特点:非关系型数据库是相对于关系型数据库而言的一种新型数据库模型,其特点如下:(1)非结构化数据存储:与关系型数据库不同,非关系型数据库不要求存在固定的表结构,可以存储半结构化或非结构化数据,并以键值对或文档形式进行存储。

关系型数据库与非关系型数据库的比较

关系型数据库与非关系型数据库的比较

关系型数据库与非关系型数据库的比较在当今信息时代,数据的存储和管理变得越来越重要。

数据库是一种用于存储和组织数据的工具,它们可以被广泛应用于各个领域,包括企业、科学研究、社交媒体等。

在数据库的发展过程中,关系型数据库和非关系型数据库成为了两种主要的数据库类型。

本文将比较这两种数据库类型的优势和劣势。

一、关系型数据库关系型数据库是一种基于关系模型的数据库,它使用表格来组织和存储数据。

关系型数据库最重要的特点是数据的结构化和一致性。

下面是关系型数据库的一些优点:1. 数据一致性:关系型数据库通过定义表的结构和约束来确保数据的一致性。

例如,可以定义主键、外键和唯一约束等来保证数据的完整性。

2. 数据查询灵活:关系型数据库使用结构化查询语言(SQL)进行数据查询和操作。

SQL具有强大的功能,可以实现复杂的数据查询和分析。

3. 数据安全性:关系型数据库提供了严格的访问控制和权限管理机制,可以确保数据的安全性。

只有经过授权的用户才能访问和修改数据库中的数据。

4. 事务支持:关系型数据库支持事务处理,保证了数据的一致性和可靠性。

在事务中,要么所有的操作都成功执行,要么所有的操作都不执行,确保了数据的完整性。

然而,关系型数据库也存在一些劣势:1. 扩展性限制:关系型数据库的扩展性受到了物理硬件的限制。

当数据量增加时,可能需要升级服务器硬件或者进行分库分表等操作。

2. 处理大数据的效率低:关系型数据库在处理大数据量和高并发访问时性能较低。

由于需要遵循严格的数据结构和约束,关系型数据库的查询速度较慢。

二、非关系型数据库非关系型数据库,也称为NoSQL数据库,是一种非结构化的数据库类型。

与关系型数据库不同,非关系型数据库以键值对、列族、文档或图形等形式来存储数据。

下面是非关系型数据库的一些优点:1. 高可扩展性:非关系型数据库具有良好的可扩展性,可以轻松地处理大量的数据和高并发访问。

通过添加更多的服务器节点,可以水平扩展数据库的性能。

关系型数据库与非关系型数据库,如何选择?

关系型数据库与非关系型数据库,如何选择?

关系型数据库与非关系型数据库,如何选择?随着信息技术的快速发展,数据管理和存储需求也日益增长。

在数据存储和管理中,关系型数据库(RDBMS)和非关系型数据库(NoSQL)凭借各自的特点和优势成为最常用的两种数据库模型。

两者都有各自的适用场景和局限性,因此在选择数据库模型时需要根据实际需求进行权衡。

一、关系型数据库的特点与适用场景关系型数据库采用表格(表)的形式来组织和管理数据,表与表之间通过主键和外键进行关联。

其特点如下:1. 结构化数据:关系型数据库适合存储结构化数据,例如上下文间有关联的数据。

比如金融系统的账户信息、订单信息等。

2. 数据一致性:关系型数据库实现了ACID(原子性、一致性、隔离性和持久性)特性,确保数据的完整性和一致性。

3. 强大的查询能力:关系型数据库使用结构化查询语言(SQL)进行数据查询,能够灵活且高效地处理复杂的查询操作。

4. 数据完整性:关系型数据库通过主键、外键和各种约束来确保数据的完整性,避免数据的冗余和丢失。

在如下场景中,选择关系型数据库是一个较好的选择:1. 需要事务处理和数据一致性的应用,如金融系统、电子商务平台等。

2. 对数据结构的规范和约束要求较高,需要确保数据的完整性和一致性的应用。

3. 需要进行复杂查询和数据分析的应用。

二、非关系型数据库的特点与适用场景非关系型数据库(NoSQL)是一种以键值对、文档、列族等形式来组织和存储数据的数据库模型,其特点如下:1. 高扩展性:非关系型数据库能够轻松地横向扩展以应对大规模数据存储和高并发访问的需求。

2. 无固定结构:非关系型数据库适合存储半结构化和非结构化数据,例如日志数据、社交媒体数据等。

3. 高性能:非关系型数据库具有低延迟和高吞吐量的特点,适合处理实时数据和高并发访问的场景。

4. 灵活性:非关系型数据库对数据模式的变化具有较高的灵活性,能够快速适应数据结构的变化。

在如下场景中,选择非关系型数据库可能更为合适:1. 大数据和高并发访问的应用,如社交媒体平台、物联网应用等。

关系型数据库与非关系型数据库区别

关系型数据库与非关系型数据库区别

关系型数据库与⾮关系型数据库区别关系型数据库(Mysql和Oracle)1.表和表、表和字段、数据和数据存在着关系优点: 1.数据之间有关系,进⾏数据的增删改查的时候是⾮常⽅便的 2.关系型数据库是有事务操作的,保证数据的完整性和⼀致性。

缺点: 1.因为数据和数据是有关系的,底层是运⾏了⼤量的算法,⼤量算法会降低系统的效率,会降低性能 2.⾯对海量数据的增删改查的时候会显的⽆能为⼒ 3.海量数据对数据进⾏维护变得⾮常的⽆⼒常见应⽤: 适合处理⼀般量级的数据(银⾏转账和钱)⾮关系数据库的(redis和MangDB)为了处理海量数据,⾮关系数据库设计之初就是为了替代关系型数据库的关系优点: 1.海量数据的增删改查是可以的 2.海量数据的维护和处理⾮常轻松缺点: 1.数据和数据没有关系,他们之间就是单独存在的 2.⾮关系数据库没有关系,没有强⼤的事务关系,没有保证数据的完整性和安全性关于Nosql1.Nosql⾮关系型数据库,Not only sql。

2.Nosql特点:(1)易扩展,数据之间没有关系的。

(2)⼤数据量,⾼性能。

⾼性能读写⾮常灵活的。

(3)灵活的数据模型。

不需要事先对存储数据建⽴字段。

(4)⾼可⽤。

3.Nosql主要主流产品Redis(⼴泛应⽤),CouchDB,mongoDB,Cassandra等。

Nosql中⽐较⽕的三个数据库Redis、Memchache、MongoDb。

4.Nosql数据库四⼤分类:(1)键值对存储(key-value):Redis键值对存储,优势:快速查询,缺点:存储数据缺少结构化。

(2)列存储:Hbase,优势:快速查询,扩展性强。

缺点:功能相对于局限。

(3)⽂档数据库存储:MongoDB,早起应⽤多。

优势:要求不特别的严格。

缺点:查询性不⾼,缺少统⼀查询语法。

(4)图形数据库存储:应⽤于社交⽹络,优势:利⽤图结构相关算法。

缺点:需要整个图计算才得出结果,不容易做分布式集群⽅案。

关系型数据库VS非关系型数据库

关系型数据库VS非关系型数据库

关系型数据库VS⾮关系型数据库关系型1.概念关系型数据库是指采⽤了关系模型来组织数据的数据库。

简单来说,关系模式就是⼆维表格模型。

主要代表:SQL Server, Oracle, Mysql, PostgreSQL。

2.优点(1)容易理解,⼆维表的结构⾮常贴近现实世界,⼆维表格,容易理解。

(2)使⽤⽅便,通⽤的sql语句使得操作关系型数据库⾮常⽅便。

(3)易于维护,数据库的ACID属性,⼤⼤降低了数据冗余和数据不⼀致的概率。

3.瓶颈(1 )海量数据的读写效率。

对于⽹站的并发量⾼,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘I/o是⼀个很⼤的挑战。

(2) ⾼扩展性和可⽤性。

在基于web的结构中,数据库是最难以横向拓展的,当⼀个应⽤系统的⽤户量和访问量与⽇俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能⼒。

从关系型到⾮关系型关系型数据库的最⼤优点就是事务的⼀致性,这个特性,使得关系型数据库中可以适⽤于⼀切要求⼀致性⽐较⾼的系统中。

⽐如:银⾏系统。

但是在⽹页应⽤中,对这种⼀致性的要求不是那么的严格,允许有⼀定的时间间隔,所以关系型数据库这个特点不是那么的重要了。

相反,关系型数据库为了维护⼀致性所付出的巨⼤代价就是读写性能⽐较差。

⽽像微博、facebook这类应⽤,对于并发读写能⼒要求极⾼,关系型数据库已经⽆法应付。

所以必须⽤⼀种新的数据结构存储来替代关系型数据库。

所以⾮关系型数据库应⽤⽽⽣。

⾮关系型1.概念NoSQL⾮关系型数据库,主要指那些⾮关系型的、分布式的,且⼀般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CouchDB。

NoSQL提出了另⼀种理念,以键值来存储,且结构不稳定,每⼀个元组都可以有不⼀样的字段,这种就不会局限于固定的结构,可以减少⼀些时间和空间的开销。

使⽤这种⽅式,为了获取⽤户的不同信息,不需要像关系型数据库中,需要进⾏多表查询。

MongoDB(一):关系型数据库和非关系型数据库

MongoDB(一):关系型数据库和非关系型数据库

MongoDB(⼀):关系型数据库和⾮关系型数据库⼀、关系型数据库1、概念关系型数据库:是指采⽤了关系模型来组织数据的数据库,是⽬前各类数据库中使⽤最为⼴泛的数据库系统。

简单的说,关系模型指的就是⼆维表格模型,⼀个关系型数据库就是由⼆维表及其之间的联系所组成的⼀个数据组织。

现在使⽤的主流数据库都是关系型数据库,⽐如SQL Server、Mysql、Oracle、DB2、Sybase等。

关系模型中常⽤的概念:关系:可以理解为⼀张⼆维表,每个关系都具有⼀个关系名,就是通常说的表名。

元组:可以理解为⼆维表中的⼀⾏,在数据库中经常被称为记录。

属性:可以理解为⼆维表中的⼀列,在数据库中经常被称为字段。

域:属性的取值范围,也就是数据库中某⼀列的取值限制。

关键字:⼀组可以唯⼀标识元组的属性,数据库中常称为主键,由⼀个或多个列组成。

关系模式:指对关系的描述。

其格式为:关系名(属性1、属性2......属性N),在数据库中称为表结构。

2、关系型数据库的特点关系数据库是⽀持关系模型的数据库系统。

⽽关系模型是由⼆维表来表⽰实体和实体间联系的模型。

使⽤⼆维表存储数据,对使⽤者来说很直观,更容易理解。

使⽤关系数据库的优势主要表现在以下⼏个特性:(1)操作⽅便性。

通过开发应⽤程序和数据库连接,⽤户能⽅便的对数据库中数据进⾏操作,特别对没有数据库基础的⼈,也可以通过数据库管理系统,直接在数据库中操作。

(2)易于维护性。

关系数据库在完整性约束中提供了实体完整性、参照完整性和⽤户定义的完整性,通过完整性约束可以⼤⼤降低数据存储的冗余及数据不⼀致的概率。

(3)访问数据的灵活性。

关系数据库中提供了诸如视图、存储过程、触发器、索引等对象,使数据的访问更加灵活。

3、关系型数据库的瓶颈(1)对数据库⾼并发读写的需求Web2.0⽹站要根据⽤户个性化信息来实时⽣成动态页⾯和提供动态信息,⽆法使⽤动态页⾯静态化技术,因此数据库的并发负载⾮常⾼,往往要达到每秒上万次的读写请求,此时,服务器上的磁盘根本⽆法承受如此之多的读写请求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关系型与非关系型数据库(1)胡经国本文作者的话本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。

以此作为云计算学习笔录,供云计算业外读者进一步学习和研究参考。

希望能够得到大家的指教和喜欢!下面是正文一、云计算时代对数据库技术的新需求随着云计算时代的到来,各种类型的互联网应用层出不穷,对数据模型、分布式架构、数据存储等数据库相关技术指标提出了新的要求。

虽然传统的关系型数据库已在数据存储方面占据了不可动摇的地位,但是由于其天生的限制,已经越来越无法满足云计算时代对数据扩展、读写速度、支撑容量以及建设和运营成本的要求。

云计算时代对数据库技术提出了新的需求,主要表现在以下几个方面:⑴、海量数据处理对类似搜索引擎和电信运营商级的经营分析系统这样大型的应用而言,需要能够处理PB级的数据,同时需要应对百万级流量。

⑵、大规模集群管理大规模集群管理使分布式应用可以更加简单地部署、应用和管理。

⑶、低延迟读写速度快速的响应速度能够极大地提高用户的满意度。

⑷、建设及运营成本云计算应用的基本要求是希望在硬件成本、软件成本以及人力成本方面都有大幅度的降低。

链接:互联网应用互联网应用是指搜索引擎、聊天室和讨论组以及实用软件(公用软件、共享软件、自由软件)等。

宽带上网催生了一系列新的互联网应用,比较流行的如网络游戏、博客、微博、播客、互联网电视、互联网金融、流媒体(边传边播的媒体)、即时通信(如QQ)、网络电话(Voip)、电子商务等等。

链接:数据扩展数据扩展是由一组连续的数据块构成的,是数据库逻辑存储分配单位。

而数据表的数据段则是由一个或多个数据扩展构成。

当一个数据段己有空间用完时,关系数据库管理系统(Oracle)自动为这个数据段分配新的数据扩展。

当用户创建数据表时,Oracle为此数据表的数据段分配一个包含若干数据块的初始数据扩展。

虽然此时数据表中还没有数据,但是在此初始数据扩展中的数据块己经为插入新数据做好了准备。

如果一个数据段的初始数据扩展的数据块都己装满,而且有新的数据要插入时,Oracle会自动为这个数据段分配一个增量数据扩展。

链接:集群(Cluster)技术集群(Cluster)技术定义为:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。

该单一系统为客户工作站提供高可靠性的服务。

在大多数模式下,集群中所有的计算机拥有一个共同的名称,在集群内任一系统上运行的服务可以被所有的网络客户所使用。

Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。

一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。

任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。

每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间内。

Cluster内各节点服务器通过一个内部局域网相互通信。

当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。

当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。

当以上的任一故障发生时,客户都将能够很快地连接到新的应用服务上。

链接:分布式应用分布式应用(Distributed Application,DA),是指应用程序分布在不同计算机上,通过网络来共同完成一项任务的工作方式。

链接:低延迟延迟是一个现代词语,意思是推迟到较后的时间。

低延迟的需求,很大程度上来自于证券市场上高频交易比例的迅猛增长。

在证券产品可以在多家交易所进行交易的情况下,能够更快处理订单、更快反馈行情的交易所,显然更能吸引采用高频交易策略的机构投资者。

例如,2010年,纳斯达克(NASDAQ)应用INET(电子交易平台技术)处理延迟小于250微秒,每秒可处理100万笔订单,是当时世界上处理速度最快的交易所。

二、关系型数据库SQL1、关系型数据库概述关系型数据库是建立在数据关系模型基础上的数据库。

关系模型是指二维表格模型。

因而,一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。

关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。

在现实世界中,各种实体以及实体之间的各种联系均用关系模型来表示。

现如今,虽然对关系模型有一些批评意见,但是它还是数据存储的传统标准。

SQL(Structured Query Language,结构化查询语言),是一种标准数据查询语言,一种通用的、功能极强的关系型数据库语言,同时也是数据库脚本文件的扩展名。

SQL是一种数据库查询和程序设计语言,执行对关系型数据库中数据的检索和操作,用于存取数据以及查询、更新和管理关系型数据库系统。

它是1974年由Boyce和Chamberlin提出的一种介于关系代数与关系演算之间的结构化查询语言。

当前,主流的关系型数据库有Oracle、DB2、Postgre SQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等。

2、关系型数据库数据表关系型数据库的数据表,是以行和列的形式组织起来的数据集合。

一个数据库包括一个或多个数据表。

例如,可能有一个有关作者信息的名为authors 的数据表。

每列都包含有关特定作者的一类信息,如作者的姓氏;每行都包含有关特定作者的所有信息:姓名、住址等等。

在关系型数据库当中一个数据表就是一个关系,一个关系数据库可以包含多个数据表。

3、关系型数据库的特点和问题关系型数据库成为主流技术已经超过20年。

这是有它的道理的。

它把数据存储在磁盘中,人们可以通过最标准化的语言SQL来对数据进行各种操作。

它的事务性(transactional)能够有效地提供用户并发访问控制,并为应用程序的数据调用提供一致性。

而且,由于关系型数据库主要存储结构化数据,因而它的数据模型和标准化更加适用于报表(Report)的生成。

但是,关系型数据库的最大问题在于:它的设计初衷是要运行在单一的服务器上。

因此,在进行Scale-Out(水平扩展)的时候,很可能会遭遇巨大的瓶颈。

Scale-Up(纵向扩展),就是利用现有的存储系统,通过不断增加存储容量来满足数据增长的需求,就是你买更大的机器来跑数据库;而Scale-Out(水平扩展),就是用多个普通服务器组成集群,让数据库分布在这个集群的节点当中。

集群(Cluster)的概念,就是用更多的服务器来做一件事;其中如果一个服务器宕机,其它的机器还可以继续运行,因此整个集群也能够正常工作。

链接:宕机、宕掉宕机,音译即down机。

服务器宕机是指服务器压力死机或需要重启;数据库宕掉是指数据库压力导致响应需要重启。

4、关系型数据库的劣势分析随着Web2.0的发展,传统的关系型数据库在应对超大规模和高并发的SNS(Social Network Site,社交网站)类型的网站方面,暴露了许多难以克服的问题,主要表现在以下方面:⑴、高并发读写速度慢这种情况主要发生在数据量达到一定规模时。

由于关系型数据库的系统逻辑非常复杂,使得其非常容易发生死锁等并发问题,导致其读写速度下降非常严重。

例如,Web2.0网站,要根据用户个性化信息来实时生成动态页面、提供动态信息,所以基本上无法使用动态页面静态化技术。

因此,数据库并发负载非常高,往往要达到每秒上万次读写请求。

关系型数据库勉强可以应付上万次SQL查询,而硬盘I/O则往往无法承担上万次的SQL写数据请求。

⑵、支撑容量有限类似Facebook、Twitter这样的SNS网站,用户每天产生海量的用户动态,每月会产生几亿条用户动态。

对于关系型数据库来说,在一张有数亿条记录的数据表里面进行SQL查询,效率是极其低下甚至是不可忍受的。

⑶、扩展性差在基于Web的架构当中,数据库是最难进行横向扩展的。

当一个应用系统的用户量和访问量与日俱增的时候,传统的关系型数据库却没有办法像Web Server(Web服务器)那样,简单地通过添加更多的硬件(服务器)和服务器节点,来扩展性能和负载能力。

对于很多需要提供不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。

因此,迫切需要关系型数据库也能够通过不断添加服务器节点来实现横向扩展。

⑷、建设和运维成本高企业级数据库的价格很高,并且随着系统的规模增大而不断上升。

高昂的建设和运维成本,无法满足云计算应用对数据库的需求。

关系型数据库遇到上述难以克服的瓶颈。

与此同时,它的很多主要特性,在云计算应用中,却往往无用武之地。

例如:数据库事务一致性、数据库的写实时性和读实时性、复杂的SQL查询特别是多数据表关联查询。

因此,传统的关系型数据库,已经无法独立应付云计算时代的各种应用。

链接:事务一致性事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态。

保证数据库事务一致性,是指当事务完成时,必须使所有数据都具有一致的状态。

在关系型数据库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。

保证数据库事务一致性是数据库管理系统的一项功能。

比如,有两个数据表(员工/职位)。

在员工表中有员工代码、姓名、职位代码等属性;在职位表中有职位代码、职位名称、职位等级等属性。

你在其中员工表中进行了插入操作,你插入了一个新员工的信息;而这个新员工的职位是公司新创建的一个职位。

如果没有事务一致性的保证,那么就会出现有这么一个员工,但是不知道他到底担当什么职责!这个只是它的一个小小方面。

2016年12月22日编写于重庆2019年2月11日修改于重庆。

相关文档
最新文档