Loading... # Ch2. 关系数据库 ## 2.1 关系模型的三种组成部分 **关系数据结构**、**关系操作集合**、**关系完整性约束** ## 2.2 关系数据语言的特点和分类 **关系代数语言**、**关系操作集合**、**具有关系代数和关系演算的语言** ## 2.3 解释名词,并说明联系和区别 ### 域、笛卡尔积、关系、元组、属性 **域**:一组具有相同数据类型的值的集合 **笛卡尔积**:给定一组域 $D_1, D_2, \cdots, D_n$ $$ D_1 \times D_2 \times \cdots \times D_n = \{(d_1, d_2, \cdots, d_n | d_i \in D_i, i=1,2,\cdots,n)\} $$ **关系**:在域 $D_1, D_2, \cdots, D_n$ 上笛卡尔积 $D_1 \times D_2 \times \cdots \times D_n$ 的子集,表示为 $$ R(D_1,D_2,\cdots, D_n) $$ - 其中 $n$ 为关系的**度** - $n=1$时,称该关系为**单元关系**;$n=2$时,称该关系为**双元关系** - n目关系必有n个属性 **元组**:关系中的每个元素是关系中的元组 - 如:$(d_1,d_2,d_3)$, 又称3元组。其中$d_1$,$d_2$,$d_3$称为**分量** **属性**:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,必须对每个列起名字,成为**属性** ### 候选码、主码、外码 **候选码**:关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称为**候选码** **主码**:一个关系由多个候选码,则选定一个为**主码** **外码**:设$F$是基本关系$R$的一个或一组属性,但不是关系$R$的码,如果$F$域基本关系$S$的主码$K_s$相对应,则称$F$是基本关系$R$的外码 ### 关系模式、关系、关系数据库 **关系模式**:关系的描述称为**关系模式**。记为 $$ R(U,D,DOM,F) $$ - $R$ 为关系名 - $U$ 为组成该关系的属性名集合 - $D$ 为 $U$ 中属性所来自的域 - $DOM$ 为属性向域的映像集合 - $F$ 为属性间数据的依赖关系集合 **关系**:在域 $D_1, D_2, \cdots, D_n$ 上笛卡尔积 $D_1 \times D_2 \times \cdots \times D_n$ 的子集,表示为 $$ R(D_1,D_2,\cdots, D_n) $$ **关系数据库**:由型和值之分。型也成为关系数据库模式(是对关系数据库的描述);值是这些关系模式在某一时刻对应的关系的集合,通称为关系数据库。 ## 2.4 关系模式和关系的区别 **关系模式**是型;**关系**是值,是关系模式的实例 - 如:`Student(no, name, age)`是关系模式,而下表是关系 | no | name | age | | :-: | :-: | :-: | | $S_1$ | Jack | 18 | | $S_2$ | Alice | 19 | | $S_3$ | Kate | 19 | ## 2.5 关系模型的完整性规则 由**实体完整性**、**参照完整性**、**用户定义的完整性** **实体完整性规则**:若属性$A$是基本关系$R$的**主属性**,则属性$A$不能取空值 **参照完整性规则**:设$F$是基本关系$R$的外码,它与基本关系$S$的主码$K_s$对应($R$和$S$不一定不同的关系),则$R$中每个元组在$F$上的值必须为以下二者之一: - 空值 - 等于$S$中某个元组的主码值 **用户定义的完整性**:反应某一具体应用所涉及的数据必须满足的语义要求 ## 2.5 代数关系 ### 2.5.1 选择 $\sigma_{F}(R) = \{t | t \in R \land F(t)='true'\}$ 其中$F$的形式为$X_1 \theta Y_1$ - 如 $\sigma_{Sdept='IS'}(Student)$, 结果如下表 | Sno | Sname | Ssex | Sage | Sdept | | :-: | :-: | :-: | :-: | :-: | | 1201215125 | Jack | Male | 19 | IS | - 如 $\sigma_{Sage<20}(Student)$, 结果如下表 | Sno | Sname | Ssex | Sage | Sdept | | :-: | :-: | :-: | :-: | :-: | | 1201215125 | Jack | Male | 19 | IS | | 1201215130 | Kate | Male | 18 | CS | | 1201215132 | Amy | Female | 18 | MA | ### 2.5.2 投影 $\prod_{A}(R)=\{t[A] | t \in R\}$ 其中$A$是$R$的属性列 - 如 $\prod_{Sname,Sdept}(Student)$,结果如下表 | Sname | Sdept | | :-: | :-: | | Jack | IS | | Kate | CS | | Amy | MA | | Nick | CS | - 如 $\prod_{Sdept}(Student)$,结果如下表(投影结果取消重复的`CS`元组) | Sdept | | :-: | | IS | | CS | | MA | ### 2.5.3 连接 $$ R \Join_{A \theta B}S=\{{t_r}{t_s} | t_r \in R \land t_s \in S \land t_r[A]\theta t_s[B] \} $$ ``R`` | A | B | C | | :-: | :-: | :-: | | $a_1$ | $b_1$ | 5 | | $a_1$ | $b_2$ | 6 | | $a_2$ | $b_3$ | 8 | | $a_2$ | $b_4$ | 12 | ``S`` | B | E | | :-: | :-: | | $b_1$ | 3 | | $b_2$ | 7 | | $b_3$ | 10 | | $b_3$ | 2 | | $b_5$ | 2 | - 如 $R \Join_{C<E} S$, 结果如下表 | A | R.B | C | S.B | E | | :-: | :-: | :-: | :-: | :-: | | $a_1$ | $b_1$ | 5 | $b_2$ | 7 | | $a_1$ | $b_1$ | 5 | $b_3$ | 10 | | $a_1$ | $b_2$ | 6 | $b_2$ | 7 | | $a_1$ | $b_2$ | 6 | $b_3$ | 10 | | $a_2$ | $b_3$ | 8 | $b_3$ | 10 | - 如 $R \Join_{R.B=S.B} S$, 结果如下表 | A | R.B | C | S.B | E | | :-: | :-: | :-: | :-: | :-: | | $a_1$ | $b_1$ | 5 | $b_1$ | 3 | | $a_1$ | $b_2$ | 6 | $b_2$ | 7 | | $a_2$ | $b_3$ | 8 | $b_3$ | 10 | | $a_2$ | $b_3$ | 8 | $b_3$ | 2 | - 如 $R \Join S$, 结果如下表 | A | B | C | E | | | :-: | :-: | :-: | :-: | :-: | | $a_1$ | $b_1$ | 5 | 3 | | | $a_1$ | $b_2$ | 6 | 7 | | | $a_2$ | $b_3$ | 8 | 10 | | | $a_2$ | $b_3$ | 8 | 2 | | ### 2.5.4 除运算 `R` | A | B | C | | :-: | :-: | :-: | | $a_1$ | $b_1$ | $c_2$ | | $a_2$ | $b_3$ | $c_7$ | | $a_3$ | $b_3$ | $c_6$ | | $a_1$ | $b_2$ | $c_3$ | | $a_4$ | $b_6$ | $c_6$ | | $a_2$ | $b_2$ | $c_3$ | | $a_1$ | $b_2$ | $c_1$ | `S` | B | C | D | | :-: | :-: | :-: | | $b_1$ | $c_2$ | $d_1$ | | $b_2$ | $c_1$ | $d_1$ | | $b_2$ | $c_3$ | $d_2$ | - 如 $R \div S$, 结果如下表 | A | | :-: | | $a_1$ | 其中 - $a_1$象集:$\{(b_1,c_2),(b_2,c_3),(b_2,c_1)\}$ - $a_2$象集:$\{(b_3,c_7),(b_2,c_3)\}$ - $a_3$象集:$\{(b_4,c_6)\}$ - $a_4$象集:$\{(b_6,c_6)\}$ S在$(B,C)$上的投影为$\{(b_1,c_2),(b_2,c_3),(b_2,c_1)\}$ 所以,$R \div S = \{a_1\}$ ## 2.7 等值连接和自然连接的区别和联系 是连接运算最重要、常用的连接 自然连接是特殊的等值连接,要求两个关系中进行比较的分量,即连接属性必须是相同的属性组,并且在结果中丢弃一组 ## 2.8 代数基本运算有哪些,如何用基本运算代替其他运算 8种代数关系中,**并**、**差**、**笛卡尔积**、**投影**和**选择**为基本运算;**交**、**连接**、**除**可以用5中基本运算表达 交运算: $R \cap S = R-(R-S)$ 连接运算: $R \Join_{A \theta B} S =\sigma_{A \theta B}(R \times S)$ 除运算: $R(X,Y) \div S(Y,Z) = \prod_{X}(R)-\prod_{X}(\prod_{X}(R) \times \prod_{Y}(S)-R)R(X,Y) \div S(Y,Z) = \prod_{X}(R)-\prod_{X}(\prod_{X}(R) \times \prod_{Y}(S)-R)$ 最后修改:2020 年 11 月 01 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