基本概念
在关系型数据库中,关系模型中的概念与数据库层面上的概念的对应关系如下:
- 关系(relation)指关系型数据库中的一张表
- 元组(tuple)指表中的一行数据
- 属性(attribute)指表的列
关系在这里仅仅是一个抽象的概念,关系更偏向一种设计,而关系 + 元组则组成了一个具体的关系实例。关系是逻辑存在的概念,而关系实例是某一个时刻,该关系中数据的一个快照。与此类似的还有数据库模式(database schema)和数据库实例(database instance),前者是数据库的逻辑设计,后者是某个时刻,数据库中的数据的一个快照。
键
键(key)用来唯一标识一个关系中的不同元组。一个关系有不同的键
- 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
- 候选键(candidate key):不含有多余属性的超键称为候选键
- 主键(primary key):选作元组标识的一个候选键称为主键
- 外键(foreign key):属性不是本关系的主键,而是另一个关系的主键
假设有这样两个个关系
学生(学号,身份证号,名字,性别,身高,体重,教师编号)
教师(编号,名字)
在现实生活中,同一个学校里,我们可以通过学号来唯一确定一个学生,也可以通过身份证号来确定一个学生。
由超键的定义可知,学生表中含有学号或者身份证号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(身份证号,性别)等。候选键属于超键,它是最小的超键,就是说如果再去掉候选键中的任何一个属性它就不再是超键了。学生表中的候选键为:(学号)、(身份证号)。 主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键。学生表中的外键就是“教师编号”。外键主要是用来描述两个关系的相互引用。
关系代数
关系代数是一种抽象的查询语言,用对关系的运算来表达查询,关系代数运算的对象是关系,运算结果亦是关系。 关系代数的基本关系包括:并、交、差、笛卡尔积、选择、投影、连接、除法运算。
- 选择 δ
选择是根据某些条件对关系做水平切割,例如 δ salary > '10000'(R),返回关系实例中满足响应谓词的元组 - 投影 π
投影与选择正好相反,是对关系的一种垂直切割,消去某列,并重新安排列的顺序。投影用(π)表示。例如:π id,name(R),返回关系 R 中所有元组的 id 和 name 属性。 - 笛卡尔积 X
计算两个关系 R 和 S 的笛卡尔积,R 的元数为 r ,S 的元数为 s,则 R×S 是一个(r+s)元的元组集合 - 连接 ⋈
从两个关系的笛卡尔积中选取属性间满足一定条件的元组,用(R ⋈ S)表示,连接分为两种,一种是等值连接,另一种是自然连接。等值连接必须要有等值的条件,当条件不同时连接的结果也不相同,两个关系可以没有相同的属性列,自然连接必须要有相同的属性列才能进行,即等值连接之后要去除相同的属性列。 - 除法 ÷
除运算是同时从关系的水平方向和垂直方向进行运算。给定关系 R(X,Y) 和 S(Y,Z),X、Y、Z 为属性组。R ÷ S应当满足元组在 X 上的分量值 x 的象集 Yx 包含关系 S 在属性组 Y 上投影的集合。
网友评论