当前位置:网站首页>数据库期末考试大纲

数据库期末考试大纲

2022-06-09 06:41:00 JIeJaitt

绪论

数据库的四个基本概念

① 数据 data:描述事物的符号, 数据库中储存的基本对象
② 数据库 DataBase, DB:长期储存在计算机内、有组织的、可共享的大量数据集合
③ 数据库管理系统 DataBase Management System, DBMS:位于用户与操作系统之间的一层数据管理软件
④ 数据库系统 DataBase System, DBS:由数据库、数据库管理系统、应用程序和数据库管理员组成

数据库系统的特点

① 数据结构化
② 数据的共享性高,冗沉度低而且容易扩充
③ 数据独立性高:物理独立性(应用程序与物理存储相互独立,数据的物理存储改变,应用程序不改变),逻辑独立性(应用程序与逻辑结构相互独立,数据的逻辑结构改变,应用程序不改变)
④ 数据由数据库管理系统统一管理和控制

数据模型

数据模型包括概念模型(信息模型) 和逻辑模型/物理模型
概念模型按用户的观点建模,用于数据库设计,表示方法有 E-R模型
逻辑模型按计算机的观点建模,用于DBMS 实现,包括网状模型、层次模型、关系模型等等
物理模型是对数据最底层的抽象

概念模型

在这里插入图片描述

关系模型

在这里插入图片描述

数据库系统的三级模式结构:外模式、模式(逻辑模式)、内模式

在这里插入图片描述
① 外模式(子模式/用户模式):数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,数据库用户的数据视图,是与某应用有关的数据的逻辑表示
② 模式(逻辑模式):数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
③ 内模式(存储模式):数据物理结构和存储方法的描述,是数据在数据库内部的组织方式

数据库的二级映像功能与数据的独立性

① 外模式/模式映像:保证了数据的逻辑独立性
当模式改变时,对外模式/模式的映像做出改变,保证外模式不变,应用程序由外模式编写,从而应用程序不变
② 模式/内模式映像:保证了数据的物理独立性
当数据库的存储结构改变时,对模式/内模式映像做出改变,使模式不变,进而应用程序不变

关系数据库

关系运算推荐阅读:https://keelii.github.io/2017/02/19/basic-operations-of-relation-algebra/

自然连接

自然链接是一种特殊的等值链接,它要求两个关系中进行比较的分量必须是 相同的属性组,并且在结果集中将 重复的属性列 去掉。

例如:设有关系 R、S 如图所示,求 R⋈S
在这里插入图片描述
先求出笛卡尔积 R×S,找出比较分量(有相同属性组),即: R.A/S.A 与 R.C/S.C
请添加图片描述
取等值链接 R.A=S.A 且 R.C=S.C
请添加图片描述
结果集中去掉重复属性列,注意无论去掉 R.A 或者 S.A 效果都一样,因为他们的值相等,结果集中只会有属性 A、B、C、D
请添加图片描述
最终得出结果
请添加图片描述

自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的______
A. 元组
B. 行
C. 记录
D. 属性
正确答案: D

假设有关系R和S,关系代数表达式R-(R-S)表示的是( )。
A. R∩S
B. R∪S
C. R-S
D. R×S
正确答案: A

关系模型中,一个关键字是( )
A. 可由多个任意属性组成
B. 至多由一个属性组成
C. 可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成
D. 以上都不是
正确答案: C

自然连接是从_____角度进行演算的。
A. 行
B. 列
C. 行或列
D. 行和列
正确答案: D

设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则F是R的( ),基本关系R成为( ),基本关系S称为( )。
A.主码 B.外码 C.参照关系 D.被参照关系或目标关系
正确答案:
(1) B
(2) C
(3) D

( )和( )是关系模型必须满足的完整性约束条件,并称为关系的两个不变性,应该有关系系统自动支持;( )应用领域需要遵循的约束条件,体现了具体领域的语义约束
A.实体完整性 B.参照完整性 C.用户定义的完整性
正确答案:
(1) A
(2) B
(3) C

