题型及分值
一、填空题(10空,每空1分,共10分) 二、判断题(10小题,每题1分,共10分) 三、名词解释(5小题,每题4分,共20分) 四、简答题(5小题,每题6分,共30分)
五、综合应用题(6小题,每题5分,共30分)
注:综合应用题主要来自于实验三、四,教材中介绍的基本SQL语句要熟悉。
第一章 绪 论
(一)填空与名词解释
1. 数据(Data)
数据是数据空中存储的基本对象,是描述事物的符号记录。 2. 数据库(Database)
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。 3. 数据库管理系统(DBMS)的主要功能(database management system)
数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事务管理和维护功能,其他功能
4. 数据库系统(DBS)
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 5. 两类数据模型
概念模型也称信息模型,它是按用户的观点来对数据和信息建模, 用于数据库设计。 逻辑模型和物理模型
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。 6. 数据模型的组成要素
数据结构、数据操作、完整性约束
数据结构是描述数据库的组成对象以及组成对象之间的联系,是对系统静态特征的描述; 数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作集合及有关操作规则,由查询,更新,是对系统动态特征的描述;
完整性约束条件是一组完整性规则的集合。
7. 最常用的数据模型(五个)
层级模型、网状模型、关系模型、面向对象模型、对象关系模型 8. 数据库系统的三级模式
外模式、模式、内模式
(二)简答
1. 数据库的二级映像功能与数据性。P.33
数据库在三级模式之间提供了两层映像,即外模式/模式映像,模式/内模式映像
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑性和物理性。 一、外模式/模式映象(多对一) 模式:描述的是数据的全局逻辑结构 外模式:描述的是数据的局部逻辑结构
同一个模式可以有任意多个外模式
每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系 映象定义通常包含在各自外模式的描述中 保证数据的逻辑性
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑性,简称数据的逻辑性。
二、模式/内模式映象
模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。 例如,说明逻辑记录和字段在内部是如何表示的 数据库中模式/内模式映象是唯一的
该映象定义通常包含在模式描述中 保证数据的物理性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理性,简称数据的物理性。
2. 数据库系统的特点。P.8
数据结构化;数据的共享性高,冗余度低,易扩充;数据性高;数据由DBMS统一管理和控制;
3. 数据库系统的组成。P.34
数据库;数据库管理系统(及其开发工具);应用系统;数据库管理员 硬件平台及数据库;软件;人员
第二章 关系数据库
(一)填空与名词解释
1. 关系模型的3个组成部分
域、笛卡尔积、关系
2. 关系、元组、属性
关系:D1×D2×…×Dn 的子集叫作在域D1,D2,…,Dn上的关系,表示为 R(D1,D2,…,Dn)
元组:笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple) 属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性 3. 候选码、主码、外码
候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定其中一个为主码。
外码:设F是基本关系R的一个或一组属性,但不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。 4. 关系模式、关系、关系数据库
关系:关系是关系模式在某一时刻的状态或类容。
关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
(二)简答
1. 试述关系模型的完整性规则。P.49
关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。
实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能去空值。 参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所设计的数据必须满足的语义要求。
2. 等值连接、自然连接、外连接、左外连接、右外连接及其之间关系。P.58
自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
外连接:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。
左外连接: 如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)
右外连接:如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。
如果把舍弃的元组也在结果关系中,而在其他属性上填空值(null),那么这种连接就叫做外连接。如果只把左边关系R中要舍弃的元组保留就叫做左外连接,如果只把右边关系S中要舍弃的元组保留就叫做右外连接。
第三章 关系数据库标准语言SQL
(一)填空与名词解释
1. 行列子集视图
若一个视图是从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主码,我们称这类视图为行列子集视图。 2. SQL(Structured Query Language)
即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的、功能极强的关系数据库语言。
(二)简答
1. SQL的特点,简要说明。
⑴综合统一。SQL集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以完成数据库生命周期中的全部活动。
⑵高度非过程化。存取路径的选择以及SQL的操作过程由系统自动完成。不但大大减轻了用户负担,而且有利于提高数据性。
⑶面向集合的操作方式。不尽操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
⑷以同一种语言结构提供多种使用方式。即使的语言,优势嵌入式语言。
⑸语言简介,易学易用。SQL功能极强,但由于设计巧妙,语言十分简介,完成核心功能只用了9个动词。
2. 什么是基本表?什么是视图?两者之间的区别与联系是什么?
基本表是本身存在的表,在SQL中一个关系就对应一个基本表;视图是从一个或几个基本表(或视图)导出的表。
它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。
视图一经定义,就可以和基本表一样被查询、被删除。也可以在视图之上再定义新的视图,但对视图的更新(增删改)操作则有一定的。
联系:基本表和视图一样,都是关系。视图在概念上与基本表相同,用户可以在视图上再定义视图。
3. 视图的优点有哪些?
(视图的作用)
1. 视图能够简化用户的操作。
2. 视图使用户能以多种角度看待同一数据。
3. 视图对重构数据库提供了一定程度的逻辑性。 4. 视图能够对机密数据提供安全保护。 5. 适当的利用视图可以更清晰的表达查询。
(三)综合应用题
实验三、四全部习题,弄懂每一道题。 实验三
1.查询“实验2”中创建的各表所有记录 select*
FROM STUDENT,SC,COURSE; 2.查询学生总人数 select count (*) from student
3.检索“LIU”老师所授课程的课程号和课程 select cname,cno from course
where cteacher ='LIU';
4.检索年龄大于23岁的男学生的学好和姓名 select sno,sname
from student
where sage>23 and ssex='男'
5.检索“信息管理”专业的所有女学生的学好和姓名 select sno,sname from student
where ssex='女' and sdept='信息管理' 6.查询年龄最小的学生学好、姓名和年龄 select top 1 sname,sno,sage from student order by sage asc
7.检索所有学生中年龄最大的前4人,输出其学号、姓名、年龄 select top 4 sno,sname,sage from student
order by sage desc
8.检索至少选修了两门课程的学生学号 select sno from SC group by sno
having count(*)>2
9.在course表中统计开设课程的教师人数 select count(distinct cteacher) from course
10.查询各个课程号相应的选课人数 select count(distinct sno) from SC
11.查询各个课程号相应的选课人数 select cno,count(sno) from sc
group by cno
12.计算C001号课程的学生平均成绩 select avg(grade) from sc
where cno='1'
13.求每个学生选秀课程(已有成绩)的门数和平均成绩 select sno,count( cno),avg(grade) from sc
group by sno
14.统计每个学生选秀课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。 select sno,count(cno) from sc
group by sno
having count (*)>5 order by sno asc
15.检索学号比WANG同学大,而年龄比他小的学生姓名。 select sname from student
where sno >(select sno
from student
where sname like '王%') and sage <(select sage
from student
where sname like'王%')
16.在表SC表中检索成绩为空值的学生学号和课程号。 select sno,cno from sc
where grade=null
17.检索姓名以“刘”开头的所有学生的姓名和课程号。 select sname,sage from student
where sname like '刘%'
18.求年龄大于女同学平均年龄的男学生和年龄。 select sname,sage from student
where sage >(select avg(sage) from student
where ssex='女' ) and ssex='男'
19.求年龄大于所有女同学年龄的男同学的姓名和年龄。 select sname, sage from Student
where ssex='男' and sage >all (select sage
from Student where ssex='女') 20.查询所有学生中平均成绩最差的学生的学号;(按已有成绩,没有成绩的暂不统计) select top 1 sno from sc
group by sno
order by avg(grade) asc
21.查询学生平均成绩最好的课程的课程号和平均成绩;(按已有成绩,没有成绩的暂不统计) select top 1 cno, avg(grade) from sc
group by cno
order by avg(grade) desc
22.查询与“刘晨”在同一个系学习的学生。 select s1.sno,s1.sname,s1.sdept from student s1,student s2 where s1.sdept =s2.sdept and s2.sname ='刘晨'
实验四
1. 求选修C004课程的女学生的平均成绩 select avg(grade) from sc
where cno='4' and sno in (select sno
from student where ssex='Ů' ) 2.求选修C004课程的女学生的平均年龄 select avg(sage) from student
where ssex='Ů'and sno in (select sno from sc
where cno='4')
3. 检索学号为S0003学生所学课程的课程名与任课教师姓名 select cno,cteacher from course where cno in (select cno from sc
where sno='200215123')
4. 检索至少选修LIU老师所授课程的女学生姓名 select sname from student where sno in (select sc.sno from sc,course
where sc.cno=course.cno and course.cteacher='liu') and ssex='Ů'
5. 检索WANG同学不学的课程的课程号 select cno from sc
where sno not in (select sno from student
where sname like '王_')
6. 检索全部学生都选修的课程号和课程名 方法一:
select cno,cname
from course where not exists (select *
from student where not exists (select * from sc
where sc.sno=student.sno and sc.cno=course.cno) ) 方法二
select cno,cname from course where not exists (select *
from student where sno not in (select sno from sc
where sc.cno=course.cno)) 方法三
SELECT Cno, Cname FROM Course WHERE Cno IN (SELECT Cno FROM SC
GROUP BY Cno
HAVING COUNT(*)= (SELECT COUNT(*) FROM Student) )
7. 检索选修课程包含LIU老师所授课程的学生学号 select sno from sc
where cno in (select cno from course
where cteacher='liu')
8. 查询属于“信息管理”系学生且性别为女性的学生号及姓名 select sno, sname from student
where ssex='女' and sdept='信息管理'
9. 查询“信息管理”系学生或者是女学生的学生号及姓名 select sno, sname from student
where sdept='信息管理' or ssex='女'
10. 查询“电子商务”系学生平均成绩大于75分的学生学号 select sno from student
where sdept='电子商务' and sno in (select sno from sc
group by sno
having avg(grade)>75)
11. 查询选修了课程名为“管理信息系统”的学生学号及姓名 select sno,sname from student where sno in
(select sno from sc
where cno in
(select cno from course
where cname='信息系统')) 12. 找出选修课程中成绩最高的同学姓名及成绩 select top 1 student.sname,sc.grade from student,sc
where student.sno=sc.sno order by sc.grade desc
13. 查询“电子商务”系选修了两门以上课程的学生学号 select sno from student
where sdept='电子商务'and sno in (select sno from sc
group by sno
having count(*)>2)
14.查询其他系中比“市场营销”系某一学生年龄小的学生名单 select sname from student
where sage where sdept='市场营销') and sdept<>'市场营销' 15. 查询其他系中比“市场营销”系所有学生年龄小的学生名单 select sname from student where sage where sdept='市场营销') and sdept<>'市场营销' 16. 查询所有选修了C002好课程的学生姓名 select sname from student where sno in (select sno from sc where cno='2') 更新操作 17. 向关系COURSE中插入一个课程元组(’C010’,’JAVA程序设计’,’BAO’) insert into course(cno,cname,ccredit,cteacher) values('10','java程序设计','2','BAO') 18.将SC表中删除尚无成绩单额选课元组 delete from sc where grade=null 19. 把选修LIU老师课程的女学生选课元组全部删除 delete from sc where sno in (select sno from student where ssex='Ů') and cno in (select cno from course where cteacher='LIU') 20. 把“数据库原理与应用”课程不及格的成绩全改为60分 update sc set grade='60' where grade<'60' 21. 把低于总平均成绩的女同学成绩提高5% UPDATE SC SET GRADE=GRADE*1.05 WHERE sno IN(SELECT Sno FROM Student WHERE sSEX='Ů') and GRADE<(SELECT AVG(GRADE) FROM SC) 22. 在表SC中,当某个选修成绩低于所有课程的平均成绩时,提高5%(要针对课程进行分组,与21题不一样) update sc set grade=grade*1.05 where grade<(select avg(grade) from sc) 23.在表SC中修改C004课程的成绩,当成绩小于等于70分时提高5%,当成绩大于70分时提高4% update SC set grade= case when grade<=70 then grade+grade*0.05 when grade>70 then grade+grade*0.04 end where cno='4' 24. 检索存在所授课程平均成绩大于80分的教师姓名,并把检索到的值送往另一个已存在的表faculty(tname),思考,假设这个表不实现存在,怎么办呢? insert into faculty(tname) select cteacher from course where cno in (select cno from sc group by cno having avg(grade)>80) 第四章 数据库安全性 (一)填空与名词解释 1. 计算机系统的三类安全问题 所谓计算机安全性,是指为计算机建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄漏。 计算机系统安全性问题可分为三大类,即技术安全类,管理安全类和法律类。 2. MAC中将DBMS所管理的实体分为两大类。P.144 主体和客体两大类 主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。 客体是系统中的被动实体,是受主体操纵的,包括文件、基本表、索引、视图等。对于主体和客体,DBMS为它们每个实例指派一个敏感度标记。 3. 自主存取控制与强制存储控制(MAC)。P.143 自主存取控制能够通过授权机制有效地控制对敏感数据的存取。 所谓MAC是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。 4. 数据库安全性 数据库的安全性是指保护数据库以防不合法的使用所造成的数据泄漏、更改或破坏。 (二)简答 1. 试述三种实现数据库安全性控制的常用方法。 (1)用户标识和鉴别:是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过坚定后才提供机器使用权,常用的方法有:用户标识,口令。 (2)存取控制:数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制实现。主要包括两部分:定义用户权限,并将用户权限等级到数据字典中;合法权限检查。两者一起组成了DBMS的安全子系统。 自主存取控制(DAC):用户对于不同的数据库对象有不同的存取权限,不通的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限传授给其他用户,因此DAC非常灵活。 强制存取控制(MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。MAC比较严格。 (3)视图机制:可以为不同的用户定义不同的视图,把数据对象在一定的范围内,也就是说,通过视图机制把要保密的数据对物权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。视图机制简介地实现支持存取为此的用户权限定义。 (4)审计:审计功能把用户对数据库的所有操作自动记录下来仿佛审计日志。DBA可以利用审计跟踪的信息,重视导致数据库现有状况的一系列时间,找出非法存取数据的人、时间和内容等。审计功能一般主要用于安全性要求比较高的部门。 审计一般可以分为用户级审计和系统级审计。用户级审计是任何用户可设置的审计,主要是用户针对自己创建的数据表或视图进行审计,记录所有用户对这些表或视图的一切访问要求以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。 (5)数据加密:对于高度敏感数据,还可以采用数据加密技术。数据加密是放置数据库在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。加密方法主要有替换方法和置换方法。 第五章 数据库完整性 (一)填空与名词解释 1. 数据库完整性 数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,也是防止数据库中存在不正确的数据。 2. RDBMS完整性控制机制应具有的三个方面的功能 提供定义完整性约束条件的机制;提供完整性检查的方法;违约处理。 3. 触发器 触发器是用户定义在关系表上的一类由事件驱动的特殊过程。由服务器自动激活;可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。 (二)简答 1. 数据库完整性与数据库安全性之间有什么联系与区别。 区别:数据库的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。数据库的安全性是保护数据库防止恶意的破坏和非法存取。 2. 同一表中执行触发器的顺序。 同一个表上的多个触发器激活时遵循如下的执行顺序:(1)执行该表上的BEFORE触发器;(2)激活触发器的SQL语句;(3)执行该表上的AFTER触发器。 第六章 关系数据理论 1. 简述1NF2NF3NFBCNF4NF的规范化过程。P182 1NF ↓ 消除非主属性对码的部分函数依赖 消除决定属性 2NF 集非码的非平 ↓ 消除非主属性对码的传递函数依赖 凡函数依赖 3NF ↓ 消除主属性对码的部分和传递函数依赖 BCNF ↓ 消除非平凡且非函数依赖的多值依赖 4NF
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务