数据库考试大题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11、分析如下的问题:有关系模式R(U,F),属性集U={A,B,C,D,E},函数依赖集合
F={AB->C, C ->D, D->E },请回答如下的问题:
(1) R最高属于第几范式? 说明理由;
(2) 如果R不属于第三范式?说明理由,并分解R为符合第三范式的关系模式集合。

问答第11题
(1)、R最高属于2NF范式。

理由:关系模式R(U,F)的主码是(A,B),非主属性存在对码的传递函数依赖AB->C, C ->D, D->E。

(2)、R不属于第三范式,理由:关系模式R(U,F)的主码是(A,B),非主属性存在对码的传递函数依赖AB->C, C ->D, D->E。

分解为符合第三范式的关系模式集合如下: R1(A,B,C) R2(C,D) R3(D,E)
12、完成如下设计: 请设计某单位的库存管理数据库系统,系统要求如下:存储供应商信息,库存零件信息,仓库信息,仓库管理员的信息。

该单位有多个仓库,每个仓库可以存放多种零件,一种零件可以存放在多个仓库中;每个仓库只有一个仓库管理员,一个仓库管理员只能管理一个仓库;每个供应商可以供应多种零件,同一种零件可以由多个供应商供应。

要求完成如下设计工作: (1) 画出该系统的E-R模型图,包括实体及实体之间的联系,并标出: (a) 实体的主要属性, (b) 实体之间联系的主要属性; (2) 把E-R模型图转换为关系表(标明主关键字)。

(3) 请定义一个视图,该视图的列信息包括零件名称以及零件所在仓库名称的信息。

问答第12题
* 实体关系表,红色为主码:
(1) 供应商表:(供应商号,供应商名,……………)
(2) 零件表:(零件号,零件名,……………)
(3) 仓库表:(仓库号,仓库名,管理员号,…………)
(4) 仓库管理员表:(仓库号,仓库名,管理员号,…………)
* 两个多对多的联系转换为两个关系表:
(1) 供应表:(供应商号,零件号,供应量,……………)
(2) 存放表:(仓库号,零件号,存放量,……………)
* 定义一个视图,该视图的列信息包括零件名称以及零件所在仓库名称,SQL语句如下:
CREATE VIEW part
AS
SELECT 零件名,仓库名
FROM 零件表, 仓库表,存放表
WHERE 零件表.零件号 = 存放表.零件号
AND 仓库表.仓库号 = 存放表.仓库号
1、完成下面的数据库设计:请设计某单位的科研项目管理数据库,主要的实体包括:科
研项目组、科研人员和科研项目。

他们之间的关系如下:每个科研项目组可以有多个科研人员,每个科研人员可以属于多个科研项目组;每个科研项目组可以负责多个科研项目,每个科研项目只能由一个科研项目组负责;每个科研人员可以参与多个科研项目的工作,每个科研项目由多个科研人员参与工作。

学生自己设计每类实体的主要属性。

要求完成如下设计工作:
(1) 画出该系统的E-R模型图,包括实体及实体之间的联系,并标出:
(a) 实体的主要属性,
(b) 实体之间联系的主要属性;
(2) 把E-R模型图转换为关系表(标明主关键字)。

(3) 请设计一个SQL查询语句,显示参与科研项目数大于5项的科研人员的姓名、
参与的科研项目数目。

答:E_R模型图如下:
实体关系表,红色为主码:
(1) 项目表:(项目号,项目名,……………)
(2) 科研组表:(科研组号,科研组名,……………)
(3) 科研人员表:(人员号,人员名,……………)
两个多对多的联系转换为两个关系表:
(1) 属于表:(人员号,科研组号,……………)
(2) 参与项目表:(人员号,项目号,……………)
SQL语句如下:
SELECT 人员名称,COUNT(*)
FROM 科研人员表R,参与项目表M
WHERE R.人员号 = M. 人员号
GROUP BY 人员名称
HAVING COUNT(*) > 5
2、设有关系R和S如下图所示。

请画出R和S等值(R.A=S.A)连接和不等值(R.A<S.A)连
接的运算结果。

