- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西华大学数据系库统论概重点
第一小结。
小结
小结
(2)关系模型有三个表(带下划线的为主键,红色的为外键)
公司(公司编号,公司名,地址)
仓库(仓库编号,仓库名,地址,公司编号)
职工(职工编号,姓名,性别,仓库编号,聘期,工资)
设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。
如果规定,每个学生每学一门课只有一个成绩;每门课只有一个任课教师;每个教师只有一个地址(此处不允许教师同名同姓)。
(1)试写出关系模式R基本的FD和候选码。
(2)试把R分解成2NF模式集,并说明理由
(3)试把R分解成3NF模式集,并说明理由
根据“每个学生每学一门课只有一个成绩”的语义,可写出FD(S#,C#)→GRADE
根据“每门课只有一个任课教师”的语义,可写出FD C#→TNAME
根据“每个教师只有一个地址”的语义,可写出FD TNAME →TADDR
候选码是(S#,C#),因为从(S#,C#)可函数决定全部属性。
由于R中存在下列两个FD:
(S#,C#)→GRADE和C#→TNAME
因此,(S#,C#)→ TNAME是一个局部FD,即TNAME部分依赖候选码(S#,C#),所以R不是2NF。此时,R中就会存在数据冗余和数据异常,如果一门课程有50个学生选修,那么在关系中就会出现50个元组,即这门课程的任课教师姓名和地址就要重复出现50次。这就是数据冗余,随之就会出现各种操作异常。
如果把R分解成R1(S#,C#,GRADE)和R2(C#,TNAME,TADDR),就能消除上面提到的局部FD和数据冗余问题,并且R1和R2都是2NF模式。因此R分解成的2NF模式集是{R1,R2}。
(3) 答案: a 、c
a、丢失修改数据 b、不可重读数据 c、读脏数据
(2) 要使数据一致,就必须对数据加锁,试说明解决办法
(3)写出一个可串行调度,并给出执行结果(3分)
答:(2)的解决办法就是一个可串行调度
若T1、T2、T3三个事务允许并发执行,则有多少种可能正确的执行结果,并写出调度情况和执行结果。(3分)
答:共六种:
T1T2T3 执行结果64 T1T3T2执行结果32 T2T1T3执行结果36
T2T3T1执行结果18 T3T1T2执行结果12 T3T2T1执行结果10
设有一教师工资管理系统的E-R图如图所示(回答问题时只用图中字符属性)
1.请对下列数据库设计阶段排列先后顺序
a、概念结构设计、b.需求分析、c.数据库物理结构设计、
d.数据库逻辑结构设计、e.数据库的维护、f.数据库的实施
2.对一数据设计,E-R图应该在哪个阶段设计
试使用E-R图转换为关系模型的原则,将教师工资管理系统的E-R图转换为关系模型
4.写出下列问题的SQL语句
(1).将本题中3小题的关系模型转换为数据库的基本表
(2).查询教师姓名中有“中”字符的教师姓名、工资总额的记录
(3).查询女副教授的姓名、工资总额的记录
(4).在表中增加一教师记录“012 王中一 男 教授 计算机”
(5).在表中删除一教师记录“012 王中一 男 教授 计算机”
(6).将所有教师的姓名,工资总额按工资总额的降序排序
1.答案:
需求分析、概念结构设计、数据库逻辑结构设计、数据库物理结构设计、数据库的实施、数据库的维护。
2.答案: E-R图应该在概念结构设计阶段设计
3.答案:
教师(编号、姓名、性别、职称、所在系)
工资(编号、工资总额、补贴、福利、奖金、教师编号、水电费、房租费)
或
Teacher( Bh 、Xm 、Xb 、Zc 、Szm )
Wages( Bh 、Gz 、Bt 、Fl 、Jj 、Jsbh 、Sd 、Fz )
4(1)答案:
create table teacher (
bh char(3) not null,
xm char(10) not null,
xb char(2),
zc char(10),
szx char(10)
)
create table wages (
bh char(3) not null,
jsbh char(10),
gz decimal(7,2),
bt decimal(5,2),
fl decimal(5,2),
jj decimal(7,2),
sd decimal(5,2),
fz decimal(5,2)
)
4(3)答案:
文档评论(0)