数据库

第一章

数据库与数据管理

基本概念

  1. 数据:描述事物的符号记录,是数据库中存储、用户操纵的基本对象
  2. 数据种类:数字、文字、图形、图像等等
  3. 数据的含义:称为数据的语义,数据与其语义是不可分的。

数据库(DB)

  1. 数据库是按一定结构组织并长期存储在计算机内、可共享的大量数据的有机集合。
  2. 数据库的基本特征:
    1. 数据按一定的数据模型组织、描述和储存
    2. 可为各种用户共享
    3. 冗余度较小
    4. 数据独立性(见下文)较高
    5. 数据统一集中管理

数据独立性

是指应用程序和数据之间相互独立,不受影响。即数据结构的修改不引起应用程序修改的特性。
数据独立性包括:

  1. 数据逻辑独立性,指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变。
  2. 数据物理独立性,指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变。

数据独立性由数据库管理系统的二级映像功能来保证

数据共享

数据面向整个系统,可以被多个用户、多个
应用共享使用。
好处:
减少数据冗余,节约存储空间
避免数据之间的不相容性与不一致性
使系统易于扩充

数据冗杂

数据冗余是指同一数据多次存放。
数据冗余带来的问题有:

  1. 浪费存储空间
  2. 修改麻烦
  3. 潜在的数据不一致性。

数据的统一集中管理

详情见第六章
包括:

  1. 数据的安全性(Security)保护:保护数据以防止不合法的使用造成的数据的泄密和破坏。
  2. 数据的完整性(Integrity)检查:保证数据的正确性、有效性和相容性。
  3. 并发(Concurrency)控制:对多用户的并发操作加以控制和协调,防止相互干扰而得到错误
    的结果。
  4. 数据库恢复(Recovery):将数据库从错误状态恢复到某一已知的正确状态。

数据库管理系统(DBMS)

管理和维护数据库的系统软件。位于用户与操作系统之间的一层数据管理软件 ,是基础软件,是一个大型复杂的软件系统。
主要功能:

  1. 数据组织、存储和管理
    分类组织、存储和管理各种数据
    确定组织数据的文件结构和存取方式
    实现数据之间的联系
    提供多种存取方法提高存取效率
  2. 数据库的事务管理和运行管理
    数据库在建立、运行和维护时由数据库管理系统统一管理和控制
    保证数据的安全性、完整性、多用户对数据的并发使用
    发生故障后的系统恢复
  3. 数据库的建立和维护功能
    数据库初始数据的装载和转换
    数据库转储、恢复功能
    数据库的重组织
    性能监视、分析等
  4. 其它功能
    数据库管理系统与网络中其它软件系统的通信
    数据库管理系统系统之间的数据转换
    异构数据库之间的互访和互操作
  5. 数据定义功能
    提供数据定义语言(DDL)
    定义数据库中的数据对象
  6. 数据操纵功能
    提供数据操纵语言(DML)
    实现对数据库的基本操作 (查询、插入、删除和修改)

数据库系统(DBS)

是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机软件、硬件和人组成的系统。

数据管理

对数据进行分类、组织、编码、存储、检索和维护

数据管理技术的发展过程

  1. 人工管理阶段(20世纪50年代-60年代初)
    产生背景
    应用背景: 科学计算
    硬件背景: 无直接存取存储设备
    软件背景: 没有操作系统
    处理方式: 批处理
    特点
    数据的管理者:用户(程序员),数据不保存
    数据面向的对象:某一应用程序
    数据的共享程度:无共享、冗余度极大
    数据的独立性:不独立,完全依赖于程序
    数据的结构化:无结构
    数据控制能力:应用程序自己控制
  1. 文件系统阶段(20世纪60年代末—70年代初)
    应用背景: 科学计算、数据管理
    硬件背景:磁盘、磁鼓
    软件背景:有文件系统
    处理方式:联机实时处理、批处理
    数据的管理者:文件系统,数据可长期保存
    数据面向的对象:某一应用程序
    数据的共享程度:共享性差、冗余度大
    数据的独立性:独立性差
    数据的结构化:记录内有结构,整体无结构
    数据控制能力:应用程序自己控制

  2. 数据库系统阶段(20世纪70年代—现在)
    应用背景:大规模数据管理
    硬件背景:大容量磁盘、磁盘阵列
    软件背景: 有数据库管理系统
    处理方式:联机实时处理、分布处理批处理
    特点
    数据结构化
    数据的共享性高,冗余度低且易扩充
    数据独立性高
    数据由数据库管理系统统一管理和控制