R(A1,A2,…An),这种描述又被称为关系模式,其中Ai是指属性所对应的域。
A. 对
B. 错
正确答案: 错

目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上。
A. 对
B. 错
正确答案: 对

在这里插入图片描述
15. (判断题)外码可以与主码异名。
A. 对
B. 错
正确答案: 对

  1. (简答题)设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:
    (1) 检索所有男生
    (2) 检索所有课程名称
    (3)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
    在这里插入图片描述

关系数据库语言 SQL

数据查询——单表查询

  1. (单选题)查询刘晨同学的学号,可以使用的SQL语句是:
    A. SELECT Sno FROM Student WHERE Sname = ‘刘晨’;
    B. SELECT Sno FROM Student WHERE Sname == ‘刘晨’;
    C. SELECT Sno FROM Student WHERE Sname = “刘晨”;
    D.SELECT Sno FROM Student WHERE Sname == “刘晨”;

正确答案: A

  1. (单选题)选择题:查询所有名字中包含“数”字的课程信息,可以使用的SQL语句是:
    A. SELECT * FROM Course WHERE Cname = ‘* 数 ';
    B. SELECT * FROM Course WHERE Cname LIKE ’
    数 *’;
    C. SELECT * FROM Course WHERE Cname LIKE ‘’;
    D.
    SELECT * FROM Course WHERE Cname LIKE ‘%数%’;

正确答案: D

  1. (单选题)假设学号是9位数,前7位表示班级号,后两位表示学生在班级内的序号,如学号201215122表示2012151班的第22位学生。若要查询2012151班所有学生的学号和姓名,( )
    A. SELECT Sno, Sname FROM Student WHERE Sno LIKE ‘2012151_’;
    B. SELECT Sno, Sname FROM Student WHERE Sno LIKE ‘2012151__’;
    C. SELECT Sno, Sname FROM Student WHERE Sno LIKE ‘2012151**’;
    D. SELECT Sno, Sname FROM Student WHERE Sno LIKE ‘2012151==’;

正确答案: B

  1. (单选题)查询所有非计算机系学生的信息,不正确的SQL语句是:( )
    A. SELECT * FROM Student WHERE Sdept != ‘CS’;
    B. SELECT * FROM Student WHERE NOT Sdept = ‘CS’;
    C. SELECT * FROM Student WHERE NOT Sdept IN (‘CS’);
    D. SELECT * FROM Student WHERE Sdept IN (‘MA’, ‘IS’);

正确答案: D

  1. (单选题)查询曾经考过100分的学生的学号,可以使用的SQL语句是:( )
    A. SELECT ALL Sno FROM SC WHERE Grade = 100;
    B. SELECT DISTINCT Sno FROM SC WHERE Grade = 100;
    C. SELECT ALL Sno FROM Student WHERE SC.Grade = 100;
    D. SELECT DISTINCT Sno FROM Student WHERE SC.Grade = 100;

正确答案: B

在这里插入图片描述

在这里插入图片描述

  1. (单选题)查询被选修过的课程数量,可以使用的查询语句是:( )
    A. SELECT COUNT(DISTINCT Cno) FROM SC;
    B. SELECT AVG(DISTINCT * ) FROM SC;
    C. SELECT COUNT(ALL Cno) FROM SC;
    D. SELECT COUNT( * ) FROM SC;
    正确答案: A

  2. (单选题)查询选修了数学课(课程号为2)的学生人数,可以使用的查询语句是:
    A. SELECT MAX( * ) FROM SC WHERE Cno = 2;
    B. SELECT AVG(Sno) FROM SC WHERE Cno = 2;
    C. SELECT COUNT( * ) FROM SC WHERE Cno = 2;
    D. SELECT COUNT(Sname) FROM SC WHERE Cno = 2;
    正确答案: C

  3. (单选题)查询最低成绩大于85分的学生学号和平均成绩,可以使用的查询语句是:( )
    A. SELECT Sno, AVG(Grade) FROM SC HAVING MIN(Grade) > 85 GROUP BY Sno;
    B. SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno HAVING MIN(Grade) > 85;
    C. SELECT Sno, AVG(Grade) FROM SC WHERE MIN(Grade) > 85 GROUP BY Sno;
    D. SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno WHERE MIN(Grade) > 85;

