五、关系模型

关系模型是目前最常用的数据模型,关系数据库采用的数据模型是关系模型。1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。他发表了题为“大型共享数据银行数据的关系模型”(a relation model of data for large shared data banks)的论文,开创了数据库的关系方法和数据规范化理论的研究,为此获得了1981年的图灵奖。

1.关系模型的数据结构

从用户观点看,关系模型的数据结构是一张规范化的二维表。现以表1-3所示的医生登记表为例,介绍关系模型中的一些术语。

表1-3 医生登记表

img

(1)关系(relation) 一个关系对应一张通常意义的二维表,如表1-3所示的医生登记表就是一个关系。

(2)元组(tuple) 表中的一行就是一个元组。

(3)属性(attribute) 表中的一列对应一个属性,表1-3有5列,对应5个属性,分别是医生ID、姓名、职称、科室和助手。

(4)码(key) 表中的某个属性组,可以唯一确定一个元组,称为关系的码。如表1-3中的医生ID,可以唯一确定一位医生,医生ID就是医生登记表的码。

(5)域(domain) 属性的取值范围称为域,如医生的ID是6位数字字符,职称的取值范围是(实习医生、住院医师、主治医师、副主任医师、主任医师),科室的取值范围是医院所有科室中的一个。

(6)分量 元组中的一个属性值称为分量。如“198005”“王丹”“内科”都是分量。

(7)关系模式 通过关系名和属性来描述关系,一般表示为关系名(属性1、属性2……属性n)。例如,医生的关系模式可以描述为医生(医生ID、姓名、职称、科室、助手)。

关系模型要求关系必须是规范化的,即关系必须满足一定的规范条件,这些条件中基本的一条是:关系的每个分量必须是一个不可分的数据项,也就是说,不允许表中嵌表。表1-4所示的工资表中,工资和扣除是可分的数据项,工资分为基本工资、薪级工资和绩效工资,扣除又分为水费和电费。因此,表1-4不符合关系模型的基本要求。

表1-4 工资表示例

img

2.关系模型的操作和完整性约束

关系数据模型的操作主要包括查询、插人、更新和删除。关系模型中的数据操作是集合操作,操作对象和结果都是关系,即元组的集合,有别于格式模型的单记录操作方式。而且,关系模型的数据存取路径对用户是隐藏的,用户只要提出“干什么”或者“查什么”,而不需要说明“怎么干”或“怎么查”,极大方便了用户的使用。

关系数据模型的操作必须满足关系的完整性约束条件,关系的完整性约束条件包括3大类:实体完整性、参照完整性和用户自定义完整性。其具体含义将在第二章详细介绍。

3.关系模型的优缺点

关系模型的主要优点。

(1)关系模型建立在严格的数学理论基础之上。

(2)关系模型的概念单一。不仅用关系描述实体,而且用关系描述实体间的联系。数据结构简单、清晰,用户易懂易用。

(3)关系模型的存取路径对用户透明(注释:计算机中的“透明”与现实理解的透明是相反的,意思是不可见),从而具有更高的数据独立性、更好的安全保密性,简化了数据库建立和开发的工作。

关系模型主要的缺点:由于存取路径对用户透明,查询效率往往不如格式化模型,因此,为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。