数据管理技术的发展动力无非就是应用需求的推动、计算机硬件的发展、计算机软件的发展。

总结

  1. 数据库是长期存储在计算机内有组织、大量、共享的数
    据集合。它可以供各种用户共享,具有最小冗余度和较
    高的数据独立性。
  2. 数据库管理系统在数据库建立、运用和维护时对数据库
    进行统一控制,以保证数据的完整性和安全性,并在多
    用户同时使用数据库时进行并发控制,在发生故障后对
    数据库进行恢复。
  3. 数据库系统的出现使信息系统从以加工数据的程序为中
    心转向围绕共享的数据库为中心的新阶段。这样既便于
    数据的集中管理,又能简化应用程序的研制和维护,提
    高了数据的利用率和相容性,提高了决策的可靠性。

数据模型与信息模型

数据库作为一种结构化的数据集合,其使用的结构要使用数据模型来描述现实世界中事物间的联系。
这种模型可分为:

  1. 信息模型(概念模型):是表示实体及其联系的模型。是从用户角度对数据建模,用于DB设计。它是一种独立于计算机系统的模型。主要用于数据库设计。
  2. 数据模型:是表示数据及其联系的模型。是对现实世界数据关系、特征的抽象。是从计算机角度对数据建模,用于DBMS实现。

不妨认为与信息相关的有三个世界:现实世界、信息世界和机器世界。现实世界的需求经过认识、分析、抽象得到信息世界中的概念模型,信息世界中的概念模型经过描述、规范、转换为机器世界中由DBMS支持的数据模型。

概念模型

几个基本概念:
实体:事物及联系
属性:实体的特征(简单属性和复合属性、单值属性和多值属性、存储属性和派生属性)
属性域:属性取值范围
键: 关键字(码)
实体型:结构
实体集:一组同类实体
联系:现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
实体内部的联系:组成实体的各属性之间的联系
实体之间的联系:不同实体集之间的联系
三类实体型间联系:
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)

概念模型的表示方法:(其实百度上这块更详细一些)
用矩形框表示实体集
椭圆形表示属性
菱形表示联系

概念模型的用途:

  1. 概念模型用于信息世界的建模
  2. 是现实世界到机器世界的一个中间层次
  3. 是数据库设计的有力工具
  4. 数据库设计人员和用户之间进行交流的语言

数据模型

三要素:

  1. 数据结构(描述系统的静态特性)
    1. DB对象类型
      与数据类型、内容、性质有关的对象
      与数据之间联系有关的对象
    2. 数据之间的联系:隐式和显式
  2. 数据操作(描述系统的动态特性)
    指对DB各种对象允许进行操作的集合,包括操作语言及有关操作规则的定义。
  3. 数据的完整性约束
    是数据及其关系的制约规则的集合

三种基本数据模型
层次模型、网状模型(均为非关系模型)、关系模型

主要数据模型的分类
1) 基本:层次,网状,关系模型
2) 面向对象模型
3) 谓词模型
4) XML模型
5) 扩充的数据模型

层次模型

数据结构:树结构
层次模型的基本特点:需按路径查看给定记录的值

数据操纵与完整性约束

  1. 数据操纵:查、插、删、改,使用过程化语言
  2. 需满足完整性约束条件:
    插入:无双亲不能插子女;
    删除:删双亲则子女无;
    修改:保证一致性。

