-
并:取并集
-
交:取交集
-
差:取差
-
笛卡尔积:每条记录直接相乘合并,记录数变为MxN
-
投影(∏):类似于选择列
-
选择(σ): 从R关系表内选择出符合关系的
连接
等值连接
等值连接:R.A = S.B(A、B属性名可不同也可以相同)
语法:R ⋈AθBS = { tr ⌒ ts | tr ∈ R ∧ ts ∈ S ∧ tr[A] = ts[B] }
其中,R和S为关系表,A、B分别是关系R、S上的可比属性组(A、B两个属性组的域相同,就称为可比属性组)
θ称为比值符,也就是>、<、=号; 当θ两边的属性相等时,等值S连接成立;
等值连接其结果是从关系R和S的笛卡尔积中选出属性组AB相等的元组,即:
$$
\begin{align}σ_{(A=B)}(R×S)\end{align}
$$
\begin{align}σ_{(A=B)}(R×S)\end{align}
$$
结果上,从S×C的笛卡尔积内选择出S.CNO = C.CNO的元组,即:
$$
\begin{align} σ_{(CNO=CNO)}(S×C) \end{align}
$$
\begin{align} σ_{(CNO=CNO)}(S×C) \end{align}
$$
自然连接
R.A = S.A(必须有相同的属性名且域相同才可以进行自然连接)
特殊的等值连接,比较的分量必须是同一属性组
在等值连接的基础上去掉重复的属性列
结果上,从S×C的笛卡尔积内选择出S.CNO = C.CNO的元组并去重,即:
$$
\begin{align}Π_{(Name,Sex,Age,CNO,CN)}\{σ_{(CNO=CNO)}(S×C)\}\end{align}
$$
\begin{align}Π_{(Name,Sex,Age,CNO,CN)}\{σ_{(CNO=CNO)}(S×C)\}\end{align}
$$
除法
$$
\begin{align}R ÷ S = \{ t_r[X] | t_r∈R ∧ ∏_y(S)⊆Y_X \}\end{align}
$$
\begin{align}R ÷ S = \{ t_r[X] | t_r∈R ∧ ∏_y(S)⊆Y_X \}\end{align}
$$
-
分出X、Y、Z三个属性集
-
列出S对Y属性集的投影
-
找出R中满足x值对应的象集包含了关系S对Y属性集的x值
R中的Y与S中的Y可以有不同的属性名,但对应的属性组必须来自同一域
详解:
关系R和关系S共有的属性集是Y,而R÷S得到的值就是关系R对X属性组的投影(S关系内没有的),而这X属性组还需满足特定条件(元组在X属性组上的分量值x的象集YX包含了S对Y属性组的投影集合)。