当前位置:网站首页>【数据库】期末复习(计科版)
【数据库】期末复习(计科版)
2022-06-24 12:33:00 【千里桦林】
P.S:按书本习题题号写标题
适用于XBL老师班级的考点范围
目录上标注(选择题和简答题)、例题是样卷上截下来的
目录
- 第一章
- 第二章(重要!!)
- 第三章(重要!!)
- 实验课的命令:
- 实验1:
- (1) 检索"信息(IS)"专业学生所学课程的信息,包括学号、姓名、课程名和分数。
- (2) 检索"数据库"课程成绩高于 90 分的所有学生的学号、姓名、专业和分数;
- (3) 检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业;*
- (4) 检索年龄大于 23 岁的男学生的学号和姓名。
- (5) 检索王敏同学不学的课程的课程号。
- (6) 检索至少选修两门课程的学生学号。
- (7) 检索全部学生都选修的课程的课程号与课程名。
- (8) 统计有学生选修的课程门数。
- (9) 求选修 4 课程的学生的平均年龄。
- (10) 统计每门课程的学生选修人数(超过 10 人的课程才统计)。
- (11) 检索学号比王敏同学大,而年龄比他小的学生姓名。
- (12) 检索姓名以 王 打头的所有学生的姓名和年龄。
- (13) 在 SC 中检索成绩为空值的学生学号和课程号。
- (14) 求年龄大于女同学平均年龄的男学生姓名和年龄。
- (15) 求年龄大于所有女同学年龄的男学生姓名和年龄。
- 实验二
- 2.查询选修了课程的学生人数
- 3.查询计算机系(CS)选修了两门及以上课程的学生的学号,姓名
- 4.将95001学生选修3号课程的成绩改为该课的平均成绩
- 5.查询student表与sc表基于学号sno的等值连接/自然连接
- 6.查询课程之先修课的先修课的课程号(自身连接)
- 7.查询学生及其选修课程、成绩等情况(不管是否选修均需列出学生信息)
- 8.查询性别为男、课程成绩及格的学生信息及课程号、成绩
- 9.查询与’张立’在同一个系学习的学生信息
- 10.查询选修了课程名为“数据库”的学生学号、姓名和所在系
- 11.查询哪些课程只有女生选修
- 12.查询所有未选修1号课程的学生姓名
- 13.查询平均成绩大于85分的学号、姓名、平均成绩
- 实验三
- (1)往基本表 Student 中插入一个学生元组('95999','张三', 18)。
- (2)在基本表 Student 中检索每一门课程成绩都大于等于 80 分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表 S (Sno , SNAME ,SEX)。(需要先建立基本表S)
- (3)在基本表 SC 中删除尚无成绩的选课元组。
- (4)把姓王的同学的选课记录全部删去。
- (5)把选修 MATHS 课不及格的成绩全改为空值。
- (6)把低于总平均成绩的女同学成绩提高 5% 。
- (7)在基本表 SC 中修改 C4 课程的成绩,若成绩小于等于 75 分时提高 5% ,若成绩大于 75 分时提高 4% (用两个 UPDATE 语句实现)。
- 课本视图的创建、修改例题
- (1)建立信息系学生的视图,并且在修改、插入操作时仍需要保证该视图只有信息系的学生
- (2)建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)
- (3)建立信息系选修了1号课程且课程在90分以上的学生的视图
- (4)定义一个反映学生出生年份的视图
- (5)将学生的学号及平均成绩定义为一个视图
- (6)将student表中所有女生记录定义为一个视图
- (7)删除视图
- (8)在信息系学生的视图中找出年龄小于20岁的学生
- (9)查询选修了1号课程的信息系学生
- (10)在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩
- (11)更新视图
- (12)向信息系学生视图IS_Student中插入一个新的学生记录
- (13)删除上面的赵新的记录
- 1、SQL语言的特点
- 5、SQL操作课本例题
- 6、什么是基本表?什么是视图?两者的区别和联系?
- 7、(选择/判断题)视图的优点?
- 8、哪类视图可以更新?哪类视图是不可更新?举一例。
- 第四章
- 第五章
- 第六章 关系数据库理论
- 第七章 数据库设计
- 第十章(不考,但以防万一)
- 考后反馈
第一章
1、试述数据、数据库、数据库系统、数据库管理系统的概念。
答:
(1)数据:描述事物的符号记录称为数据。数据与其语义是不可分的。
(2)数据库(DB):数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
(3)数据库系统(DBS):由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成的系统。
(4)数据库管理系统(DBMS):数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
例题



