数据库考试大题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)。