正确答案: B

  1. (判断题)可以为SELECT子句中的目标列表达式指定别名,一种方法是直接在目标列表达式后加上空格和别名。
    A. 对
    B. 错
    正确答案: 对

  2. (判断题)假设某同学年龄为30岁(Sage=30),另一个同学年龄为20岁(Sage=20),则他们都不满足 Sage BETWEEN 20 AND 30.
    A. 对
    B. 错
    正确答案: 错

  3. (判断题)对于空值,ORDER BY子句将空值的记录排序在前面。
    A. 对
    B. 错
    正确答案: 错

  4. (判断题)SELECT语句中,使用 ORDER BY 子句实现对查询结果的排序。可以在 ORDER BY 子句中指定多个列,每个列可以有自己的排序规则(升序或降序)。
    A. 对
    B. 错
    正确答案: 对

数据查询——集合查询、连接查询、嵌套查询

  1. (单选题)
    查询学号为201215121的同学选修过的所有课程的名字,不正确的查询语句是:
    A.
    SELECT Cname
    FROM Course
    LEFT JOIN SC
    ON Course.Cno = SC.Cno
    WHERE Sno = ‘201215121’;
    B.
    SELECT Cname
    FROM Course
    WHERE Cno IN (
    SELECT Cno
    FROM SC
    WHERE Sno = ‘201215121’
    );
    C.
    SELECT Cname
    FROM Course
    WHERE EXISTS (
    SELECT *
    FROM SC
    WHERE SC.Cno = Course.Cno
    AND Sno = ‘201215121’
    );
    D.
    SELECT Cname
    FROM Course
    WHERE NOT EXISTS (
    SELECT *
    FROM SC
    WHERE SC.Cno = Course.Cno
    AND Sno = ‘201215121’
    );

  2. (判断题)连接查询必须涉及到至少两张不同的表。
    A. 对
    B. 错
    正确答案: 错

  3. (判断题)
    所有带 IN 谓词、比较运算符、ANY 和 ALL 谓词的子查询都能用带 EXISTS 谓词的子查询等价替换。
    A. 对
    B. 错
    正确答案: 对

数据定义与更新

  1. (单选题)
    属性定义(或者域定义)中,哪种情况可以存放空值?
    A. 存在NOT NULL约束
    B. 存在UNIQUE约束
    C. 码属性
    D. 数值类型(如int等)字段

正确答案: D

  1. (判断题)当UNIQUE约束被作用的Sname字段时,如下语句将会更改王二麻子同学的年龄为21岁,它会对Student表做出 0 或 1 行的更改。
    UPDATE Student
    SET Sage = 21
    WHERE Sname = ‘王二麻子’;
    A. 对
    B. 错

正确答案: 对

  1. (判断题)
    使用INSERT语句向表中插入条目时,如果不指定字段的名称和它的值,则数据库系统会将其视为NULL.
    A. 对
    B. 错

正确答案: 对

  1. (判断题)使用INSERT, UPDATE或DELETE语句对数据进行更新操作之前,数据库系统会首先检查这个操作的结果是否会破坏已有的完整性约束。
    A. 对
    B. 错

正确答案: 对

视图

  1. (判断题, 10分)
    使用DROP VIEW语句可以删除视图的定义,而不会删除视图对应的数据。
    A. 对
    B. 错

正确答案: 对

  1. (简答题, 30分)按照“第3章综合练习”中定义的SPJ数据库及其数据,请为工程项目“三建”建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。并针对该视图完成下列查询:
    (1)找出三建工程项目使用的各种零件代码及其数量;
    (2)找出供应商S1的供应情况。
CREATE VIEW VSP AS 
SELECT SNO,PNO,QTY FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND J.JNAME='三建';1SELECT DIST PNO,QTY FROM VSP;2SELECT DIST * FROM VSP WHERE SNO='S1';

数据库安全性