答:答第6题
(1) R.A = S.A的等值连接结果如下:
(2) R.A < S.A的不等值连接结果如下:
3、有关系模式R(U,F),属性集合U ={A,B,C,D,E},函数依赖集合F = {A->BC, B->D,
CD->E, E->B},
请回答如下的问题:
(1) R的候选码是:
(2) R的主码是:
(3) R最高属于第几范式? 说明理由;
(4) R是否为第三范式 , 解释原因;
答:(1) R的候选码是:A
(2) R的主码是: A
(3) R最高属于第几范式? 说明理由; R最高属于第2(2NF)范式。

理由:关系模式R(U,F)中不存在非主属性对码的部分函数依赖。

(4) R是否为第三范式 , 解释原因; R不属于第三范式。

理由:关系模式R(U,F)中存在非主属性对码的传递函数依赖,如A->B, B->D。

1、下图画出供应商、零件和项目和仓库四者相互关系的E-R模型图,图中给出"库存"和"
供应"两个联系的属性,其他每类实体的属性自定。

完成下列设计工作: (1) 请设计出相应的关系数据库的关系模式,标明主码。

(2) 请设计一个SQL查询语句,查询供应零件品种数目大于10种的供应商的名字和供应零件品种数。

答:(1)关系模式(表格结构)如下,红色为主码:
零件表(零件号,零件名,………)。

供应商表(供应商号,供应商名称,供应商地址……)
项目表(项目号,项目名,………)
项目供应零件表(供应商号,零件号,项目号,供应数量)
仓库表(仓库号,仓库名,………)
库存表(仓库号,零件号,库存量,……..)
(2) SQL查询语句如下:
SELECT 供应商名称,COUNT(*) FROM 供应商表 S,项目供应零件表M,零件表 P,项目表 O
WHERE S.供应商号 = M.供应商号 AND M.零件号 = P.零件号 AND M.项目号= O.项目号 GROUP BY 供应商名称 HAVING COUNT(*) > 10
2、有关系模式R(U,F),属性集U={A,B,C,D,E},函数依赖集合F={C->A, BC->D, D->E},
请回答如下的问题: (1) R最高属于第几范式? 说明理由; (2) 请分解R为符合第三范式的关系模式集合,并给出每个关系的主码:
答:R最高属于1NF范式。

理由:关系模式R(U,F)的主码是(B,C),属性之间存在部分函数依赖C->A,同时存在传递函数依赖BC->D, D->E。

符合第三范式的关系模式集合:
R1(C,A),主码:C
R2(BC ,D),主码:BC
R3(D,E),主码:D
3、设有关系R和S如下图所示。

请画出R和S的并(RúS)、交(RùS)、差(R-S)运算结果。

答:
13、设有关系R和S如下图所示。

请画出R和S的等值连接和自然连接的运算结果。

问答第13题
10.设有关系模式R(A,B,C),数据依赖集F={AB→C,C→→A},R属于第几范式?为什么?答:
BCNF。

由于A多值依赖于C,而C不是码,故不服从4NF。

但在函数依赖式中,C依赖于码AB,故该模式服从BCNF。

11.设有关系模式R(A,B,C,D),数据依赖集F={A→B,B→A,AC→D,BC→D,AD→C,BD→C,A→→CD,B→→CD}。

1)求R的主码。

2)R是否为第四范式?为什么?
3)R是不是BCNF?为什么?
4)R是不是3NF?为什么?
答:
1)候选码为AC,BC,AD,BD。

可选其中之一为主码。

2)不服从4NF。

在多值依赖中,决定因素中不包含码。

3)不服从BCNF。

在函数依赖中决定因素中不包含码。

4)服从3NF。

该模式中不存在非主属性。

12.下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明。

1)任何一个二目关系是属于3NF的。

2)任何一个二目关系是属于BCNF的。

3)任何一个二目关系是属于4NF的。

4)当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于投影R1(A,B)和R2(A,C)的连接。

5)若R.A→R.B,R.B→R.C,则R.A→R.C。

6)若R.A→R.B,R.A→R.C,则R.A→R.(B,C)。

7)若R.B→R.A,R.C→R.A,则R.(B,C) →R.A。

8)若R.(B,C) →R.A,则R.B→R.A,R.C→R.A。

答:
1) 正确。

2) 正确。

3) 正确。

4) 正确。

5) 正确。

6) 正确。

7) 正确。

8) 不正确。

例如:(学号,课程号)→成绩,则不存在:学号→成绩,课程号→成绩。

