一、关系型数据库

        基本上,关系型数据库就是一个数据集合,它保存了许多个表。术语“关系(relational)”用来表示各表彼此相互关联。例如,我们来看数据库的一个简单示例,它只有两个表:Customers表和Orders表。Customers 表为每位下订单的客户保存一条记录。Orders 表针对每个订单保存一条记录。每个表可以包含任意多个字段,字段用来存储与每条记录相关的不同属性。例如,Customers 表可以保存诸如 First Name和 Last Name这样的字段。         这时,可视化一些表和表中所包含的数据是很有用的。通常习惯是,把表显示为由行和列组成的一个表格。每一行表示表中的一条记录,每一列表示表中的一个字段。行头通常是字段名。剩余的其他行显示实际的数据。 在SOL术语中,记录(record)和字段 (field)实际上就称为行 (row)和列(column),这和视觉上的表现是对应的。因此,今后我们使用术语“行”和“列”来说明关系型数据库中表的设计,而不再使用记录和字段。         我们来看关系型数据库中一个可能是最简单的示例。在这个数据库中,只有两个表,分别是Customers 表和Orders 表:         1.Customers表:

                                        

        2.Orders 表:

                                        

        在这个里面,Customers 表包含了3个列:CustomerID、FirstName和LastName。目前,表中有3行,分别表示 William Smith、Natalie Lopez和 Brenda Harper。每一行表示一个不同的客户,每一列表示该客户的一段不同的信息。与之类似,Orders 表有4 行和3这表示数据库中有4笔订单,每笔订单有3种属性。         当然,这个示例非常简单,并且只是提示了哪些数据类型可以存储到一个真实的数据库中。例如,Customers 表通常会包含描述客户的其他属性的许多附加的列,诸如 city、state、ZIP和phone。同理,Orders表一般也会有一些描述订单的其他属性的列,诸如order date salestax以及该订单的salesperson。

二、特点

1.存储方式:传统的关系型数据库采用表格的储存方式,数据以行和列的方式进行存储,要读取和查询都十分方便。

2.存储结构:关系型数据库按照结构化的方法存储数据,每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表的可靠性和稳定性都比较高,但带来的问题就是一旦存入数据后,如果需要修改数据表的结构就会十分困难。

3.存储规范:关系型数据库为了避免重复、规范化数据以及充分利用好存储空间,把数据按照最小关系表的形式进行存储,这样数据管理的就可以变得很清晰、一目了然,当然这主要是一张数据表的情况。如果是多张表情况就不一样了,由于数据涉及到多张数据表,数据表之间存在着复杂的关系,随着数据表数量的增加,数据管理会越来越复杂。

4.扩展方式:由于关系型数据库将数据存储在数据表中,数据操作的瓶颈出现在多张数据表的操作中,而且数据表越多这个问题越严重,如果要缓解这个问题,只能提高处理能力,也就是选择速度更快性能更高的计算机,这样的方法虽然可以一定的拓展空间,但这样的拓展空间一定有非常有限的,也就是关系型数据库只具备纵向扩展能力。

5.查询方式:关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询,SQL早已获得了各个数据库厂商的支持,成为数据库行业的标准,它能够支持数据库的CRUD(增加,查询,更新,删除)操作,具有非常强大的功能,SQL可以采用类似索引的方法来加快查询操作。

6.规范化:在数据库的设计开发过程中开发人员通常会面对同时需要对一个或者多个数据实体(包括数组、列表和嵌套数据)进行操作,这样在关系型数据库中,一个数据实体一般首先要分割成多个部分,然后再对分割的部分进行规范化,规范化以后再分别存入到多张关系型数据表中,这是一个复杂的过程。好消息是随着软件技术的发展,相当多的软件开发平台都提供一些简单的解决方法,例如,可以利用ORM层(也就是对象关系映射)来将数据库中对象模型映射到基于SQL的关系型数据库中去以及进行不同类型系统的数据之间的转换。

7.事务性:关系型数据库强调ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)),可以满足对事务性要求较高或者需要进行复杂数据查询的数据操作,而且可以充分满足数据库操作的高性能和操作稳定性的要求。并且关系型数据库十分强调数据的强一致性,对于事务的操作有很好的支持。关系型数据库可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以马上回滚事务。

8.读写性能:关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价,虽然关系型数据库存储数据和处理数据的可靠性很不错,但一旦面对海量数据的处理的时候效率就会变得很差,特别是遇到高并发读写的时候性能就会下降的非常厉害。

9.授权方式:关系型数据库常见的有 Oracle,SQLServer,DB2,Mysql,除了Mysql大多数的关系型数据库如果要使用都需要支付一笔价格高昂的费用,即使是免费的Mysql性能也受到了诸多的限制。