优缺点分析:

  1. 优点
    层次模型的数据结构比较简单清晰
    查询效率高,性能优于关系模型,不低于网状模型
    层次数据模型提供了良好的完整性支持
  2. 缺点
    结点之间的多对多联系表示不自然
    对插入和删除操作的限制多,应用程序的编写比较复杂
    查询子女结点必须通过双亲结点
    层次命令趋于程序化

网状模型

数据结构:图结构
网状模型的操纵与完整性约束

  1. 网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束
    码:唯一标识记录的数据项的集合
    一个联系中双亲记录与子女记录之间是一对多联系
    支持双亲记录和子女记录之间某些约束条件
    能够更为直接地描述现实世界,如一个结点可以有多个双

  2. 优点
    能够更为直接地描述现实世界,如一个结点可以有多个双亲
    具有良好的性能,存取效率较高

  3. 缺点
    结构比较复杂,而且随着应用环境的扩大,数据库的结
    构就变得越来越复杂,不利于最终用户掌握
    DDL、DML语言复杂,用户不容易使用
    记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节

关系模型

  1. 数据结构:
    关系模式:关系结构的描述
    简化表示:R ( A1, A2, A3, …An )
  2. 数据操作与完整性约束
    基本数据操作:查、插、删、改
    使用非过程化语言
    需满足关系的完整性约束条件
  3. 存储结构
    关系(表)以文件形式存储

优点

  1. 建立在严格的数学概念的基础上
  2. 概念单一
    实体和各类联系都用关系来表示
    对数据的检索结果也是关系
  3. 关系模型的存取路径对用户透明
    具有更高的数据独立性,更好的安全保密性
    简化了程序员的工作和数据库开发建立的工作

缺点

  1. 存取路径对用户透明,查询效率往往不如格式化数据模型
  2. 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度

数据库系统结构

  1. 从数据库管理系统角度看(DBS内部的体系结构)
    采用三级模式结构,是数据库系统内部的系统结构
  2. 从数据库最终用户角度看(DBS外部的体系结构)
    单用户结构
    主从式结构
    分布式结构
    客户-服务器
    浏览器-应用服务器/数据库服务器多层结构等

基本概念:

  1. “型” 和“值” 的概念:
    型(Type):对某一类数据的结构和属性的说明
    值(Value):是型的一个具体赋值

  2. 模式(Schema)
    数据库逻辑结构和特征的描述
    是型的描述,不涉及具体值
    反映的是数据的结构及其联系
    模式是相对稳定的

  3. 实例(Instance)
    模式的一个具体值
    反映数据库某一时刻的状态
    同一个模式可以有很多实例
    实例随数据库中的数据的更新而变动

三级模式结构

模式的概念:对DB结构及其特征、联系的定义和描述。

  1. 三级模式:子模式/模式/内模式
    关系:模式是内模式的逻辑表示
    内模式是模式的物理实现
    外模式是模式的逻辑子集
  2. 二级映像功能
    子模式/模式映像
    实现数据逻辑独立性;
    完成综合、抽象。
    模式/内模式映像
    实现数据物理独立性;
    完成优化存储。

从最终用户角度看,数据库系统分为:

  1. 单用户结构
    所有应用程序、DBMS、数据都装在一台计算机上,由一个用户独占。
    缺点:数据冗余大,数据不共享。
  2. 主从式结构
    一个主机带多个终端的多用户系统。
    主机上:应用程序、DBMS、数据库。
    终端:各用户通过主机的终端并发存取数据库,共享数据资源。
    缺点:终端数目增加时,主机负担过重,系统性能下降。
  3. 客户/服务器结构
    C/S体系结构的关键在于功能的分布上。从数据库角度看,把原主机负担的非数据库系统的工作交给客户机承担,而数据库服务器则专司DBMS的功能。
    功能划分:
    客户端:由一些应用程序构成,包括:格式处理、数据输入、报表输出、图形界面
    服务器端:数据库、完成事务处理和数据控制(并发、恢复、安全性、完整性)等方面的功能。
    • 两层C/S结构:由服务器、客户机在局部范围内建立局域网。数据库设置在服务器中,客户机可存放其备份或临时表
    • 三层C/S结构(B/S结构)Browser/Server模式
  4. 分布式系统

    • 分布性:数据库中的数据不是存储在同一场地,而是分布存储在多个场地上。
    • 逻辑整体性:数据在逻辑上是相互联系的,是一个整体,支持全局应用。
    • 自治性:每个场地是独立的DBS,它有自己的数据库,自己的用户,自己的CPU,运行自己的DBMS,执行局部应用,具有高度的自治性
    • 协作性:各个场地的DBS又相互协作组成一个整体
      优点:更大范围内的数据共享。
      缺点:
      1. 数据的分布存放,给数据的处理、管理与维护带来困难。
      2. 系统的效率受网络通信的制约。
  5. 并行结构
    在并行机上运行的具有并行处理能力的数据库系统。

