“课程”关系
(1)关系术语。
① 关系。
一个关系就是一个二维表,每个关系有一个关系名,又被称为表名(见表1-1)。其中,有“教师”“课程”“讲授”3个关系(表)。在Access中,一个关系就是数据库文件中的一个表,具有一个表名。例如,“教师”表、“课程”表、“授课”表。
② 元组。
表中的一行就是一个元组,又被称为一条记录。在Access中,元组对应数据库文件表中的一条记录。例如,教工号为001、姓名为张晴的记录。
③ 属性。
表中的一列就是一个属性,又被称为一个字段。每个属性有一个属性名。在Access中,一个属性叫作一个字段,每个字段有一个字段名。例如,教工号、姓名、性别、系号等字段。
④ 域。
域是属性的取值范围。例如,“男”或“女”是性别的取值范围,对应的是性别字段的一个域。
⑤ 关系模式。
对关系的描述被称为关系模式,它对应一个关系的结构。写成关系名(属性1,属性2,…,属性n)。
例如,在表1-1中,“教师”表的关系模式为教师(教工号,姓名,性别,系号)。
⑥ 主关键字。
在表中能够唯一标识一条记录的字段或字段组合被称为候选关键字。例如,教工号和系号都是候选关键字。一个表可能有多个候选关键字,从中选择一个作为主关键字,又被称为主键。例如,“教师”表中的“教工号”字段在每条记录中是唯一的,因此教工号就是主键。
⑦ 外部关键字。
如果表A和表B中有公共字段,且该字段在表B中是主键,则该字段在表A中被称为外部关键字或外键。例如,“授课”表和“课程”表中都有“课程号”字段,且“课程号”在“课程”表中是主键,则“课程号”在“授课”表中就是外键。
在关系型数据库中,主键和外键表示了两个表之间的联系。例如,“课程”表和“授课”表中的记录可以通过公共的“课程号”字段相联系,当要查找某名教工号的教师讲授的课程时,可以先在“授课”表中找出该教工号所属的课程号,再到“课程”表中找出该课程号所对应的课程。
(2)关系模型的主要特点。
关系模型对关系有一定的要求,关系模型的主要特点如下。
① 在关系(表)中每一个属性(字段)不可再分,是最基本的单位。就是表中不能再有表。
② 在同一个关系(表)中不能有相同的属性名(字段名)。
③ 在关系(表)中不允许有相同的元组(记录)。
④ 在关系(表)中各属性(字段)的顺序是任意的。
⑤ 在关系(表)中元组(记录)的顺序是任意的。
⑥ 在关系(表)中每一列元素必须是同一类型的数据。
(3)关系运算。
从一个关系或几个关系中查询所需要的数据,就要使用关系运算。关系运算的对象是一个关系,运算结果仍是一个关系。关系的基本运算分为传统的集合运算(并、差、交等)和专门的关系运算(选择、投影和连接)。
① 并(Union)。
假设关系A和B具有相同的关系模式,由两个关系A和B的并产生一个新的关系C,C由A和B去掉重复记录后所有的记录组成。记作C=A∪B,如表 1-2所示。
表1-2 C=A∪B
② 差(Difference)。
假设关系A和B具有相同的关系模式,由两个关系A和B的差产生一个新的关系C,C由属于A但不属于B的记录组成。记作C=A-B,如表 1-3所示。
表1-3 C=A-B
③ 交(Intersection)。
假设关系A和B具有相同的关系模式,由两个关系A和B的差产生一个新的关系C,C由既属于A又属于B的所有记录组成。记作C=A∩B,如表 1-4所示。
表1-4 C=A∩B