3. 简述事务的特性。
得 分 四、设计题
(第1题20分,第2题10分,共30分)
1. 设有一个工程供应数据库系统,包括如下四个关系模式:
? S(Sno,Sname, Status,City); ? P(Pno,Pname,Color,Weight); ? J(Jno,Jname,City);
? SPJ(Sno,Pno,Jno,Qty);
供应商表S由供应商号、供应商名、状态、城市组成; 零件表P 由零件号、零件名、颜色、重量组成; 工程项目表J由项目号、项目名、城市组成;
供应情况表SPJ由供应商号、零件号、项目号、供应数量组成; (1)用关系代数查询没有使用天津供应商生产的红色零件的工程号;(3分)
(2) 用关系代数查询至少使用了供应商S1所供应的全部零件的工程号JNO; (3分)
(3)用ALPHA语言查询供应工程J1零件为红色的供应商号SNO;(2分)
26
(4)用T-SQL语句建立“供应商”S表(主码必须定义);(2分)
(5)用SQL查询工程J1使用的各种零件的名称和使用数量;(3分)
(6)用SQL查询没有使用天津供应商生产的零件的工程号;(3分)
(7)用SQL语句将全部红色零件改为蓝色;(2分)
(8)用SQL语句将(S2,P4,J6,400)插入供应情况关系。(2分)
2. 设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),
(S#,CNAME)为候选码,设关系中有如下函数依赖: (S#,CNAME)→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME (S#,CNAME)→GRADE SDEPT→MNAME 试求下列问题:
(1)关系STUDENT属于第几范式?(3分)
(2)如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为巧
BCNF。(7分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
27
得 分
五、综合题(15分)
某医院病房管理系统中,包括四个实体型,分别为: 科室:科名,科地址,科电话 病房:病房号,病房地址
医生:工作证号,姓名,职称,年龄 病人:病历号,姓名,性别 且存在如下语义约束:
① 一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医
生只属于一个科室;
② 一个医生可负责多个病人的诊治,一个病人的主管医生只有一个; ③ 一个病房可入住多个病人,一个病人只能入住在一个病房。 注意:不同科室可能有相同的病房号。
28
)线 此 过 超 得 不 题 答 生 考(
完成如下设计:
(1)画出该医院病房管理系统的E-R图;(5分) (2)将该E-R图转换为关系模型;(5分)
(要求:1:1和1:n的联系进行合并)
(3)指出转换结果中每个关系模式的主码和外码。(5分)
试题五
一、单项选择题
得 分 (本大题共10小题,每小题2分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要 求的,错选、多选或未选均无分。
1. 模式的逻辑子集通常称为( )
A.外模式 B.内模式
C.概念模式
D.逻辑模式
2. 已知两个关系如下:
R A B C S D E A 1 b1 c1 d1 e1 1
2 b2 c2 d2 e2 1 3 b 1 c1
d3 e1 2
假设R的主键是A,S的主键是D,在关系S的定义中包含外键子句: “FOREIGN KEY (A) REFERENCES R(A) ON DELETE NO ACTION”, 下列SQL语句不能成功执行的是( ) A.DELETE FROM R WHERE A=2 B.DELETE FROM R WHERE A=3 C.DELETE FROM S WHERE A=1
D.DELETE FROM S WHERE A=2
29
3. 在SQL中,与“NOT IN”等价的操作符是( )
A.<>ALL B.<>SOME C.=SOME D.=ALL
4. 将E-R模型转换成关系模型,属于数据库的( )
A.需求分析 B.概念设计 C.逻辑设计 D.物理设计
5. 设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,
并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE( ) A.?_ _ W _ %? B.?_ % W _ _? C.?_ W _ _? D.?_ W _ %’
6. 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成
的字符串,这一规则属于( )。
A.实体完整性约束 B.参照完整性约束 C.用户自定义完整性约束 D.关键字完整性约束
7. 已知关系R如图1所示,可以作为R主码的属性组是( )。
R A B C D 1 1 2 1 1 3 A. ABC C. ACD
2 3 4 4 3 4 3 4 5 3 4 5 4 5 6 4 7 6 图1
8. 已知成绩关系如图2所示。
执行SQL语句:
SELECT COUNT(DISTINCT学号) FROM成绩
WHERE分数>60
B. ABD D. BCD
查询结果中包含的元组数目是( )
成绩 学号 S1
课程号 C1 30
分数 80