DDL是数据定义语言
DCL是数据控制语言


2、使用数据库系统的好处?
答:
- 有利于数据的集中管理,控制数据冗余,提高数据的利用率和一致性
- 有利于应用程序的开发和维护。
5、数据库系统的特点?
答:数据库系统的特点:
- 数据结构化
- 数据的共享性高、冗余度低且易扩展
- 数据独立性高
- 数据由数据库管理系统统一管理和控制
例题

6、(选择/判断题)数据库管理系统的功能有哪些?
答:
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务和运行管理
- 数据库的建立和维护功能
- 其他功能

7、什么是概念模型?概念模型的作用?
答:概念模型是现实世界到机器世界的一个中间层次。是按用户的观点来对数据和信息建模,主要用于数据库设计。
例题

概念模型的一种表示方式:E-R模型

14、关系数据库的特点?
答:
- 数据集中控制;
- 数据独立性高;
- 数据共享性好;
- 数据冗余度小;
- 数据结构化;
- 统一的数据保护功能。
15、数据库系统的三级模式结构?这种结构的优点?
答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
(1)模式
模式也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
(2)外模式
外模式也称为子模式或用户模式,能够看见和使用局部数据的逻辑结构和特征描述,是数据库用户的数据及视图,是与某一应用右端的数据的逻辑表示。
(3)内模式
内模式也称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
优点:把数据的具体组织留给数据库管理系统,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表现方法与存储方式。
样卷答案:
18、数据库系统的组成
答:数据库系统一般由数据库、数据库管理系统、应用程序和数据库管理员构成。具体是指:
- 硬件平台及数据库
- 软件
- 人员
数据模型和数据结构
例题


第二章(重要!!)
7、等值连接和自然连接的区别和联系

例题

关系代数题目
第一题

答:
第二题

答:
第三题 关系代数五种基本的运算有
- 并
- 差
- 笛卡尔积
- 选择
- 投影
ps:交、连接、除都可以用上面五种方法表示。
第四题 给出关系模式找等价的关系代数

第五题 关系代数操作的对象和结果是是什么?

第三章(重要!!)
SQL语句
实验课的命令:

