在商用数据库应用中,关系型数据库已经成为目前主要的数据模型,和早期的网络模型或者层次模型相比,关系模型简化了开发者的工作,使开发更加的高效。我们来看看关系型数据库的一些概念。

关系型数据库

关系型数据库,是采用关系模型来组织数据的数据库,以行和列的形式存储数据,我们把这些行和列称为,数据库里可以有很多表,因此,我们说关系型数据库由表的集合组成。其中,关系模型可以简单理解为二维表格模型,于是一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。

我们举例来看,有2个表:

course(id, name, des)存放课表信息,这个表可以看作一个特定的ID到的name,des之间的关系,每行可以看作是这种关系的一个实例,通过一个ID就可以找出这个ID代表的具体信息。如果你把表结构看作一个类,每行的记录就可以看作是这个类的一个实例。

prereq_course(req_course_id, course_id)存放每门课的先修课信息,这个表可以看作两门课之间的关系:其中一门课是另外一门课的先修课。

表这个概念又和数学上的关系这个概念是密切相关的,这也是关系型数据模型名称的由来。数学中,关系运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接、除法、外连接等),关系运算的概念可以看这里,在数据库中也有这些运算操作,如联合,交集,连接等。

主键和外键

因为表有很多记录组成的集合,我们要想办法把他们区分开。比如具有唯一性的工号编码、身份证号码、手机号,用这些属性就可以唯一标识一条记录,这些能唯一标识表中每一行内容的一列或多列被称为表的主键 (PK)。

如果表中的某列是另外一个表的主键,这样的列被称为外键(FK),通过外键就把这两个表之间建立了链接。

操作

关系模型中的操作大致分为2类,一类是数据的查询,可以理解为对原始数据的加工处理,如连接、并、交、差,不同的查询的到的结果是不同的;一类就是对数据的操作,如增、查、改、删(CRUD)这些。

数据表(Table)

简称表,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。在关系型数据库中一个表(关系Relation)就是一个关系,一个关系数据库可以包含多个表(关系Relation)。

记录(Record)

表中的每一称为一个记录,或者叫元组(Tuple)、行(Row),它由若干个字段组成。

字段(Field)

表中的每一称为一个字段,或者叫列、域,每个字段都有相应的描述信息,如数据类型、数据宽度等。

索引(Index)

为了提高访问数据库的效率,可以对数据库使用索引。当数据库较大时,为了查找指定的记录,则使用索引和不使用索引的效率有很大差别。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。

查询(Query)

一条SQL(结构化查询语言)命令,用来从一个或多个表中获取一组指定的记录,或者对某个表执行指定的操作。当从数据库中读取数据时,往往希望读出的数据符合某些条件,并且能按某个字段排序。使用SQL,可以使这一操作容易实现而且更加有效。SQL是非过程化语言,在用它查找指定的记录时,只需指出做什么,不必说明如何做。每个语句可以看作是一个查询(query),根据这个查询,可以得到需要的查询结果。非过程化是“我”让“某物”干什么事情;而过程化的是“让某物怎么样去干事情”,SQL描述了如何对数据进行检索、插入、删除等,但它并不说明如何进行这样的操作。