DBMS

  1. 是介于用户和OS之间的系统软件,它实现对共享数据的有效组织、管理和各种操作。
    联系:

    1. DBMS在OS的支持下工作;
    2. DBMS是用户操纵、管理DB的工具
  2. DBMS的组成
    (1) 数据定义语言及其翻译处理程序
    (2) 数据操纵语言及其编译(或解释)程序
    (3) 数据库运行控制程序
    (4) 实用程序(装入,转储,恢复,重组,转换,通信)

  3. DBMS运行环境
    (1)集中:单台机器/服务器
    (2)分布: 涉及数据分布、功能分布、处理分布。
    (3)开放:开放的硬件平台、支撑软件、网络支持、数据库等。

第二章

关系模型

关系模型的特点及组成
特点:

  1. 结构简单,表达力强
  2. 语言的一体化
  3. 非过程化的操作
  4. 坚实的数学基础
  5. 操作效率较低
    组成:
  6. 关系数据结构
  7. 关系数据操作
  8. 关系完整性约束

关系数据结构

  1. 单一的数据结构——关系
    现实世界的实体以及实体间的各种联系均用关系来表示
  2. 数据的逻辑结构——二维表
    从用户角度,关系模型中数据的逻辑结构是一张二维表

基础概念

域:是一组具有相同数据类型的值的集合。
笛卡尔积:是域上的一种集合运算

  • 元组(Tuple)
    笛卡尔积中每一个元素(d1,d2,… ,dn)叫作一个n元组(n-tuple)或简称元组。
  • 分量(Component)
    笛卡尔积元素(d1,d2,… ,dn)中的每一个值di叫作一个分量。
  • 基数(Cardinal number)
    一个域允许的不同取值个数称为这个域的基数。
  • 笛卡尔积的表示方法
    笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列的值来自一个域。
    笛卡尔积的有限子集称作对应域上的关系。
    在这个概念上笛卡尔积的有限子集称作对应域的关系

属性
关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。
候选码(候选键)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。
主码(主键)
若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
候选码的诸属性称为主属性(Prime attribute)。
不包含在任何侯选码中的属性称为非码属性(Non-keyattribute)。
全码
在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。

三类关系

基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
查询表
查询结果对应的表
视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

关系的性质:

  • 每列的值为同一类型。
  • 每列具有不同的属性名
  • 任意两元组不能完全相同。
  • 行的次序可以互换。
  • 列的次序可以互换。
  • 分量值是原子的。

关系模式:是关系结构的描述和定义,即二维表的表结构定义。

  1. 关系实质上是一张二维表。
  2. 因此,关系模式必须指出
  3. 表的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的对应关系。
  4. 完整性约束条件
  5. 属性间的数据依赖关系集合

关系模式可以形式化地表示为:R(U,D,DOM,F)

关系模式
对关系的描述
静态的、稳定的
关系
关系模式在某一时刻的状态或内容
动态的、随时间不断变化的
关系模式和关系往往统称为关系,通过上下文加以区别。

关系数据库: 在一个给定的应用领域中,所有实体及实体之间联系的关
系的集合构成一个关系数据库。

关系模型的数据操作