数据库的安全性的定义

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改和破坏

数据库的不安全因素

① 非授权用户对数据库的恶意存取和破坏
② 数据库中重要数据的泄露
③ 安全环境的脆弱性

常用的安全性控制技术

① 用户身份鉴别:静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别
② 存取控制
③ 自主存取控制方法

自主存储控制技术及GRANT、REVOKE语句

授权是指授予 (GRANT)和收回 (REVOKE),是数据库安全性控制中的自主存取控制方法。是为了保护数据库,防止不合法使用所造成的数据泄露、更改或破坏

如何授权:授予 GRANT

发出如下语句的可以是数据库管理员、也可以是数据库对象创建者
也可以是已经拥有该权限的用户

GRANT 权限 ON 对象类型 对象名TO 用户名 IWITH GRANT OPTIONI;

权限:查询权限 SELECT,全部操作权限 ALL PRIVILEGES
对象类型&对象名:对象类型可以是 TABLE也可以是VIEW,对象名为对应的表名或者视图名
用户名:可以是指定用户,也可以是全体用户 PUBLIC
如果没有指定 WITH GRANT OPTION 子句,则获得某种权限的用户只能使用该权限,不能传播该权限
注意:SQL 不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先
eg.把查询权限授给用户U1

GRANT SELECT ON TABLE Student TO U1;

收回授权:收回 REVOKE

REVOKE 权限 ON 对象类型 对象名 FROM 用户名 [CASCADE | RESTRICT];

CASCADE:级联回收。将用户传播出去的权限一并收回
RESTRICT:受限回收。若用户传播过该权限,回收将会失败
eg.把用户 U4 修改学生学号的权限收回

REVOKE UPDATE (Sno) ON TABLE Student FROM U4;

强制存取控制及存取规则

在这里插入图片描述

数据库角色

角色是权限的集合。可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程
创建角色:CREATE ROLE 角色名;
在一个角色中添加角色或者用户:GRANT 角色 TO 某角色/某用户 [WITH ADMIN OPTION];
指定 WITH ADMIN OPTION 子句,则获得某种权限的角色或者用户还可以把这种权限再授予其他角色
给角色授权:GRANT 权限 ON 对象类型 对象名下 TO 角色;
角色权限收回:REVOKE 权限 ON 对象类型 对象名 FROM 角色;

数据库完整性

数据库完整性的定义

数据库的完整性是指数据的正确性和相容性
正确性:符合现实世界语义
相容性:同一对象在不同表中的数据符合逻辑

为维护定义完整性约束条件

DBMS必须提供的功能

在这里插入图片描述
在这里插入图片描述

实体完整性的定义

检查与违约处理

关系数据库理论

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库设计

数据库设计的基本步骤

在这里插入图片描述

设教学数据库中有三个基本表:学生表S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄、性别。课程表C(CNO,CNAME,TEACHER),其属性分别表示课程号、课程名、上课教师名。选修表SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。
有如下SQL查询语句:

SELECT CNO
FROM C
WHERE CNO NOT IN
(SELECT CNO
FROM S,SC
WHERE S.SNO=SC.SNO
AND SNAME=‘张三’);

请完成下列问题:
(1)用汉语句子阐述上述SQL语句的含义;
(2)用等价的关系代数表达式表示上述SQL查询语句。
在这里插入图片描述

在这里插入图片描述
https://blog.csdn.net/m0_45282009/article/details/121175294
在这里插入图片描述

判断题

其它推荐阅读:
(1)数据库范式例题:https://blog.csdn.net/cristove/article/details/116145239
(2)数据库搭建范式大白话:https://blog.csdn.net/qq_38435302/article/details/123951655
(3)期末考试题库:https://blog.csdn.net/weixin_46232841/article/details/111401281
(4)数据库设计题:https://wenku.baidu.com/view/80048cfd2bea81c758f5f61fb7360b4c2e3f2af9?bfetype=new

原网站

版权声明
本文为[JIeJaitt]所创,转载请带上原文链接,感谢
https://jiejaitt.blog.csdn.net/article/details/125154190