关系代数中的八种基本运算

关系代数中的八种基本运算

1. 选择(Selection)

定义:从一个关系中选择满足特定条件的元组(行)。

符号:σ (sigma)

形式:σ_condition®

例子

  • 关系 ( Employees ):

    | emp_id | name  | age | dept_id |
    |--------|-------|-----|---------|
    | 1      | Alice | 35  | 10      |
    | 2      | Bob   | 28  | 20      |
    | 3      | Carol | 42  | 10      |
    
  • 操作:σ_age > 30 (Employees)

  • 结果

    | emp_id | name  | age | dept_id |
    |--------|-------|-----|---------|
    | 1      | Alice | 35  | 10      |
    | 3      | Carol | 42  | 10      |
    

作用:过滤数据,只保留满足条件的元组。

2. 投影(Projection)

定义:从一个关系中提取出特定的属性(列),形成一个新的关系。

符号:π (pi)

形式:π_attribute1, attribute2,…®

例子

  • 关系 ( Employees ):

    | emp_id | name  | age | dept_id |
    |--------|-------|-----|---------|
    | 1      | Alice | 35  | 10      |
    | 2      | Bob   | 28  | 20      |
    | 3      | Carol | 42  | 10      |
    
  • 操作:π_name, age (Employees)

  • 结果

    | name  | age |
    |-------|-----|
    | Alice | 35  |
    | Bob   | 28  |
    | Carol | 42  |
    

作用:提取感兴趣的列,去除不需要的列,并且自动去重。

3. 并(Union)

定义:将两个关系中的所有不同元组合并在一起,形成一个新的关系。

符号:∪

形式:R ∪ S

例子

  • 关系 ( R ):

    | emp_id | name  |
    |--------|-------|
    | 1      | Alice |
    | 2      | Bob   |
    
  • 关系 ( S ):

    | emp_id | name  |
    |--------|-------|
    | 2      | Bob   |
    | 3      | Carol |
    
  • 操作:R ∪ S

  • 结果

    | emp_id | name  |
    |--------|-------|
    | 1      | Alice |
    | 2      | Bob   |
    | 3      | Carol |
    

作用:合并两个关系的元组,去除重复元组。

4. 交(Intersection)

定义:得到两个关系的交集,即两个关系中共同存在的元组。

符号:∩

形式:R ∩ S

例子

  • 关系 ( R ):

    | emp_id | name  |
    |--------|-------|
    | 1      | Alice |
    | 2      | Bob   |
    
  • 关系 ( S ):

    | emp_id | name  |
    |--------|-------|
    | 2      | Bob   |
    | 3      | Carol |
    
  • 操作:R ∩ S

  • 结果

    | emp_id | name  |
    |--------|-------|
    | 2      | Bob   |
    

作用:找出两个关系中共有的元组。

5. 差(Difference)

定义:从一个关系中减去另一个关系,得到仅存在于第一个关系中的元组。

符号:−

形式:R − S

例子

  • 关系 ( R ):

    | emp_id | name  |
    |--------|-------|
    | 1      | Alice |
    | 2      | Bob   |
    
  • 关系 ( S ):

    | emp_id | name  |
    |--------|-------|
    | 2      | Bob   |
    | 3      | Carol |
    
  • 操作:R − S

  • 结果

    | emp_id | name  |
    |--------|-------|
    | 1      | Alice |
    

作用:去除第二个关系中的元组,保留第一个关系中的其他元组。

6. 笛卡尔积(Cartesian Product)

定义:得到两个关系的笛卡尔积,即所有可能的元组组合。

符号:×

形式:R × S

例子

  • 关系 ( R ):

    | emp_id | name  |
    |--------|-------|
    | 1      | Alice |
    | 2      | Bob   |
    
  • 关系 ( S ):

    | dept_id | dept_name |
    |---------|-----------|
    | 10      | HR        |
    | 20      | Finance   |
    
  • 操作:R × S

  • 结果

    | emp_id | name  | dept_id | dept_name |
    |--------|-------|---------|-----------|
    | 1      | Alice | 10      | HR        |
    | 1      | Alice | 20      | Finance   |
    | 2      | Bob   | 10      | HR        |
    | 2      | Bob   | 20      | Finance   |
    

作用:生成两个关系的所有可能组合,通常与选择运算配合使用以形成有意义的连接。

7. 连接(Join)

定义:通过共享属性将两个关系组合在一起。

符号:⋈

形式:R ⋈_condition S

例子

  • 关系 ( Employees ):

    | emp_id | name  | dept_id |
    |--------|-------|---------|
    | 1      | Alice | 10      |
    | 2      | Bob   | 20      |
    | 3      | Carol | 10      |
    
  • 关系 ( Departments ):

    | dept_id | dept_name |
    |---------|-----------|
    | 10      | HR        |
    | 20      | Finance   |
    | 30      | IT        |
    
  • 操作:Employees ⋈_Employees.dept_id=Departments.dept_id Departments

  • 结果

    | emp_id | name  | dept_id | dept_name |
    |--------|-------|---------|-----------|
    | 1      | Alice | 10      | HR        |
    | 2      | Bob   | 20      | Finance   |
    | 3      | Carol | 10      | HR        |
    

作用:合并两个关系中的相关元组,形成新的关系。

8. 除(Division)

定义:得到一个关系,其中包含的元组是在另一个关系中出现的所有属性值的集合。

符号:÷

形式:R ÷ S

例子

  • 关系 ( R ) (已登记学生):

    | Student | Course   |
    |---------|----------|
    | Alice   | Math     |
    | Alice   | Physics  |
    | Bob     | Math     |
    | Bob     | Physics  |
    | Bob     | Chemistry|
    | Carol   | Math     |
    
  • 关系 ( S ) (课程):

    | Course   |
    |----------|
    | Math     |
    | Physics  |
    
  • 操作:R ÷ S

  • 结果

    | Student |
    |---------|
    | Alice   |
    | Bob     |
    

作用:查找在所有特定值(如课程)中都存在的元组。

这些基本运算构成了关系代数的基础,支持关系数据库的查询和操作。这些运算可以组合使用,以实现复杂的数据检索和操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值