- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
03-第3章-1 关系运算理论
* 在关系R中,A可以取四个值{a1, a2, a3, a4}。其中: a1在R中的象集为{(b1,c2), (b2,c3), (b2,c1)} a2在R中的象集为{(b3,c7), (b2,c3)} a3在R中的象集为{(b4,c6)} a4在R中的象集为{(b6,c6)} S在(B,C)上的投影为{(b1,c2), (b2,c3), (b2,c1)} 显然只有a1的象集(B, C)a1包含S在(B,C)属性组上的投影,所以: R(A, {B, C})÷S({B, C}, D) ={tr [A]| tr∈R ∧ Π{B, C}(S)? {B, C}A } ={a1}。 R(X, Y)÷S(Y, Z) = {tr [X]| tr ∈R ∧ ΠY(S)? Yx } * 以学生-课程数据库为例 (P. 59)的关系代数表达式举例: 例7:查询至少选修1号课程和3号课程的学生号码。 首先建立一个临时关系K: 然后求: Π Sno.Cno(SC)÷K Cno 1 3 * Π Sno.Cno(SC) 95001象集{1,2,3} 95002象集{2,3} Π Cno(K)={1,3} 于是: Π Sno.Cno(SC)÷K={95001} Sno Cno 95001 1 95001 2 95001 3 95002 2 95002 3 * [例 8] 查询选修了2号课程的学生的学号。 ΠSno(σCno=2(SC))={95001,95002} [例9] 查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。 ΠSname(σCpno=‘5’(Course SC Student)) 或 ΠSname(σCpno=‘5’(Course) SC ΠSno,Sname(Student)) 或 ΠSname (ΠSno (σCpno=5 (Course) SC) ΠSno,Sname (Student))? [例10] 查询选修了全部课程的学生号码和姓名。 ΠSno,Cno(SC)÷ΠCno(Course) ΠSno,Sname(Student) * 关系代数表达式书写的一般规则 对于只涉及到选择、投影、连接的查询可用下列表达式表示: Π(σ(R×S))或者Π(σ(R?S))。 对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。(例如在SC关系中) 对于检索具有“全部”(或某个子集)特征的操作,一般要用除法操作表示。例如“检索学习全部课程的学生姓名”。 * 举例: (1)“检索不学C2课的学生姓名”,不能用下式表示:πSNAME(σC#≠C2(S?SC)) 一定要用“差”的形式: πSNAME(S)-πSNAME(σC#=C2(S?SC)) (2)“检索学习全部课程的学生学号”,要用 πS#,C#(SC)÷πC#(C)表示,而不能写成 πS# (SC÷πC#(C))形式。 这是因为一个学生学的课程的成绩可能是不一样的。 (学号和成绩的象集不同于学号的象集) * 举例: 设某商业集团关于商店销售商品的数据库中有三个基本表: 商店SHOP(S#,SNAME,AREA,MGR_NAME) 其属性是商店编号,商店名称,区域名,经理姓名。 销售SALE(S#,G#, QUANTITY) 其属性是商店编号,商品编号,销售数量。 商品GOODS(G#,GNAME,PRICE) 其属性是商品编号,商品名称,单价。 试写出下列查询的关系代数表达式: 检索销售“冰箱”的商店的编号和商店名称。 * 举例: 设某商业集团为仓库存储商品设计了三个基本表: 仓库STORE(S#,SNAME,SADDR), 其属性是仓库编号、仓库名称和地址。 存储SG(S#,G#,QUANTITY), 其属性是仓库编号、商品编号和数量。 商品GOODS(G#,GNAME,PRICE), 其属性是商品编号、商品名称和单价 1.现检索仓库名称为“莘庄”的仓库里存储的商品的编号和名称。试写出相应的关系代数表达式。 2.在3个基本表中,检索存储全部种类商品的仓库的编号及名称。试写出相应的关系代数表达式。 * 举例: 设有关系S、SC、C:S(snum,sname,age,sex) 例:(001,‘李强’,23,’男‘)SC(snum,cnum,score)?? 例:(003,’C1‘,83)C(cnum,cname,teacher) 例:(’C1‘,’数据库原理‘,’王华‘),试用关系代数表达式完成下列操作。 1.检索“李强”同学不学的课程的课程号。 2.检索学修了“李文”老师
文档评论(0)