程序员人生 网站导航

关系代数SQL实现

栏目:数据库应用时间:2015-05-22 07:52:24
1、传统的集合运算与SQL语句实现 
传统的集合运算包括4种运算:并(∪)、交(∩)、差(―)、广义笛卡尔(X)。


并运算(Union)
对应的SQL语句:
Select * from R Union Select * from S;



交运算(Intersect)
对应的SQL语句: 
Select * from R Intersect Select * from S;



差运算(Except)
对应的SQL语句: 
Select * from R Except Select * from S; 



注意:对并、交与差元算,都要求关系R和关系S具有相同的目n,且相应的属性取自同1个域。
 


笛卡尔积R×S运算(Extended Cartesian Product)
对应的SQL语句:
Select * from R,S;



 2、专门的关系运算 
 专门的关系运算包括4种运算即选择(σ)、投影(Π)、连接(∞)和除法(÷),
 是关系数据库数据保护、查询、统计等操作的基础。 


 选择(Selection) 
  设有关系R,在关系R中求取满足给定条件F的元组组成新的关系的运算称为选择。记作σF(R)。
 其中F是1个条件表达式,其值为“真”或“假”。σF(R)是从关系R当选取使条件表达式F为真的元组。
 对应的SQL语句: 
SELECTR.学号,R.课程名,R.分数 from R WHERE 分数>85


 投影(Projection) 
  设有关系R,在关系R中求指定的若干个属性列组成新的关系的运算称作投影,记作ΠA(R),
 其中A为欲选取的属性列列名的列表。
 对应的SQL语句: 
 若关系运算式为:П品名,数量(R) 
SELECT 品名,数量 FROM R;


连接(Join) 
从两个分别为n,m目的关系R和S的广义笛卡尔积当选取满足给定条件F的元组组成新的关系称为R和S的连接,记作R∞FS(F=AθB)。其中A和B分别为R和S上度数相等且可比的属性列,θ是算术比较符(>,≥,<,≤,=,≠)。即连接运算就是从两个关系的笛卡尔积当选取满足1定连接条件的元组的集合,连接的结果是1个(k1+k2)元的关系。对应的SQL语句: 
Select * from R,S where R.A=S.C; 


除(Division) 
给定关系R(x,y)与S(y)其中x,y为属性集(也可为单属性),R中的y和S中的y是同名的属性(集)也能够有不同的属性名,
但必须出自相同的域集。在求解R÷S时,对R按x的值的分组,然后检查每组,如某1组中的y包括S中全部的y,则取该组中的x的值作为关系P中的1个元组,否则不取。
R÷S的商等于关系P。对应于SQL语言: 
SELECT DISTINCT A.Name FROM R AS A WHERE NOT EXISTS 
(SELECT * FROM S AS B WHERE NOT EXISTS (SELECT * FROM R AS C where C.Name=A.Name and B.City=C.City)) 
GROUPBYA.Name
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