- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2007数据库复习题及答案
第一题:
考虑用二元联系(图1)对三元联系(图2)的表示:
1) 分别给出E,A,B,C,RA,RB 和RC 的一个实例,这些实例不对应A,B,C 和R 的任何实例;
2) 更改图1 中的ER 图,引入适当的约束以确保满足约束的E,A,B,C,RA,RB 和RC 的任何实例都对应于A,B,C 和R 的一个实例;
3) 更改以上的转化以表示在三元联系上的全参与约束;
4) 以上表示要求为E创建一个主码属性,试问如何将E处理为弱实体集,以便不需要主码?
解:
令 E = {e1, e2}, A = {a1, a2}, B = {b1}, C = {c1}, RA = {(e1, a1), (e2, a2)},Rb={(e1,b1)}, Rc={(e1,c1)};
可以看出,由于元组(e2,a2)的原因,不存在任何实例对应于E,Ra,Rb,Rc
如下图所示:通过引入E 和关系 Ra , Rb , Rc之间的全部参与的约束条件,以便在 E 中的每个元组都和A ,B,C有关系。
假设A全部参与关系R,则在A和Ra之间引入全部参与约束将 E看作弱实体集,而将Ra,Rb,Rc看作标志联系集。如下图所示第二题:
分别判断下列图中G1和G2是否互模拟(bisimulation),并说明理由
解:
(1)在图中标出各点的状态,我们构造关系S={(P0,Q0),(P1,Q1),(P2,Q1),(P3,Q2),(P4,Q3)}
可知G2可以模拟G1,下面我们讨论
S+1={( Q0, P0),(Q1, P1),(Q1, P2),(Q2, P3),(Q3,P4)}
是否可模拟,在G2中Q0有一个a变换可对应到G1中2个变换,即(Q1,P1)∈S-1, (Q1,P2)∈S-1。但Q1有两个变换b,c,而在G1中公存在只有b或只有c的状态点,可知G1和G2不能互模拟。
(2)如图,标出各状态点,构造有关系
S={(P0,Q0),(P1,Q1),(P1,Q2),(P2,Q3),(P2,Q4), (P3,Q5)},
可知其中G1中的点均可由G2中的点模拟,下面我们考虑
S+1={( Q0, P0),(Q1, P1),(Q2, P1),(Q3, P2),(Q4,P2),(Q5,P3)},
可知同样其中G2中的点均可由G1中的点模拟,所以G1和G2互模拟。
第三题:
设有下列嵌套关系模式:
Emp = (Ename, childrenSet setof(Childern), SkillsSet setof(Skills))
Childern = (Cname, birthday)
Birthday = (day, month, year)
Skills = (Stype, examsSet setoff(Exams))
Exams = (year,city)
1) 试给出嵌套关系模式的XML DTD 表示,假定数据库中包含表emp(Emp)
2) 试用SQL:1999 写出下列查询:
a) 列出所有有一个孩子的生日在三月的员工的姓名;
b) 列出所有在城市”Xi’an”参加过技能种类(Stype)为”Typing”考试(Exams) 的员工的姓名(Ename);
c) 列出关系Emp 中的所有技能种类(Stype);
3) 试用Xquery 重写2)中的所有查询;
解:
1) !DOCTYPE db [
!ELEMENT emp (ename, children*, skills*)
!ELEMENT children (cname, birthday)
!ELEMENT birthday (day, month, year)
!ELEMENT skills (stype, exams+)
!ELEMENT exams (year, city)
!ELEMENT ename( #PCDATA )
!ELEMENT name( #PCDATA )
!ELEMENT day( #PCDATA )
!ELEMENT month( #PCDATA )
!ELEMENT year( #PCDATA )
!ELEMENT type( #PCDATA )
!ELEMENT city( #PCDATA )
]
2) a――- select ename from Emp as e, unnest(e.ChildrenSet) as c(Children)
where ‘March’ in ( select birthday.month from c)
b――― select ename from Emp as e, e.SkillsSet as s, s.ExamsSet as x
文档评论(0)