1.用SQL语句创建学生表,表中字段及其数据类型如下所示:
学生(学号char(10),姓名char(8),性别char(2),籍贯char(20)),其中学号字段设置为主键字段。

(注:籍贯只存储省份信息)
2. 用SQL语句将学生表的籍贯字段数据类型改为char(26)。

3. 用SQL语句为学生表增加一个新的字段:班级char(20)。

4. 用SQL语句删除学生表的班级字段。

5. 用SQL语句为学生表添加如下记录:(’0001',’张三’,’男’,’河北’)。

6. 用SQL语句将学生表中所有籍贯为‘河北’的记录改为‘河北省’。

7. 用SQL语句删除学生表中的学号为‘0003’的记录。

8. 用SQL语句查出所有男同学的学号、姓名、籍贯。

9. 用SQL语句查出籍贯为‘浙江’或者‘江苏’的学生信息
10 用SQL语句查出每个省份的学生人数。

1. CREATE TABLE 学生(
学号char(10) PRIMARY KEY,
姓名char(8),
性别char(2),
政治面貌char(20)),

2. ALTER TABLE学生
ALTER COLUMN 籍贯char(26)
3. ALTER TABLE 学生
ADD 班级char(20)
4. ALTER TABLE 学生
DROP班级
5. INSERT INTO 学生
VALUES(’0001',’张三’,’男’,’河北’)
6. UPDATE 学生
SET 籍贯=‘河北省’
WHERE 籍贯=‘河北’
7. DELETE FROM 学生
WHERE 学号=‘0003’
8. SELECT 学号,姓名,籍贯 FROM 学生
WHERE 性别=’男’
9. SELECT * FROM 学生
WHERE 政治面貌IN(‘浙江’,‘江苏’)
10. SELECT COUNT(*) AS 人数 FROM学生
GROUP BY 籍贯
现有关系数据库如下:
部门(部门编号,部门名称,电话)
员工(员工编号,姓名,性别,部门编号,职务)
项目(项目编号,项目名称,预算)
施工(员工编号,项目编号,工时)
用关系代数表达式实现下列1—2小题:
1.检索“王小毛”的员工的部门编号和职务;
2.检索工时超过100小时的项目名称和员工的姓名;
用SQL语言实现下列3—7小题:
3.查询每个员工的姓名,并按职称降序排列;
4.查询总工时在480小时以上(含480小时)的员工编号和总工时;
5.检索职称为“高级工程师”,同时至少参加了预算在100万以上的项目的员工的姓名和部门名称;
6.定义一个工作量视图,包含的属性有员工编号、姓名、项目名称和工时。

7.对项目名称为“高教新区项目”的施工工时增加50小时;
1.π部门编号,职务(σ姓名=‘王小毛’(员工))
2. π项目名称,姓名(σ工时)100(施工)项目员工))
3.SELECT 姓名 FROM 员工 ORDER BY 职称 DESC
4.SELECT 员工编号,SUM(工时) FROM 施工
GROUP BY 员工编号 HAVING SUM(工时)>=480
5. SELECT 姓名,部门名称
FROM 员工,部门,项目,施工
WHERE 部门.部门编号=员工.部门编号 AND 员工.员工编号=施工.员工编号
AND 施工.项目编号=项目.项目编号AND 职称=‘高级工程师’ AND 预算>1000000
6. CREATE VIEW 工作量( 员工编号,姓名,项目名称,工时)
AS SELECT员工.员工编号,姓名,项目名称,工时
FROM 员工,项目,施工
WHERE员工.员工编号=施工.员工编号AND 施工.项目编号=项目.项目编号 7.UPDATE 施工
SET 工时=工时+50
WHERE 项目编号 IN
(SELECT 项目编号
FROM 项目
WHERE 项目名称=‘高教新区项目’)
数据库系统由什么组成?
数据库数据库管理系统应用系统数据库管理员
关系模型实体以及实体之间的联系
结构化查询语句
并发控制保证事务的隔离性和一致性。

排它锁、写锁、X锁
共享锁、读锁、S锁
关系的完整性:实体完整性,参照完整性,用户定义的完整性
代数关系:(1)对于否定操作,用差运算。

(2)有“全部”字眼,要用除法操作运算。

例:查询选修了全部课程的学生学好和姓名
∏Sno,Cno(SC)÷∏Cno(Course)∞∏Sno,Sname(Student)。

相关文档
最新文档