注意:
(3)(5)的外层的查询都不是在SC表格里面查找的,而是Student和Course表,因为要找到符合条件的全部的学生名字和课程名。
(6)(8)记得加上distinct。
(7)有三层select,注意每一层是在哪个表查询。
(10)有升降排序。
(12)字符匹配用 LIKE,NOT LIKE
(13)空值 IS NULL,IS NOT NULL
实验1:
(1) 检索"信息(IS)"专业学生所学课程的信息,包括学号、姓名、课程名和分数。
select SC.Sno,student.Sname,Course.Cname,SC.Grade
From Student,Course,SC
where Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Student.Sdept='IS'
(2) 检索"数据库"课程成绩高于 90 分的所有学生的学号、姓名、专业和分数;
select SC.Sno,student.Sname,Student.Sdept,SC.Grade
From Student,Course,SC
where Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Course.Cname='数据库' AND SC.Grade>90
(3) 检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业;*
select Student.Sno,Student.Sname,Student.Sdept
from Student
where sno in(
select distinct sno
from sc
where Sno not in(
select Sno
from sc
where grade<60
)
)
(4) 检索年龄大于 23 岁的男学生的学号和姓名。
select Sno,Sname
from Student
where Sage > 23 and Ssex='男'
(5) 检索王敏同学不学的课程的课程号。
select cno
from Course
where cno not in(
select Course.cno
from SC
inner join Student on SC.Sno =Student.Sno
where Student.Sname='王敏'
)
select Cno
from course
where cno not in(
select cno
from Student,sc
where Student.Sno=SC.cno and Student.sname='王敏'
)
(6) 检索至少选修两门课程的学生学号。
select distinct SC.sno
from SC
group by sno
having count(SC.cno)>=2
(7) 检索全部学生都选修的课程的课程号与课程名。
select Course.Cno,Course.Cname
from Course
where Course.Cno in(
select SC.cno
from SC
group by SC.cno
having count(SC.sno)= (select count(sno)
from Student)
)
(8) 统计有学生选修的课程门数。
select count(distinct SC.cno)
from SC
(9) 求选修 4 课程的学生的平均年龄。
select AVG(Student.Sage)
from Student,SC
where Student.sno=SC.sno AND SC.cno='4'
(10) 统计每门课程的学生选修人数(超过 10 人的课程才统计)。
要求输出课程号和选修人数,查询结果按人数降序排列,
若人数相同,按课程号升序排列。
select Cno as '课程号',COUNT(Sno) as '选课人数'
from SC
group by Cno
Having COUNT(Sno)>10
order by count(Sno) desc, Cno
(11) 检索学号比王敏同学大,而年龄比他小的学生姓名。
select sname
from student
where sno >(
select sno
from student
where sname='王敏'
)
and sage <(
select sage
from student
where sname='王敏'
)
方法二:这里的first和second都是student表,看成两个表格去对比
select first.sname
from student first, student second
where first.sno>second.sno and first.sage> second.sage and second.Sname='王敏'
(12) 检索姓名以 王 打头的所有学生的姓名和年龄。
select Sname,Sage
from Student
where Sname like '王%'
(13) 在 SC 中检索成绩为空值的学生学号和课程号。
select Sno, Cno
from SC
where grade is null
(14) 求年龄大于女同学平均年龄的男学生姓名和年龄。
select sname,sage
from student
where sage >(
select AVG(sage)
from student
where Ssex='女'
)
and Ssex='男'
(15) 求年龄大于所有女同学年龄的男学生姓名和年龄。
select sname,sage
from student
where Ssex='男' and sage> all(
select sage
from student
where Ssex='女'
)
这里也可以把all改成max
实验二
注意:
这里的2.和实验一的(8)是查询不同的东西
7.要student表进行左连接,才能保证所有学生名单都会出现
2.查询选修了课程的学生人数
select count(distinct sno)
from sc
3.查询计算机系(CS)选修了两门及以上课程的学生的学号,姓名
select sno,sname
from student
where sno in(
select sno
from sc
group by sno
having count(sc.cno)>=2)
–老师给的答案:
select student.sno,student.sname
from student,sc
where Student.sno = SC.Sno
group by student.sno,student.sname
having count(sc.cno)>=2
4.将95001学生选修3号课程的成绩改为该课的平均成绩
–老师给的答案:
update sc
set grade = (
select avg(grade)
from sc
where cno = '3'
)where sno = '95001' and cno = '3'
5.查询student表与sc表基于学号sno的等值连接/自然连接
select Student.Sno, Sname,Ssex,Sage,Sdept,Cno,Grade
from Student inner join SC
on Student.sno=SC.Sno
写法2:
select Student.Sno, Sname,Ssex,Sage,Sdept,Cno,Grade
from Student, SC
where Student.Sno=SC.sno
–注意这里不能写成select *,因为会出现重复的sno列
6.查询课程之先修课的先修课的课程号(自身连接)
select first.Cpno, second.Cpno
from Course first, Course second
where first.Cpno=second.Cno
–变式:查询课程之先修课的先修课的课程名
select x.cname, z.cname
from course x, course y, course z
where x.cpno = y.cno and y.cpno = z.cno
7.查询学生及其选修课程、成绩等情况(不管是否选修均需列出学生信息)
select Student.Sno, Sname,Ssex,Sage,Sdept,Cno,Grade
from student left outer join SC
on Student.Sno=SC.Sno
8.查询性别为男、课程成绩及格的学生信息及课程号、成绩
select Student.*,Cno,Grade
from Student,sc
where Student.Sno=SC.Sno and SC.Grade>=60 and Student.Ssex='男'
写法二:
select Student.*,Cno,Grade
from Student inner join SC
on Student.Sno=Sc.sno
where SC.Grade>=60 and Student.Ssex='男'
–变式:再加一个“没有挂科记录”的条件
select Student.*,Cno,Grade
from Student,sc
where Student.Sno=SC.Sno and SC.Grade>=60 and Student.Ssex='男' and Student.Sno not in
(
select sno
from sc
where Grade<60
)
9.查询与’张立’在同一个系学习的学生信息
select *
from Student
where Sdept in(
select Sdept
from Student
where Sname='张立'
)and sname !='张立'
–这里的Sdept in()也可以写成Sdeot =(),因为子查询只返回一个值。
–最后别忘了把张立剔除
10.查询选修了课程名为“数据库”的学生学号、姓名和所在系
select Student.Sno,Sname,Sdept
from Student,SC,Course
where Student.Sno=SC.Sno and SC.cno=Course.Cno and Course.Cname='数据库'
11.查询哪些课程只有女生选修
–错误写法:(忽略了“只有”的条件,这样找出来的可能含男生女生都修了的课程)
select distinct Course.Cname
from Course,SC,Student
where Student.Sno=SC.Sno and SC.cno=Course.Cno and Student.Ssex='女'
–不要忘记加上distinct
–要在SC表格里面找,不要在Course表里面找。不然会出现男生女生都没修的课程。
–老师给的答案:
select distinct cno
from sc
where cno not in(
select distinct cno
from student,sc
where student.sno = sc.sno and ssex = '男'
)
12.查询所有未选修1号课程的学生姓名
select Student.sname
from Student
where not exists(
select sno
from sc
where student.sno=sc.sno and cno='1'
)
–老师给的答案:
select Student.sname
from Student
where sno not in(
select sno
from sc
where cno='1'
)
–not exists也可以写成 not in
–但是这里不要写成where cno<>‘1’,不然会有既选修了1号课程又修了其他课程的学生名字出现
13.查询平均成绩大于85分的学号、姓名、平均成绩
select Student.Sno,Sname, AVG(SC.Grade) as avg_grad
from Student inner join SC on Student.sno=sc.sno
group by Student.Sno,Sname
having AVG(SC.Grade)>85
–查询sno和sname,group by中要把这两个都写进去(刚好sno和sname是一一对应的),不然会报错
不要忘记把inner join那一行写上
实验三
(1)往基本表 Student 中插入一个学生元组(‘95999’,‘张三’, 18)。
insert
into Student(Sno,Sname,Sage)
values('95999','张三',18)
select * from Student
(2)在基本表 Student 中检索每一门课程成绩都大于等于 80 分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表 S (Sno , SNAME ,SEX)。(需要先建立基本表S)
create table S(
Sno char(5) primary key,
Sname char(20),
Sex char(2)
);
insert
into S(Sno,Sname,Sex)
select distinct Student.Sno,Sname,Ssex
from Student
where Sno in(
--写法一:
select Sno
from SC
where Sno not in(
select Sno
from SC
where grade<80
)
)
select * from S
–写法二:这种最外层不需要distinct
select sno
from sc
group by sno
having min(grade)>=80
(3)在基本表 SC 中删除尚无成绩的选课元组。
delete
from sc
where Grade is null
select * from sc
(4)把姓王的同学的选课记录全部删去。
delete
from sc
where sno in(
select sno
from Student
where sname like '王%')
(5)把选修 MATHS 课不及格的成绩全改为空值。
–插入了测试数据:
insert
into sc(sno,cno,grade)
values(‘95004’,‘2’,55)
–更新表格
update sc
set grade = null
where Grade<60 and cno = (
select cno
from course
where cname='数学'
)
select * from sc
–删除测试数据:
delete
from sc
where grade is null
(6)把低于总平均成绩的女同学成绩提高 5% 。
update sc
set grade=grade*1.05
where grade in(
select distinct grade
from Student,sc
where student.sno=sc.sno and student.Ssex='女' and sc.grade < (
select avg(Grade) --前面的题目加了null值,记得删除掉再算平均比较好
from sc
)
)
–写法2:
update sc
set grade=grade*1.05
where grade<(
select AVG(Grade)
from sc inner join Student on student.sno = sc.sno
where Ssex='女'
)
–老师给的答案:
update sc
set grade=grade*1.05
where grade<(
select avg(grade)
from sc
)and sno in(
select sno
from student
where ssex = '女'
)
(7)在基本表 SC 中修改 C4 课程的成绩,若成绩小于等于 75 分时提高 5% ,若成绩大于 75 分时提高 4% (用两个 UPDATE 语句实现)。
update sc
set grade = grade*1.04
where grade>75 and cno='4'
update sc
set grade = grade*1.05
where grade<=75 and cno='4'
–这道题居然有顺序?!
–如果先修改了小于75分的,可能分数上升到75分,再对大于75分的处理,就变成了两次修改成绩,这就出错了!
课本视图的创建、修改例题
(1)建立信息系学生的视图,并且在修改、插入操作时仍需要保证该视图只有信息系的学生
go
create view IS_Student
as
select sno,sname,sage
from Student
where Sdept='IS'
with check option
go
select * from IS_Student
(2)建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)
go
create view IS_S1(Sno,Sname,Grade)
as
select Student.sno,sname,grade
from Student,SC
where Sdept='IS' and Student.Sno=SC.Sno and SC.Cno='1';
go
select * from IS_S1
(3)建立信息系选修了1号课程且课程在90分以上的学生的视图
go
create view IS_S2
as
select sno,sname,grade
from IS_S1
where grade>=90;
go
select * from IS_S2
(4)定义一个反映学生出生年份的视图
go
create view BT_S(sno,sname,sbirth)
as
select sno,sname,2014-sage
from student
go
select * from BT_S
(5)将学生的学号及平均成绩定义为一个视图
go
create view S_G(Sno,Gavg)
as
select sno,AVG(Grade)
from sc
group by Sno
go
select * from S_G
(6)将student表中所有女生记录定义为一个视图
go
create view F_Student(F_sno,name,sex,age,dept)
as
select *
from student
where Ssex='女';
go
select * from F_Student
(7)删除视图
drop view BT_S
(8)在信息系学生的视图中找出年龄小于20岁的学生
select sno,sage
from IS_Student
where sage<20
(9)查询选修了1号课程的信息系学生
select IS_Student.Sno,Sname
from IS_Student,SC
where IS_Student.Sno = SC.Sno and SC.Cno = '1';
(10)在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩
select *
from S_G
where Gavg>=90;
–写法2:子查询生产一个派生表S_G
select *
from (select sno,AVG(grade)
from sc
group by sno
) as S_G(sno,Gavg)
where Gavg>=90;
(11)更新视图
–将信息系学生视图IS_Student中学号为“95002”的学生姓名改为“刘辰”
update IS_Student
set Sname='刘辰'
where sno='95002'
(12)向信息系学生视图IS_Student中插入一个新的学生记录
insert
into IS_Student
values('95009','赵新','20')
select * from Student
–注意上面这种写法IS_Student不会显示,因为专业sdept被默认为是null了
(13)删除上面的赵新的记录
delete
from IS_Student
where Sno='95009'
1、SQL语言的特点


