关系数据模型
关系模型是目前最常用的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为关系数据库技术奠定了理论基础。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,非关系模型系统的产品也大都加上了接口。数据库领域当前的研究工作也都是以关系方法为基础。本书的重点也将放在关系数据模型上,以后各章节的讨论都是基于关系模型的。
1. 关系数据模型的数据结构
在现实世界中,人们经常用表格形式表示数据信息。在关系模型中,数据的逻辑结构是一张二维表格,它由行和列组成。如图1.13所示的学生基本信息表就是一个关系模型。
|
图1.13 学生学籍表关系模型的结构
图1.13所示的学生学籍表的左侧是日常生活的一般术语,而右侧所列的是关系模型的一些主要概念术语,
l 关系(relation):一个关系对应一张二维表,如学生学籍表对应一个关系。
l 元组(tuple):表格中的一行即为一个元组,如学生学籍表中的一个学生记录即为一个元组。
l 属性(attribute):表格中的一列即为一个属性,相当于记录中的一个字段。
l 主码(key):可唯一标识元组的属性或属性集,也称为关系键或关键字,如学生学籍表中的学号可以唯一确定一个学生,为学生关系的主码。
l 域(domain):属性的取值范围,如性别的域是(男,女),出生年月的域可以是(1900.01.01~2050.12.31)。
l 分量(element):每一行对应的列的属性值,即元组中的一个属性值,如学号、姓名、年龄等均是一个分量。
l 关系模式(relational schema):对关系的描述,表现为关系名和属性的集合,一般表示为:关系名(属性1,属性2,……属性n)。例如学生学籍表关系可以描述为:
学籍表(学号,姓名,性别,出生日期,籍贯,所属专业)。
在关系模型中,实体集以及实体间的联系都是用关系来表示的。
实例1.5 描述教务系统中学生选课数据库TC的关系模型。
在这个数据库中包含五个关系:教师关系T、学生关系S、课程关系C、选课关系SC和授课关系TC。在关系模型中,实体是用关系来表示的,如本例中的教师、学生和课程等实体都是关系。不仅如此,实体间的关系也是用关系来表示的,如本例中的学生与课程之间的多对多联系、教师与课程之间的多对多联系也可以用关系加以描述。
教师关系T(教师号,姓名,性别,出生日期,职称,岗位工资,所在系)
学生关系S(学号,姓名,性别,出生日期,籍贯,所属系)
课程关系C(课程号,课程名,类别,课时)
课程关系SC(学号,课程号,成绩)
开课关系TC(教师号,课程号)
关系模型要求关系必须是规范的,即要求关系模式必须满足一定的规范要求。这些规范条件很多,但最基本的一条就是关系的每一个分量必须是不可分的数据项,也就是说不允许表中还有表。在表1.1中,成绩被分为英语、数学、数据库等多项,这相当于在大表中还有一张小表(成绩表),因此表1.1不符合规范要求。
表1.1 学生学籍与成绩表
|
2. 关系模型的数据操纵与完整性约束
关系数据模型的操纵主要不可查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整新约束条件不可三大类:实体完整性、参照完整性和用户定义的完整性,具体含义及其定义方式将在后面章节中介绍。
关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,而不像非关系模型中那样是单记录的操作。用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户的生产率。
3. 关系模型的优缺点
关系模型的主要优点:
l 与非关系模型不同,它是建立在严格的数学概念基础上。关系及其系统的设计和优化有较强的数学理论根据。
l 数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。
l 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。
关系模型的主要缺点:
由于存取路径对用户透明,查询效率往往不如非关系模型,因此,为了提高性能,必须对用户的查询表示进行优化,增加了开发数据库管理系统的负担。