关系模型中常用的关系数据操作有四种:
(1)数据查询。基本操作有:关系属性的指定;关系元组的选择;
两个关系的合并。
(2)数据插入。在关系内插入一些新元组。
(3)数据删除。在关系内删除一些元组。
(4)数据修改。修改关系元组的内容。可分解为:先删除要改的元组,再插入新元组。
关系数据操作是一种集合式操作。复杂的关系数据操作可通过基本的关系数据运算获得。此外,还需要有关系的操作规则及具体的关系数据语言来实现这些操作。

关系数据语言的分类

  1. 关系代数语言
    用对关系的运算来表达查询要求
    典型代表:ISBL
  2. 关系演算语言:用谓词来表达查询要求
    元组关系演算语言
    谓词变元的基本对象是元组变量
    典型代表:APLHA, QUEL
    域关系演算语言
    谓词变元的基本对象是域变量
    典型代表:QBE
  3. 具有关系代数和关系演算双重特点的语言
    典型代表:SQL

关系的完整性

三类完整性约束:

  1. 实体完整性
  2. 参照完整性
  3. 用户定义的完整性
    前两种由关系系统自动支持,而用户定义的完整性是应用领域需要遵循的约束条件。

1)实体完整性规则 :若属性A是基本关系R的主码属性,则属性A不能取空值。

说明:
(1)该规则是对基本关系的约束
和限定。
(2)实体有唯一性标识—主键。
(3)主键上的属性不能取空值。

关系模型必须遵守实体完整性规则的原因
(1) 实体完整性规则是针对基本关系而言的。一个基本
表通常对应现实世界的一个实体集或多对多联系。
(2) 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。
(3) 相应地,关系模型中以主码作为唯一性标识。
(4) 组成主码的各属性都不能取空值(有多个候选码时,主码外的候选码可取空值)

2)参照完整性
引用关系:关系中的某属性的值需要参照另一关系的属性来取值。

若属性(组) F是R的一个属性(组),但不是R的键。它与S的主键K相对应,则对于R中每个元组在F上的值必为下列之一:
(1)取空值(F的每个属性值均为空);
(2)等于S中某个元组的主键值。
则称F是R的外键。

参照完整性定义了外键与主键之间
的引用规则。指外键不能引用不存在的主键值

3)用户定义的完整性

  1. 反映具体应用所涉及的数据应满足的语义要求、约束条件。
  2. 例:学生关系中的年龄在15~45之间,选修关系中的成绩在0~100之间。
    即一些实际需要的约束。
    关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。

关系代数

什么是关系代数:关系代数是一种抽象的查询语言。它以关系为运算对象,通过对关系进行“组合”或“分割”,得到所需的数据集合—关系。

集合运算

前提是同类关系

  1. 并运算
  2. 差运算
  3. 交运算
    若为不同类关系,则做笛卡尔积。

像集:待后续补充

关系运算

  1. 选择
  2. 投影
  3. 连接(连接运算要指明条件,注意自然连接指向同名属性,等值连接不把重复的属性去掉,而自然连接要把重复属性去掉)
  4. 除 (就是找出跟除数有关联的像集)

关系代数五种基本运算:
投影,选择,并,差,笛卡尔积

5种基本运算的作用:
1)关系的属性指定
∏ A1 , A2 , …, An (R)
2)关系的元组选择
σF (R)
3)两个关系的无条件全连接
R1×R2
4)关系中元组的插入
R1∪R2
5)关系中元组的删除
R1-R2

扩充的关系运算:

广义投影:
设有关系模式R,对其进行广义投影运算为 ∏ F1,…,Fn (R),其中F1,…,Fn是涉及R中常量和属性的算术表达式。通过这种广义投影运算对投影进行扩展。
赋值:
设有相容关系R和S,则通过赋值运算可对关系R赋予新的关系S,记为:R<-S。其中,S通常是经过关系代数运算得到的关系。通过赋值运算,可把复杂的关系表达式化为若干简单的表达式进行运算。特别是对于插、删、改操作很方便

