一、关系模型

关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

1.关系模型的数据结构——关系

关系模型中数据的逻辑结构是一张二维表。

2.关系操作

关系操作包括:选择(select)、投影(project)、连接(join)、除(divide)、并(union)、交(intersection)、差(difference)等查询(query)操作和增(insert)、删除(delete)、修改(update)等更新操作两大部分。查询的表达能力是其中最主要的部分。

3.关系的三类完整性约束

允许定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。

二、关系数据库基本概念

关系:

是笛卡尔积的子集,所以关系也是一个二维表。

元组:

对应表的每行

域:

对应表的每列

属性(Attribute):

由于域可以相同,为了加以区分,必须对每列起一个唯一的名字。

候选码(Candidate key):

若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。关系至少含有一个候选码。

主码(Primary key):

若一个关系有多个候选码,则选定其中一个为主控使用者称为主码。

主属性(Prime attribute):

候选码中的诸属性。

非主属性(Non-key attribute):

不包含在任何侯选码中的属性。 在最简单的情况下,侯选码只包含一个属性。

全码(All-key):

关系模式的所有属性组是这个关系模式的侯选码,称为全码(All-key)。

 

① 列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。
② 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
③ 列的顺序无所谓,即列的次序可以任意交换。
④ 任意两个元组不能完全相同。
⑤ 行的顺序无所谓,即行的次序可以任意交换。
⑥ 分量必须取原子值,即每一个分量都必须是不可分的数据项。

三、关系完整性

规则2.1  实体完整性规则:若属性组(或属性)K是基本关系R的主码(或称主关键字),则所有元组K的取值唯一,并且K中属性不能全部或部分取空值。

规则2.2 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。

用户定义的完整性就是针对某一具体应用的关系数据库所制定约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

四、关系运算

⒈ 选择(Selection)σ
⒉ 投影(Projection)∏
⒊ 连接(Join)∞
  • 等值连接(equijoin)
  • 自然连接(Natural join):等值链接后消除重复属性
4.除(Division)

举例:

设教学数据库中有三个关系,学生关系:S(SNO,SN,AGE,SEX)、学习关系:SC (SNO,CNO,SCORE)、课程关系:C (CNO,CN,TEACHER)
(1)检索学习课程号为C3的学生学号和成绩
∏SNO,SCORE(σCNO=’C3’(SC))
(2)检索学习课程号为C3的学生学号和姓名∏SNO,SN(σCNO=’C3’(S∞SC))
(3)检索学习课程名为MATHS的学生学号和姓名∏SNO,SN(σCN=’MATHS’(S∞SC∞C))
(4)检索学习课程号为C1或C3的学生学号∏SNO (σCNO=’C1’V’CNO=’C3’(SC))
(5)检索不学习课程号为C2的学生的姓名和年龄∏SN,AGE(S)- ∏SN,AGE (σCNO=’C2’(S∞SC))

(6)检索学习全部课程的学生姓名∏SN(S∞(∏SNO,CNO(SC)÷∏CNO(C)))

(7)检索所学课程包括200401所学课程的学生学号∏SNO,CNO(SC)÷∏CNO(σSNO=’200401’(SC))