例题


5、SQL操作课本例题
表格:S供应商 P零件 J工程项目 SPJ供应情况表
题目:
注意:
(3)(7)有DIST
(8)-(11)是更新、删除、插入操作语句
6、什么是基本表?什么是视图?两者的区别和联系?
答:
例题

7、(选择/判断题)视图的优点?
答:
- 视图能够简化用户的操作;
- 视图使用户能以多种角度看待同一数据;
- 视图对重构数据库提供了一定程度的逻辑独立性;
- 视图能够对机密数据提供安全保护。
8、哪类视图可以更新?哪类视图是不可更新?举一例。
答:基本表的行列子集视图一般是可更新的。
若视图的属性来自集合函数、表达式,则该视图肯定是不可以更新的。
所有的视图是否都可以更新?为什么?
答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能惟一有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。
第四章
1、什么是数据库的安全性?

例题

2、举例说明对数据库安全性产生威胁的因素。
答:
- 非授权用户对数据库的恶意存储和破坏。(黑客和犯罪分子再用户存取数据库时猎取用户名和用户口令)
- 数据库中重要或敏感的数据被泄露。
- 安全环境的脆弱性。(例如操作系统和网络)
4、(选择/判断题)数据库安全性控制的常用方法和技术
答:
5、什么是数据库中的自主存取控制方法和强制存取控制方法?
答:
7、对关系模式,用GRANT和REVOKE语句完成以下授权定义或存取控制功能。