外连接:

  1. 外连接:R和S作自然连接时,把原该舍弃的元组也保留在新关系中,同时在这些元组新增加的属性上填空值(NULL)。
  2. 左外连接:只把R中原该舍弃的元组放到新关系中。(就是左边没匹配上保留,右边对应写null就行)
  3. 右外连接:只把S中原该舍弃的元组放到新关系中。(同上)

半连接:
设有关系模式R和S,则R和S的自然连接只在关系R或关系S的属性集上的投影,称为半连接,R和S的半连接记为 ,S和R的半连接记为 。

聚集:
根据关系中的一组值经统计、计算得到一个值作为结果

外部并:将属性集扩充为他两的并集,在原来的元组上对新的属性值填上null就行了。
重命名:作用对象是关系

查询优化

分类:
代数优化
物理优化

关系数据库管理系统查询处理阶段 :
1)查询分析
2)查询检查
3)查询优化
4)查询执行

关系系统的查询优化

  1. 是关系数据库管理系统实现的关键技术又是关系系统的优点所在
  2. 减轻了用户选择存取路径的负担
    非关系系统
  3. 用户使用过程化的语言表达查询要求,执行何种记录级的操作,
    以及操作的序列是由用户来决定的
  4. 用户必须了解存取路径,系统要提供用户选择存取路径的手段,
    查询效率由用户的存取策略决定
  5. 如果用户做了不当的选择,系统是无法对此加以改进的

查询的开销主要包括:
在集中数据库中:总代价 = I/O代价 + CPU代价 + 内存代价
分布式数据库中: 总代价 = …… + 网络代价
查询的执行开销与多个因素有关:
软件环境、硬件环境、数据量、方法。
查询优化的总目标
 选择有效的策略
  求得给定关系表达式的值
 使得查询代价最小(实际上是较小)

查询优化的一般策略:
基本原则:尽量减
少查询的中间结果
1) 尽可能先做选择、投影运算。
2) 在执行连接前对关系适当地预处理。
其方法有:a. 索引连接方法
3) 同时进行投影运算和选择运算。
例: ∏ sno(σ grade≥90(SC))
4) 让投影同其前或其后的其它运算同时进行。
例: ∏ sno(S1-S2) 、 S1 ∏ sno (S2)
5) 合并笛卡尔积与其后的选择为连接运算。
例: σR. A > S. C (R×S)= R S
A>C
6) 找出公共子表达式。

物理优化方法

  1. 基于规则的启发式优化
    启发式规则是指那些在大多数情况下都适用,但不是在每种情况下都是适
    用的规则。
  2. 基于代价估算的优化
    优化器估算不同执行策略的代价,并选出具有最小代价的执行计划。
  3. 两者结合的优化方法:
    常常先使用启发式规则,选取若干较优的候选方案,减少代价估算的工
    作量。
    然后分别计算这些候选方案的执行代价,较快地选出最终的优化方案 。

第三章

注意:WHERE子句中是不能用聚集函数作为条件表达式的,聚集函
数只能用于SELECT子句和GROUP BY中的HAVING子句。

SELECT Sno, Cno
FROM SC
WHERE Grade IS NULL;
注意这里的‘IS’不能用等号(‘=’) 代替。

第四章

数据依赖

  1. 是一个关系内部属性与属性之间的一种约束关系
  2. 通过属性间值的相等与否体现出来的数据间相互联系
  3. 是现实世界属性间相互联系的抽象
  4. 是数据内在的性质
  5. 是语义的体现
    数据依赖的主要类型
  6. 函数依赖(Functional Dependency,简记为FD)
  7. 多值依赖(Multi-Valued Dependency,简记为
    MVD)
    第一范式:
    每个分量必须是不可分开的数据项。

第一范式存在的问题:

1.数据冗余度高
浪费大量的存储空间
2.更新异常
数据冗余 ,更新数据时,维护数据完整性代价大。
3.插入异常。
插入异常是指应该插入到数据库中的数据不能执
行插入操作的情形。
注意:当一个元组在主键的属性上部分或全部为空时,该元
组不能插入到关系中。
4.删除异常。
删除异常是指不应该删去的数据被删去的情形。

