一、用适当的连线将左右两组术语中紧密相关的词连接起来,左右两组建立一对一的联系日志安全性
级联删除可串行性
锁协议持久性
自主存取控制数据独立性
逻辑蕴涵闭包完整性约束
模式函数依赖保持性
二、问答题
1.简述关系模型和基于基本层次联系的数据模型相比的优缺点。
答:
层次模型结构简单,容易实现,对于某些特定的应用系统效率很高,但如果需要动态访问数据(如增加或修改记录类型)时,效率并不高。
另外,对于一些非层次性结构(如多对多联系),层次模型表达起来比较繁琐和不直观。
网状模型可以看作是层次模型的一种扩展。
它采用网状结构表示实体及其之间的联系。
网状结构的每一个节点代表一个记录类型,记录类型可包含若干字段,联系用链接指针表示,去掉了层次模型的限制。
由于网状模型比较复杂,一般实际的网状数据库管理系统对网状都有一些具体的限制。
在使用网状数据库时有时候需要一些转换。
网状模型与层次模型相比,提供了更大的灵活性,能更直接地描述现实世界,性能和效率也比较好。
网状模型的缺点是结构复杂,用户不易掌握,记录类型联系变动后涉及链接指针的调整,扩充和维护都比较复杂。
关系模型概念清晰,结构简单,实体、实体联系和查询结果都采用关系表示,用户比较容易理解。
另外,关系模型的存取路径对用户是透明的,程序员不用关心具体的存取过程,减轻了程序员的工作负担,具有较好的数据独立性和安全保密性。
关系模型也有一些缺点,在某些实际应用中,关系模型的查询效率有时不如层次和网状模型。
为了提高查询的效率,有时需要对查询进行一些特别的优化。
2.简述关系数据库的参照完整性规则,外键在什么情况下可以为空,试举例说明。
答:
关系的完整性关系模型的完整性规则是对关系的某种约束条件
关系模型中三类完整性约束:
•实体完整性
•参照完整性
•用户定义的完整性
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
实体完整性实体完整性规则(Entity Integrity)若属性A是基本关系R的主属性,则属性A 不能取空值
参照完整性
1. 关系间的引用
2. 外码
3. 参照完整性规则
例如:
当删除或者修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不 一致的元组对应属性属性设置为空值。
学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
将专业表中专业号为5的元组删掉,按照设置为空的策略,将学生表中专业号为5的设置为空值--表示所有学生专业未定,等待重新分配专业。
3.结合select 语句的一般形式,说明SQL 如何具有关系代数的特征。
答:
select 语句的一般形式:
select [all | distinct] <目标列表达式> [, <目标列表达式>] …
from <表名或视图名> [,<表名或视图名> ] …
[where <条件表达式>]
[group by <列名1> [having <条件表达式>] ]
[order by <列名1> [ asc | desc ]]
关系代数的特征:
关系对象的运算对象是关系。
其传统的集合运算将关系看成元组的集合,而专门的关系运算不仅涉及行而且涉及列。
传统的集合运算:二目运算,包含并,差,交,笛卡尔积四种运算。
专门的关系运算:选择,投影,连接,除运算等。
简要说明:select 语句对应关系代数投影运算。
select 与where 语句对应关系代数选择运算。
From 语句对应关系代数笛卡尔积运算
where 与from 语句对应关系代数连接运算
4.关系数据库中的关系具有哪些性质?
答:关系(Relation ):1D ×2D ×…×n D 的子集叫做域1D ,2D ,…,n D 上的关系,表示R (1D ,2D ,…,n D ),R 为关系的名字,n 为关系的目或度。
关系是笛卡尔积的有限子集—一个二维表,表的每行对应一个元组,表的每列对应一个域。
关系类型:基本关系,查询表,视图表。
列是同质的;不同的列可以出自一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;列的顺序无所谓;任意两个元组的候选码不能相同;行的顺序无所谓,分量必须取原子值;关系必须是规范化的。
5.事务有什么基本特性,关系数据库采用什么机制保证这些特性?
答:事务由四个特性ACID :
原子性:DBMS 必须确保由成功提交的事务完成的所有操纵在数据库内有完全的反映,而失败的事务对数据库完全没有影响。
一致性:一致性处理数据库中对所有语义约束的保护
隔离性:DBMS 可以通过加锁在并发执行的事务间提供不同级别的分离
持久性:持久性通过数据库备份和恢复来保证。
三、计算题
设有关系R ,S 如下,请求出下列各关系代数的结果。
R S
1. R 1 = R ×S
select r .a "r.a",r .b "r.b",r .c "r.c",s .b "s.b",s .c "s.c"
from r ,s
2.R 2 =σ
R.B>R.C (R ×S)
无结果
3.R 3 =ΠA,B (σ
C=7(R)) select a ,b
from r
where r .c =
7
4.R 4 =ΠR.A,R.B (σR.A>S.C (R×
S))
select a,r.b
from r,s
where r.a>s.c
四、SQL求解题
现有一学生管理系统,其中包含如下5个关系:
学生student(sno,sname,sage,ssex)(学号,姓名,年龄,性别)
课程course(cno,cname,cscore)(课程号,课程名,学分)
选课sc(sno,cno,grade)(学号,课程号,分数)
教师teacher(tno,tname,taddress)(教师号,教师名,教师住址)
课堂kt(ktno,ktname,kttime,ktroom,cno,tno)(课堂号,课堂名称,课堂时间,教室,课程号,教师号)
(注:课堂表中,假定一个老师可以针对不通班级上同一门课程,且带下划线的为主码) 在SQL Server 2000中,要求完成下列查询:
1.查询所有学生的学号,姓名,性别;
select sno 学号, sname 姓名, ssex 性别
from student
2.查询“数据结构”课程不及格的学生姓名和性别;
select sno 姓名, ssex 性别
from student ,course ,sc
where cscore=”数据结构” and o=o and student.sno=sc.sno
3.查询“数据结构”课程的最低分数和最高分数;
select min(数据结构) , max(数据结构)
from sc
4.查询年龄在18到20之间男生的“数据库系统原理”课程成绩;
select grade 课程成绩
from student ,course ,sc
where cscore=”数据库系统管理” and o=o and student.sno=sc.sno
and ssex=’男’ and sage between 18 and 20
5.查询“c001”号课程成绩比“c002”号课程成绩高的学生学号;
select sno
from student
where sno in (select a.sno
from sc a , sc b
where o=’c001’ and o=’c002’ and a.sno=b.sno and a.grade>b.grade)
6.将所有同学的“线性代数”课程成绩提高5分。
五、关系范式分析题
1.试分析R是否存在数据操作异常,若有请举例说明,R属于几范式?理由何在?
更新异常,删除异常。
2.试将R分解为若干高级范式(至少到3NF)。
六、数据库设计题
请阅读下面的材料,完成1,2题
某学校有若干运动员,一名运动员可参与多项体育运动,一项体育运动可有多名运动员参与,一个运动员只能参与一个运动队,一个运动队可有多名运动员。
1.请设计该应用的E-R模型,根据自己的理解标识基本实体、联系及其属性。
2.将该全局E-R模型转化为关系数据库,用下划线标明关键字,要求说明转化步骤。