例题 删除基本表和删除基本表的元组的语句

第五章
1、什么是数据库的完整性?
答:数据库的完整性指数据的正确性和相容性。
例题

2、(简答题)数据库的完整性概念与数据库的安全性概念有什么区别和联系?
答:
3、什么是数据库的完整性约束条件?
答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。
一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
- 静态列级约束是对一个列的取值域的说明,包括以下几个方面:(1)对数据类型的约束,包括数据的类型、长度、单位、精度等:(2)对数据格式的约束;(3)对取值范围或取值集合的约束:(4)对空值的约束;(5)其他约束。
- 静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
- 静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:(1)实体完整性约束;(2)参照完整性约束;(3)函数依赖约束。 - 动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:(1)修改列定义时的约束。(2)修改列值时的约束。
- 动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。
- 动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。
例题


4、关系数据库管理系统的完整性控制机制应具有哪三方面的功能?
答:DBMS 的完整性控制机制应具有三个方面的功能:
- 定义功能,即提供定义完整性约束条件的机制;
- 检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;
- 违约反应,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保正数据的完整性。
5、数据完整性分为四类:
- 实体完整性(关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键,唯一索引 unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人。)
- 参照完整性(关系中的外键必须是另一个关系的主键有效值,或者是NULL。 参考完整性维护表间数据的有效性,完整性,通常通过建立外部键联系另一表的主键实现,还可以用触发器来维护参考完整性)
- 用户定义的完整性。
第六章 关系数据库理论
下方第1、2题超长答案预警!
我自己都看困了
看 视频的P2 速成吧
1、术语定义
- 函数依赖
- 部分函数依赖
- 完全函数依赖
- 传递依赖
- 候选码
- 主码
- 外码
- 范式
答:

2、建立一个关系数据库
补充:关于最小函数依赖的知识点





6、给关系模式,判断范式类型。

答:
(1)BC也是R的候选码
(2)BCE、ACE、CDE
(3)R的候选码BCE、ACE、CDE,没有非主属性对码部分依赖或传递依赖,所以R属于3NF。而三个函数依赖中,决定因素都不包含码,所以R不属于BCNF。
7、(判断题)判断范式类型

这题答案来自这篇文章
答:
(1)任何一个二目关系是属于3NF的。
正确。只有两个属性不存在传递函数依赖。
(2)任何一个二目关系是属于BCNF的。
正确。只有两个属性,决定因素必含有码。
(3)任何一个二目关系是属于4NF的。
正确。只有两个属性不存在非平凡的多值依赖。
(4)当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。
错误。当函数依赖B→A在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,则RA→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。
错误。根据B、C两个属性才能确定A。例如知道学号和课程才能确定成绩,只知道学号或是只知道课程都不能确定成绩。
8、(计算题)给关系,写闭包,判断候选码,判断第几范式
以下是必看例题!!!
例题
范式判断笔记:

例题





9、最小函数依赖集

第七章 数据库设计
1、(简答题)数据库设计过程是什么?
答:
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行和维护
详细版:

6、概念模型中的术语

