目录
2.1 关系数据结构及形式化定义
关系数据库系统是支持关系模型的数据库系统。
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.1.1 关系
关系模型的数据结构非常简单,只包含单一的数据结构——关系。在关系模型中,现实世界的实体以及实体间的各种联系均用单一的结构类型,即关系来表示。
1、域
定义:域是一组具有相同数据类型的值的集合
2、笛卡儿积
笛卡儿积是域上的一种集合运算。
定义2.2 :给定一组域D1,D,……,Dn,允许其中某些域是相同的,D1,D2,……,Dn的笛卡儿积为
D1xD2x……xDn={(d1,d2,……,dn)|di∈Di,i=1,2,……,n}
其中,每一个元素(d1,d2,……,dn)叫作一个n元组,或简称元组。元素中的每一个值di叫做一个分量。
一个域允许的不同取值个数称为这个域的基数。
若Di(i=1,2,……,n)为有限集,其基数为mi(i=1,2,……,n),则D1xD2x……xDn的基数M为
例如:
笛卡儿积可表示为如下形式
D1=导师集合 SUPERVISION={张清玫,刘逸}
D2=专业集合SPECIALITY={计算机专业,信息专业}
D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏}
则D1、D2、D3的笛卡儿积为
D1xD2xD3={
(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}
其中,(刘逸,计算机专业,李勇)、(张清玫,计算机专业,李勇)等都是元组。张清玫、计算机专业、李勇、刘晨等都是分量。
该笛卡儿积的基数为2x2x3=12,也就是说,D1xD2xD3一共有2x2x3=12个元组。
3、关系
定义2.3 D1xD2x……xDn的子集叫做在域D1,D2,……,Dn上的关系,表示为
R(D1,D2,……,Dn)
这里R表示关系的名字,n是关系的目或度。
关系中的每个元素是关系中的元组,通常用t表示。
当n=1时,称该关系为单元关系,或一元关系。
当n=2时,称该关系为二元关系。
由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。
关系是笛卡儿积的有限子集。n目关系必有n个属性。
若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
若一个关系有多个候选码,则选定其中一个为主码。
候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性,
在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。
关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。其中,基本表是实际存在的表,它是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
关系可以是一个无限集合。但是关系模型需要有实际意义,所以当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充。
(1)无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。
(2)