以下是关系代数中基本操作的详细说明:
并(Union)
关系R和S的并操作表示为R ∪ S,要求R和S具有相同的属性集(并相容性)。结果包含所有属于R或S的元组,自动去除重复项。
示例:
- R = {(1,A), (2,B)}
- S = {(2,B), (3,C)}
- R ∪ S = {(1,A), (2,B), (3,C)}
交(Intersection)
关系R和S的交操作表示为R ∩ S,结果包含同时属于R和S的元组。
示例:
- R = {(1,A), (2,B)}
- S = {(2,B), (3,C)}
- R ∩ S = {(2,B)}
差(Difference)
关系R和S的差操作表示为R - S,结果包含属于R但不属于S的元组。
示例:
- R = {(1,A), (2,B)}
- S = {(2,B), (3,C)}
- R - S = {(1,A)}
笛卡尔积(Cartesian Product)
关系R和S的笛卡尔积表示为R × S,生成所有可能的元组组合。若R有m个元组,S有n个元组,结果将包含m×n个元组。
示例:
- R = {(1,A), (2,B)}
- S = {(X,10), (Y,20)}
- R × S = {(1,A,X,10), (1,A,Y,20), (2,B,X,10), (2,B,Y,20)}
投影(Projection)
投影操作表示为πₐ(R),从关系R中选择指定属性子集A,并去除重复元组。
示例:
- R = {(1,A,X), (2,B,Y), (1,A,Z)}
- π_{1,2}(R) = {(1,A), (2,B)}
选择(Selection)
选择操作表示为σₚ(R),根据条件P筛选关系R中的元组。条件P可以是逻辑表达式(如A=1 AND B='X')。
示例:
- R = {(1,A,X), (2,B,Y), (3,A,Z)}
- σ_{A='A'}(R) = {(1,A,X), (3,A,Z)}
这些基本操作构成了关系数据库查询的理论基础,更复杂的查询可以通过这些操作的组合来实现。
自然连接
自然连接的结果显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同并且值相同的记录。