原因:由存在于模式中的某些数据依赖引起的
解决办法:通过分解关系模式来消除其中不合适的数据依赖

第五章

数据库设计是指对于一个给定的应用环境,构造(设计)最优
的数据库逻辑模式和物理结构,然后据此建立数据库及其应用系
统,使之能够有效地存储和管理数据,满足各种用户的应用需求,
包括信息管理要求和数据操作要求。
 信息管理要求:在数据库中应该存储和管理哪些数据对象 。
 数据操作要求:对数据对象需要进行哪些操作,如查询、增、
删、改、统计等操作。

第六章

数据库的安全性

数据库的共享特性必然带来数据库的安全性问题,
因此数据库系统中的数据共享不能是无条件的共享。
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。

数据库的不安全因素通常有

  1. 非授权用户对数据库的恶意存取和破坏
    通常数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。
  2. 数据库中重要或敏感的数据被泄露
    数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。也可以审计日志分析。
  3. 安全环境的脆弱性
    数据库的安全性与计算机系统的安全性紧密相连
    需要建立起一套计算机系统的概念和标准

TCSEC/TDI安全标准:
安全级别|定义
A1|验证设计
B3|安全域
B2|结构化保护
B1|标记安全保护
C2|受控的存取保护
C1|自主安全保护
D|最小保护

安全控制方法
常用方法:

  1. 用户身份鉴别
    • 静态口令鉴别
    • 动态口令鉴别
    • 生物特征鉴别
    • 智能卡鉴别
  2. 存取控制

通过SQL的GRANT语句和REVOKE语句实现对用户权限的控制。
AUDIT和NOAUDIT负责审计相关的内容

数据库的完整性控制

包含三个方面:

  1. 数据的正确性
    是指数据是符合现实世界语义,反映了当前实际状况的
  2. 数据的有效性
    是指数据的值是否属于所定义的有效范围
  3. 数据的相容性
    是指数据库同一对象在不同关系表中的数据是符合逻辑的

DBMS应该有哪些完整性控制功能:

  1. 定义功能:提供定义完整性约束条件的机制。
  2. 检查功能:检查用户的操作请求是否违背了约束。
    立即执行约束:
    一条语句执行完后立即检查。
    延迟执行约束:
    整个事务执行结束后进行检查,正确方可提交。
  3. 防范功能:若违背约束,系统将拒绝操作。
    (对延迟执行约束,拒绝整个事务,
    把DB恢复到该事务前的原状)

如何实现完整性控制:

  1. 实体完整性
  2. 参照完整性
  3. 用户定义的完整性
  4. 域约束
  5. 断言
  6. 触发器

事务管理与数据库恢复

事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务的状态:事务初态、活动状态、局部提交状态、提交状态、失败状态、中止状态。
事务的特性(ACID):原子性、一致性、隔离性、持久性
破坏事务特性的因素:并发、交叉执行,强制事务停止执行。
事务管理包括:

  1. 在并发执行时保障事务,ACID调整的并发控制技术。
  2. 在系统故障时保障事务,ACID特征的恢复技术;

由于故障是不可避免的,它们包括计算机硬件故障、软件的错误、操作员的失误、恶意的破坏等。而通常故障会影响运行中的事务非正常中断,影响数据库中数据的正确性。破坏数据库,全部或部分丢失数据。这个时候就需要引进数据库恢复技术。
数据库恢复是指:指DBMS把DB从错误状态恢复到某一正确状态的功能。而恢复的基本原理是利用冗杂数据重建数据库。

故障种类:

  1. 事务内部故障
  2. 系统故障
  3. 介质故障
  4. 计算机病毒

恢复机制的两个关键问题:

  1. 如何建立冗杂数据
  2. 如何利用这些冗杂数据实施数据库恢复。

数据转储是指数据库管理员定期地将整个数据库复制到磁带、盘或其他存储介质上保存起来的过程。
备用的数据文本称为后备副本(backup)或后援副本。

事务的并发控制

并发操作:在多用户共享系统中,多个用户同时存取同一数据的情形称为并发操作。