




















🕒 阅读时间:3 分钟 📝 字数:806 👀 阅读量: Loading...
:::tip
含有ai生成内容
AI整理文本
:::
关系数据模型(Relational Data Model)是基于集合论和关系代数的数据库模型,由 E.F. Codd 于 1970 年提出。它将数据组织为关系(Relation),每个关系是一个二维表,行称为元组(Tuple),列称为属性(Attribute)。
考虑学生关系 Student(SID: int, Name: string, Age: int):
| SID | Name | Age |
|---|---|---|
| 1 | Alice | 20 |
| 2 | Bob | 22 |
| 3 | Carol | 21 |
关系运算基于关系代数(Relational Algebra),包括集合运算和专门运算。运算结果仍是关系,可以用表格表示。
假设有两个关系 R 和 S,具有相同的属性(兼容)。
并(Union):R ∪ S = {t | t ∈ R ∨ t ∈ S}。合并两个关系的元组,去除重复。
A:
| SID | Name |
|---|---|
| 1 | Alice |
| 2 | Bob |
B:
| SID | Name |
|---|---|
| 2 | Bob |
| 3 | Carol |
A ∪ B:
| SID | Name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Carol |
交(Intersection):R ∩ S = {t | t ∈ R ∧ t ∈ S}。取共同元组。
| SID | Name |
|---|---|
| 2 | Bob |
差(Difference):R - S = {t | t ∈ R ∧ t ∉ S}。取 R 中不在 S 中的元组。
| SID | Name |
|---|---|
| 1 | Alice |
选择 σ_条件(R)\sigma\_{\text{条件}}(R) 从关系 R 中选择满足条件的元组。
| SID | Name | Age |
|---|---|---|
| 1 | Alice | 20 |
| 2 | Bob | 22 |
| 3 | Carol | 21 |
| SID | Name | Age |
|---|---|---|
| 2 | Bob | 22 |
| 3 | Carol | 21 |
投影 π_属性列表(R)\pi\_{\text{属性列表}}(R) 从关系 R 中选择指定属性,去除重复。
| SID | Name | Age |
|---|---|---|
| 1 | Alice | 20 |
| 2 | Bob | 22 |
| 3 | Carol | 21 |
| Name | Age |
|---|---|
| Alice | 20 |
| Bob | 22 |
| Carol | 21 |
连接将两个关系基于条件组合。
自然连接(Natural Join):R⋈S={t[r]∪t[s]∣t[r]∈R,t[s]∈S,t[r][A]=t[s][A] for common attributes A}R \bowtie S = \{ t[r] \cup t[s] \mid t[r] \in R, t[s] \in S, t[r][A] = t[s][A] \text{ for common attributes } A \}。
示例:学生表 Student(SID, Name) 和成绩表 Grade(SID, Course, Score)。
| SID | Name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| SID | Course | Score |
|---|---|---|
| 1 | Math | 90 |
| 2 | Math | 85 |
| SID | Name | Course | Score |
|---|---|---|---|
| 1 | Alice | Math | 90 |
| 2 | Bob | Math | 85 |
θ-连接:R⋈_θS={t[r]∪t[s]∣t[r]∈R,t[s]∈S,θ(t[r],t[s])}R \bowtie\_\theta S = \{ t[r] \cup t[s] \mid t[r] \in R, t[s] \in S, \theta(t[r], t[s]) \},θ 是比较条件。
外连接:左外连接 (R⋉S)(R \ltimes S)、右外连接 (R⋊S)(R \rtimes S)、全外连接 (R⋈LS)(R \bowtie_L S),保留不匹配的元组,用 null 填充。
除 R÷SR \div S 基于 S 的属性划分 R。
| SID | Part |
|---|---|
| 1 | A |
| 1 | B |
| 2 | A |
| Part |
|---|
| A |
| B |
| SID |
|---|
| 1 |
换名 ρ∗NewName(R)\rho*{\text{NewName}}(R) 或 ρ∗A→B(R)\rho*{A \to B}(R) 重命名关系或属性。
完整性约束确保数据库数据的正确性和一致性。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。