题型:
一、选择题(共10题,每题2分,共20分)
二、填空题(共10空,每空1分,共10分)
三、关系代数计算题(共5题,每题2分,共10分)
四、SQL计算题(共10题,每题3分,共30分)
五、简答题(共5题,每题4分,共20分)
选择:
-
在数据库中存储的是:数据以及数据之间的联系
-
DB、DBMS和DBS三者之间的关系是:DBS包括DB和DBMS
-
在数据库中,产生数据不一致的根本原因是:数据冗余
-
自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用
自然连接时,要求R和S含有一个或多个共有的:属性
-
以下是信息世界的模型,且实际上是现实世界到机器世界的一个中间层
次的是:关系模型
-
构成E—R模型的三个基本要素是:实体、属性、联系
-
数据库系统的基本特征是:数据共享性、独立性和冗余度小
-
在关系代数运算中,五种基本运算为:并、差、选择(选排)、投影(选列)、笛卡尔积(∪, - ,σ,π和×)
-
在下列关于规范化理论的叙述中,不正确的是:D
A、任何一个关系模式一定有键。✅
B、任何一个包含两个属性的关系模式一定满足3NF。✅
C、任何一个包含两个属性的关系模式一定满足BCNF。✅
D、任何一个包含三个属性的关系模式一定满足2NF。❌
-
SQL的视图是从__基本表或视图___中导出的
-
允许取空值但不允许出现重复值的约束是:UNIQUE
-
数据库的完整性是指数据的:正确性和相容性
-
SQL的GRANT和REVOKE语句主要用来维护数据库的:安全性
-
在数据库设计中数据流图(DFD)和数据字典(DD)主要用来描述结构化方法中的__需求分析__阶段的工具;数据流图和数据字典共同构成系统的逻辑模型
-
从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该
关系模式的码是:M端实体码与N端实体码组合
-
SQL的集合处理方式与宿主语言单记录的处理方式之间用游标来协调
-
当将局部E-R图集成为全局E-R图时,如果同一对象在一个局部E-R图
中作为实体,而在另一个局部E-R图中作为属性,这种现象称为:结构冲突
-
下面关于关系数据库范式的描述中,错误的是。D
A) 关系满足的范式越低,则更新操作的代价就越高✅
B) 关系满足的范式越高,则更新操作的代价就越低✅
C) 关系满足的范式越高,则查询操作的代价就越高✅
D) 关系满足的范式越低,则查询操作的代价就越高❌
关系满足的范式化越低,则会出现数据冗余,更新异常等现象,其更新操作的代价就越高,反之,其操作的代价就低。而关系满足的范式化越高,建立的表就会越多,其查询操作的代价就高,反之,其查询的代价就低。
-
对数据库物理存储方式的描述称为:内模式
-
在数据库三级模式间引入二级映象的主要作用是:提高数据与程序的独立性
-
如何构造出一个合适的数据逻辑结构是(关系数据库规范化理论 )主要解决的问题
-
将E-R模型转换成关系模型,属于数据库的:逻辑设计
-
事务日志的用途是:数据恢复
-
如果事务T已在数据R上加了X锁,则其他事务在数据R上:不能加任何锁
-
数据库系统的核心是:数据库管理系统
-
概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是:实体-联系模型
-
数据的物理独立性是指(C)
A.数据库与数据库管理系统相互独立
B.用户程序与数据库管理系统相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中数据的逻辑结构是相互独立的
-
要保证数据库的逻辑数据独立性,需要修改的是:模式与外模式之间的映象
-
关系数据模型的基本数据结构是:关系
-
有一名为“列车运营”实体,含有:车次、日期、实际发车时间、实际抵达 时间、情况摘要等属性,该实体主码是(C )
A.车次 B.日期 C.车次+日期 D.车次+情况摘要
-
把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是(C ) A. GRANT QTY ON SPJ TO '李勇' B. GRANT UPDATE(QTY) ON SPJ TO '李勇' C. GRANT UPDATE (QTY) ON SPJ TO 李勇 D. GRANT UPDATE ON SPJ (QTY) TO 李勇
-
关系规范化中的插入操作异常是指:应该插入的数据未被插入
-
在关系数据库设计中,设计关系模式是数据库设计中(逻辑任务 )阶段的任务
-
在E-R模型中,如果有3个不同的实体型,3个m:n联系,根据E-R模型转 换为关系模型的规则,转换后关系的数目为:6。关系模式的个数=实体集的个数+多对多联系的个数
-
事务的隔离性是指:一个事务内部的操作及使用的数据对并发的其他事务是隔离的
-
数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据是指:日志文件、数据库后备副本
-
若事务T对数据对象A加上S锁,则:事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加 X 锁
-
以下(D )封锁违反两段锁协议。 A. Slock A … Slock B … Xlock C ………… Unlock A … Unlock B … Unlock C B. Slock A … Slock B … Xlock C ………… Unlock C … Unlock B … Unlock A C. Slock A … Slock B … Xlock C ………… Unlock B … Unlock C … Unlock A D. Slock A …Unlock A ……Slock B … Xlock C ………...Unlock B … Unlock C
-
在对任何数据进行读、写操作之前,要申请并获得对该数据的封锁。
-
每个事务中,所有的封锁请求先于所有的解锁请求。
-
-
数据库系统的特点是数据共享、数据独立、减少数据冗余、避免数据不一
致和加强了数据保护。
-
数据库系统的数据独立性是指:不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
-
数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作.这
种功能称为:数据操纵功能
-
关系数据库中,实现表与表之间的联系是通过:参照完整性规则
-
对关系的完整性约束通常包括实体完整性、参照完整性、用户定义(域)完整性三种
-
数据库设计的概念结构设计阶段,表示概念结构的常用方法和描述工具是:实体-联系方法和E-R图
-
应用数据库的主要目的是为了:共享数据问题
-
“一个事务中的诸操作要么全做,要么都不做”,这是事务的什么特性:原子性
事务的特性:原子性、一致性、隔离性、持久性
-
采用数据库镜像技术,主要是为了有效解决介质故障的问题
-
SQL Server安装程序创建4个系统数据库,下列哪个不是系统数据库:C
A、master B、model C、pub D、msdb
-
若事务T对数据 R已加 S锁,则对数据R:可以加S锁不能加X锁
-
数据库系统的特点:1.数据结构化、2.数据的共享性高,冗余度低,易扩充、3.数据独立性高、4.数据由DBMS统一管理和控制
-
关系数据表的关键字可由一个或多个字段组成。
-
在设计不好的关系模式中,存在的存储异常情况指(插入异常、数据冗余、删除异常、更新异常)
-
设R是一个关系模式,如果R中的每一个属性值都是不可分解的,则:R∈1NF
-
设R是一个1NF的关系模式,如果R中的每一个属性都是完全函数依赖于主属性的,则:R∈2NF
-
设R是一个2NF的关系模式,如果R中的每一个非主属性不传递依赖于主码,则:R∈3NF
-
关系是二维表,但并不是任何由行、列组成的二维表都是一个关系;
关系是达到第一范式要求的二维表;
关系数据库中的表中每一行数据叫做一条记录或者一个元组,且不允许有完全相同的行;
每一列也可以叫做一个字段,不允许有同名的列。
-
关系模式有三种专门的运算:连接运算、投影运算、选择运算
-
在创建数据库时,不可以设置数据库文件大小保持不变。
-
每个数据库有且只能有一个主数据文件
-
日志文件不属于任何文件组
-
实体完整性可以通过( 主键约束)约束来实现;主属性不能取空值,主键唯一
参照完整性可以通过(外键约束)来实现;
数据类型、非空约束、唯一值约束、检查约束(check(Ssex IN (‘男’,‘女’)))和默认值约束可以实现数据库的域完整性
-
唯一性约束定义数量没有限制
-
一个关系至少要有一个候选码;一个列的值必须来自相同的域。
-
审计的分类:语句审计、对象审计、特权审计
填空:
-
关系模型和网状模型的数据结构分别是:二维表和有向图
-
数据模型是由:数据结构、数据操作、完整性约束三部分组成的
-
关系数据语言可以分为三类:SQL语言 关系代数语言和关系演算语言
-
删除、修改基本表用DROP、ALTER语句,删除、修改基本表的元组用DELETE、UPDATE语句
sql语句分DML,和DDL。 DML(Data Manipulation Language)是数据操纵语言,是用来对数据库中的数据进行操作的。如:insert,delete,update,select等。 而DDL(Data Definition Language)是数据定义语言,是管理数据库中的对象的(例如database,table等)。包含语句如:create,alter,drop等。
-
规范化数据库设计分为以下六个设计阶段:需求分析阶段、物理结构设计、概念结构设计、逻辑结构设计阶段、数据库实施阶段、数据库运行和维护阶段
-
事务的特性有:一致性、原子性、隔离性和持久性
-
当对视图进行UPDATE、INSERT和DELETE操作时,为了保证被操作的行满足视图定义中子查询语句的谓词条件,应在视图定义语句中使用可选择项:WITH CHECK OPTION
-
SQL中,表有三种: 基本表(实表) 、视图(虚表) 、导出表(临时表)
-
在关系数据库规范化理论的研究中,在函数依赖的范畴内,BC范式达到了最高的规范化程度
-
在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有的函数依赖和无损连接
-
数据库的逻辑数据独立性是由 外模式/模式 映象提供的。
-
关系代数中专门的关系运算包括:选择、投影、连接和 除。
-
设有学生表S(学号,姓名,班级)和学生选课表SC(学号,课程号,成绩),为维护数据一执行,表S和表SC之间应满足 参照 完整性约束。
-
当数据库破坏后,如果事先保存了数据库副本和 日志文件 ,就有可能恢复数据库。
-
如果一个满足1NF关系的所有属性合起来组成一个关键字,该关系最高满足的范式是 3NF (在1NF,2NF,3NF范围内);仅有两个属性的关系一定是BCNF。BCNF的确定:就是X→Y时,X一定含有码(候选码中的任意一个)候选码就是能成为主码的几个满足条件,即通过任何一个候选码可以推出(->) 所有属性
-
设关系模式R(A,B,C,D),函数依赖集F={AB→C,D→B},则R的候选码为 AD。 解析:L:A,D ; R:C ; N:none; LR:B;AD的闭包包含所有属性。
-
从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据冗余度大、插入异常、修改异常和删除异常。
-
并发控制的主要方法是 封锁 机制.并发控制的基本单位为事务。
-
若有关系模式R(A,B,C)和S(C,D,E),SQL语句:
SELECT A, D FROM R, S WHERE R.C=S.C AND E = '80' ;
对应的关系代数表达式是:
-
分E-R图之间的冲突主要有属性冲突、 命名冲突 、结构冲突三种。
*1、属性冲突*
属性域冲突,即属性值的类型、取值范围或取值集合不同。 例如零件号,有的厂商把它定义为整数类型,有的部门把它定义为字符类型。 年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄。 属性取值单位冲突。 例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。
*2、命名冲突*
同名异义,即*不同意义的对象在不同的局部应用中具有相同的名字。* 异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。 如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。 命名冲突可能发生在实体、联系一级上也可能发生在属性一级上
*3、结构冲突*
同一对象在不同应用中具有不同的抽象。 例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。 解决方法:把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。 同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。 解决方法:使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。
-
数据库常用的数据模型有:关系模型、层次模型、网状模型
-
在数据库的三级模式结构中,用来描述数据库中全体数据的全局逻辑结构和特
征的是:模式
-
数据库系统中可能发生各种各样的故障,引起故障的原因大致可以分为几类,
分别为:事物内部故障、计算机病毒、系统故障和介质故障
-
RDBMS和DML分别是:关系数据库管理系统 数据操纵语言;DDL是数据定义语言
-
二级封锁协议除了可以防止丢失修改,还可以防止:读“脏”数据
-
三级封锁协议可防止丢失修改、读脏数据和不可重复读。
-
规范化处理是逻辑设计阶段的任务。
-
一个低一级范式的关系模式,通过(模式分解)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
-
关系数据库模型的三个要素分别是:关系数据结构、关系操作集合和关系完整性约束
-
数据库设计的六个阶段中(需求分析)和(概念结构设计)阶段独立于任何DBMS。
-
自身连接就是通过自身的两个表来进行连接
-
通常以中层数据流图作为设计分E-R图的依据
-
恢复操作的基本原理:冗余(如何建立冗余数据? 1.数据转储(backup)2.登录日志文件(logging))
-
登记日志文件原则:先写日志文件,后写数据库。
-
并发控制的基本单位:事务
-
数据字典在数据库设计的需求分析阶段建立
-
关系R的属性A参照引用关系T的属性A,T的某元组对应的A属性值在R中出现,当要删除T的这条元组时,系统可以采用的策略包括:【拒绝执行】【级联删除】【设为空值】
-
数据依赖:函数依赖、多值依赖
-
如何建立冗余数据?:数据转储(backup)登录日志文件(logging)
-
转储包括:静态转储与动态转储、海量转储与增量转储
-
数据库连接操作的实现方式:嵌套循环方法、排序-合并方法、索引连接方法、哈希连接方法
简答题:
-
数据库系统中有哪三层模式结构?采用三层模式结构有什么好处?(5分)
(难度系数B)正确答案:
答:数据库系统三级模式结构是指数据库系统是由外模式、模式和内模式三级构
成。(1分)
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给
DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体
表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系和转换,数据
库管理系统在这三级模式之间提供了两层映象:
外模式/模式映象, 模式/内模式映象(3分)
正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物
理独立性。(1分)
-
什么是数据库的安全性?DBMS有哪些安全性措施?正确答案:
答:数据库的安全性是保护数据库以防止不合法使用所造成的数据泄露、更改或破
坏。(2分)
DBMS主要通过以下方法来保护数据库的安全的:
用户身份鉴别:通过定义用户标识对用户身份进行鉴定,只允许合法的用户才能进入系统;
存取控制:通过定义用户的访问权限,合法权限检查对于合法的用户只能访问它有权访问的数据;
通过定义视图,屏蔽掉用户不能访问的数据;
通过对数据加密以及通过审计的功能等方法来保护数据库中的安全性的.(3分)
-
在数据库设计过程中将E-R模型转换为关系数据模型的转换原则是什么? (5分)
(难度系数B)正确答案:
答:E-R图中的每个实体,对应一个关系,该关系具有属性为实体的全部属性,关
键字为实体的关键字。E-R图中的一个联系对应一个关系,该关系具有属性为联系
的属性以及该联系相关的实体的关键字。考虑到数据库优化,根据联系类型不同
在转换为关系模式时具体处理不同:(2分)
(1)联系类型为1:1时,-先将两个实体分别转换两个关系模式,然后在任意一
个关系模式中加入另一个关系模式的键和联系类型的属性。(1分)
(2)1:N-先将两个实体分别转换为两个关系模式,然后在N端实体转换的关
系模式中加入1端实体转换的关系模式的键和联系类型的属性。(1分)
(3)M:N-先将两个实体分别转换为两个关系模式,然后将联系类型转换为第
三个关系模式,其属性由两端实体的键和联系类型的属性构成。(1分)
(4)三个或三个以上实体间的一个多元联系转换为一个关系模式
-
说明视图与基本表的区别和联系。
答:基本表是独立存在的表,在SQL中一个关系就对应一个基本表;视图是从一个或多个基本表中导出来的表,它与基本表不同,他是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的数据也随之改变。视图一经定义就可以像基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,但是对视图的更新操作有限制。
-
简述事务的定义和特征。
答: 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务的特性(ACID)包括原子性 (Atomicity)一致性 (Consistency)隔离性 (Isolation)持续性 (Durability)ACID。恢复技术能保证事务的原子性、持续性。并发控制技术能保证事务的一致性,隔离性。
原子性:事务中包括所有操作,要么都做,要么都不做。 一致性:事务必须使数据库从一个一致性状态变到另一个一致性状态。 隔离性:一个事务内部的操作以及使用的数据对并发的其他事务是隔离的。 持久性:事务一旦提交,对数据库的改变是永久的。
-
试述关系模型的参照完整性规则。
答:若属性F是基本关系R的外码,他与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为取空值,或者等于S中某个元组的主码值。
-
简述事务故障和系统故障时的数据库恢复策略。
答:
事务故障恢复:反向扫描文件日志,查找该事务的更新操作;对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库(相当于反向操作一遍);继续反向扫描日志文件,查找更新操作,如此处理下去,直到找到事务开始标记。(系统自动完成,不需用户干预)
系统故障(造成数据库不一致性的原因)恢复:数据冗余恢复,与日志恢复技术。正向扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入REDO重做队列,同时找出故障发生时尚未完成的事务,将其事务标识记入UNDO撤销队列,对UNDO队列中的各个事务进行撤销处理(反向扫描更新);对REDO队列中的各个事务进行重做处理(正向扫描更新)。(由系统在重新启动时自动完成,不需要用户干预)
介质故障恢复需要DBA介入
-
什么是数据库?(4分)
(难度系数C)正确答案:
答:数据库是长期存储在计算机内、有组织的、可共享的数据集合。(2分)
数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同
时使用。因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。
(2分)
-
DBA(数据库管理员)的职责是什么?(4分)
(难度系数B)正确答案:
(1)参与数据库设计,决定数据库的结构和内容; (1分)
(2)定义数据的安全性、完整性,负责分配用户对数据库的使用权限和口令
管理;(1分)
(3)监督控制数据库的使用和运行,改进或重新构造数据库系统; (1分)
(4)帮助终端用户使用数据库。 (1分)
-
在数据库中为什么要有并发控制 ?
数据库是一个共享资源,它允许多个用户同时存取修改同一个数据。若系统对并行操作不加控制,就可能产生错误的结果,如存取和存储不正确的数据,破坏数据库一致性等。并发控制的目的,就是要以正确的方式调度并发操作,避免造成各种不一致性,使一个事务的执行不受另一个事务的干扰。 -
试述数据库中完整性的概念、类型及你所了解的系统完整性检查方法。
数据库的完整性是指数据的正确性和相容性,为了防止不合语义的数据进入数据库。完整性的类型一般实体完整性、参照完整性、用户定义完整性。系统完整性检查方法有多种,例如,在一条语句执行完后立即检查是否违背完整性约束,即立即执行完整性检查。有时完整性检查延迟到整个事务执行结束后再进行,检查正确方可提交,即延迟执行约束完整性检查。要实现数据库完整性的检查,系统要提供定义完整性约束条件的机制(实体完整性:主码值惟一且主码各属性非空;参照完整性:定义外码和外码列是否允许空值),和提供检查是否违背完整性约束条件的方法。违约处理:当DBMS发现用户的操作违背了完整性约束条件时,就采取一定的控制。具体的控制是随系统而定的。
-
什么是数据模型 ? 试述其组成部分。
数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。不同的数据模型是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将模型分成两类或两个层次:一是概念模型,是按用户的观点来对数据和信息建模,用于信息世界的建模,强调语义表达能力,概念简单清晰;另一是数据模型,是按计算机系统的观点对数据建模,用于机器世界,人们可以用它定义、操纵数据库中的数据。一般需要有严格的形式化定义和一组严格定义了语法和语义的语言,并有一些规定和限制,便于在机器上实现。一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。 (1) 数据结构是所研究的对象类型的集合,是对系统的静态特性的描述。 (2) 数据操作是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。 (3) 数据的约束条件是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
-
哪些视图是可以更新的,请举例说明:
基本表的行列子集视图一般是可更新的(若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的)允许用户更新的视图定义时必须加上
WITH CHECK OPTIOM
。 相反,定义在多个基本表上的视图、使用聚合操作的视图、不含基本表主键的视图都是不可更新的。举例:从student中导出一个不合Sage的视图,保留了主码。
-
什么是多值依赖?举例说明
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。 Teach(C,T,B)中,一个课对应多个老师,一个老师又有多个相同的书,可知C->->T,C->->B
-
数据库系统的特点,与文件系统的区别:
(1)数据结构化:这是数据库的主要特征,也是数据库系统与文件系统的本质区别。在数据库系统中,不仅数据是整体结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个或一组数据项、一个记录或一组记录;而在文件系统中,数据的存取单位是记录,粒度不能细到数据项。
(2)数据的共享性高、冗余度低且易于扩展:数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性,并且容易增加新的应用,这就使得数据库系统的弹性大,易于扩充,可以适应各种用户的要求。
(3)数据独立性高:数据与程序的独立把数据的定义从程序中分离出去,加上存取数据的方法又由数据库管理系统负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
(4)数据由数据库管理系统统一管理和控制:为了保证数据共享带来的安全性、并发性、完整性,数据库管理系统必须提供以下几个方面的数据控制功能:数据的安全性保护、数据的完整性检查、并发控制、数据库恢复。
-
SQL的特点
综合统一
高度非过程化
面向集合的操作方式
以同一种语法结构提供多种使用方式:交互式、嵌入式
语言简洁,易学易用
-
视图中的with check option
保证了通过视图进行的修改,必须也能通过该视图看到修改后的结果。 修改的结目标和结果都只在视图上呈现,这样不会影响其他视图。 所以你插入,那么插入这条记录在刷新视图后必须可以看到; 如果修改,修改完的结果也必须能通过该视图看到; 如果删除,当然只能删除视图里有显示的记录。
-
视图的作用:
1.视图能够简化用户的操作
2.视图使用户能以多种角度看待同一数据
3.视图对重构数据库提供了一定程度的逻辑独立性
4.视图能够对机密数据提供安全保护
5.适当的利用视图可以更清晰的表达查询
-
自主存取控制方法定义和特点和强制存取控制方法定义和特点:
自主存取控制方法:定义各个用户对不同数据对象的存取权限;当用户对数据库访问时首先检查用户的存取权限;防止不合法用户对数据库的存取;(GRANT和REVOKE)缺点:可能存在数据的无意泄露。
强制存取控制方法:每一个数据对象被强制地标以一定的密级,每一个用户也被强制地授予某一个级别的许可证;系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象; 保证更高程度的安全性,用户不能直接感知或进行控制,用于对数据有严格而固定密级分类的部门。
-
什么是数据依赖:
数据依赖是一个关系内部属性与属性之间的一种约束关系,
这种约束关系是通过属性间值的相同与否体现出来的数据间的相关联系。
它是现实世界属性间相互联系的抽象,
是数据内在的性质,
是语义的体现。
-
数据库设计分为6个阶段
(需求分析
概念结构设计)独立于任何DBMS
(逻辑结构设计
物理结构设计)与DBMS密切相关
数据库实施
数据库运行和维护
-
保持无损连接性和保持函数依赖:
-
设计分别满足某一范式,而不满足上一级范式的例子
-
SQL通信区:
向主语言传递SQL语句执行状态信息
使主语言能够据此控制程序流程
主变量:
主语言向SQL语句提供参数
将SQL语句查询数据库的结果交给主语言进一步处理
游标:
解决集合操作语言与过程操作语言的不匹配;
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。
每个游标区都有一个名字
用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。
-
系统可以比用户程序的“优化”做得更好:
优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息。
如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。
优化器可以考虑数百种不同的执行计划,程序员一般只能考虑有限几种可能。
优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。
系统的自动优化相当于使得所有人都拥有这些优化技术。
-
连接操作实现:
嵌套循环方法(nested loop)
排序-合并方法(sort-merge join 或merge join)
索引连接(index join)方法
哈希连接(Hash Join)方法
-
代数优化中查询树的启发式规则(会画树)
-
选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条(常常可以使执行时间节约几个数量级,因为选择运算一般使计算的中间结果大大变小。)
-
把投影运算和选择运算同时进行(如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系)
-
把投影同其前(其后)的双目运算结合(把投影同其前(其后)的双目运算结合)
-
把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算(连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间)
-
找出公共子表达式
如果这种重复出现的子表达式的结果不是很大的关系
并且从外存中读入这个关系比计算该子表达式的时间少得多
则先计算一次公共子表达式并把结果写入中间文件是合算的
当查询的是视图时,定义视图的表达式就是公共子表达式的情况
-
-
日志文件(记录数据更新操作)的作用:
进行事务故障恢复、进行系统故障恢复、协助后备副本进行介质故障恢复。
-
利用检查点的恢复技术
-
在数据库中为什么要并发控制?并发控制技术能保证事务的哪些特性?
(1)数据库是共享资源,可以供多个用户使用,所以通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取或修改同一数据的情况。若对并发操作不加以控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。
(2)并发控制可以保证事务的一致性和隔离性,保证数据库的一致性。
-
活锁:
避免活锁:采用先来先服务的策略
当多个事务请求封锁同一数据对象时, 按请求封锁先后次序对这些事务排队
该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁
死锁:
诊断与解除是常用的解决死锁的办法
超时法+事务等待图法
-
并发操作带来了哪些不一致性:
丢失数据、不可重复度、读“脏”数据
-
封锁有两种锁:共享锁、排它锁
-
多力度封锁、意向锁(、、、)
-
什么是并发操作可串行性
-
两段封锁,
-
一二三级封锁协议:分别防止丢失修改、防止丢失修改+读脏数据、防止丢失修改+读脏数据+不可重复读
-
为什么要引进意向锁?意向锁的含义是什么?
引进意向锁是为了提高封锁子系统的效率。该封锁子系统支持多种封锁粒度。原因是:在多粒度封锁方法中一个数据对象可能以两种方式加锁―显式封锁和隐式封锁。因此系统在对某一数据对象加锁时不仅要检查该数据对象上有无(显式和隐式)封锁与之冲突,还要检查其所有上级结点和所有下级结点,看申请的封锁是否与这些结点上的(显式和隐式)封锁冲突,显然,这样的检查方法效率很低。为此引进了意向锁。意向锁的含义是:对任一结点加锁时,必须先对它的上层结点加意向锁。
-
登记日志文件时为什么必须先写日志文件,后写数据库?
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
-
什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?
正确答案:数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。 数据与程序的逻辑独立性:当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据与程序的逻辑独立性。 数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
SQL、关系代数
选择(σ,给定条件,选取符合的每一行,得到的是表)
投影(π,筛选某一列或多列,只是单独的两列)
连接(∞,自然连接,最小的情况)
除(➗,R➗S表示:R去除S中包含的属性列,对剩余的列进行分组,得到不同组(值)的象集,看是否包含S,输出包含的)
1.检索所有选修了课程号为“C112”的课程的学生的学号和分数
SQL: select 学号,成绩 from 学习 where 课程号 =‘C112’
关系代数:
2.检索"英语"专业学生所学课程的信息,包括学号、姓名、课程名和分数;
SQL :
select 学生.学号,课程名,分数 from 学生 INNER JOIN 学习 ON 学生.学号 = 学习.学号 INNER JOIN 课程 ON 学习.课程号 = 课程.课程号 where 专业 = '英语'
关系代数:
3.检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数; SQL:
SELECT 学生.学号,姓名,专业,分数 from 学生,学习,课程 where 学生.学号 = 学习.学号 AND 学习.课程号 = 课程.课程号 AND 分数 >90 AND 课程名 = ‘数据库原理’
关系代数: 4.检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)
关系代数: 5.检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。
SELECT 学号,姓名,专业 FROM 学生WHERE 学号 IN (SELECT X1.学号 FROM 学习 X1,学习 X2 WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’AND X2.课程号=‘C219’)(1分)
关系代数:
示例:数据库关系代数几道例题以及解析_数据库关系代数例题-CSDN博客
没有一门课程不选修:
STJ(S,T,J):(S,T)->J,(S,J)->T,T->J。学生、老师、课程
候选码:(S,T),(S,J)
可能存在:
-
更新复杂:换老师时,所有选了这个老师的学生都得更新
-
数据冗余:每个学生只要选了这个课,授课老师都要重复
-
插入异常:如果有学生未选课,可能无法插入
-
删除异常:删除某门课程的所有学生时,将同时删除其他老师
1NF是指数据库表的每一列都是不可分割的基本数据项,即实体中的某个属性不能有多个值或者不能有重复的属性。
2NF要求属性完全依赖于主键,不能存在仅依赖主关键字一部分的属性。
3NF要求每一个非主属性既不部分依赖于码也不传递依赖于码。
BCNF消除了主属性对候选码的部分和传递函数依赖。(是决定因素但不是码(码就是所有候选码集合,如果是组合的话不能拆))