2.2 关系操作

思维导图: 

2.2 关系操作_第1张图片 

2.2 关系操作_第2张图片

2.2.1 基本的关系操作 

**笔记:2.2 关系操作**

---

**2.2 关系操作概述**

- 关系模型定义了关系操作的能力,但不规定具体的实现语法。
- 根据上述定义,不同的关系数据库管理系统可以具备不同的语言来实现这些操作。

**2.2.1 基本关系操作**

1. **查询 (Query) 和 数据操作 (Data Manipulation)**
   - **查询 (Query)**:关系模型具有强大的查询能力。
   - **数据操作 (Data Manipulation)**:包括插入 (Insert)、删除 (Delete)、修改 (Update)。

2. **查询操作的分类**
   - **选择 (Select)**:基于条件筛选元组。
   - **投影 (Project)**:选择某些属性,忽略其他属性。
   - **连接 (Join)**:基于共同属性组合两个关系。
   - **除 (Divide)**:一种特殊的查询操作。
   - **并 (Union)**:两个关系的并集。
   - **差 (Except)**:一个关系与另一个关系的差集。
   - **交 (Intersection)**:两个关系的交集。
   - **笛卡儿积**:组合两个关系的所有可能元组。

3. **基本操作与复合操作**
   - 选择、投影、并、差、笛卡儿积被视为5种基础操作。
   - 其他操作可以从这五种基本操作中派生。

**2.2.2 关系操作的特性**

- **集合操作方式**:关系操作的核心思想是集合论,即每次操作处理的对象和结果都是元组的集合。这也被称为“一次一集合 (set-at-a-time)”方式。
- **对比非关系模型**:与之相对,非关系数据模型采用“一次一记录 (record-at-a-time)”方式来进行数据操作。

---

2.2 关系操作_第3张图片 2.2.2 关系数据语义的分类

**笔记:2.2.2 关系数据语言的分类**

---

**2.2.2.1 关系数据语言的历史及分类**

1. **早期的关系操作表现形式**:
    - **关系代数 (Relational Algebra)**: 用运算表达查询要求。
    - **关系演算 (Relational Calculus)**: 用谓词表达查询要求。
        - 可以进一步细分为:
            - **元组关系演算**: 基于元组变量的谓词。
            - **域关系演算**: 基于域变量的谓词。

2. **关系完备性**:
    - 语言如果能表示关系代数所表达的查询,则具有关系完备性。
    - 已证实:关系代数、元组关系演算、域关系演算三者在表达能力上等价。

3. **实际关系数据库语言与理论模型的差异**:
    - 虽然关系代数、元组关系演算和域关系演算是理论的查询语言,但与实际数据库系统的语言存在差异。
    - 实际查询语言除基础功能外,还有附加功能如:聚集函数、关系赋值、算术运算等。

4. **结构化查询语言 (SQL)**:
    - 介于关系代数与关系演算之间的语言。
    - 不仅支持查询,还具备数据定义、数据控制等多种功能。
    - SQL体现了关系数据语言的优点,是关系数据库的标准语言。

**2.2.2.2 关系数据语言分类总览**:

1. **关系代数语言**: 如 ISBL。
2. **关系演算语言**: 分为
    - **元组关系演算语言**: 如 ALPHA、QUEL。
    - **域关系演算语言**: 如 QBE。
3. **具有关系代数和关系演算特点的语言**: 如 SQL。

**2.2.2.3 SQL的特性**:

- **高度非过程化**: 用户无需知道数据检索的具体路径。
- **查询优化机制**: 数据库系统自动选择最佳存取路径,提高查询效率。

---

2.2 关系操作_第4张图片

你可能感兴趣的:(数据库系统概论,sql,数据库)