10、E-R图转换为关系模型
题目:
可以看这个视频理解过程:

11、第十题里面的候选码属于第几范式?会产生什么更新异常?
答案看这篇博客
例题 E-R图转换为关系模式的原则(大作业用到)


第十章(不考,但以防万一)
1、事务
事务时用户定义的一个数据库操作序列,是不可分割的工作单位。是数据恢复和并发控制的基本单位。
2、事务的ACID特性
Atomicity 原子性
Consistency 一致性
Isolation 隔离性
Durability 持续性



这就是全部范围了。
考后反馈
考了多对多关系的ER图、写关系模型,找出模型中的外码
还考察了逻辑蕴含,还要证明是否是3NF
还有封锁粒度
考了数据、数据库等那4各概念的简答
END
边栏推荐
- The pod is evicted due to insufficient disk space of tke node
- MySQL 外键影响
- [day ui] alert component learning
- GTEST from getting started to getting started
- Istio practical skills: implement header based authorization
- The world's largest meat processor has been "blackmailed", how many industries will blackmail virus poison?
- In depth analysis, from ordinary clock system to various time service modes
- Installing sqlserver extension PDO of PHP under Linux_ sqlsrv
- 怎样购买打新债 开户是安全的吗
- LS-DYNA新手入门经验
猜你喜欢

Opencv learning notes - loading and saving images

MySQL 外键影响

Ten thousand campus developers play AI in a fancy way. It's enough to see this picture!

从《梦华录》的争议性,谈谈数字版权作品的价值泡沫
Cloud native database: the outlet of the database, you can also take off

巴比特 | 元宇宙每日必读:618成绩已然揭晓,在这份还算满意的答卷背后,数字藏品做出了多少贡献?...

文本转语音功能上线,可以体验专业播音员的服务,诚邀试用

一文讲透植物内生菌研究怎么做 | 微生物专题

Opencv learning notes -- Separation of color channels and multi-channel mixing

mLife Forum | 微生物组和数据挖掘
随机推荐
Encapsulate the method of converting a picture file object to Base64
Difference between X12 830 and 862 messages
GTEST from getting started to getting started
[redisson] analysis of semaphore lock source code
mLife Forum | 微生物组和数据挖掘
Cryptography series: collision defense and collision attack
Tencent cloud and the ICT Institute launched the preparation of the "cloud native open source white paper" to deeply interpret cloud native
Flink snapshot analysis: operators for locating large states and data skew
Continuous testing | making testing more free: practicing automated execution of use cases in coding
Listed JD Logistics: breaking through again
Tencent Youtu, together with Tencent security Tianyu and wechat, jointly launched an infringement protection scheme
Installation and operation of libuv
105. 简易聊天室8:使用 Socket 传递图片
Opencv learning notes - matrix normalization normalize() function
9+! Predicting lymph node status from histology of colorectal cancer by deep learning
Opencv learning notes - cv:: mat class
文本转语音功能上线,可以体验专业播音员的服务,诚邀试用
Kubernetes practical technique: setting kernel parameters for pod
National standard platform easygbs administrator assigns roles to sub users and troubleshooting of invalid channels
广发证券靠谱吗?开证券账户安全吗?