数据库系统概念05其它关系语言.ppt
DATABASE SYSTEM CONCEPTS,第五章 其他关系语言,2023年11月14日星期二,2,数据库系统概念-前言,提纲,5.1元组关系演算5.2域关系演算:与元组关系演算非常相似,建议自己阅读;5.3QBE:域关系演算的一种实现,已经淘汰;5.4Datalog:属于人工智能范畴,有兴趣有能力的同学可以阅读,2023年11月14日星期二,3,数据库系统概念-前言,元组关系演算,形式化定义 t|P(t)表示所有使谓词P为真的元组集合tA表示元组t在属性A上的值,tR表示元组t在关系R中t为元组变量如果元组变量前有“全称”()或“存在”()量词,则称其为约束变量(Bound),否则称为自由变量(Free)P是公式由原子公式和运算符组成,2023年11月14日星期二,4,数据库系统概念-前言,元组关系演算,原子公式sRs是关系R中的一个元组sx uysx与uy为元组分量,他们之间满足比较关系 sx c分量sx与常量c之间满足比较关系,2023年11月14日星期二,5,数据库系统概念-前言,元组关系演算,公式的递归定义原子公式是公式如果P是公式,那么P和(P)也是公式如果P1,P2是公式,则P1 P2,P1 P2,P1 P2也是公式如果P(t)是公式,R是关系,则tR(P(t)和tR(P(t)也是公式,2023年11月14日星期二,6,数据库系统概念-前言,元组关系演算,公式的等价性P1 P2(P1 P2)tR(P(t)t R(P(t)P1 P2 P1 P2,2023年11月14日星期二,7,数据库系统概念-前言,元组关系演算,R,S,t|t S tA 2,t|t R t S,2023年11月14日星期二,8,数据库系统概念-前言,元组关系演算,R,S,t|tS uR(tC uB),2023年11月14日星期二,9,数据库系统概念-前言,元组关系演算,R,S,t|tR uS(tC uA),2023年11月14日星期二,10,数据库系统概念-前言,元组关系演算,t|vS(uR(uAvB tA=uB tB=vC tC=uA),R,S,2023年11月14日星期二,11,数据库系统概念-前言,元组关系演算,示例查询工资在800元以上的老师t|tT tSAL 800查询工资在800元以上的老师的姓名t|sT(tTNAME sTNAME sSAL 800)查询计算机系老师的姓名t|uD(uDNAME=“计算机系”sT(sDNO=uDNO tTNAME sTNAME),2023年11月14日星期二,12,数据库系统概念-前言,元组关系演算,示例查询未选课的学生姓名t|uS(tsname=usname)vSC(usno=vsno),2023年11月14日星期二,13,数据库系统概念-前言,元组关系演算,示例查询数学成绩比王红同学高的学生,R,t|uR vR(t姓名=u姓名)(v姓名=王红)(v课程=数学)(u 课程=数学)(u成绩v成绩),2023年11月14日星期二,14,数据库系统概念-前言,元组关系演算,示例查询选修了全部课程的学生号,课程,所求同学选之t|uS vC(wSC(vCNO=wCNO uSNO=wSNO tSNOuSNO)课程,所求同学未选之,2023年11月14日星期二,15,数据库系统概念-前言,元组关系演算,示例查询选修了002号学生选修的全部课程的学生学号课程,002选之 所求同学选之t|wS(tSNOwSNO)(u SC(usno=002 vSC(ucno=vcno tsno=vsno)注意:如果002没有选课,则所有的学生都进入结果集中,2023年11月14日星期二,16,数据库系统概念-前言,元组关系演算,求选修了张军同学所选修的全部课程的学生姓名课程,张军选之 所求同学选之t|uC(sSC wS(sCNO=uCNO wSNO sSNO wSNAME=“张军”)sSC wS(sCNO=uCNO wSNO sSNO tSNAME=wSNAME)课程,张军选之并且所求同学未选之,2023年11月14日星期二,17,数据库系统概念-前言,元组关系演算,表达式的安全性元组关系演算有可能会产生无限关系,这样的表达式是不安全的 如t|(t R),求所有不在R中的元组引入公式P的域概念,用dom(P)表示 dom(P)=显式出现在P中的值+在P中出现的关系的元组中出现的值(不必是最小集)如dom(t|(t R)是R中出现的所有值的集合如果出现在表达式t|P(t)结果中的所有值均来自dom(P),则称t|P(t)是安全的,2023年11月14日星期二,18,数据库系统概念-前言,元组关系演算,dom(t R)=A1,A2,B1,B2,B3,R,t|(t R),2023年11月14日星期二,19,数据库系统概念-前言,5.1元组关系演算:表示能力,表达能力的问题(安全的)元组关系演算表示能力等价于(安全的)域关系演算表示能力等价于关系代数的表示能力,2023年11月14日星期二,20,数据库系统概念-前言,5.1元组关系演算:表示能力,元组关系演算与关系代数的等价性投影A(R)=t|sR(tA=sA)选择F(A)(R)=t|tR F(tA)广义笛卡儿积 R(A)S(B)=t|uRsS(tA=uA tB=sB)并RS=t|tR tS差RS=t|tR tS,2023年11月14日星期二,21,数据库系统概念-前言,5.1元组关系演算:课外练习,1.求学了c1或c2的学生学号2.求学了c1和c2的学生学号3.求学了c1没有学c2的学生学号4.求只学了c1的学生学号5.求计算机系学生的成绩(sno,sname,cno,score)6.求每门课的最高成绩以及获得者的学号(请给出使用和不使用的两种写法)7.求学了s5 所学全部课程的学生(写出表达式后,请进行必要的变换,得到不使用 和的表示形式),