0503《数据库原理》2018年6月期末考试指导
发布时间:2023-11-20 08:11:59浏览次数:41《数据库原理》 年 月期末考试指导一、考试说明(一)说明满分为 100 分,考试时间为 90 分钟, 考试形式为闭卷。(二)题型及各题型所占分数和相应的答题技巧填空(每空 分,共 空,总计 分)答题技巧:先定位考察的知识点是什么,再用专业的术语作答,答案尽量言简意赅。判断(每题 分,共 题,总计 分)答题技巧:判断为错误的题目一定要找出其错误的点,方才能认定是错误的。.单项选择(每题 分,共 题,总计 分)答题技巧:选择最正确的那个选项,可以考虑排除法等选择技巧。.综合题(前两题每题 分,后两题每题 分,总计 分)答题技巧:除了结合题目给出重要的知识点外,还要在此基础上对知识点加以扩展阐述。回答要有条理,注意答案的完整性,对于有多问的,要按题目顺序依次作答。二、复习重点内容第一章 概论数据库包含了关于某方面信息的数据集合。这里数据的概念是广义的。计算机中描述事物的符号称为数据。这里所指的事物,包括事物本身和事物的各种状态。这里所指的符号,可以是数字,也可以是文字、图形、图像、声音、语言等。在计算机系统中,数 据(data)是数据存储的基本对象。由于数据的表现形式还不能完全表达数据的内容,所以对数据还需要解释。对数据的而结实是指对数据含义的说明,数据的含义成为数据的语义数据与其语义是不可分的。包含互相关联的数据集合的数据库是广义的,这里的数据集合可以是各种形式。本课程所讲的数据库是指狭义的数据库,即数据库是指专门通用软件管理,长期储存在计算机内、有组织、可共享的大量数据集合。1、数据库系统(DB)数据库系统是指面向数据管理应用、在计算机系统中引入数据库管理系统之后的系统,它一般由网络硬件系统、网络操作系统、数据库、数据库管理系统(及其开发工具)、应用系统、用户和数据库管理员(Database Administrator,简写为 DBA)构成,即包括数据库设计、运行、管理和维护涉及的硬件、软件和人员。2、数据库管理系统(DBMS)科学地组织和存储数据库中的数据、高效地获取和维护数据,从而提供一个可以方便、高效地存取数据库信息的环境的专门通用软件,称为数据库管理系统 DBMS()。 是位于用户与操作系统之间的一层软件,它是一个大型复杂的系统软件。DBMS 提供了定义和操纵数据库中数据的语言。 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。其能对数据集中管理、有利共享、控制冗余、很好实施数据完整性、一致性、独立性和安全性控制。3、模式和实例数据库的总体设计称作数据库模式(schema);而特定时刻存储在数据库中的信息的集合称作数据库中的一个实例(instance)。同一模式可以有很对实例,实例的值随
仅需要考虑索引机制、空间大小、块的大小。2、ER 模型的基本元素 模型的基本元素包括实体、联系和属性。(1)实体 定义 实体、实体集、实体类型的定义如下: 实体(Entity)是指应用中可以区别的客观存在的事物。 实体集(Entity Set)是指同一类实体构成的集合。 实体类型(Entity Type)是对实体集中实体的定义。习惯上将实体、实体集、实体类型等概念统称为实体。在 ER 模型中,实体用方框表示,方框内标注实体的命名。(2)联系现实世界中,实体不是孤立的,实体之间总是有与业务相关这样那样的联系。例如“教师在某学院工作”是实体“教师”和“学院”之间的联系,“学生在某教室听某老师讲的课程”是“学生”、“教室”、“老师”和“课程”等四个实体之间的联系;而“知识点之间有组合联系”表示“知识点”实体之间有联系。定义 联系、联系集、联系类型的定义如下: 联系(Relationship)表示一个或多个实体之间的关联关系。 联系集(Relationship Set)是指同一类联系构成的集合。 联系类型(Relationship Type)是对联系集中联系的定义。同实体一样,习惯上将联系、联系集、联系类型等统称为联系。在 ER 图中,联系用菱形框表示,并用线段将其与相关的实体连接起来。(3)属性定义 实体的某一特性称为属性(Attribute)。在一个实体中,能够惟一标识实体的属性或属性集称为“实体标识符”。如学生有学号、姓名、性别、年龄等属性。其中学号为实体标识符(有可能有重名的学生)。实体标识符也称为实体的主键。在 ER 图中,属性用椭圆形框表示,加下划线的属性为标识符。属性可能取值的范围成为属性域或属性的值域。联系也会有属性,用于描述联系的特征,如上课时间、课程成绩等;但联系本身不会有标识符。2、ER 图 模型可以图形化表示,其中的符号没有准备规定,不同地方可能使用不同符号来表达其中的语义。矩形:表示实体集。椭圆:表示属性。菱形:表示联系集。线段:将属性连接到实体集或将实体集连接到联系集。双椭圆:表示多值属性。虚椭圆:表示派生属性。双线:表示一个实体集全部参与到联系集中。双矩形:表示弱实体集。 用下划线标出组成主码的属性。3、属性分类(1)简单属性和复合属性
简单属性是不可再分割的属性。由一个独立存在的成分构成的属性称为原子属性。复合属性是可再分解为其他属性的属性。复合属性形成了一个属性的层次结构,如时间属性可分解为:年、学期两个属性。(2)单值属性和多值属性单值属性指的是同一实体的属性只能取一个值。多值属性指同一实体的某些属性可能取多个值。(3)存储属性和派生属性可从其他属性值推导出值的属性,称为派生属性(DerivedAttribute)。派生属性的值不必存储在数据库内,而其他需要存储值的属性称为存储属性(StoredAttribute)。3、联系的设计(1)联系的元数定义 一个练习关联的实体集个数,成为该联系的元数或度数(Degree)。通常,同类实体集内部实体之间的联系,成为一元联系,也成为递归联系;两个不同实体集、实体之间的联系,成为二元联系;三个不同实体集实体之间的联系成为三元联系。以此类推。(2)联系类型的约束(本部分请对照相关教材上的图标理解)联系类型的约束限制了参与联系的实体的数目。有两类联系约束:基数约束和参与约束。1) 基数约束先定义二元联系的映射基数。定义 实体集 S1 和 S2 之间的二元联系,则参与一个练习中的实体数目成为映射基数。对于二元联系类型,可能的映射基数有 1:1,1:N,M:N,M:1 四种。实践中,有时需要对映射基数做出更精确的描述,即对参与联系的实体数目指明相关的最小映射基数和最大映射基数,用范围“min..max”的方式表示。例如“1..*”表示参与的实体至少为一个,上届没有限制,即“*”表示∞。注意:映射基数也必须在 E-R 图上体现,就标注实体集与联系集的线段上。4、弱实体集合其属性包括主码的实体集成为强实体集,所有属性都不足以形成主码的实体集成为弱实体集。5、将 E/R 模式转换为关系表(1)E-R 图对应的表E-R 图中的每个实体集和联系集都有相应的关系表与之对应:关系表的表名即为相应的实体集或联系集的名称;每个表有多个列,每列有唯一的列名;每个列都与相关实体集或联系集的属性有关。总之,数据库的 e-r 模式可以转化为一系列表的结合。第六章 关系数据库设计关系数据库的基本机构是关系模式。需要构建好的关系模式。1、数据依赖(1)函数依赖函数依赖简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。设有关系模式 R(U),X 和 Y 是属性集 U 的子集,函数依赖性为 X→Y 的一个命题,
对 r 中任意两个元组 t 和 s,都有 t[X]=s[X]蕴含 t[Y]=s[Y],那么成函数依赖 X→Y 在关系模式 R(U)中成立。X→Y,称 X 函数决定 Y,或者 Y 函数依赖 X。如果给定关系模式 R 的函数依赖集 F,可以证明其它某些函数依赖也成立,就称这些函数依赖被 F 逻辑蕴含;如果给定关系模式 R 的函数依赖集 F,F 的必报是指被 F 所逻辑蕴含的所有韩式依赖的集合,记为 F+。(2)函数依赖与属性关系属性之间有三种关系,但并不是每一种关系都存在函数依赖。设 0&1是属性集 & 上的关系模式,3、I 是 & 的子集:J如果 3 和 I 之间是 : 关系(一对一关系),如学校和校长之间就是 ? 关系,则存在函数依赖 3KI 和 IK3。J如果 3 和 I 之间是 : 关系(一对多关系),如年龄和姓名之间就是 ? 关系,则存在函数依赖 3KI。J如果 3 和 I 之间是 : 关系(多对多关系),如学生和课程之间就是 ? 关系,则 3 和 I 之间不存在函数依赖。因此,函数依赖是两个属性集之间的多对一的关系。2、范式标 准 关 系 模 式 好 坏 的 标 准 就 是 模 式 的 范 式 (NormalForms , 简 记 为 NF) , 有1NF、2NF、3NF、BCNF 等多种。这些范式之间的联系:(1)第一范式(1NF)定义 如果关系模式 R 的每个关系 r 的属性值都是不可分的原子值(简单的、不可分割的。不能以集合、序列等作为属性值),那么称 R 是第一范式(first normal form,简记为1NF)的模式。关系数据库只研究满足 1NF 的关系。1NF 是关系模式应具备的最起码的条件。(2)第二范式(2NF)1NF 关系模式中可能有数据冗余,会出现操作异常现象。定义 若 R71NF,且每一个非主属性完全函数依赖于码,则 R72NF。不满足 2NF 的关系模式中必定存在非主属性对关键码的部分依赖。(3)第三范式(3NF)定义 如果关系模式 R 是 1NF,且每个非主属性都不传递依赖于 R 的候选关键字,那么称 R 是第三范式(3NF)的模式。或者说,关系模式 R<U,F> 满足第二范式,且它的任何一个非主属性都不传递依赖于任何候选关键字,则称 R<U,F> 3NF∈ 。或者说,设 F 是关系模式 R 的函数依赖集,如 果对 F 中每个非平 凡的函数依赖X→Y,都有 X 是 R 的超键,或者 Y 的每个属性都是主属性,那么称 R 是 3NF 的模式。如果数据库模式中每个关系模式都是 3NF,则称其为 3NF 的数据库模式。不满足 3NF 的关系模式中必定存在非主属性对关键码的传递依赖。(4)BCNF3NF 模式并未排除主属性对候选关键字的传递依赖。定义 关系模式 R<U,F> 满足第三范式,且它的任何一个主属性既不部分也不传递依赖于任何候选关键字,则称 R<U,F> BCNF∈ 。或者说,系模式 R<U,F> 1NF∈ ,若每一个决定属性因素都包含码,则 R<U,F>BCNF∈ 。1 2 3 4 5NF NF NF BCNF NF NF
3、规范化规范化是决定属性被组合为关系中的一组属性的形式化过程。在规范化过程中,我们分析和分解复杂关系,将它们转化为更小、更简单、结构良好的关系。规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。关系模式的规范化过程实际上是一个“分解”过程:把逻辑上独立的信息放在独立的关系模式中。把低一级的关系模式分解为若干个高一级的关系模式的方法不是唯一的,只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。若要求分解具有无损连接性,那么模式分解一定能够达到 4NF;若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到 3NF,但不一定能够达到 BCNF。第七章 存储和存取1、DBMS 的文件管理器用来存储数据库数据的操作系统文件主要有两类,数据文件和日志文件。2、主数据存储区在主数据存储区中,当索引有序文件初始创建时写记录,由用户的程序写记录,记录以升序键顺序写到数据块中。大多数计算机系统中都有多种数据存储器件。根据访问数据的速度,购买介质时每单位数据的价格以及介质的可靠性,可以将这些存储介质分为如下几类。根据不同存储介质的速度和成本,可以把它们按层次结构组织起来。层次越高,这种存储介质的价格就越贵但是速度就越快。01高速缓冲存储器0!L1:!L 是访问速度最快,也是最昂贵的存储器,其容量小,由 !#& 直接管理。!L 通常由硬件实现管理。01主存储器0'$1:又称为内存。机器指令可以直接对内存中的数据进行修改。但致命的一点是,在掉电或系统崩溃时,内存数据立即全部丢失。它由操作系统管理。01 快 擦 写 存 储 器 0A L$1 : 又 称 为 “ 电 可 擦 可 编 程 只 读 存 储 器 ” 0 即#1,简称为“快闪存”。快闪存在掉电后仍能保持数据不丢失,其操作速度略低于内存。目前已在小型数据库中广泛使用。01磁盘存储器0''M。1:磁盘是目前最流行的外部存储器。能长时间地联机存储数据,并能直接读取数据,所以又被称为“直接存取存储器”。在掉电或系统崩溃后,数据不会丢失。01光存储器 0)' $1 :目前流行的光存储器 是“ 光盘 存储器” 0!N、!N;、>N; 等1。数据以光的形式存储在盘里,然后用一个激光器去读。!N 制作后,只能读不能写。而 !N; 和 >N; 可以读和写。光存储设备是低速的直接访问存储设备。01磁带0:)$1:磁带用于存储拷贝的数据或归档的数据。在存储器中,磁带价格最便宜,属于“顺序存取存储器”。磁带存储介质不允许记录在相同的地方读和写记录。3、顺序索引和哈希的比较索引和哈希都为访问数据提供了存储路径:索引需要通过值的比较,才能确定数据的位置;
哈希不通过值的比较,而通过值的含义来确定数据的位置。第八章 查询处理与优化1、查询处理过程查询处理(query processing)是指从数据库中提取数据并给用户返回结果的一系列处理,包括:将数据库语言查询语句翻译为文件系统物理层表达式,查询优化以及查询的实际执行。RDBMS 查询处理过程可以分为四个阶段:查询分析、查询检查、查询优化和查询执行。(1) 查询分析查询分析是查询处理的第一个阶段,主要任务是对查询语句进行扫描、词法分析和语法分析。从查询语句中识别出语言符号,SQL 关键字、属性名和关系名等,并且进行语法检查和语法分析,即判断查询语句是否符合 SQL 语法规则。 (2) 查询检查 查询检查是根据数据字典对合法的 SQL 查询语句进行语义检查,即检查语句中的数据库对象,如属性名、关系名,是否存在和是否有效等。还要根据数据字典中的用户权限和完整性约束对用户的存取权限进行检查。(3) 查询优化 每 个 查 询 语 句 都 会有 很 多 可 供 选择 的执 行 策 略 和 操 作 算法 , 查 询 优 化( queryoptimization)就是选择一个高效的查询处理策略,或者说是构造具有最小查询执行代价的计划是有系统自动完成。查询优化有许多种方法。按照优化的层次一般可以分为代数优化和物理优化。 (4) 查询执行 查询 执行 就 是依 据优化 器得 到的执 行 策略 生成查 询计 划 ,由代 码 生成 器 (codegenerator)生成执行这个查询计划的代码。完善的查询执行计划,需要对关系代数表达式加上注释来说明如何执行每个操作。注释说明某个具体操作所采用的算法,以及使用的一个或多个特定索引。第九章 事务处理1、事务概念事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。一个已完成更改并已提交的事务将数据库转换到一个新的一致性状态。一个异常终止的事务对数据库所做的更改应该被撤销。事务由事务开始(begin transaction)与事务结束(end transaction)之间执行的全体操作组成。数据库中的数据一致性是由事务的正确性来保证的。为了保证数据完整性,要求数据库系统维护事务的以下性质:·原子性(atomicity):事务中包含的所有操作要么全做,要么全不做。原子性由事务管理模块中的恢复机制实现。·一致性(consistency):隔离执行事务时(即,在没有其他事务并发执行的情况下)保持数据库的一致性。即事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态。如银行转帐,转帐前后两个帐户金额之和应保持不变。事务的定义应使之能保持数据库的一致性,正确定义各个事务是程序员的任务;系统完整性约束的自动检查也能给予一些帮助。
·隔离性(isolation):尽管多个事务可能并发执行,但系统保证,每个事务都感觉不到系统中有其他事务在并发地执行。隔离性由事务管理模块中的并发控制机制实现。·持久性(durability):一个事务成功完成后,它对数据库的改变是永久的,即使系统系统发生故障不能改变事务的持久性。持久性由事务管理模块中的恢复机制实现。这些特性通常称缩写为 ACID 特性(四条性质的第一个英文字母)。2、抽象事务模型为了更准确地定义一个事务成功完成的含义,可以建立简单的抽象事务模型,事务处于以下状态之一:O活动状态(active):初始状态;事务执行时处于这个状态。O部分提交状态(partially committed):最后一条语句执行后。O失败状态(failed):发现正常的执行不能继续之后。•中止状态(aborted):事务回滚并且数据库已恢复到事务开始执行前的状态之后。O提交状态(committed):成功完成后。只有在事务已进入提交状态后,我们才说事务已提交。类似地,仅当事务已进入中止状态,我们才说事务已中止。提交的或中止的事务称为已经结束(terminated)的事务。事务从活动状态开始。当事务完成它的最后一条语句后,进入部分提交状态。此刻,事务已经完成执行,但由于实际输出可能仍临时驻留在主存中,一个硬件故障可能阻止其成功完成,因此,事务仍有可能不得不中止。接着数据库系统往磁盘上写入足够的信息,确保即使出现故障时事务所做的更新也能在系统重启后重新创建。当最后一条这样的信息写完后,事务进入提交状态。系统判定事物不能继续正常执行后(如由硬件或逻辑错误),事物进入失败状态,这种事物必须回滚(rolled back)。这样事物就进入终止状态。系统此刻面临两种选择:O重启事务(restart)O杀死事务(kill)2、并发执行和调度(1)并发执行一个事物由不同步骤组成,所涉及的系统资源不同,这些步骤可以并发执行,以提高系统的吞吐量;系统中存在着周期不等的各种事物,串行会导致难于预测的时延。当多个事物并发执行时,及时每个事物正确执行,数据库的一致性也可能被破坏,数据库系统必须控制事务之间的相互影响,防止他们破坏数据库的一致性。系统通过成为并发控制机制的一系列机制来保证这一点。执行的顺序称为调度(schedule),即指令在系统中执行的顺序。显然,一组事务的一个调度必须包含这一组事务的全部指令,并且必须保持指令在各个事务中出现的顺序。(2)可串行化数据库系统必须控制事物的并发执行,保证数据库处于一致的状态。并发控制机制通过保证任何调度执行的效果与没有并发执行的调度执行效果一样,来确保数据库的一致性也就是说,保证调度应该在某种意义上等价于一个串行调度。从调度的角度来看,事务仅有的重要操作是读(read)与写(write)指令。4、并发控制事物最基本的特性之一是隔离性。然而,当数据库中有多个事物并发执行时,事物的隔离性不一定能保持。为保持事务的隔离性,系统必须对并发事物之间的相互作用加以控制,这是通过并发控制机制来实现的。确保冲突可串行化的方法之一是对数据项的访问以互斥的方式进行;也就是说,当一个事物访问某个数据项是,其他任何事物都不能修改该数据项。常用的实现方式是只语序
事物访问当前事物持有锁的数据项。(1)锁两种基本锁:共享锁:如果事务 获得了数据项 Q 的共享锁(shared-mode lock)(记为 S),则可读但不能写 Q,主要用于控制“读访问”。排他锁:如果事务 获得了数据项 Q 的排他锁(exclusive—mode lock)(记为 X),则既可读又可写 Q,主要用于控制“写访问”。在二元锁中,有两个加锁状态。用户可以并发读取数据,但任何事务都不能获取数据上的排它锁,直到已释放所有共享锁。(2)死锁封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题。两个事务都封锁了一些数据对象,并相互等待对方释放另一些数据对象以便对其封锁,结果两个事务都不能结束,则发生死锁。这种情形成为死锁(dead-lock)。数据库系统一般采用允许死锁发生,DBMS 检测到死锁后加以解除的方法。DBMS 中诊断死锁的方法与操作系统类似,一般使用超时法或事物等待图法。5、恢复系统(1)恢复的定义恢复是把数据库从错误状态恢复到某一正确状态的功能,从而确保数据库的一致性;恢复的基本原理是冗余,即数据库中任一部分的数据可以根据存储在系统别处的冗余数据来重建。主要采用:备份+日志。(2)延迟修改技术延迟修改技术是通过日志中记录所有数据库修改,而讲一个事务的所有 write 操作拖延到事务部分提交时才执行,一旦日志记录都写到了稳定存储器上,就真正执行更新,并且事物进入提交状态,延迟修改技术只需要数据项的新值。(3)检查点技术当系统故障发生时,我们必须检查日志,决定哪些事物需要 redo(重做),哪些需要undo(撤消)。原则上,我们需要搜索整个日志来决定这一信息。有两个缺陷:1、 搜索过程太耗时。2、 大多数需要重做的事务其更新已经写入数据库,尽管对它们重做不会造成不良后果,但会使恢复过程变得很长。为降低这种开销,系统周期性地执行检查点(checkpoint):1、 将当前位于主存的所有日志记录输出到稳定的存储器上。2、 将所有修改了的缓冲块输出到磁盘上。3、 将一个日志记录<checkpoint>输出到稳定存储器。4、 输出检查点时活跃事务的列表。5、 日志中记录<checkpoint>.检查点执行过程中,不允许事务执行任何更新动作,如写缓冲块或写日志记录。检查点技术用来限制日志信息的容量、搜索的数量和随后需要在事务日志文件中执行的处理,使得系统提高了恢复过程的效率。例如:
在采用检查点技术之前,恢复时需要从头扫描日志文件,而利用检查点技术而只需从te开始扫描日志,这就缩短了扫描日志所需的时间。事务 T3的更新操作实际上已经写到数据库中了,进行恢复时没有必要再执行 REDO 操作,采用检查点技术就可以做到这一点。三、重点习题(一)填空数据库系统中两个重要的语言是 和 。如果关系中所有属性域的值都是 ,则该关系属于 /A。可串行化必须确保防止事务交叉操作时的 。判断一个并发调度是否正确,可以用 概念来解决。如果一个函数依赖能由集合中其他PPPPPPPPPP推出,则该函数依赖是多余的。PPPPPPPPPP意味着要么一个事务的所有工作都执行完成要么一个也不执行。Q触发器采用时间驱动机制,当某个PPPPPPPPPP发生时,定义在触发器中的功能将被 自动执行。结构数据模型的三个组成部分是:数据结构、数据操作和PPPPPPPPPP。RPPPPPPPPPP是用户定义的一组按顺序执行的不可分割的数据库操作序列。(二)判断题数据就是一条事实。( )一个表不能用多个属性来唯一地标识一行。( )一个已完成更改并已提交的事务将数据库转换到一个新的一致性状态。( )计算机系统的功效很大程度上依赖于它对数据的存储方式以及它能检索数据的快慢。( )一个异常终止的事务对数据库所做的更改应该被撤销。( )在数据库管理系统里,数据文件是存储数据库信息的文件。( )Q分解要保持函数依赖,因为 A 中的每个函数依赖都代表数据库上的一个约束。()级联回滚是希望的。( )R数据库恢复是 提供的一种服务,用于确保在发生故障时数据库的可靠性和一致性。( )当一个事务修改数据库项,然后由于某些原因此事务失败了,则会出现脏读问题。( )(三)选择题数据是 。21一个事实 1元数据 !1信息 1以上都不是.下列 是数据库的元素。21数据 1约束和模式 !1联系 1以上所有T3T2T1(检查点 S1) te(检查点S2)tf(系统故障)日志文件
.主存储设备是 。21高速缓存 1主存储器 !1闪存 1以上都是.下述 是添加到 N 模型中的附加概念。21特殊化 1一般化 !1超类/子类实体 1以上都是.面向对象 用于 。21数据和文本 1图片和图像 !1声音和视频 1以上都对>9 用来指定 。21内模式 1外模式 !1概念模式 1以上都不是Q与主存储器相比,辅助存储器是 。21昂贵的 1易失的 !1更快速 1以上都不是. 术语中,列是 。21元组 1关系 !1属性 1域R下述PPPPPPPPPP是影响访问硬盘时间的因素。21旋转延迟时间 1数据传输时间 !1寻道时间 1以上都是数据完整性的损失意味着PPPPPPPPPP。21数据和系统都不能被用户访问 1产生了无效和损坏的数据!1组织的关键数据的机密性损失 1个人数据的损失下述PPPPPPPPPP表达查询树中查询的结果。21根结点 1叶结点 !1中间结点 1都不是术语中,属性可以具有的值的合法集合是PPPPPPPPPP。21元组 1关系 !1属性 1域属性集 3 将完全函数依赖于属性集 I,如果满足下列条件PPPPPPPPPP。213 函数依赖于 I13 不函数依赖于任何 I 的任何真子集!121和 1都是 1以上都不是下述 是事务性质。21隔离性 1持久性 !1原子性 1以上都是下列 子句用来指定表或表明从哪些表里检索数据。21;<1:29!1A1以上都不对(四)综合题、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性?、对学生课程数据库有以下查询:9!: !A *"E!$*E!;< *"$G!$2/!!$G!$*!$2/*"")GSST此查询要求列出信息系学生选修所有课程的名称。试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始语法树进行优化处理,画出优化后所得的标准语法树。、与技术大学有关的实体集如下:1:&/: 和 /==2/!<(学生注册 /== 系);1U 和 U!#I(书有副本);
1/==2/!< 和 !:/(系里开了课程);"1!:/ 和 !92(课被安排在教室里);1A2!&9:I 和 /==2/!<(教员属于某个特定系)。对于上面的每一个,请说出它们中存在的联系的种类(例如,一对一、一对多或多对多),并画出联系图。、针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?1四、重点习题参考答案(答案仅供参考)(一)填空题【答题方法】仔细读题,找到相应知识点填写,答案尽量不要过长。 数据定义语言 DDL、数据操纵语言 DML 原子的不一致 可串行化函数依赖 原子性Q触发事件 数据完整性约束R事务(二)判断题【答题方法】仔细读题,对的写 T,错的写 F。.:.A::::Q:AR::(三)选择题【答题方法】仔细读题,根据理解选择一个正确选项。2 ! 2 ! !(四)综合题【答题方法】:查找讲义中相关资料,基于理解的基础上有针对性的作答。 解答如下:数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。解答如下:
数据库中数据的更新而变动。数据抽象有三个层次的抽象,物理层(最低层次的抽象)、逻辑层(比物理层层次稍高的抽象)、视图层(最高层次的抽象),对应此数据库系统有三种模式,物理层的数据模式对应的成为物理模式,有时称为内模式,物理模式描述物理层数据库的设计;逻辑层的数据模式对应的成为逻辑模式,逻辑模式则描述逻辑层数据库的设计。视图层的数据模式对应的成为视图模式,有时称为外模式,有时称为子模式,数据库在视图层也可有多个模式,它描述了数据库最终用户的不同视图。4、数据独立性(1)数据库系统的三级模式数据库系统的三级模式结构由外模式、模式和内模式组成。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称概念模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式的优点在于它是对数据的三个抽象级别,它把数据的具体组织留给 DBMS 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。(3)数据库系统的三级结构与两级映像,具有如下的优点:1)保证了数据的独立性。模式与内模式分开,保证了数据的物理独立性;外模式和模式分开,保证了数据的逻辑独立性;2)简化了用户接口。按照外模式编写应用程序或敲入命令,不需了解数据库内部的存储结构,方便用户使用系统;3)有利于数据共享。在不同的外模式下,可有多个用户共享系统中数据,从而减少了数据冗余,并且提高了数据的利用率。4)利于数据的安全与保密。用户在外模式下只能根据权限进行操作,所以只能对限定的数据进行操作,从而保证了其他数据的安全。5、数据模型数据库系统的基础是数据模型,其实一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。数据模型提供了一种描述物理层、逻辑层以及视图层数据库设计的方式。以下是集中常见的数据模型:·关系模型:用表来表示数据和数据间的联系。每个表有多个列,每列有唯一的列名。其是一种基于记录的模型,当前使用最广泛,当前绝大多数数据库系统都是基于这种关系模型。
解答如下:a)多对一b)一对多c)一对多d)一对一e)多对一解答如下:事务故障的恢复:事务故障的恢复是由 DBMS DBMs 执行恢复步骤是:自动完成的,对用户是透明的。(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作;(2)对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库;(3)继续反向扫描日志文件,做同样处理;(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。系统故障的恢复:系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(UNDO )故障发生时未完成的事务,重做(REDO )已完成的事务。系统的恢复步骤是:(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列)和未完成的事务队列(uNDO 队列)。(2)对撤销队列中的各个事务进行UNDO 处理。进行 UNDO 处理的方法是,反向扫描日志文件,对每个 UNDO 事务的更新操作执行逆操作,即将日志记录中“更新前的值”Before Image )写入数据库。( 3 )对重做队列中的各个事务进行 REDO 处理。进行 REDO 处理的方法是:正向扫描日志文件,对
每个 REDO 事务重新执行日志文件登记的操作。即将日志记录中“更新后的值” Afte ,Image )写入数据库。介质故障的恢复:介质故障是最严重的一种故障。恢复方法是重装数据库,然后重做已完成的事务。具体过程是:( 1 ) DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本), 使数据库恢复到转储时的一致性状态;( 2 ) DBA 装入转储结束时刻的日志文件副本;( 3 ) DBA 启动系统恢复命令,由 DBMS 完成恢复功能,即重做已完成的事务。考试指导使用说明:本考试指导只适用于 201803 学期 6 月期末考试使用,包括正考和重修。指导中的章节知识点涵盖考试所有内容,给出的习题为考试类型题,习题答案要点只作为参考,详见课程讲义或课程 ppt。在复习中有任何问题请到课程答疑区咨询。祝大家考试顺利!
优点:(1)它是建立在严格的数据概念基础上的;(2)概念单一,实体、实体之间的联系、数据检索结果都用表表示,数据结构简单清晰,用户易懂易用;(3)关系模型的存储路径对用户透明,数据独立性高、保密性好,同时简化了程序员的工作和数据库开发建立的工作;缺点:由于存储路径对用户透明,它的查询效率往往不如非关系数据库。因此为了提高性能,往往需要优化,增加了开发数据库管理系统的负担。·实体-联系模型:实体-联系(E-R)数据模型基于对现实世界的这样一种认识:现实世界由一组称作实体的基本对象以及这些对象间的联系构成。实体是现实世界可区别与其他对象的一件“事情”或一个“物体”。其被广泛用于数据库概念设计·基于对象数据模型:面向对象数据模型是一种越来越多地被关注的数据模型,可看成 模型增加了封装、方法(函数)和对象标识等概念的扩展。·半结构化数据模型:是一种在 数据管理领域中备受重视的数据模型,允许相同类型数据项含有不同的属性集的数据说明。·网状数据模型:网状模型中的数据用记录的集合来表示,数据间的联系用链接(可看作指针)来表示。数据库中的记录可被组织成任意图的集合。优点:(1)能够更为直接地描述现实世界,如一个结点可以有多个双亲; (2)具有良好的性能,存取效率较高。缺点:(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;(2)其 DDL 、 DML 语言复杂,用户不容易使用。由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径。因此用户必须了解系统结构的细节,加重了编写应用程序的负担。·层次数据模型:与网状模型类似,层次模型也用记录和链接来表示数据和数据间的联系;与网状结构不同的是:层次模型中的记录只能组织成树的集合而不能是任意图的集合。优点:(1)模型简单,对具有一对多层次关系的部门描述非常自然、直观,容易理解,这是层次数据库的突出优点;(2)用层次模型的应用系统性能好,特别是对于那些实体间联系是固定的且预先定义好的应用,采用层次模型来实现,其性能优于关系模型;(3)层次数据模型提供了良好的完整性支持。缺点:(1)现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型不能自然地表示这类联系,只能通过引入冗余数据或引入虚拟结点来解决(2)对插入和删除操作的限制比较多;(3)查询子女结点必须通过双亲结点。6、数据库历史关系型数据库管理系统(RDBMS) 世纪 年代,尽管关系模型在学术上很受重视,但是最初并没有实际的应用,主要因为当时它的性能很不理想,无法和当时已使用较多的网状和层次数据库相提并论,这种情况直到 IBM 研制的第一个关系型数据库产品 SystemR。最初的商品化关系型数据库系统,如 的 , , 和 ! 的 ",在推动说明式查询的高效处理方面做出了重要贡献,到了 世纪 年代早期,关系型数据库已经可以在性能上和网状和层次型数据库进行竞争了。第一个商业化的 RDBMS 是 Ingres。第二章 关系模型关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。如学生选课的关系数据库示例,由三个表组成,一个是学生信息的细节,一个是课程信息,一个是哪个学生选修了那个课程,其关系数据模型如下:student(StudentID,Name,Sex,CollegeID)course(CourseID,Name,Credits,Capacity,Classroom)
sc(StudentID, CourseID,Year,Term,Score)1、关系数据结构关系数据库基于关系模型,使用一系列表来表达数据以及这些数据之间的联系。每个表有多个列,每个列有唯一的名字,表中的一行代表的是这些列之间的联系,而整个表是行的集合。关系数据库每个表中每个列有个列首,这些列首也称作属性,每个属性有一个允许值的集合,称为该属性的域或取值范围,即数据类型。(1)超码、候选码、主码、外码在给定关系 中,能唯一标识元组的属性集合,称这个属性集合为关系的超码。在给定关系 中,能够唯一标识出各个元组的属性结合,并且不含多余属性,称这个属性集合为关系的候选码。由此可见,候选码是超码,但超码不一定是候选码。用于标识元组的候选码,称为主码。由于主码具有唯一性,所以主码是候选码,但候选码不一定是主码。如果关系 的一个属性子集 ,是另一个关系 的主码,则成为 是关系 的外码。其中, 成为参照关系, 称为被参照关系。外码的值,或与被参照关系主码的值对应,或为空值。包含在每一个候选码中的属性,称作主属性;不包含在任何码中的属性成为非主属性或非码属性。(2)基数和度一个关系有固定数量的命名的列(属性)和可变数量的行(或元组),每个元组代表实体集的一个实例,而每个属性包含特定实例的一些性质的一个值。试题集的所有成员有相同的属性,元组的数量称为基数,属性的数量称为度。2、关系代数关系代数包括一个运算集合。这些运算以一个或两个关系作为输入,产生一个新的关系作为结果,主要包括基本关系代数运算集合、附件关系代数运算和扩展关系代数运算。(1)基本关系代数运算关 系 代 数 的 基 本 运 算 有 选 择 运 算 ( ) 、 投 影 预 算 ( #$% ) 、 并 运 算(&'$)、集合差运算("'()、笛卡尔积运算(!')$"*)以及更名预算()1)选择运算选择运算的目的是给出满足给定谓词(条件)的元组,用小写希腊字母 + 来表示,而将谓词写作 + 的下标,并在 + 后的括号中给出作为参数的关系。例如:给出 *" 关系中 , 为“男”的学生信息,就应该写作:+sex=”男”(student)如果要找出 StudentID 大于“200710030004”的学生信息,选择运算就应该写作:+StudentID>”200710030004”(student)选择谓词使用的比较运算符可以是=、≠、<、≤、-、≥;还可以用连词∧和∨将多个谓词合并成一个较复杂的谓词。例如找出性别为“男”的学生中大于“200710030004”的学生信息,就可以表示为:+sex=”男” ∧StudentID>”200710030004”(student)2)投影运算
投影运算用希腊字母 . 表示,所有希望在结果关系中出现的属性作为 . 的下标,而作为参数的关系跟随在 . 后的括号中个,例如:列出所有学生的姓名和学号,就应该写作:.*",/0*"13)集合并运算:用符号∪4)集合差运算:用符号-5)笛卡尔积运算:用符号×,可以将任意两个关系的信息组合在一起。6)更名运算:用小写希腊字母 ρ 表示命名运算可以对关系更名,或赋予关系运算结果一个名字。(2)附加关系代数运算关系代数基本运算式完备性的,它足以表达任何关系代数查询。但是基本运算也有缺陷,即查询表达复杂,表达式冗长。定义附加运算,它们不能增加关系代数的表达能力,但却可以简化一些查询的表达。附件运算主要包括集合交运算(∩),自然连接预算(∞),除运算(÷)以及赋值运算(←)。(3)扩展关系代数运算扩展关系代数是为了更方便地表达用户提出的各种查询请求。例如前面给出的求最大值的过程能不能以最简单的方式给出:23(属性名称)。关系代数运算的扩展包括以下三方面: 允许将算术运算作为投影的一部分; 允许聚集运算,例如计算给定集合中元素的和或它们的平均值; 外连接运算,使得关系代数表达式可以对表示缺失信息的空值 * 进行处理。)广义投影运算)外连接运算)聚集函数运算)数据库修改数据库的修改操作包括:删除、插入、更新删除:运算的表达式和查询表达式非常相似;不同的是,删除不是将所找出的元组显示给用户,而是将它们从数据库中去除;特别要注意的是:删除是将元组整个从数据库中去除,而不仅删除某些属性上的值;用关系代数表达删除操作3、关系演算把(数理逻辑中的)谓词演算引入到关系运算中,就可得到关系演算运算。关系演算又可分为以元组为变量的元组关系演算和以属性(域)为变量的域关系演算。(1)元组关系演算关系代数是过程式的查询语言,在列写关系代数表达式时,它给出了产生查询结果的运算过程,按这个过程依次完成各个运算就能生成我们查询的答案。与之相反,元组关系演算是非过程式的查询语言,它只是描述查询所需信息,而不涉及获得该信息的具体过程。元组关系演算中的查询表达为:{t|P(t)}也就是说,它是所有使谓词 # 为真的元组 的集合。我们用 45246表示元组 在属性2 上的值,并用 7 表示元组 在关系 中。(2)域关系演算
关系演算的另一种形式成为域关系演算("$' '$ * *),使用从属性域中取值的域变量,而不是元组变量的值,尽管如此,域关系演算同元组关系演算联系紧密。第三章 关系数据库标准语言 SQL结构化查询语言 SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言。89 语言介乎于关系代数和元组演算之间(只要是关系代数)的一种语言。虽然 89 字面含义是“查询语言”,但其功能却包括数据定义、查询、更新、视图和控制等许多内容。因此,它是一种通用的、功能极强的关系数据库编程语言,利用它可以在数据库服务器上编制出许多精彩的程序。它是关系数据库的标准语言。1、SQL 的组成核心 SQL 主要有:(1)数据定义语言(data-definition language,DDL),用来定义 SQL 模式、基本表、视图、索引等结构。DDL 用来创建数据库中的各类对象,其中包括:SQL 模式(数据库)的创建、撤消与更改;基本表的创建、撤消与更改;索引的创建与撤消域、触发器和自定义类型的创建与撤消。(2)数据操纵语言(data-manipulation language,DML),数据操纵分为数据查询和数据更新两类,而数据更新又分成插入、删除和修改三种操作。 ML 用来查询和更新数据库中的数据,其中共包括:数据查询。例如单表查询,多表查询,其中包括连接查询和嵌套查询;数据更新。例如、数据插入、删除和修改。数据库系统语言至少包括两个部分(有时称为提供两种不同类型的语言):一是数据定义语言用于定义数据库模式,另一是数据操纵语言用于表达数据库的查询和更新。(1) 数据控制语言,即 SQL DCL.数据控制语用来授予或收回访问数据库的某些权限,控制数据操纵事务的发生时间及效果,对数据库进行监视等。由 DBMS 提供的统一数据控制功能,是数据库系统的主要特征之一。数据控制主要包括如下两个部分:数据库保护。例如数据库的安全性和完整性保护;事务管理。例如数据库故障恢复和并发事物处理。2、数据定义SQL 的数据定义包括数据库模式定义、基本表定义、视图定义和索引定义四个部分。这里指的定义一般包括创建、删除和更改三个部分。下面总结了几点重点内容如下:(1)基本表SQL 使用 CREATE TABLE 语句创建基本表,该语句的一般格式为:CREATE TABLE[模式名]<基本表名>(<列名><数据类型><列级完整性约束条件>[,<列名><数据类型><列级完整性约束条件>]……[,<表级完整性约束条件>]);其中[]内的“[……]”是可选项,<基本表名>是所要定义的基本表名称。表中每个列的类型可以是基本数据类型,也可以是用户预先定义的域名。完整性约束主要有 三种 子句 :主键子 句 (PRIMARY KEY) 、外键子 句 (FOREIGN KEY) 和检查子 句(CHECK)。每个基本表的创建定义中包含了若干列的定义和若干个完整性约束。
(2)视图SQL 数据库中的表,可以是基本表,也可以是视图。在 SQL 中,外模式一级数据结构的基本单位是视图(view),视图是从若干基本表和(或)其他视图构造出来的表。建立视图用CREATE VIEW 语句。这种构造方法采用 SELECT 语句实现。在我们创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,在用户使用视图时才去求对应的数据。因此,视图被称为“虚表”。基表中的数据发生变化,从视图中查询出的数据也随之改变。视图定义后,其中的数据不存储在视图中。1)视图的创建创建视图可用“CREATE VIEW”语句实现。其句法如下:CREATE VIEW <视图名> [(<列名> [,<列名>]…)]AS <子查询>[WITH CHECK OPTION]; 组成视图的属性列名可以全部省略或全部指定;子查询不允许含有 ORDER BY 子句和DISTINCT 短语。3、数据查询数据查询是关系数据库是最基本最常用的操作。标准 89 语言数据查询语句既有关系代数特点,又有关系演算的特点。(1)SELECT 语句的结构SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>] …FROM <表名或视图名>[,<表名或视图名>] …[WHERE <条件表达式>][GROUP BY <列名 1> [HAVING <条件表达式> ] ][ORDER BY <列名 2> [ASC|DESC]];句法中56表示该成分可有,也可无。整个语句的执行过程如下:①读取 FROM 子句中基本表、视图的数据,执行笛卡儿积操作。②选取满足 WHERE 子句中给出的条件表达式的元组。③按 GROUP 子句中指定列的值分组,同时提取满足 HAVING 子句中组条件表达式的那些组。④按 SELECT 子句中给出的列名或列表达式求值输出。⑤ORDER 子句对输出的目标表进行排序,按附加说明 ASC 升序排列,或按 DESC降序排列。9!: 语句中,;< 子句称为“行条件子句”,=&# 子句称为“分组子句”,<2>/= 子句称为“组条件子句”, 子句称为“排序子句”。(2)几个方面的规定1)SELECT 子句的规定9!: 子句用于描述查询输出的表格结构,即输出值的列名或表达式。其形式如下?SELECT[ALL|DISTINCT]<列名或列表达式序列>|*①:/!: 选项保证重复的行将从结果中去除;而 299 选项是默认的,将保证重复的行留在结果中,一般就不必写出。②星号@是对于在 A 子句中命名表的所有列的简写。③列表达式是对于一个单列求聚集值的表达式。聚集函数:2>=0平均值1,/0最小值1,230最大值1,&0和1,!&/:0计数1。聚集函数:2>=0平均值1,/0最小值1,
230最大值1,&0和1,!&/:0计数1。在 89 中,不允许对聚集函数进行复合运算,因此不能写成“9!:2302>=0$11B形式。④允许表达式中出现包含 C、、@和 D以及列名、常数的算术表达式。2)列和基本表的别名操作有时,一个基本表在 9!: 语句中多次出现,即这个表被多次调用。为区别不同的引用,应给每次的引用标上不同的名字,也就是把基本表定义为一个元组变量。有时,用户也可以要求输出的列名与基本表中列名不一致,可在 9!: 子句用“旧名 2 别名”形式改名。在实际使用时,2 字样可省略。3)集合的并、交、差操作当两个子查询结果的结构完全一致时,可以让这两个子查询执行并、交、差操作。并、交、差的运算符为 UNION、INTERSECT 和 EXCEPT。09!: 查询语句 1&//5299609!: 查询语句 109!: 查询语句 1/:!:5299609!: 查询语句 109!: 查询语句 13!#:5299609!: 查询语句 1上述操作中不带关键字 299 时,返回结果消除了重复元组;而带 299 时,返回结果中未消除重复元组。4)其它规定HAVING 短语与 WHERE 子句的区别:作用对象不同! ;< 子句作用于基表或视图,从中选择满足条件的元组 <2>/= 短语作用于组,从中选择满足条件的组。GROUP BY 子句分组,细化聚集函数的作用对象 未对查询结果分组,聚集函数将作用于整个查询结果; 对查询结果分组后,聚集函数将分别作用于每个组; 作用对象是查询的中间结果表; 按指定的一列或队列值分组,值相等为一组。5)嵌套查询在 ;< 子 句 的条件表 达式 A 中运 算 对 象 还可以 是 另 一个 9!: 语 句 ,即SELECT 语句可以嵌套。一个 SELECT-FROM-WHERE 语句称为一个查询块E将一个查询块嵌套在另一个查询块的 ;< 子句或 <2>/= 短语的条件中的查询称为嵌套查询。子查询的限制:不能使用 ORDER BY 子句,有些嵌套查询可以用连接运算替代。子查询的查询条件不依赖于父查询称为不相关子查询:由里向外逐层处理。即每个子查询在上一级查询处理之前求解子查询的结果用于建立其父查询的查找条件。子查询的查询条件依赖于父查询称为相关子查询:首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询若 ;< 子句返回值为真,则取此元组放入结果表然后再取外层表的下一个元组重复这一过程,直至外层表全部检查完为止。
当能确切知道内层查询返回单值时,可用比较运算符(-,F,G,-G,FG,HG或F-)。与 2/I 或 299 谓词配合使用,此时,子查询一定要跟在比较符之后。由此可见,查询涉及多个基本表时用嵌套结构逐次求解层次分明,具有结构程序设计特点。并且嵌套查询的执行效率也比连接查询的笛卡儿积效率高。在嵌套查询中, / 是常用到的谓词,其结构为“元组 /0集合1B,表示元组在集合内。5、数据控制SQL 的数据控制功能包括事务管理和数据保护功能,即数据库并发控制、数据库恢复、数据库安全性保护和数据库完整性控制等。创建表或视图等对象的用户自动获得这些对象的所有操作权。(1)授予权限SQL 语言用 GRANT 语句向用户授予权限,GRANT 语句的—般格式为:GRANT<权限>[,<权限>]…[ON<对象类型><对象名>]TO<用户>[,<用户>][WITH GRANT OPTION];GRANT 语句的语义为:将指定操作对象的指定操作权限授予指定用户。对于不同的操作对象,有不同的操作权限。接受权限的用户可以是一个或者多个用户,也可以是 PUBLIC,即全体用户。如果指定了 WITH HGRANT OPTION 子句,则获得某种权限的用户可以把这种权限再授予其他用户,否则该用户只能使用所获得的权限,而不能将该权限传播给其他用户。(3)回收权限收回权限的 REVOKE 语句—般格式为:REVOKE<权限>[,<权限>] [ON<对象类型><对象名>] FROM<用户>[,<用户>];第四章 高级 SQL 及其它关系语言本章主要是介绍了域约束、参照完整性、断言、触发器、8、 $。第五章 ER 模型1、数据库设计过程数据库设计可分为系统规划、概念设计、逻辑设计、物理设计、数据库实现、运行、维护及演进等解读那。本课程中主要涉及需求分析、概念设计、逻辑设计和物理设计。(1)需求分析阶段需求分析时手机数据库所需要的信息内容和用户对处理的需求,形成需求说明书,作为系统开发和验证的依据。(2)概念设计阶段基于需求说明书,设计数据库概念结构,即概念模型,通常是 E-R 模型。本章主要讲概念设计。概念设计主要包括:对需求分析的结果进行细化、补充、修改和抽象,设计局部概念模型,而后将局部概念模型综合成全局概念模型。(3)逻辑设计阶段概念设计的结果是一个与 无关的概念模型。而逻辑设计的目的是把概念设计阶段设计好的概念模型转换成已选定 DBMS 所支持的数据模型相符合的逻辑结构,比如关系模式。逻辑设计具体包括:把概念模型转换成逻辑模型(通常都是 模型转换成关系模型),并在此基础上,设计外模型以及应用程序与数据库之间通信的逻辑接口。(4)物理设计阶段数据库的物理设计主要就是选择物理结构即数据库的存储记录格式、存储记录安排和存取方法。在关系数据库系统中,物理设计非常简单,因为文件形式是单记录类型文件,