数据库原理练习题
第1章
1. 在数据库的概念模型中,唯一表示实体的属性集称为联系。
2. 数据库系统三级模式及两级映像,三级模式分别描述什么?又可分别有什么其他名称?3.DB、DBA、DBS、DBMS中文意思。
第2章
1. 在数据库的概念模型中,唯一表示实体的属性集称为码。
2. 数据库领域中常用的逻辑数据模型中,称为格式化模型的是层次模型。
3. 基本关系不具有的性质是:列是有顺序的。
4. 设关系R和S的属性个数分别为r和s,则R×S操作结果的元组个数为: 无法确定。5.数据模型通常由数据结构、数据操作及完整性约束三部分组成。
5. 在关系代数的专门关系运算中,从表中取出指定的属性的操作称为投影。
6. 在关系R中,代数表达式σ3<4(R)表示:从R中选择第3个分量值小于第4个分量的元组组成的关系。
7. 设关系R和S的属性个数分别为r和s,则R×S操作结果的属性个数为r+s。
8. 行的顺序无所谓基本关系具有的性质。
9.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是数据结构、关系操作、完整性约束。
10. 关系完整性约束有哪些
11. 在关系模型中,表的行称为元组,列称为属性。
12. 两个实体型之间的联系不包括结构对结构联系。
13.表中的一行即为一个元组。
14.五种基本关系代数运算是并,差,笛卡尔积,选择和投影。
15. 现有如下关系表CAR和FACTORY,试说明
(1)各表的主键;
(2)CAR表和FACTORY表是否存在外键,为什么;
(3)表中表述的内容是否有误,为什么。
CAR FACTORY
答:
(1)各表的主键;
CAR: 汽车编号FACTORY:厂家编号
(2)CAR表和FACTORY表是否存在外键,为什么;
存在,CAR关系中的厂家编号是当前关系的外键;因为CAR关系中的厂家编号不是当前关系的主键,但它与FACTORY关系的主键相对应。、
(3)表中表述的内容是否有误,为什么。
16. 设有两个关系模式:
职工(职工号,姓名,性别,年龄,职务,工资,部门号),
部门(部门号,部门名称,经理名,地址,电话)
请用关系代数实现下列操作
(1)职工“如意”的年龄和工资。
(2)年龄在40岁以下,工资高于3000的职工姓名。
(3)查询“开发部”的职工的姓名和性别。
(1)、Π年龄,工资(σ姓名=…如意?(职工))
(2)、Π姓名(σ年龄<40 ∧工资>3000 (职工))
(3)、π姓名,性别(σ部门名称=?开发部? (部门职工))
17.如下关系模式包括三个表(主码用下划线标出)。
教师表T (Tno, Tname, Tsex, Tage, Tdept),各属性分别代表教师编码、教师姓名、性别、年龄、所在系别。
课程表C (Cno, Cname, Ccredit) , 各属性分别代表课程号、课程名称及学分。
教师授课表TC(Tno,Cno,Flag), 各属性分别代表教师编码、课程号,开课标志。(开课标志为1代表已开课,为0代表未开课)
用关系代数实现下列操作
(1)查询所有教师的姓名及所在系别;
ΠTname,Tdept(T)
(2)查询学分大于3的课程号和课程名称;
ΠCno,Cname(σCcredit>3 (C))
(3)查询未开课的课程编号;
ΠCno(σFlag=?0? (TC))
(4)查询讲授“数据库原理”课程的教师的姓名和所在系别;(教师讲授的课程可以未开课)
ΠTname,Tdept (σCname =?数据库原理? ( TC T ))
18.设学生—课程数据库由以下四个关系模式构成:
学生表(学号,姓名,性别,年龄,专业)
授课信息表(课程号,教工号,授课学时)
教师表(教工号,姓名,性别,职称,所在专业)
课程表(课程号,课程名,学分,学时)
选课信息表(学号,课程号,成绩)
用关系代数表示下列查询操作:
(1)查询3号课程的学分和学时。
(2)查询上课教师的姓名和职称。
(3)查询所有选课学生的姓名,课程名和成绩。
答:(1)∏学分,学时(σ课程号=3(课程表))
(2)∏姓名,职称(授课信息表∞教师)
(3)∏姓名,课程名,成绩(课程表∞选课信息表∞学生表)
第3章
1. DBMS提供的数据定义语言的英文简称是DDL。
2. SQL查询时去掉重复数据的是DISTINCT。
3. 假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC(S#,C#,GRADE)。要查询选修“Computer”课的男生姓名,将涉及到关系:S,C,SC
4. 表示更新记录的SQL语句是UPDATE语句
5. 向基本表中增加一个新列后,原有元组在该列上的值是空值。
6. 自然连接是一种特殊的等值连接。
7. 参加集合查询操作的各查询结果的列数必须相同。
8. 子查询的条件依赖于父查询,这类查询是嵌套查询中的相关子查询,不相关子查询中,子查询只被执行一次。
9.单个属性构成的码既可以定义为列级约束条件,又可以定义为表级约束条件。
10. 两个子查询的结果结构完全一致时,可以执行并、交、差操作。
12. SQL语言中,删除一个视图的命令是DROP。
13.删除索引,使用DROP语句。
14.在SQL命令的短语中,WHERE子句中不允许使用聚集函数。
15.在SQL的查询语句中,对应关系代数中“投影”运算的是SELECT语句。
16.设关系student(学号,姓名,年龄,性别,系名),如果要查询姓名至少包括5个字母,且倒数第三个字母为"T"的学生的学号、姓名以及所在系,则对应的SELECT语句是
SELECT 学号,姓名,系名
FROM Student
WHERE姓名LIKE _ _ %T_ _;
17.如下关系模式包括三个表(主码用下划线标出)。
教师表T (Tno, Tname, Tsex, Tage, Tdept),各属性分别代表教师编码、教师姓名、性别、年龄、所在系别。
课程表C (Cno, Cname, Ccredit) , 各属性分别代表课程号、课程名称及学分。
教师授课表TC(Tno,Cno,Flag), 各属性分别代表教师编码、课程号,开课标志。(开课标志为1代表已开课,为0代表未开课)
请用SQL语言实现下列操作
(1)查询讲授“数据库原理”课程且已开课的教师的姓名及所在系别(嵌套查询);
(2)创建教师授课表TC,请创建主键、外键,Flag取值不能为空;
(3)查询讲授课程为已开课的教师编号;
(4)查询既讲授1号课程又讲授2号课程的教师编码;(教师讲授的课程可以未开课)
(5)创建视图V1,显示所有教授…计算机引论?课程的开课标志为?1?的所有教师的姓名,所在系别。
答:(1)
Select Tname, Tdept
From T, TC, C
Where T.Tno=TC.Tno and https://www.wendangku.net/doc/8c17158749.html,o=https://www.wendangku.net/doc/8c17158749.html,o and Cname=?数据库原理? and Flag=?1?
(2)
create table TC(
Tno char(10),
Cno char(10),
Flag char(1) NOT NULL,
primary key(Tno, Cno),
foreign key(Tno) references T(Tno),
foreign key(Cno) references C(Cno)
)
(3)
Select Tno
From TC
Where Flag=?1?
(4)
Select Tno
From TC
Where Cno=?1? and Tno in(
Select Tno
From TC
Where Cno=?2? )
18.设学生—课程数据库由以下四个关系模式构成:
学生表(学号,姓名,性别,年龄,专业)
授课信息表(课程号,教工号,授课学时)
教师表(教工号,姓名,性别,职称,所在专业)
课程表(课程号,课程名,学分,学时)
选课信息表(学号,课程号,成绩)
(1)查询所有姓王的教师和学生名单。
(2)查询选修了课程的学生人数。
(3)新来一名教师:21002,张红,女,计算机科学与技术专业,将其信息存入数据库中。(4)对教工号为20002的教师,在原有授课学时的基础上增加50学时。
(5)定义一个学生平均成绩的视图Stu_Avg ,包括学号,平均成绩。
答:(1)
select 姓名
from 教师表
where 姓名like …王%?
union
select 姓名
from 学生表
where 姓名like …王%?
(2)
select count(distinct 学号)
from 选课信息表
(3)
insert
into 教师表(教工号,姓名,性别,所在专业)
values(…21002?,…张红?,…女?,?计算机科学与技术专业?)
(4)
update 授课信息表
set 学时=50
where 教工号=…20002?
(5)
create view Stu_Avg(学号,平均成绩)
as
select 学号,avg(成绩)
from选课信息表
group by 学号
19. 设有两个关系模式:
职工(职工号,姓名,性别,年龄,职务,工资,部门号),
部门(部门号,部门名称,经理名,地址,电话)
请用SQL语言实现下列操作
(1)、创建一个包含姓名、工资、职务和部门名称的女职工视图。
(2)、修改经理“谦虚”的电话号码为138********。
(3)、增加基本信息:经理名为:谦虚,部门号为:102,部门名为:人事部。
(4)、删除年龄大于70岁的职工信息。
(5)、统计部门职工年龄在40岁以下、人数超过30人的部门号。
(1)、
Create view A
As
Select 姓名,工资,职务,部门名称
From 职工,部门
Where 职工.部门号=部门.部门号and 性别=…女?
(2)、
Update 部门
Set 电话=?138********?
Where 经理名=?谦虚?
(3)、
Insert
Into 部门
Values(…102?,?人事部?,?谦虚?,null,null)
(4)、
Delete
From 职工
Where 年龄>=70
(5)、Select 部门号
From 职工
Where 年龄<40
Group by 部门号
Having count(*)>30
第4章
1. SQL语言中用GRANT语句实现事务的授权。
2. 表示向用户收回授予权限的语句是REVOKE语句
3. 在自主存取控制中客体的敏感度标记称为许可证级别。
4. 出入机房登记和加防盗门不属于实现数据库系统安全性的主要技术和方法。
5. 把查询Student表的权限授给用户U1
GRANT SELECT
ON TABLE Student
TO U1;
6.对表的插入删除修改任意动作,触发器都会执行。( F )
第5章
1. 实体完整性要求主属性不能取空值,这一点可以通过定义主码来保证。
2. 在SQL命令的短语中,定义表时规定某个属性上取值唯一使用的短语是UNIQUE。
3. 设有关系模式R(A,B,C)和S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A 的值或者等于R中某个元组的主码值,或者取空值(null)。这是参照完整性规则。
4.多个属性构成的码只能定义为表级完整性约束条件,单个属性构成的码可以定义为列级或表级完整性约束条件。
第6章
1. 设X→Y是关系R(U)上成立的一个函数依赖,如果Y X,那么称X→Y是平凡函数依赖。
2. 设有关系模式R(S,D,M),其函数依赖集:F={S→D,D→M},则关系模式R的规范化程度最高达到2NF。
3.设有关系R,如下图所示:
同一型号的产品可以在多个部门同时生产;同一名称
的产品可有多种型号,某一型号的产品只能有一个名
称;某一型号的产品只有一种单价,不同型号的产品
可以有相同的单价。
试回答下列问题:
(1)根据上述规定,写出关系模式R的基本函数依赖;
(2)找出关系模式R的候选码;
(3)关系模式R最高已经达到第几范式?为什么?
(4)如果R不属于3NF,请将R分解为3NF模式集。
答:
(1)函数依赖:
部门名→产品型号产品型号→产品名产品型号→单价
(2)R的候选码是部门名。
(3)R中不存在非主属性对主属性的部分函数依赖,所以R属于第二范式,又由于R中存在非主属性产品名、单价对码的传递函数依赖,所以R不属于第三范式,因此R最高属于第二范式。
(4)将R分解为:
R1(部门名,产品型号)
R2(产品型号,产品名,单价)
4.设有一个记录学生毕业设计情况的关系模式:
R(学号,学生名,班级,教师号,教师名,职称,毕业设计题目,成绩)
如果规定:每位学生只有一位毕业设计指导教师,每位教师可以指导多名学生,学生的毕业设计题目可能重复。
根据上述关系:
(1)写出关系R的基本函数依赖
(2)写出关系R的候选码。
(3)判断R最高已经达到几范式?为什么?
(4)如果R没有达到3NF范式,将其规范到3NF。
答:
(1)
F={学生号->学生名,学生号->班级号,
教师号->教师名,教师号->职称,
(学生号,教师号)->毕业论文题目,(学生号,教师号)->成绩}
(2)(学生号,教师号)
(3)R是1NF,存在部分依赖
(4)
R1(学生号,学生名,班级号)
R2(教师号,教师名,职称)
R3(学生号,教师号,毕业论文题目,成绩)
第7章
1. 两个实体型之间的联系包括一对一联系,一对多联系,多对多联系。
2. 数据库设计中概念结构设计常用的四中方法有自底向上、自上向下、逐步扩张和混合策略。
3. 在关系数据库设计中,设计关系模式是数据库设计中逻辑设计阶段的任务。
4.从ER图导出关系模型时,如果实体间的联系是M:N的,增加一个关系表示联系,其中纳入M方和N方的码。
5.某商店计算机管理中需要如下信息:
商店:商店编号,店名,店址,店经理;
会员:会员编号,会员名,地址;
职工:职工编号,职工名,性别,工资。
其中,每家商店有若干职工,但每个职工只能服务于一家商店。每家商店有若干会员,每
个会员可以属于多家商店。在联系中应反映出职工参加某商店工作的开始时间,会员的加入时间。
(1) 根据上述语义画出ER图,在ER图中需注明实体的属性、联系的类型及实体的标识符。
(2)将ER图转换成关系模式,并指出每个表的主键和外键;
答:
(1)
(2)
商店模式(商店编号,店名,店址,店经理)
主键:商店编号)
职工模式(职工编号,职工名,性别,工资,商店编号,开始参加工作时间)
主键:职工编号外键:商店编号
会员模式(会员编号,会员名,地址)
主键:会员编号
SM模式(会员编号,商店编号,会员加入时间)
主键:会员编号,商店编号外键:会员编号;商店编号
6.某学校对学生运动会成绩要进行信息化管理,有如下事实:
?有若干班级,每个班级的属性包括:班级号,班级名,专业,人数;
?每个班级有若干运动员,运动员只能属于一个班,运动员的属性包括:运动员号,姓名,性别,年龄;
?有若干比赛项目,项目的属性包括:项目号,名称,比赛地点;
?每名运动员可参加多项比赛,每个项目可有多人参加;
要求能够公布每个比赛项目的运动员名次与成绩;
(1)根据上述语义画出ER图,在ER图中需注明实体的属性、联系的类型及实体的标识符。
(2)将ER模型转换成关系模型,并在每个关系模式的主键下加下划线。
答:
(1)
(2)
班级(班级号,班级名,专业,人数)
运动员(运动员号,姓名,性别,年龄,班级号)
项目(项目号,项目名,比赛地点)
比赛(运动员号,项目号,名次,成绩)
7.某企业集团计算机管理中需要如下信息:每个工厂生产多种产品,且每一种产品可以在多个工厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名职工只能在一个工厂工作,工厂聘用职工有聘期和工资。
工厂的属性有工厂编号、厂名、地址;
产品的属性有产品编号、产品名、规格;
职工的属性有职工号、姓名。
(1)根据上述语义画出ER图,在ER图中需注明实体的属性、联系的类型及实体的标识符。
(2)将ER模型转换成关系模型,并指出每个关系模式的主键和外键。
答:
(1)
(2)工厂(工厂编号,厂名,地址)
主键:工厂编号
产品(产品编号,产品名,规格)
主键:产品编号
职工(职工号,姓名)
主键:职工号
生产(工厂编号,产品编号,计划数量)
主键(工厂编号,产品编号)
外键:工厂编号,产品编号
聘用(职工号,工厂编号,聘期,工资)
主键:职工号
外键:工厂编号
8.设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、任课教师地址等意义。如果规定,每个学生每学一门课只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址(此处不允许教师同名同姓)。
(1)试写出关系模式R的基本函数依赖。
(2)试写出关系模式R的候选码,主属性和非主属性。
(3)试述2NF的定义,并把R分解成2NF模式集,同时说明理由。
(4)试述3NF的定义,在第2NF基础上把R分解成3NF模式集,同时说明理由。
答:
(1)函数依赖:
F={(S#,C#)→GRADE,C#→TNAME,TNAME→T ADDR}
(2)候选码为:S#+C#
主属性:S#,C#
非主属性:GRADE,TNAME,TADDR
(3)2NF: 若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。
在模式R中,TNAME不完全依赖于键(S#,C#),因此需进行分解,可分解为下列两个关系。SC={S#,C#,GRADE} C={C#,TNAME,TADDR}
分解后,SC中,GRADE完全依赖于侯选键(S#,C#),在C中,主属性是C#,TNAME、TADDR均完全依赖于C#。因此,该分解符合2NF模式。
(4)
3NF:若每个关系模式是2NF,则每个非主属性都不传递于R的候选码。(1分)
按上述已分好的两个模式,SC中已满足“每个非主属性都不传递于R的候选键”,已是3NF,而在C中,C#→TNAME,TNAME→TADDR,TADDR传递依赖于C#,因此还需分成两个模式:CT(C#,TNAME), T(TNAME,TADD)。
分解后,总共有SC={S#,C#,GRADE},CT(C#,TNAME), T(TNAME,TADD)三个模式。
该分解符合3NF模式。
第10、11章
1. 撤消(UNDO)操作要反向扫描日志文件。
2.事务的持续性是指事务一旦提交,对数据库的改变是永久的。
3.若系统由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为介质故障。
4. 事务的特性包括原子性、一致性、隔离性和持续性。
5. 并发操作带来的问题是丢失修改、不可重复读、读“脏”数据。
6.事务日志用于保存对数据的更新操作。