-
1 视频
-
2 作业
关系数据模型
关系数据库是当今主流的数据库管理系统,一个关系就是一个二维表。这种用二维表的形式表示实体和实体间联系的数据模型称为关系模型。
要了解关系数据库,首先需对其基本关系术语进行认识。
1.关系术语
(1)关系
一个关系就是一个二维表,每个关系有一个关系名称。对关系的描述称为关系模式,一个关系模式对应一个关系的结构。其表示格式如下:
关系名(属性名1,属性名2,…,属性名n)
在Access中则表示为:表名(字段名1,字段名2,…,字段名n)
(2)元组
在一个关系(二维表)中,每行为一个元组。一个关系可以包含若干个元组,但不允许有完全相同的元组。在Access中,一个元组称为一个记录。例如,“课程”表就包含了7条记录。
(3)属性
关系中的列称为属性。每一列都有一个属性名,在同一个关系中不允许有重复的属性名。在Access中,属性称为字段,一个记录可以包含多个字段。例如,“课程”表就包含了5个字段。
(4)域
域指属性的取值范围。如课程号字段为99开头的6位数字。
(5)关键字
关键字又称码,由一个或多个属性组成,用于唯一标识一个记录。例如,学生表中的学号可以唯一地确定一个学生,所以学号可以作为学生表中的关键字。关键字的值不能够为空。一个表可以有多个关键字,在关系数据库中,只能选择其中一个作为主关键字,剩余的关键字称为候选关键字。
(6)外部关键字
如果关系中的某个属性或者属性的组合不是关系的主关键字,但它是另外一个关系的主关键字或候选关键字,则该属性称为外部关键字,也称为外键。外部关键字目的是和其他关系建立联系的。
2.实际关系模型
在关系模型中,信息被组织成若干张二维表,每张二维表成为一个二元关系。Access数据库往往包含多个表,各个表一般通过相同字段名构建联系。
在“学籍管理”数据库中“学生”、“课程”、“成绩”表之间的关系如图一所示。“学生”表和“成绩”表通过相同的字段“xh”(学号)相联系,“课程”表和“成绩”表通过相同的字段“kch”(课程号)相联系,构建了3个表的关系模型。该数据库中的3个表如图二所示,由3个表相联系得到的一个“学生成绩信息”查询如图三所示:
关系运算
关系运算是对关系数据库的数据操纵,主要是从关系中查询需要的数据。关系的基本运算分为两类,一类是传统的集合运算,包括并、交、差等;另一类是专门的关系运算,包括选择、投影、连接等。关系运算的操作对象是关系,关系运算的结果仍然是关系。
1.传统的集合运算
传统的集合运算要求两个关系的结构相同,执行集合运算后,得到一个结构相同的新关系。
对于任意关系R和关系S,他们具有相同的结构即关系模式相同,而且相应的属性取自同一个域。那么,传统的集合运算定义如下:
(1)并
R并S,R或S两者中所有元组的集合。一个元组在并集中只出现一次,即使它在R和S中都存在。
例如,把学生关系R和S分别存放2个班的学生,把一个班的学生记录追加到另一个班的学生记录后边,就是进行的并运算。
(2)交
R交S,R和S中共有的元组的集合。
例如,有参加计算机兴趣小组的学生关系R和参加象棋兴趣小组的学生关系S,求既参加计算机兴趣小组又参加象棋兴趣小组的学生,就要进行交运算。
(3)差
R差S,在R中而不在S中的元组的集合。注意R差S不同于S差R,后者是在S中而不在R中的元素的集合。
例如,有参加计算机兴趣小组的学生关系R和参加象棋兴趣小组的学生关系S,求参加了计算机兴趣小组但没有参加象棋兴趣小组的学生,就要进行差运算。
2.专门的关系运算
(1)选择
从关系中找出满足条件元组的操作称为选择。选择是从行的角度进行运算的,在二维表中抽出满足条件的行。例如,在学生成绩的关系1中找出“一班”的学生成绩,并生成新的关系2,就应当进行选择运算,如图所示:
(2)投影
从关系中选取若干个属性构成新关系的操作称为投影。投影是从列的角度进行运算的,选择某些列的同时丢弃了某些列。例如,在学生成绩的关系1中去除掉成绩列,并生成新的关系2,就应当进行投影运算,如图所示:
(3)连接
连接指将多个关系的属性组合构成一个新的关系。连接是关系的横向结合,生成的新关系中包含满足条件的元组。例如关系1和关系2进行连接运算,得到关系3,如图(1)所示。在连接运算中,按字段值相等执行的连接称为等值连接,去掉重复值的等值连接称为自然连接,如图(2)所示。自然连接是一种特殊的等值连接,是构造新关系的有效方法。
关系的完整性
关系的完整性是对数据的约束,关系数据库管理系统的一个重要功能就是保证关系的完整性。关系完整性包括实体完整性、值域完整性、参照完整性和用户自定义完整性。
1.实体完整性
实体完整性指数据表中记录的唯一性,即同一个表中不允许出现重复的记录。设置数据表的关键字可便于保证数据的实体完整性。例如学生表中的“学号”字段作为关键字,就可以保证实体完整性,若编辑“学号”字段时出现相同的学号,数据库管理系统就会提示用户,并拒绝修改字段。
2.值域完整性
值域完整性指数据表中记录的每个字段的值应在允许范围内。例如可规定“学号”字段必须由数字组成。
3.参照完整性
参照完整性是指相关数据表中的数据必须保持一致。例如学生表中的“学号”字段和成绩表中的“学号”字段应保持一致。若修改了学生表中的“学号”字段,则应同时修改成绩记录表中的“学号”字段,否则会导致参照完整性错误。
4.用户自定义完整性
用户自定义完整性指用户根据实际需要而定义的数据完整性。例如可规定“性别”字段值为“男”或“女”,“成绩”字段的值必须是0~100范围内的整数。