NJUPT《数据库系统》
1/4 历年真题
- 题型及分值
一、判断题(每题1分,共15分)
二、选择题(每题1分,共10分)
三、填空题(每题1分,共5分)
四、关系数据理论题(共10分)
五、语句题(每题5分,共35分)
六、数据库设计题(共25分)
👉真题👉复习提纲👉课堂练习(判断、选择、填空)👉实验报告
2/4 复习提纲
知识单元一:数据库系统概述
一、数据库的四个基本概念: ★
1、数据:是数据库中存储的基本对象。
2、数据库(DB):是长期储存在计算机内、有组织的、可共享的大量数据的集合。概括地讲,数据库数据具有永久存储、有组织、可共享三个基本特点。
3、数据库系统( DBS ):是指在计算机系统中引入数据库后的系统构成。由数据库、DBMS、应用开发工具、应用程序、DBA组成。
4、数据库管理系统( DBMS ):是位于用户应用与操作系统之间的一层数据管理软件。
DBMS 的功能:★
① 数据定义、组织、存储和管理、操纵
② 数据库的事务管理和运行管理(安全性、完整性、并发控制、恢复)
③ 数据库的建立和维护
DBMS 的特点:
① 数据的整体结构化是数据库的主要特征之一 ★
② 数据的共享性高,冗余度低且易扩充;数据独立性高
③ 数据库的事务管理和运行管理(安全性、完整性、并发控制、恢复)
二、数据模型 ★
1、概念模型,如:E-R模型
2、逻辑模型,如:层次模型、网状模型、关系模型、面向对象模型
3、物理模型
三、DBMS 的三级模式和二级映像
1、外模式(子模式或用户模式)
2、模式(逻辑模式)
3、内模式(存储模式)
① 外模式 / 模式映像
② 模式 / 内模式映像
数据独立性(物理、逻辑)由二级映像功能来保证。
关系模式是静态的、稳定的,而关系是动态、变化的。★
知识单元二:关系数据模型
一、关系(数据结构)
在用户看来,关系是一张扁平的二维表。
1、码(候选键、全键、超键、主键、外键) ★
2、主属性:候选键中的属性、非主属性
基本关系的性质:
① 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域 ★
② 不同的列可出自同一个域(域是一组具有相同数据类型的值的集合)
③ 行或列的顺序无所谓,次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 分量必须取原子值(规范化)
二、关系操作(数据操作)
1、关系代数 ★
集合运算:并、差、交、笛卡儿积
关系运算:选择(行)、投影(列)、连接(行列)、除(行列)
2、自然连接是一种特殊的等值连接。
3、基本运算:并、差、选择、投影、笛卡尔积
4、SQL语句对应的关系代数表达式
三、关系完整性约束条件 ★
1、实体完整性
SQL实现:Primary Key(主键)
内容:主属性不能取空值
2、参照完整性
SQL实现:Foreign Key(外键)
内容:外键值或等于主键值,或取空值
3、用户定义的完整性
SQL实现:Check、Assertion
1、基本表 CREATE TABLE
① 数据定义:char、int、date
② primary key
③ foreign key…references…on delete cascade
④ 用户自定义完整性:check、assertion
2、数据操作 SELECT、INSERT、UPDATE、DELETE
① select … from … where … group by … order by…
② insert into … values …
③ update ... where ...
④ delete from … where …
4、视图 CREATE VIEW
create view ... as select ... from ... where ...
知识单元四:关系数据库的规范化设计 ★
① 各级范式的定义(1NF 、2NF 、3NF 、BCNF)
② FD的推理规则
③ 属性集闭包定义及算法
④ 判断无损分解、保持函数依赖
⑤ 无损分解和保持函数依赖分解方法
知识单元五:数据库设计 ★
1、E-R图表示方法
① 实体:矩形框,框中标明实体名
② 联系:菱形框,框内标明联系名
③ 属性:椭圆
④ 相关图形间用无向边连接
⑤ 连线上标明联系类型(1:1、1:n、m:n)
⑥ 实体标识符画下划线
2、E-R模型向关系模型的转换
① 实体集→关系模式
② 实体集的属性→关系模式的属性
③ 实体键→关系模式的键
④ 联系集(1:1、1:n、m:n)
知识单元六:系统实现技术 ★
一、数据库安全性控
① 用户身份鉴别、存取控制、视图、审计、数据加密等
② 存取控制:强制存取控制机制(MAC);自主存取控制机制(DAC):
针对数据库:授权和回收(grant/revoke)、针对用户:数据库角色。
③ 创建视图的命令
二、数据库完整性控制
1、两个不同概念
数据库完整性:是阻止合法用户通过合法操作向数据库中加入不正确的数据。
数据库安全性:是防范非法用户通过非法操作向数据库中存取正确的数据。
2、实体完整性、参照完整性、用户自定义完整性的实现
Foreign Key … On Delete/ Update [ No Action | Cascade | Set Null ]
三、事务
1、事务的基本概念
原子性(Atomicity):事务中包括的诸操作要么都做,要么都不做;
一致性(Consistency):事务执行的结果必须是使数据库切换一致性状态;
隔离性(Isolation):事务的执行不能被其他事务干扰;
持续性(Durability):事务一旦提交,它对数据的改变就应该是永久性的。
2、事务的结束:commit、rollback。
四、数据库恢复技术
1、故障的种类及其恢复
系统故障(UNDO+REDO)、事务内部的故障(UNDO) 、介质故障(REDO) 、计算机病毒
2、具有检查点的恢复技术可以改善恢复效率。
3、日志文件是用来记录事务对数据库的更新操作的文件。
4、数据转储是数据库恢复中采用的基本技术,但不能频繁进行。
五、并发控制
1、并发操作造成数据不一致;在单处理机系统中,事务的并发执行是指轮流交叉执行。
2、封锁、封锁协议、封锁的问题。
3、可串行化调度:串行调度、并发事务正确调度的准则。
4、封锁的粒度与系统的并发度、并发控制的开销密切相关。
知识单元七:数据库应用系统开发 ★
基本步骤:需求分析、概念设计、逻辑设计、物理设计、数据库实施、运行和维护。
1、需求分析:调查的重点是数据和处理。
2、概念结构设计: E-R模型:实体、属性、联系
两个实体型之间的联系可以分为三种:1:1、1:n、m:n。
各子系统之间的冲突主要有三类:属性冲突、命名冲突、结构冲突。
3、逻辑结构设计:将 E-R 图转换成关系模型
逻辑模式的优化:规范化
4、物理结构设计:为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程
5、数据库实施:数据的载入,应用程序的编码和调试。
6、数据库运行:对数据库的维护工作主要由管理员完成。
补充题1 补充题2
习题课
第一题
1、有两个关系 S(A,B,C,D) 和 T(C,D,E,F),写出与下列查询等价的SQL表达式:
(1)σ A=10(S);
select * from S where A=10;
(2)π A,B(S);
select A,B from S;
(3)S ⋈ T;
select S.*,T.* from S,T where S.C=T.C and S.D=T.D;
(4)S ⋈(S.C=T.C) T;
select S.*,T.* from S,T where S.C=T.C;
(5)S ⋈(A<E) T;
select S.*,T.* from S,T where A<E;
(6)π C,D(S)×T;
select S.C,S.D,T.* from S,T;
第二题
关系模式定义:
供应商表:S (SNO, SNAME, STATUS, CITY);
零件表:P (PNO, PNAME, COLOR, WEIGHT);
工程项目表:J (JNO, JNAME, CITY);
供应情况表:SPJ (SNO, PNO, JNO, QTY);
(1)求供应工程J1零件的供应商号码SNO;
关系代数:π SNO (σJNO='J1' (SPJ))
(2)求供应工程J1零件P1的供应商号码SNO;
关系代数:π SNO (σJNO='J1' Λ σPNO='P1' (SPJ))
(3)求供应工程J1零件为红色的供应商号码SNO;
关系代数:π SNO (σJNO='J1' Λ COLOR='红色' (SPJ⋈P))
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
关系代数:π JNO(SPJ) - πJNO (σCITY='天津' Λ COLOR=(SPJ⋈S⋈P))
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
关系代数:π JNO,PNO(SPJ) ÷ π PNO(SNO='S1'(SPJ))
第三题(接上题)
使用SQL语句建立四个表:
使用SQL语句完成查询:
(1)求供应工程J1零件的供应商号码 sno;
(2)求供应工程J1零件P1的供应商号码 sno;
(3)求供应工程J1零件为红色的供应商号码 sno;
(4)求没有使用天津供应商生产的红色零件的工程号 jno;
(5)查询所有供应商的姓名和所在城市;
(6)查询所有零件的名称、颜色和重量;
(7)查询使用供应商S1所供应零件的工程号码;
(8)查询工程项目J2使用的零件的名称及其数量;
(9)找出上海厂商供应的所有零件号码;
(10)找出使用上海产的零件的工程名称;
(11)找出没有使用天津产的零件的工程号码;
update P set color='蓝色' where color='红色';
update SPJ set sno='S3' where sno='S5' and jno='J1' and pno='P5';
delete from SPJ where sno='S2';
delete from S where sno='S2';
insert SPJ values('S2','P4','J6',200);
(12)把全部红色零件的颜色改成蓝色;
(13)将供应商S5供给工程J1的零件P5改成由供应商S3供应;
(14)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;
(15)将(S2, J6, P4, 200)插入SPJ表中。
第四题(接上题)
(1)请为“三建”工程项目建立一个供应情况的视图,包括供应商代码(sno)、零件代码(pno)、供应数量(qty)。
(2)针对该视图完成下列查询:
① 找出“三建”工程项目使用的各种零件代码及其数量;
② 找出供应商S1的供应情况。
(3)按供应商代码统计每位供应商供应某种零件的供应总量,要求:
① 仅显示供应总量>=500的信息
② 显示SNO、PNO和供应总量
③ 显示时,查询结果按供应总量降序排列,供应总量相同按SNO升序、 PNO降序排列
(4)授予用户U1对四个表的所有权限,并可给其他用户授权。
(5)授予用户U2对SPJ表具有查询权限,对零件供应量具有更新权限。
(6)将对J表的查询权限授予所有用户。
(7)将对S表的查询、更新权限授予角色U3。
(8)将角色U3授予用户U1,U1可继续授权给其他用户。
第五题
1、关系模式定义:
职工(职工号,姓名,年龄,职务,工资,部门号),职工号为主码;
部门(部门号,部门名,经理名,电话),部门号为主码。
用SQL语言定义这两个关系模式,要求:
① 定义每个关系模式的主码;
② 定义参照完整性约束;
③ 定义职工年龄不得超过60岁。
第六题
1、某单位想举行一个小型的联谊会,关系male记录注册的男宾信息,关系female记录注册的女宾信息。建立一个断言,将来宾的人数限制在50人以内。
1、用 SQL 语言写出下列查询
① 查询在课程 CS-110 中成绩为第 4 名的学生的姓名
② 查询成绩处于课程平均成绩和最高成绩之间的学号和课程号
https://wwb.lanzouh.com/itYR9059mwrg
3/4 课堂练习
第一章
1.数据的含义称为数据的(语义)
2.(数据模型)是对现实世界进行抽象的工具,用于描述数据、组织数据和对数据进行操作。
3.为了描述现实世界中的事物在信息世界中所建立的模型称为(概念模型)。
4.数据库的三级模式结构中,描述数据全局逻辑结构的是(模式)。
5.在关系数据库系统中,当关系属性的数据类型发生改变时用户的应用程序可以不变,这体现了数据库的(数据的逻辑独立性)。
1.数据库系统的基本特点包括(数据共享性高、冗余度低、独立性高、结构化)。
2.数据库管理系统提供(数据库的恢复、并发控制、数据的安全性、完整性)数据控制功能。
3.关于数据库系统的各个组成部分,以下表达正确的是()。
数据库是存放数据的场所、DBMS是数据库系统的核心、DBA借助DBMS来完成其职责。
1.数据冗余可能导致的问题有浪费存储空间、修改复杂和潜在的数据不一致性。(√)
2.逻辑模型是一种高层的数据模型,其代表是实体联系模型。(×)
1.(数据库)是存储在计算机内有结构的数据的集合。
2.数据库管理系统是(系统软件)。
3.数据库系统与文件系统的本质区别为数据库系统实现了(整体数据的结构化)。
4.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为(数据操纵功能)。
5.以下几种模型,属于概念模型的是(ER模型)。
6.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是(数据结构、关系操作、完整性约束)。
7.数据独立性是指(应用程序和数据之间的独立)。
8.要保证数据库的数据独立性,需要修改的是(三级模式之间的两层映射)。
9.下列关于模式的术语中,(存储模式)不是指数据库三级模式结构中的外模式。
10.数据的逻辑独立性是指(模式改变,外模式和应用程序不变)。
11.当数据库的存储结构发生改变时,用户的应用程序可以不变,这体现了数据库的(数据的物理独立性)。
12.数据库系统的三级模式结构是对(数据)的三个抽象级别。
13.在数据库的三级模式结构中,外模式的个数(可以有多个)。
14.在DBS中,DBMS和OS之间的关系是(DBMS调用OS)。
1.在下列关于数据库的描述中,说法不正确的是()。
数据库通过文件系统来管理数据、数据库避免了一切数据的重复、数据之间的联系通过程序去构造
2.下列关于模式和实例的表述中,正确的是()。
模式的一个具体值称为一个实例、模式相对稳定,而实例相对变动、模式反映的是数据的结构及联系
3.三层模式两级映像中的三层模式指的是(内模式、外模式、逻辑模式)。
4.数据库管理系统不是(操作系统的一部分、一种编译程序、一种操作系统)。
5.下述()是DBA的职责。
决定数据库中的信息内容和结构、定义数据的安全性和完整性、监控数据库的使用和运行
1.DBMS是位于用户与OS之间的一层数据管理软件。(√)
2.数据库管理系统中既有软件也有硬件。(×)
3.逻辑模型是按照计算机系统的观点对数据建模。(√)
4.概念模型是数据库设计人员与用户之间进行交流的工具。(√)
5.任何一个DBMS都以某一个数据模型为基础,或者说支持某一个数据模型。(√)
6.逻辑模式会涉及存储结构、访问技术等细节。(×)
7.可以为不同的用户设计不同的内模式。(×)
8.在一个数据库中,模式与内模式有多个映像。(×)
9.外模式涉及的是数据的局部逻辑结构,通常是模式的子集。(√)
10.逻辑模式是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。(×)
11.以外模式为框架的用户数据库在外存中是真正存在的。(×)
第二章
1.以下对关系的描述中,正确的是(关系是一个属性数目相同的元组的集合)。
2.关系数据库中的实体完整性规则要求(主属性值不允许空)。
3.在关系模型中,参照完整性约束的实质是(不允许引用不存在的实体)。
4.在关系模型中,“关系中不允许出现相同的元组”是通过(主键)实现的。
5.关系数据模型的3个重要组成部分是(数据结构、数据操作、完整性约束)。
6.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于(用户自定义)完整性约束。
7.关系模式的定义,不涉及(索引类型)。
8.关系模型是一种(表格结构)。
9.定义外码是实现关系模型的(参照完整性)约束。
10.一个关系模式可以有(1个主键,多个候选键,多个外键)。
1.关系模型的完整性约束规则包括(实体完整性、参照完整性、用户定义完整性)。
2.设有学生选课关系SC,包括SNO,CNO,GRADE属性,遵照实体完整性规则,(SNO不能取空值、CNO不能取空值)。
3.在数据库中有课程表C、选课表SC如下,错误数据所在的行号是(第9行)。
4.设有课程关系Course(课程号,课程名,学分,开设专业号,先修课程号)和专业关系
Speciality(专业号,专业名),则课程关系Course的外键是(开设专业号、先修课程号)。
5.关系模式的外键取值为(空值、一个已经存在的主键值)。
6.如下图所示,其中关系EMP的主键是雇员号,工资不得小于1600元;关系DEPT的主键是部门号。若向EMP表中插入行(002,'张明','05',1200),该操作违反了(参照完整性、
用户定义的完整性)约束。
1.当对表中数据执行更新操作时,需考虑完整性规则。(√)
2.外码一定和主码是同名属性,且不同关系的同名属性也一定是外码。(×)
3.主码不能为空值,但组成主码的属性可以有空值。(×)
4.关系模型遵循数据库系统的3层模式结构。(√)
5.一个关系模式的外码值只能引用其它关系的主码值。(×)
6.关系模型中主码值不能取空值,是因为不能引用实际不存在的实体。(×)
7.关系数据模型用二维表表示实体类型,用指针实现实体之间的联系。(×)
8.关系中的一个元组可以表示一个实体或实体之间的一个联系。(√)
9.在关系数据库中,一个基本表对应于一个存储文件。(×)
10.当外码同时也是本关系的主码时,不允许取空值。(×)
11.在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,这属于数据的参照完整性约束。(×)
12.关系数据模型只能表示实体之间的1:1和I:N的联系。(×)
13.任何形式的二维表格都可以作为关系数据库里的关系。(×)
14.外码定义的实质是不允许引用不存在的实体,因此只能反映两个不同关系间的联系,不能反映同一关系中不同元组之间的联系。(×)
1.关系模型和层次、网状模型的最大差别是,关系模型用(关键码)导航数据。
2.在数据库中,有关系R(RNO,RN,SNO),和关系S(SNO,SN,SD),R的主码是RNO,S的主码是SNO,则属性SNO在关系R中称为(外码)。
3.可以实现“查询不学C2课程的学生学号”的关系代数表达式是:
4.在关系S(S#,SNAME)、SC(S#,C#,G)和 C(C#,CNAME)中,查询选修了全部课程的学生学号,正确的关系代数表达式是:
5.关系模型中,一个候选码是(由一个或多个属性组成,其值能够惟一标识关系中一个元组,而其子集不能)。
6.关于外键的说法,下面叙述正确的是(外键和相应的主键可以不同名,只要定义在相同值域上即可)。
7.在关系代数的操作中,(自然连接)需要消除重复列。
8.关系R和S如下表,则R÷S的结果是()。
9.在数据库中有如下两张表,若教师表的主键是教师号,课程表的主键是课程号,外键是任课教师号,下列()操作不可行。
10.以下陈述中,错误的是(表中任意两列的值不能相同)。
1.在关系中,能唯一识别元组的属性或属性集称为关系模式的主码。(×)
2.关系数据库中全部数据及其相互联系都被组织成二维表格的形式。(√)
3.自然连接使用在有公共属性的两个关系中,如果两个关系没有公共属性,其自然连接就转化为笛卡尔积。(√)
4.在关系模式R中,若外码A是主属性,则在R的任何元组中,A的取值都不允许为空。(√)
5.主属性是指组成主码的属性。(×)
第三章
1.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中CREATE、DROP,ALTER语句属于(数据定义)类语句。
2.下列SQL命令中,实现“修改表结构”功能的是(ALTER)。
3.下列(数据定义语言DDL)产生的信息,被存储到数据字典中。
4.视图(可以由基本表创建)。
5.对数据库结构的描述和定义存储在(数据字典)中,它是DBMS运行的基本依据。
1.创建索引时使用UNIQUE关键字,是为了提高对表的查询速度。(×)
2.视图中存储了实际的数据。(×)
3.在关系数据库中,索引(index)属于三级模式结构中的内模式。(√)
4.Drop table语句用于撤销一个基本表及其中的数据。(√)
5.在关系数据库中,索引可以简化用户的查询操作,而且不会增加数据的存储空间。(×)
6.为关系创建的索引属于物理存取路径的概念,而不是逻辑的概念。(√)
1.SQL中的视图对应数据库三级模式中的 [外] 模式。
2.SQL的英文全称是 [structured query language]。
1.SQL语言具有两种使用方式,分别称为交互式SQL和(嵌入式)SQL。
2.实体完整性等隐含约束一般用SQL的(DDL)语句说明。
3.为了提高数据查询速度,对学生选课关系SC(SNO,CNO,GRADE)创建唯一索引,应该创建在((SNO,CNO))属性上。
4.若数据库中已创建了表SC(SNO,CNO,SCORE,NOTE),各属性的数据类型分别为:SNO CHAR(6),CNO CHAR(3),SCORE INTEGER,NOTE VARCHAR(50),向SC表中插入元组时,(('23','101',NULL,NULL))可以被插入。
5.有关系:职工(工号,姓名,工资,部门编号)以下SQL语句表达的语义为(为在D6部门工作、且工资低于所有职工平均工资的职工加薪10%)。
update 职工 set 工资=工资×1.1 where 部门编号='D6' and 工资<(select avg(工资) from 职工);
1.SQL数据库中,有基本表、视图和索引三种类型的表。(×)
2.SQL是一个应用开发语言,可在管理信息系统的开发中提供对数据库的操作。(×)
3.现需将C1号课程的课程号修改为CS1,更新课程及其选课信息的正确SQL语句为:update C,SC set cno='C2' where cno='C1';(×)
4.在图书数据库中有表:图书(书号,书名,价格),表中已有《数据库原理》的书目信息,价格未填。现在要补充《数据库原理》的价格,可以用以下语句实现:insert into 图书 (书号,书名,价格) values ('b1';数据库原理',20);(×)
5.在SQL语句中,要查询平均成绩最高的同学可以使用 select max (avg(grade)); 来实现。(×)
1.SQL语言中,如果要排序显示查询结果,应该用(order by)子句。
2.下列聚合函数中不忽略空值(null)的是( count(*) )。
3.有基本表如下:S(学号,姓名,性别,出生年月,籍贯)SC(学号,课程号,成绩),姓名允许重名。
在两个这基本表上建立了以下4个视图,其中可以更新的视图为(视图V2,由女生的学号和出生年月组成)。
不可以更新的:视图V1,由1970年以后出生的A男生姓名和籍贯组成;视图V3,由学生姓名和所选修课程的课程号以及成绩组成;视图V4,由学生的学号以及所修课程的平均分组成。
4.设有两个关系R(A,B)和S(B,C),与查询语句:select A,B from R where B not in(select B from S where C='C56'); 等价的关系代数表达式是:
5.以下措施中,(为基本表创建索引)可以提高对关系数据库中基本表的查询速度。
6.在SQL查询语句的条件子句中,in等价于(=ANY)。
7.以下对视图的描述中不正确的是(对视图的查询和更新没有限制)。
8.主表(被参照关系)与从表(参照关系)有(主表比从表先创建,先向主表插入记录再向从表插入记录)关系。
1.对DB中数据的操作分成数据查询和数据定义两类。(×)
2.视图可以被用来对无权用户屏蔽数据。(√)
3.SQL中不能进行多表连接操作。(×)
4.视图是虚表,对视图的一切操作最终要转换为对基本表的操作。(√)
5.查询语句的where子句是不支持聚集函数的,但其having子句是支持聚集函数的。(√)
6.delete from S,SC where sno='S1' 表示从S和SC中同时删除学号为S1的同学及其选修课程。(×)
7.用语句select * from SC where grade=null; 可以查出SC中grade为null的元组。(×)
正确语句:select * from SC where grade is null;
8.空值表示“不知道”或"不存在〞或者“无意义”的值,含有不确定性。(√)
第四、五章
1.下列SQL语句命令中,(grant、revoke)是用于实现数据存取安全的。
2.在SQL的授权语句中使用"ALL PRIVILEGES",表示(所有的操作权限)。
3.以下不属于数据库系统安全措施的是(检查点)。属于的是:加密、审计、角色。
4.有权限创建数据库用户的用户应该属于(DBA)级别。
5.以下(权限)是数据库系统的安全措施之一。
6.能够保证数据库安全性的是(授权与回收)。
7.现有基本表:S((学号),姓名,性别,出生年月,籍贯);SC((学号,课程号),成绩),在这两个基本表基础上,建立了以下视图,其中可以更新的视图为(视图V2,由女生的学号和出生年月组成)。
8.数据库完整性是指防止错误数据进入数据库,下列(数据的安全性)不属于完整性的概念范畴。
9.在关系模型中,参照完整性约束的实质是(不能引用不存在的实体)。
10.断言是为了保护数据库的(完整性)。
1.SQL中的权限、断言等机制提供了数据库的安全性。(×)
2.SQL中的GRANT语句和REVOKE语句属于DCL,用于安全性控制。(√)
3.若要把某种权限授予系统中的所有用户,则授权语句中的接受权限者为PUBLIC。(√)
4.视图可以被用来对无权用户屏蔽数据。(√)
5.统计数据库的安全性主要在于不能提供单个记录的内容。(√)
6.数据库完整性的定义是数据库模式的一部分。(√)
1.授权和回收权限是数据库系统采用的(自主存取控制)措施。
2.把查询SC表中每个学生的平均成绩的权限授予教学管理员,用(视图)实现。
3.在授权语句中,关键字(PUBLIC)表示系统中所有当前的和将来可能出现的所有用户。
4.在教学数据库中有学生表S、课程表C、选课表SC,如果只有当SC表中Sno(学号)对应的学生没有选课时,才能够修改S表中的Sno,否则拒绝此修改操作,应在建SC表时定义外键子句,并使用(ON UPDATE NO ACTION)。
cascade方式:在父表上update/delete记录时,同步update/delete子表的匹配记录;
no action方式:如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作。
5.完整性控制中的(断言)可以彻底实现多个属性间的联系或不同关系间的联系。
6.数据库完整性的定义存储在DBMS的(数据字典)中。
1.权限回收语句REVOKE GRANT OPTION FOR的意思是回收权限和转授出去的转让权限。(×)
REVOK GRANT OPTION FOR 可消除 WITH GRANT OPTION 设置的影响,即用户仍然具有该权限,但是不再能将该权限授予其他用户。
2.设U1用户拥有SCOTT用户的EMP表的ALL PRIVILEGES权限,则U1可用SELECT*FROM EMP语句查询SCOTT.EMP表的内容。(×)
U1只能用SELECT*FROM EMP语句查询自己的EMP表内容。
3.数据库的安全性是保护数据以防止合法用户无意中造成的破坏。(×)
4.完全杜绝对数据库的恶意滥用是不可能的,但可以使滥用者付出足够高的代价,以阻止绝大多数访问企图。(√)
5.角色可以实现权限的循环授权。(×)
6.授权和审计机制是保护数据库完整性的方法。(×)
7.SQL中check子句不一定能保证完整性约束的彻底实现。(√)
8.数据库完整性的定义一般由SQL的数据控制语言(DCL)来实现。(×)
第六章
1.在关系模式R中,函数依赖X→Y的语义是(在R的每一个关系中,若两个元组的X值相等,则Y值也相等)。
2.把低一级的关系模式分解为若干个高一级的关系模式,其目的是为了消除(操作异常和数据冗余度高)。
3.设有关系模式R(A,B,C),R上成立的FD集F =(B→A),则R的候选键为(BC)。
4.关系模式R(SNO,CNO,G,TNO,DNO),设其FD集F=((SNO,CNO)→G,CNO→TNO,TNO→DNO),那么关系模式R的候选键是((SNO,CNO))。
5.由于关系模式设计不当所引起的删除异常指的是(不该删除的数据被删除)。
6.其函数依赖集F包含全体属性且只有一个函数依赖的关系模式最高可达到(BCNF)。
7.关系模式的操作异常问题往往是由(数据冗余)引起的。
8.根据关系数据库规范化理论,在关系:学会(学会编号,学会名,学会成员,所属行业)中,因属性(学会成员)而使它不满足1NF。
9.3NF规范到BCNF,必须消除(主属性对键的部分和传递函数依赖)。
10.函数依赖集中每个函数依赖的决定子都是候选键的关系模式达(BCNF)。
11.下面关于函数依赖的叙述中,不正确的是(若XY→Z,则X→Z,Y→Z)。
12.有关系模式R(ABCD),其函数依赖集F=(A→B,B→C,D→B),则(AD)+=(ABCD)。
13.有关系模式:R(工厂代号,工厂名,厂址,职工号,职工姓名,聘期,工资),包含语义:每个工厂聘用多名职工,每位职工可受聘于多个工厂,职工被每个工厂聘用都有聘期和工资。R的侯选键是(工厂代号,职工号)。
14.设有关系模式R(A,B,C),F是R上成立的FD集,F =(B→C),则分解p =(AB,BC)相对于F(无损,也保持依赖)。
15.如果一个分解满足无损联接分解,那么分解的关系能够通过(自然联接)运算恢复到原来的关系模式。
16.设有关系模式R(ABCDEG),F是R上成立的FD集,F=[D→G,C→A,CD→E,A→B),则(AC)+为(ABC)。
18.关系模式分解的语义等价是通过(保持依赖)来衡量的。
20.设关系模式R(ABCD)上的FD集F=(A→B,B→C,D→B)。R分解成p=(ACD,BD),试求F在ACD上的投影。(A→C,D→C)
1.关系模式规范化分解的目的是为了提高查询的速度。(×)
2.关系模式R(A,B,C,D)上的函数依赖集为F={A→C,D→C} R的主键是ABD。(√)
3.函数依赖不是指关系模式R的某个或某些关系满足的约束条件而是指R的所有关系均要满足的约束条件。(√)
4.设关系模式R(ABCD)上成立的FD集F =(AB→C,C→A,C→D),则R有一个候选键,为:AB。(×)
5.满足2NF作不满足3NF的关系模式一定不存在主属性对键的部份依赖。(×)
6.由于关系模式设计不当所引起的插入异常是指插入了错误的数据。(×)
7.关系模式设计不当所引起的更新异常是指由于存在数据冗余,更新时未能同时更新所有有关元组而造成数据库不一致。(√)
8.3NF规范到BCNF,必须消除非主属性对主属性的传递函数依赖。(×)
9.一个关系模式满足了3NF,一定不会满足1NF。(×)
10.在关系数据库规范化理论中,在函数依赖的范畴内,BCNF达到了最高的规范化程度。(√)
11.数据冗余可能导致的问题有浪费存储空间、修改复杂和潜在的数据不一致性。(√)
12.数据库设计时规范化程度越高模式就越好。(×)
13.关系模式分解的数据等价是通过无操作异常来衡量的。(×)
14.如果Y∈X∈U,则X→Y成立这条推理规侧称为增广性。(×)
15.若X→Y,则Y∈XF+。(√)
16.有关系模式R(A,B,C,D,E), F={A→B,C→D},R的候选键是AC。(×)
17.关系模式的操作异常问题往往是由DBMS故障引起的。(×)
18.在最小函数依赖集F中,每个FD的左部都是单属性。(×)
19.关系规范化中的插入异常是指不该插入的数据被插入。(×)
20.关系模式设计得好坏,直接影响到数据冗余度、数据一致性等问题。级别越高的范式,其数据冗余和操作异常现象越少。(√)
第七章
1.实体-联系模型是一种(概念)数据模型。
2.在某学校的管理系统中,教师实体在学籍管理子系统中被称为教师,而在人事管理系统中被称为职工,这类冲突称之为(命名冲突)。
3.“为哪些关系,在哪些属性上建什么样的索引”这一设计内容应该属于(物理设计)设计阶段。
4.在数据库设计中,同一对象在不同应用中的抽象不同,这属于(结构冲突)。
5.在关系数据库的逻辑设计阶段,首先应该设计(基表)。
1.在设计局部ER模型的过程中,以下()是确定属性的原则。
属性是不可再分解的语义单位;属性实体与属性之间的联系只能是1:N的;不同实体类型的属性之间无直接关联关系。
2.一个实体集内部的各个实体之间可以存在的联系有(1:1、1:N、M:N)。
3.局部E-R视图之间的冗余包括(冗余数据、冗余的联系)。
1.某销售集团欲建立信息管理系统。
a) 该集团有若干公司,每个公司销售多种产品,且每一种产品可以由多个公司销售,每个公司按照预定的计划量销售产品;
b) 每种产品固定存放在一个仓库每个仓库专门存放一种产品,产品存于仓库都有一个库存量;
c) 每个公司聘用多名职工,且每名职工只能在一个公司工作,公司聘用职工有聘期和工资。
① 公司有公司编号、公司名、地址;
② 产品有产品编号、产品名、规格;
③ 仓库有仓库编号、地点、容积;
④ 职工有职工号、姓名、性别、出生日期。
若:已经在经销的产品不可以取消,一个公司倒闭后,其销售记录自动清除:每种产品的销售计划量不低于2000。
2.某企业的库存管理有如下的用户需求:
1)企业有若干仓库,一个仓库有多名职工工作,一个职工只能在一个仓库工作;
仓库有仓库编号、面积、电话号码等信息描述,职工有职工编号、姓名、年龄、职称等信息描述。
2)职工中有1人与其他职工之间是领导关系。
3)每个仓库可以存放多种零件,某种零件也存于不同的仓库中,零件保存在某仓库时,记录零件的库存量;
零件有零件号、名称、规格、单价、描述等特征。
4)每种零件有不同的供应商供货,每个项目会使用不同供应商提供的各种不同的零件某供应商为某项目提供不同的零件时,记录零件的供应量;
供应商有供应商号、姓名、地址、联系电话、账号等信息描述,项目有项目号、预算、开工日期等信息描述。
(1)根据上述需求画出库存管理系统的概念模型图:(略)
(2)将(1)得到的概念模型转换成关系模型,并标记每个关系模式的主键(用单下划线标出)和外键(用波浪线标出)。(略)
第十、十一章
1.事务是数据库的(逻辑工作单位),它是用户定义的一组操作序列。
2.在数据库恢复时,对尚未做完的事务执行(UNDO)处理。
3.事务的 ACID 性质是指(原子性、一致性、隔离性、持久性)。
4.以下不属于数据库恢复机制的是(审计)。
5.要使数据库具有可恢复性最基本的原则是(数据重复存储)。
6.在关系数据库事务处理中,ACID准则的C代表的是(一致性)。
7.后备副本的主要用途是(故障恢复)。
8.事务的(原子性)表示事务中的操作要么全部执行,要么什么也不做。
9.事务的持久性是指(事务一旦提交,对数据库的改变是永久的)。
10.要使数据库具有可恢复性平时要做好:(数据转储和建立日志)。
11.DBMS中实现事务原子性的子系统是(恢复)子系统。
12.DBMS中实现事务持久性的子系统是(恢复管理子系统)。
13.下面不属于数据库运行过程中可能发生的三类故障是(完整性故障)。
数据库运行过程中可能发生的三类故障是:系统故障、事务故障、介质故障
14.(介质故障)故障的恢复需要装载最新的数据库后备副本,再装入相应的日志文件副本。
15.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的是(两个都是SELECT)。
16.若一个并发调度的结果与某一个串行调度执行结果等价则这个调度称为(可串行化调度)。
17.事务之间对锁的循环等待现象被称为(死锁)。
18.设有两个事务T1、T2,其并发操作如下所示,下列评价正确的是(该操作读“脏”数据)。
T1:读A=100;A=A*2写回;ROLLBACK;T2:读A
19.若系统中有一个等待事务集{T0,T1,...,Tn,},其中T0正等待被T1锁住的数据项.Tn-1正等待被Tn,锁住的数据项,且Tn正等待被T0锁住的数据项,则系统处于(死锁)状态。
20.并发操作会带来(丢失更新、读脏数据、不可重复读)数据不一致性问题。
1.当数据库发生系统故障时,对撤销队列中的事务进行UNDO处理需要反向扫描日志文件。(√)
2.日志文件中记录了事务对数据库的每一次插入、删除、修改和查询操作。(×)
3.rollback表示回滚,即将事务中所有对数据库的更新永久生效事务结束。(×)
commit表示提交,即提交事务的所有操作。rollback表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。
4.事务以 begn transaction 语句开始,以 end transaction 或 return 语句结束。(×)
事务以 begn transaction 语句开始,以 commit 或 rollback 语句结束。
5.数据库进行恢复时,利用日志文件重做(REDO)所有不可靠的修改撤销(UNDO)已提交的事务。(×)
6.并发调度中,可串行化调度是一个事务串行执行的调度序列。(×)
7.通常用事务依赖图来测试系统中是否存在活锁。(×
8.封锁可能产生活锁和死锁的问题,都可以通过“先来先服务”策略加以解决。(×)
9.共享型封锁(S锁)允许多个事务同时对所封锁的数据对象进行读写操作。(×)
10.若事务T对数据R已经加X锁,则其他事务对数据R可以加S锁、不能加X锁。(×)
共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
1.SQL语言中,COMMIT语句的主要作用是(提交事务)。
2.数据库系统必须采取措施,以保证即使发生故障也可以对数据库进行恢复,以保持事务的(原子性和持久性)。
3.事务的ACID准则中的要求(多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样)。
4.下列选项(建立索引)不属于数据库恢复技术。
5.日志文件是用于记录(对数据库的所有更新操作)。
6.如果一个事务在故障发生之前完成但是它并没有到达检查点,则系统恢复时应对该事务执行(REDO)操作。
7.解决并发操作带来的问题普遍采用(封锁)技术。
8.允许事务读已提交的数据,但不要求“可重复读”,可利用(二级封锁协议)实现。
一级封锁协议:事务在修改数据之前必须先对其加X锁,直到事务结束才释放。可以解决丢失修改问题。
二级封锁协议:在一级的基础上,事务在读取数据之前必须先加S锁,读完后释放。可以解决脏读问题。
三级封锁协议:在二级的基础上,事务在读取数据之前必须先加S锁,直到事务结束才能释放。
9.设有两个事务T1、T2,对数据A的并发操作如下图所示,该操作(不能重复读)。
10.若DBMS维护的事务依赖图如下图所示,此时系统进入了(死锁)状态。
1.使数据库具有可恢复性的基本原则是数据的重复存储。(√)
2.检查点机制大大减少了数据库恢复的时间。(√)
3.DBS运行的基本工作单元是SQL语句,每个SQL语句的执行具有ACID性质。(×)
4.封锁的粒度越大并发度越高,但系统开销也越大。(×)
5.若并发执行的所有事务均遵守两段锁协议(2PL),则对这些事务的任何并发调度策略都是可串行化的。(√)
https://wwb.lanzouh.com/iNeyv056vfsb
4/4 实验报告
实验一:SQL语言
- 实验目的和要求
(1)通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法
(2)掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵
(3)加深对关系数据模型的数据结构和约束的理解
参考文档:《数据库系统实验指导书》
oracle安装教程:https://blog.csdn.net/qq_34602804/article/details/114239776
关于可能的报错:https://blog.csdn.net/weixin_43465312/article/details/95220193
- 实验原理及内容
1.了解并掌握SQL*Plus环境的使用
(1)以管理员身份登录到Oracle SQL*Plus;
(2)以学号为用户名创建一个用户,并授予其权限;
(3)管理员退出Oracle,重新用新创建的用户登录Oracle。
2.用SQL的DDL语句图书管理系统创建基表
3.为基表“读者”补充定义:职称只能取初级、中级、高级之一。
4.用SQL的DML语句向上述基表中增加、修改和删除数据
(1) 向三个基表中插入数据
(2) 数据的修改和删除
5.用SQL的QL语句完成查询
6.用SQL的DDL语句创建视图、索引
7.为当前用户创建一张结构与scott用户的员工表emp表相同的员工表。
实验二:SQL语言
- 实验目的和要求
(1) 巩固事务的概念
(2) 正确理解并发及锁机制
(3) 熟悉DBMS的安全控制
参考文档:《数据库系统实验指导书》
所涉及用户及密码:
scott/tiger
system/system
B19030825/yydl
U119030825/B19030825
U219030825/B19030825
- 实验原理及内容
1.创建用户 U1 和 U2
2. 对系统中scott用户的员工(emp)表,用授权机制完成以下存取控制:
(1) 所有用户具有对员工编号 empno、姓名 ename 和所在部门 deptno 的查询权限。
(2)使用户 U1 拥有对表 emp 的删除权限和对奖金(comm)的修改权限,并具备转授这些权限的权力。
(3)用户 U1 授予用户 U2 对员工表的删除权限。
(4)回收用户 u1 和用户 u2 对员工表的删除权限。
3.为自己的用户授予对scott用户的员工表emp的所有操作权
4.观察多事务并发时的数据库保护
(1) 分别以 scott 和自己的用户名登录到 sql plus,并分别输入命令 set auto off。
(2) scott 将 emp 表中 10 号部门所有员工工资(sal)增加 200 元,此即事务 1。
(3) 自己的用户将 emp 表中工号以 77 开头的员工工资增加 300 元,此即事务 2。
(4)观察发生现象,分析原因,找出解决办法。
发生现象:事务二处于等待状态。
原因:scott用户的加锁作用。
解除事务2挂起的方法是,在scott窗口中键入命令commit或者是rollback.
(5)scott 分别输入 commit 和 rollback 命令时,观察两个 sql * plus 界面的信息及变化,并用 select 语句查看将 emp 表中 sal 属性值的变化。
实验三:小型MIS开发
- 实验目的和要求
(1) 了解 C/S 结构的小型 MIS 的开发思路和过程
(2) 理解 ODBC 和ADO的作用
(3) 学习 Delphi 访问数据库的方法和表单 Form 的设计方法
- 实验原理及内容
1.在 MS SQL Server 中创建一个存储航班信息的数据库;
2.在刚创建的数据库中,设计和创建实验所用到的数据库结构(三级模式结构);
3.启动 dephi,创建一个Project,进行界面设计。
4.通过访问在 MS SQL Server 中创建的航班信息数据库。
5.写出实现各功能的响应事件、事件的核心代码,如插入、更新或删除事件等