koorio.com
海量文库 文档专家
当前位置:首页 >> 数学 >>

vb课件第5章2datab


第五章 数据库基础
数据库基础提要 数据库理论:数据模型、数据库的体系结构、 关系模型和关系演算理论、关系数据库的规 范化设计、函数依赖、范式、关系数据库的 完整性和安全性。 关系数据库语言SQL(Structured Query Language,结构化查询语言): SQL数据库 体系结构、 SQL的数据定义DDL, SQL的 数据操纵DML, SQL的数据控制DCL



1. 数据库理论
数据库的发展历史(一)
关系系统和未来 ( 1)层次 、 网状系统 、 当前主流 关系系统 和未来 ) 层次、网状系统、当前主流关系系统 发展面向对象系统 面向对象系统。 发展面向对象系统。 两条主线, ( 2)数据库发展史上的 两条主线 , 即数据模型的 ) 数据库发展史上的两条主线 演变和数据语言的演变。 演变和数据语言的演变。 数据模型的演变经历了从层次、网状模型到关系模 数据模型的演变经历了从层次、 进而从关系、嵌套关系、 型,进而从关系、嵌套关系、复合对象模型到面 向对象模型这样一个过程。 向对象模型这样一个过程。数据语言的演变经历 了从基本SQL、嵌入 了从基本 、嵌入SQL、动态 、动态SQL、递归 、递归SQL、 、 发展这样一个过程。 到ORDB的SQL发展这样一个过程。 的 发展这样一个过程

数据库的历史发展(二)
( 3) 数据库技术有两个端点 。 一个端点是 “ 用 ) 数据库技术有两个端点。 一个端点是“ 即用户如何来使用数据库; 户”,即用户如何来使用数据库;另一个端点 系统” 即数据库技术是如何实现的。 是“系统”,即数据库技术是如何实现的。 (4)数据库设计演变的过程,即从 图(目前 )数据库设计演变的过程,即从ER图 常用的数据建模工具实体—关系模型 关系模型Entity 常用的数据建模工具实体 关系模型 Relationship Model,简称 模型)、语义对 模型)、 ,简称ER模型)、语义对 联系图、 类图的发展过程。 象联系图、UML类图的发展过程。 类图的发展过程

数据库技术的基本术语( 数据库技术的基本术语(一)
定义1 数据库( 定义 : 数据库(Database,简记为 ) ,简记为DB) DB是长期存储在计算机内、有组织的、统一 是长期存储在计算机内、 是长期存储在计算机内 有组织的、 管理的相关数据的集合。 能为各种用户共 管理的相关数据的集合。DB能为各种用户共 具有较小冗余度、 享,具有较小冗余度、数据间联系紧密而又 有较高的数据独立性等特点。 有较高的数据独立性等特点。

数据库技术的基本术语( 数据库技术的基本术语(二)
定义2 数据库管理系统( 定义 : 数据库管理系统(Database Management System,简记为 ,简记为DBMS)DBMS是位于用户与操作 ) 是位于用户与操作 系统( )之间的一层数据管理软件, 系统(OS)之间的一层数据管理软件,它为用户或 应用程序提供访问DB的方法 包括DB的建立 的方法, 的建立、 应用程序提供访问 的方法,包括 的建立、查 更新及各种数据控制。 询、更新及各种数据控制。DBMS总是基于某种数 总是基于某种数 据模型的,如层次型、网状型、 据模型的,如层次型、网状型、关系型和面向对象 型等。 型等。
DBMS OS DB 用户

数据库技术的基本术语( 数据库技术的基本术语(三)
定义3: 数据库系统( 定义 数据库系统(Database System, , 简记为DBS) DBS是实现有组织地、动态 是实现有组织地、 简记为 ) 是实现有组织地 地存储大量关联数据、 关联数据 地存储大量关联数据、方便多用户访问的计 算机硬件 软件和数据资源组成的系统, 硬件、 算机硬件、软件和数据资源组成的系统,即 它是采用数据库技术的计算机系统。 它是采用数据库技术的计算机系统。 定义4 数据库技术是研究数据库的结构、 定义 数据库技术是研究数据库的结构、存 设计、管理和使用的一门软件学科。 储、设计、管理和使用的一门软件学科。

常用名词( 常用名词(一)
模型:是指明事物本质的方法,是对事物、现象、 模型:是指明事物本质的方法,是对事物、现象、
过程等客观系统的简化描述, 过程等客观系统的简化描述,是理解系统的思维工 具。

模型分为两个层次:一层是面向用户的概念模型; 概念模型; 模型分为两个层次:一层是面向用户的概念模型
另一层是面向计算机系统的数据模型。 另一层是面向计算机系统的数据模型。 数据模型 数据库系统中,通常按数据结构的类型 数据结构的类型来命名数据 数据库系统中,通常按数据结构的类型来命名数据 模型

常用名词( 常用名词(二)
(1)层次模型 层次模型
用树型(层次 结构表示实体类型及实体间联系的 用树型 层次)结构表示实体类型及实体间联系的 层次 数据模型称层次模型( 数据模型称层次模型(Hierarchical Model)。 )。 上一层记录类型和下一层记录类型之间的联系是 联系。 1:N联系。

(2)网状模型 网状模型
用有向图结构表示实体类型及实体间联系的数 据模型称为网状模型(Network Model)。 据模型称为网状模型 。 箭头表示从箭尾的记录类型到箭头的记录类型间 联系是N:1联系。 联系。 联系是 联系

常用名词( 常用名词(三)
(3)关系模型 关系模型
关系模型(Relational Model)的主要特征是用二维表格 关系模型 的主要特征是用二维表格 表达实体集。 表达实体集。 关系模型是由若干个关系模式组成的集合。 关系模式组成的集合 关系模型是由若干个关系模式组成的集合。

(4)对象模型 (4)对象模型
面向对象模型(Object Model)中基本的概念 面向对象模型(Object Relational Model)中基本的概念 是对象和类。 是对象和类。 面向对象数据库是面向对象概念 数据库技术的结合 面向对象概念与 的结合。 面向对象数据库是面向对象概念与数据库技术的结合。

2. 数据库的体系结构
数据库的体系结构分为三级:外部级、 数据库的体系结构分为三级:外部级、概念级和内 部级。 部级。 从某个角度看到的数据特性,称为“数据视 从某个角度看到的数据特性,称为“ 图”(Data View)。 。 外部级最接近用户, 外部级最接近用户,是单个用户所能看到的数据特 用户数据视图称为 外模式” 称为“ 性,即用户数据视图称为“外模式”。概念级涉及 到所有用户的数据定义,也就是全局数据视图 全局数据视图, 到所有用户的数据定义,也就是全局数据视图,称 概念模式” 内部级最接近于物理存储设备, “概念模式”。内部级最接近于物理存储设备,涉 及到物理数据存储的结构,物理存储数据视图 存储数据视图称为 及到物理数据存储的结构,物理存储数据视图称为 内模式” “内模式”。

数据库的三级模式结构
用户的局部逻辑结构 数据库 整体逻辑结构 数据库的物理结构

逻辑数据 独立性

物理数据 独立性

三级结构和两级映象(一) 三级结构和两级映象(
(1)概念模式 ) 概念模式是数据库中全部数据的整体逻辑 结构的描述。它由若干个概念记录类型组成, 结构的描述。 它由若干个概念记录类型组成, 还包含记录间联系、 还包含记录间联系 、 数据的完整性安全性等要 求。 数据按外模式的描述提供给用户, 数据按外模式的描述提供给用户 , 按内模 式的描述存储在磁盘中, 式的描述存储在磁盘中 , 而 概念模式提供了连 接这两级的相对稳定的中间点, 接这两级的相对稳定的中间点 , 并使得两级中 任何一级的改变都不受另一级的牵制。 任何一级的改变都不受另一级的牵制。 概念模式必须不涉及到存储结构、 概念模式必须不涉及到存储结构、访问技术 等细节。只有这样,概念模式才能达到“ 等细节 。 只有这样 , 概念模式才能达到 “ 物理 数据独立性”。概念模式简称为“模式”。 数据独立性” 概念模式简称为“模式”

三级结构和两级映象(二) 三级结构和两级映象(
(2)外模式 ) 外模式是用户与数据库系统的接口, 外模式是用户与数据库系统的接口,是用户用到 的那部分数据的描述。 的那部分数据的描述。外模式由若干个外部记录类 型组成。 型组成。 用户使用数据操纵语言(DML)语句对数据库进 用户使用数据操纵语言 语句对数据库进 行操作,实际上是对外模式的外部记录进行操作。 行操作, 实际上是对外模式的外部记录进行操作。 有了外模式后,程序员不必关心概念模式, 有了外模式后,程序员不必关心概念模式,只与外 模式发生联系,按照外模式的结构存储和操纵数据。 模式发生联系,按照外模式的结构存储和操纵数据。 (3)内模式 ) 内模式是数据库在物理存储方面的描述, 内模式是数据库在物理存储方面的描述,定义所 有内部记录类型、索引和文件的组织方式,以及数 有内部记录类型、 索引和文件的组织方式, 据控制方面的细节。 据控制方面的细节。

三级结构和两级映象( 三级结构和两级映象(三)
(4)模式/内模式映象 )模式/ 模式/ 模式 / 内模式映象存在于概念级和内部级之 用于定义概念模式和内模式之间的对应性。 间 , 用于定义概念模式和内模式之间的对应性 。 由于这两级的数据结构可能不一致, 即记录类型、 由于这两级的数据结构可能不一致 , 即记录类型 、 字段类型的命名和组成可能不—样 字段类型的命名和组成可能不 样,因此需要这个 映象说明概念记录和内部记录之间的对应性。 映象说明概念记录和内部记录之间的对应性。 模式/内模式映象一般是放在内模式中描述的。 模式/内模式映象一般是放在内模式中描述的。 (5)外模式/模式映象 )外模式/ 外模式/ 外模式/模式映象存在于外部级和概念级之 用于定义外模式和概念模式之间的对应性。 间,用于定义外模式和概念模式之间的对应性。 外模式/模式映象一般是放在外模式中描述的。 外模式/模式映象一般是放在外模式中描述的。

无法显示图像。计算机可能没有足够的内存以打开该图像,也可能是该图像已损坏。请重新启动计算机,然后重新打开该文件。如果仍然显示红色 “x”,则可能需要删除该图像,然后重新将其插入。

用户 A1 主语言 +DML

用户 A2 主语言 +DML

用户 B1 主语言 +DML

用户 B2 主语言 +DML

用户 B3 主语言 +DML

外模式 A

外模式 B

外模式/模式 映象 A 由数据库 管理员建 立和维护

外模式/模式 映象 B

概念模式

数据库 管理系 统

模式/内模式映象

OS 内模式

两级映射数据独立

数据库

(1)物理数据独立性 物理数据独立性 如果数据库的内模式要修改, 如果数据库的内模式要修改 , 即数据库的物理 结构有所变化,那么只要对模式/ 结构有所变化,那么只要对模式/内模式映象做相 应的修改即可。可以使概念模式尽可能保持不变, 应的修改即可。可以使概念模式尽可能保持不变, 对内模式的修改尽量不影响概念模式 尽量不影响概念模式, 对内模式的修改尽量不影响概念模式 ,对于外模式 和应用程序的影响更小, 达到物理数据独立性。 和应用程序的影响更小,以达到物理数据独立性。 2) (2)逻辑数据独立性 如果数据库的概念模式要修改, 如果数据库的概念模式要修改,比如增加记录 类型或增加数据项,那么只要对外模式/ 类型或增加数据项,那么只要对外模式/模式映象 做相应的修改, 做相应的修改,使外模式和应用程序尽可能保持不 这样,称数据库达到了逻辑数据独立性。 变。这样,称数据库达到了逻辑数据独立性。

用户及用户界面
用户是指使用数据库的应用程序或联机终端用户。 用户是指使用数据库的应用程序或联机终端用户。 是指使用数据库的应用程序或联机终端用户
DBMS还提供数据操纵语言DML(Data DBMS还提供数据操纵语言DML(Data Manipulation 还提供数据操纵语言 Language),让用户或程序员使用。 Language),让用户或程序员使用。 DML可自成系统 在终端上直接对数据库进行操作, 可自成系统, DML可自成系统,在终端上直接对数据库进行操作,这种 DML称为交互型DML或宿主型DML。 称为交互型DML或宿主型DML DML称为交互型DML或宿主型DML。

用户界面是用户和数据库系统之间的一条分界线, 用户界面是用户和数据库系统之间的一条分界线, 是用户和数据库系统之间的一条分界线 在界限下面,用户是不可知的。 在界限下面,用户是不可知的。用户界面定在外部 级上,用户对于外模式是可知的。 级上,用户对于外模式是可知的。

3. 关系模型
关系模型的基本概念

基本术语(1) 基本术语
定义1 用二维表格表示实体集, 定义 用二维表格表示实体集,用关键码进行数据导航 的数据模型称为关系模型( 的数据模型称为关系模型(relational Model)。 )。 数据导航(data navigation)是指从已知数据查找未知 数据导航 是指从已知数据查找未知 数据的过程和方法。 数据的过程和方法。
工号 4001 4002 4124 5018 姓名 zhang li liu wang 年龄 50 40 35 25
图1 职工登记表

性别 M F M M

工资 2000 1500 2000 1000

基本术语(2) 基本术语
在关系模型中,字段称为属性, 在关系模型中,字段称为属性,字段值称为属 性值,记录类型称为关系模式。关系模式名是R 性值,记录类型称为关系模式。关系模式名是R。 记录称为元组( tuple) 记录称为元组 ( tuple ) * , 元组的集合称为关 relation) 或实例( instance) 系 ( relation ) 或实例 ( instance ) 。 一般用 大写字母A 表示单个属性, 大写字母 A 、 B 、 C 、 … 表示单个属性 , 用大写 表示属性集, 字母 …、 X 、 Y 、 Z 表示属性集 , 用小写字母表 、 示属性值, 有时也习惯称呼关系为表或表格, 示属性值 , 有时也习惯称呼关系为表或表格 , 元组为行(row) 属性为列(column) (row), (column)。 元组为行(row),属性为列(column)。 关系中属性个数称为“元数” arity) 关系中属性个数称为“元数”(arity)*,元 组个数为“基数”(cardinality)。 组个数为“基数”(cardinality)。

基本术语(3) 基本术语
关键码(key,简称键 由一个或多个属性组成。 关键码 (key,简称键 ) 由一个或多个属性组成 。 在实 (key, 简称键) 际使用中,有下列几种键。 际使用中,有下列几种键。 超键( Key) 在一个关系中, ( 1 ) 超键 ( super Key ) 在一个关系中 , 能唯一标识 元组的属性或属性集称为关系的超键。 元组的属性或属性集称为关系的超键。 候选键( Key) ( 2 ) 候选键 ( candidate Key ) 如果一个属性集能唯 一标识元组,且又不含有多余的属性, 一标识元组,且又不含有多余的属性,那么这个属性 集称为关系的候选键。 集称为关系的候选键。 主键(primary 在图1 工号, 姓名) ( 3 ) 主键 (primary Key) 在图 1 中 , ( 工号 , 姓名 ) 是模式的一个超键,但不是候选键, 工号) 是模式的一个超键,但不是候选键,而(工号)是候 选键。在实际使用中,如果选择(工号) 选键。在实际使用中,如果选择(工号)作为删除或 查找元组的标志,那么称(工号)是主键。 查找元组的标志,那么称(工号)是主键。 外键( Key)若一个关系R中包含有另一 (4)外键(foreign Key)若一个关系 中包含有另一 个关系s的主键所对应的属性组 的主键所对应的属性组F,则称F为 的外键 的外键。 个关系 的主键所对应的属性组 ,则称 为R的外键。

关系的定义和性质
定义2 关系是一个属性数目相同的元组的集合。 定义2 关系是一个属性数目相同的元组的集合。 在关系模型中,对关系作了下列规范性限制: 在关系模型中,对关系作了下列规范性限制: 关系中每一个属性值都是不可分解的; (1)关系中每一个属性值都是不可分解的; 关系中不允许出现重复元组( (2)关系中不允许出现重复元组(即不允许出现 相同的元组) 相同的元组); 由于关系是一个集合, (3)由于关系是一个集合,因此不考虑元组间的 顺序,即没有行序; 顺序,即没有行序; 元组中的属性在理论上也是无序的, (4)元组中的属性在理论上也是无序的,但使用 时按习惯考虑列的顺序。 时按习惯考虑列的顺序。

4. 关系数据库理论 1.关系模型的外延和内涵
外延就是通常所说的关系、表或当前值。 外延就是通常所说的关系、表或当前值。由于用户经 常对关系进行插入、删除和修改操作, 常对关系进行插入、删除和修改操作,因此外延是与 时间有关的,随着时间的推移在不断变化。 时间有关的,随着时间的推移在不断变化。 内涵是与时间独立的,是对数据的定义, 内涵是与时间独立的,是对数据的定义,以及数据完 整性约束的定义。对数据的定义包括对关系、属性、 整性约束的定义。对数据的定义包括对关系、属性、 域的定义和说明。 域的定义和说明。对数据完整性约束的定义涉及面较 主要包括以下几个方面: 广,主要包括以下几个方面: 静态约束,涉及到数据之间联系(称为数据依赖 数据依赖, 静态约束,涉及到数据之间联系(称为数据依赖,data )、主键和值域的设计 dependences)、主键和值域的设计。 )、主键和值域的设计。 动态约束,定义各种操作(插入、删除、修改) 动态约束,定义各种操作(插入、删除、修改)对关系 值的影响。 值的影响。

2. 关系模式的冗余和异常问题(一) 关系模式的冗余和异常问题(
例1 TNAME t1 t1 t1 t2 t2 t3 ADDRESS a1 a1 a1 a2 a2 a3 C# c1 c2 c3 c4 c5 c6 CNAME n1 n2 n3 n4 n2 n4

数据冗余:如果一个教师教几门课程,那么这个教师 的地址就要重复几次存储。 操作异常:由于数据的冗余,在对数据操作时会引起 各种异常

关系模式的冗余和异常问题( 2. 关系模式的冗余和异常问题(二)






由于数据的冗余,在对数据操作时会引起各种异常: 由于数据的冗余,在对数据操作时会引起各种异常: 修改异常。譬如教师t1教三门课程, t1教三门课程 修改异常。譬如教师t1教三门课程,在关系中就会有三个 元组。如果他的地址变了,这三个元组中的地址都要改变。 元组。如果他的地址变了,这三个元组中的地址都要改变。 若有一个元组中的地址未更改, 若有一个元组中的地址未更改,就会造成这个教师的地址 不惟一,产生不一致现象。 不惟一,产生不一致现象。 插入异常。如果一个教师刚调来,尚未分派教学任务, 插入异常。如果一个教师刚调来,尚未分派教学任务,那 么要将教师的姓名和地址存储到关系中去时,在属性C#和 么要将教师的姓名和地址存储到关系中去时,在属性C#和 C# CNAME上就没有值 空值)。 上就没有值( )。在数据库技术中空值的语义 CNAME上就没有值(空值)。在数据库技术中空值的语义 是非常复杂的,对带空值元组的检索和操作也十分麻烦。 是非常复杂的,对带空值元组的检索和操作也十分麻烦。 删除异常。如果在例中要取消教师t3的教学任务, t3的教学任务 删除异常。如果在例中要取消教师t3的教学任务,那么就 要把这个教师的元组删去,同时也把t3 t3的地址信息从表中 要把这个教师的元组删去,同时也把t3的地址信息从表中 删去了。这是一种不合适的现象。 删去了。这是一种不合适的现象。

2 . 关系模式的冗余和异常问题(三) 关系模式的冗余和异常问题(
TNAME t1 t2 t3 ADDRESS a1 a2 a3 TNAME t1 t1 t1 t2 C# c1 c2 c3 c4 c5 c6 CNAME n1 n2 n3 n4 n2 n4

解:规范化

t2 t3

函数依赖的定义( 函数依赖的定义(一)
设有关系模式R( ), ),X和 是属性集 是属性集U的子 设有关系模式 (U), 和Y是属性集 的子 函数依赖( 集,函数依赖(functional dependency, , 简记为FD)是形为X→Y的一个命题,只要 的一个命题, 简记为 )是形为 的一个命题 只要r 的当前关系, 中任意两个元组 中任意两个元组t和 , 是R的当前关系,对r中任意两个元组 和s, 的当前关系 都有t[ ] [ ]蕴涵t[ ] [ ], ],那 都有 [X]=s[X]蕴涵 [Y]=s[Y],那 么称FD X→Y在关系模式 (U)中成立。 在关系模式R( )中成立。 么称 在关系模式 函数依赖是关系属性之间的一种联系。 函数依赖是关系属性之间的一种联系。

函数依赖的定义( 函数依赖的定义(二)
有一个关于学生选课、教师任课的关系模式: 例 3 有一个关于学生选课、教师任课的关系模式: S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) 属性分别表示学生学号、姓名、选修课程的课程号、 属性分别表示学生学号、姓名、选修课程的课程号、 成绩、课程名、任课教师姓名和年龄等意义。 成绩、课程名、任课教师姓名和年龄等意义。 如果规定,每个学号只能有一个学生姓名, 如果规定,每个学号只能有一个学生姓名,每个 课程号只能决定一门课程,那么可写成下列FD形式: FD形式 课程号只能决定一门课程,那么可写成下列FD形式: S#→SNAME C#→CNAME 每个学生每学一门课程,有一个成绩,那么可写出下 每个学生每学一门课程,有一个成绩, FD: 列FD: S#,C#) (S#,C#)→GRADE 还可以写出其他一些FD FD: 还可以写出其他一些FD: C#→(CNAME,TNAME,TAGE) C#→(CNAME,TNAME,TAGE) TNAME→TAGE

如果给定了一个属性的值,就可以获得 或找 如果给定了一个属性的值,就可以获得(或找 另一个属性的值。 到)另一个属性的值。例如,对于表 ,如果 另一个属性的值 例如,对于表5.6, 我们知道了“课程名”的值, 我们知道了“课程名”的值,我们就可以知道 授课学时”的值。我们说“授课学时” “授课学时”的值。我们说“授课学时”函数 课程名” 依赖于 课程名” 依赖于“课程名”,或“课程名”可以决定 授课学时” 记作课程名→授课学时 授课学时。 “授课学时”。记作课程名 授课学时。
课程号 J001 J003 Z004 Z006 X001 X002 表5.6 “课程”关 系 课程名 授课学时 数据库 C程序设计 操作系统 编译原理 数值分析 面向对象 72 54 72 72 54 36 授课学期 6 2 5 6 3 4

函数依赖关系反过来不一定成立。比如“ 函数依赖关系反过来不一定成立。比如“授 关系反过来不一定成立 课学时”值为72的课程有好几门 数据库、 的课程有好几门: 课学时”值为 的课程有好几门:数据库、 操作系统、编译原理。也就是说,如果A决 操作系统、编译原理。也就是说,如果 决 就决定A。一般来说, 定B,但反过来不一定 就决定 。一般来说, ,但反过来不一定B就决定 如果A决定 ,则A和B之间的关系是多对一 如果 决定B, 和 之间的关系是多对一 决定 的关系。 的关系。

学生选课表(有部分依赖 有部分依赖) 表5.7 学生选课表 有部分依赖 学号 100 125 150 175 190 课程 人工智能 文化学 市场营销学 人工智能 文化学 学分 3 2 2 3 2

学生住宿收费表(有传递依赖 有传递依赖) 表5.8 学生住宿收费表 有传递依赖 学号 100 120 130 150 180 楼号 2 4 2 8 2 收费 500 600 500 800 500

?看—看表5.7, 主关键字是属性集合{学号,课程}。主关键字决 定了“学分”的值,即:“学分”函数依敕于主关键字{学号, 课程}。再进一步分析,会发现,决定“学分”的只是“课 程”,与“学号”无关,这种依赖关系称为部分依赖。 ?表5.8,显然,表的主关键字是“学号”,学生住宿的楼号依赖 于学号,而学生应交的住宿费是由楼号决定的, “收费”依赖 于“楼号”,而“收费”又依赖于“楼号”。一般把这种依赖 关系称为“传递依赖”。

3. 关系模式的范式
关系模式的好与坏,用什么标准衡量? 关系模式的好与坏,用什么标准衡量?这个标 准就是模式的范式 模式的范式( 准就是模式的范式(Normal Forms,简记为 , NF)。范式的种类与数据依赖有着直接的联 ) 系,基于FD的范式有 基于 的范式有1NF、2NF、3NF、 、 、 、 的范式有 BCNF等多种。 等多种。 等多种 在不提及FD时 在不提及 时,关系中是不可能有冗余的问 但是当存在FD时 题,但是当存在 时,关系中就有可能存在 数据冗余问题。 数据冗余问题。 1NF是关系模式的基础;在数据库设计中最常 是关系模式的基础; 是关系模式的基础 用的是3NF和BCNF。 用的是 和 。

第一范式( 第一范式(1NF) )
定义13 如果关系模式 的每个关系 的属性值 如果关系模式R的每个关系 的每个关系r的属性值 定义 都是不可分的原子值,那么称R是第一范式 都是不可分的原子值,那么称 是第一范式 (first normal form,简记为 ,简记为1NF)的模式。 )的模式。 满足1NF的关系称为规范化的关系,否则称为 的关系称为规范化的关系, 满足 的关系称为规范化的关系 非规范化的关系。 非规范化的关系。关系数据库研究的关系都是 规范化的关系。例如关系模式R( 规范化的关系。例如关系模式 (NAME, , ADDRESS,PHONE),如果一个人有两个 ),如果一个人有两个 , ), 电话号码( ),那么在关系中至少要 电话号码(PHONE),那么在关系中至少要 ), 出现两个元组,以便存储这两个号码。 出现两个元组,以便存储这两个号码。 1NF是关系模式应具备的最起码的条件。 是关系模式应具备的最起码的条件。 是关系模式应具备的最起码的条件

第二范式( )(一 第二范式(2NF)(一) )(
定义14 对于FD W→A,如果存在 ?W有X→A成立, 成立, 定义14 对于 ,如果存在X? 有 成立 那么称W→A是局部依赖(A局部依赖于 );否则 是局部依赖( 局部依赖于 );否则 局部依赖于W); 那么称 是局部依赖 是完全依赖。 称W→A是完全依赖。完全依赖也称为“左部不可 是完全依赖 完全依赖也称为“ 约依赖”。 约依赖” 定义4.15 如果 是关系模式 的候选键中属性,那 如果A是关系模式 的候选键中属性, 是关系模式R的候选键中属性 定义 么称A是 的主属性 否则称A是 的非主属性 的主属性; 的非主属性。 么称 是R的主属性;否则称 是R的非主属性。 定义4.16 如果关系模式 是1NF,且每个非主属性 如果关系模式R是 定义 , 完全函数依赖于候选键,那么称R是第二范式 完全函数依赖于候选键,那么称 是第二范式 (2NF)的模式。如果数据库模式中每个关系模式 )的模式。 都是2NF,则称数据库模式为 的数据库模式。 都是 ,则称数据库模式为2NF的数据库模式。 的数据库模式

第二范式( )(二 第二范式(2NF)(二) )(
设关系模式R( , , 例14 设关系模式 (S#,C#,GRADE, , TNAME,TADDR)的属性分别表示学生学号、 , )的属性分别表示学生学号、 选修课程的编号、成绩、 选修课程的编号、成绩、任课教师姓名和教师地 址等意义。( 。(S#, ) 的候选键。 址等意义。( ,C#)是R的候选键。 的候选键 R上有两个 :( ,C#)→(TNAME, 上有两个FD:( 上有两个 :(S#, ) ( , TADDR)和C#→(TNAME,TADDR),因此前 ),因此前 ) ( , ), 一个FD是局部依赖, 不是 不是2NF模式。此时 的关 模式。 一个 是局部依赖,R不是 模式 此时R的关 系就会出现冗余和异常现象。 系就会出现冗余和异常现象。譬如某一门课程有 100个学生选修,那么在关系中就会存在 个学生选修, 个学生选修 那么在关系中就会存在100个元 个元 因而教师的姓名和地址就会重复100次。 组,因而教师的姓名和地址就会重复 次 如果把R分解成 分解成R1( , 如果把 分解成 (C#,TNAME,TADDR)和 , ) R2(S#,C#,GRADE)后,局部依赖(S#, 局部依赖( , ( , , ) C#)→(TNAME,TADDR)就消失了。R1和R2 ) ( , )就消失了。 和 都是2NF模式。 模式。 都是 模式

第三范式( )(一 第三范式(3NF)(一) )(
定义17 如果 如果X→Y,Y→A,且Y→X和 定义 , , 和 A∈Y,那么称 是传递依赖( 传递 ∈ ,那么称X→A是传递依赖(A传递 是传递依赖 依赖于X)。 依赖于 )。 定义18 如果关系模式 是1NF,且每个 如果关系模式R是 定义 , 非主属性都不传递依赖于R的候选键 的候选键, 非主属性都不传递依赖于 的候选键,那 么称R是第三范式 是第三范式( 么称 是第三范式(3NF)的模式。如果 )的模式。 数据库模式中每个关系模式都是3NF, 数据库模式中每个关系模式都是 , 则称其为3NF的数据库模式 则称其为 的数据库模式

第三范式( )(二 第三范式(3NF)(二) )(
在例14中 模式, 例15 在例 中,R2是2NF模式,而且也已是 是 模式 3NF模式。但R1(C#,TNAME,TADDR) 模式。 模式 ( , , ) 模式, 模式。 是2NF模式,却不一定是 模式 却不一定是3NF模式。如果 中 模式 如果R1中 存在函数依赖C#→TNAME和 存在函数依赖 和 TNAME→TADDR,那么 ,那么C#→TADDR就是一 就是一 个传递依赖, 不是3NF模式。此时 的 模式。 个传递依赖,即R1不是 不是 模式 此时R1的 关系中也会出现冗余和异常操作。 关系中也会出现冗余和异常操作。譬如一个教 师开设五门课程, 师开设五门课程,那么关系中就会出现五个元 教师的地址就会重复五次。 组,教师的地址就会重复五次。 如果把R1分解成 分解成R11(TNAME,TADDR)和 如果把 分解成 ( , ) R12(C#,TNAME)后,C#→TADDR就不 ( , ) 就不 会出现在R11和R12中。这样 会出现在 和 中 这样R11和R12都是 和 都是 3NF模式。 模式。 模式

第三范式(3NF)(三) 第三范式( )(三 )(
定理9 如果 是3NF模式,那么 也是 如果R是 模式, 也是2NF 定理 模式 那么R也是 模式。 模式。 定理10 设关系模式 ,当R上每一个 设关系模式R, 上每一个FD 定理 上每一个 X→A满足下列三个条件之一时:A∈X(即 满足下列三个条件之一时: ∈ ( 满足下列三个条件之一时 X→A是一个平凡的 ); 是R的超键; 是一个平凡的FD); 的超键; 是一个平凡的 );X是 的超键 A是主属性。关系模式 就是 是主属性。 就是3NF模式。 模式。 是主属性 关系模式R就是 模式

4. 设计折中
对关系进行规范化的过程, 对关系进行规范化的过程,规范化可以消除 更新异常,但有时不见得就值得。 更新异常,但有时不见得就值得。 有时分解前的非规范化的表可能更好, 有时分解前的非规范化的表可能更好,因为 处理起来可能比较容易,因为如果 如果所需数据 处理起来可能比较容易,因为如果所需数据 须从两个表组合而来时, 要作—些额外 须从两个表组合而来时,DBMS要作 些额外 要作 的工作, 的工作,大多数情况至少需要读取两次而不 是一次。 是一次。 在设计中所做的工作是由用户的需求来决定 并不存在什么硬性的规定, 的。并不存在什么硬性的规定,或分解一定 要达到什么程度。 要达到什么程度。

5. 关系数据库的完整性和安全性
1关系数据库的完整性 关系数据库的完整性 关系的完整性是指关系中数据值与其描述的应用 对象实际状态保持一致的约束条件(所谓约束 所谓约束, 对象实际状态保持一致的约束条件 所谓约束,就是 在表和列上定义的条件)。它主要包括域完整性、实 在表和列上定义的条件 。它主要包括域完整性、 体完整性、参照完整性和商务约束几个方面。 体完整性、参照完整性和商务约束几个方面。 完整性检查可以由系统来完成,也可由用户来实现。 完整性检查可以由系统来完成,也可由用户来实现。 一般只在更新数据库的时候才进行完整性检查, 一般只在更新数据库的时候才进行完整性检查,由 于它的开销比较大,对数据库系统的性能影响较大, 于它的开销比较大,对数据库系统的性能影响较大, 因此较早的数据库系统—般不提供这种功能 般不提供这种功能, 因此较早的数据库系统 般不提供这种功能,而把 这项检查工作交由用户负责。 这项检查工作交由用户负责。

完整性子系统和完整性规则
数据库的完整性 完整性子系统的主要功能
监督事务的执行, 监督事务的执行,并测试是否违反完整性规则 若有违反现象,则采取恰当的操作,譬如拒绝操作、 若有违反现象,则采取恰当的操作,譬如拒绝操作、报 告违反情况、 告违反情况、改正错误等方法来处理

完整性规则
什么时候使用规则进行检查(称为规则的“触发条件” 什么时候使用规则进行检查(称为规则的“触发条件”) 要检查什么样的错误(称为“约束条件” 谓词” 要检查什么样的错误(称为“约束条件”或“谓词”) 如果查出错误,应该怎么办(称为“ELSE子句 子句” 如果查出错误,应该怎么办(称为“ELSE子句”,即违 反时要做的动作) 反时要做的动作)

域完整性
域完整性规定了属性的值必须是域中的值, 域完整性规定了属性的值必须是域中的值 , 这是关系模 式规定了的。 此外, 一个属性值能否为“ 式规定了的 。 此外 , 一个属性值能否为 “ 空 ” (一般把 一般把 记为NULL,注意,“空”并不是没有,而是不定, 并不是没有,而是不定, “空”记为 ,注意, 也就是说,可以不填),这由实际的应用语义决定, 也就是说 ,可以不填 ,这由实际的应用语义决定,这也 是域完整性约束的主要内容。 域完整性约束是最简单、 是域完整性约束的主要内容 。 域完整性约束是最简单、 最基本的约束, 最基本的约束 , 现在的关系数据库系统一般都有域完整 性的检查功能。 性的检查功能。

实体完整性
实体完整性是指关系中的主关键字不能为空且主关键字 的值不能相同。 的值不能相同 。 这主要是为了保证主关键字能唯一地标 识关系中的每个元组。 识关系中的每个元组 。 重复记录在关系模型中是不允许 如果定义了主关键字, 系统将进行检查。 但是, 的 。 如果定义了主关键字 , 系统将进行检查 。 但是 , 有 的关系数据库系统允许用户定义不说明主关键字的关系 这种情况下,也就无从检查了。 表,这种情况下,也就无从检查了。

参照完整性
参照完整性是指不允许引用数据库中不存在的外键数据。 参照完整性是指不允许引用数据库中不存在的外键数据。 外键(或叫外部关键字 或叫外部关键字)是指一个表中的某个属性是另一个 外键 或叫外部关键字 是指一个表中的某个属性是另一个 表的主关键字。 表的主关键字。 例如,假设学生表有(学号 姓名, 学号, 例如,假设学生表有 学号,姓名,……),其中“学号”为 ,其中“学号” 此表的主关键字,课程表有(课程号 课程名, 课程号, 此表的主关键字,课程表有 课程号,课程名,……),其 , 课程号”为此表的主关键字,另有一学生修课表, 中“课程号”为此表的主关键字,另有一学生修课表, 包含(学号 课程号,成绩, 学号, 包含 学号,课程号,成绩,……)。在实际情况中,修课 。在实际情况中, 表中不允许存在在“学生”表中没有的学号, 表中不允许存在在“学生”表中没有的学号,同时也不 允许存在在“课程”表中没有的课程号,因此, 允许存在在“课程”表中没有的课程号,因此,修课表 学号”的取值范围必须在学生表中“学号” 中“学号”的取值范围必须在学生表中“学号”的取值 范围内,即修课表中“学号”的值是在学生表的“学号” 范围内,即修课表中“学号”的值是在学生表的“学号” 的值的子集。同样,修课表中的“课程号” 的值的子集。同样,修课表中的“课程号”的值也必须 是课程表中“课程号”的子集。对于这种情况, 是课程表中“课程号”的子集。对于这种情况,我们可 以通过定义外键来实现, 以通过定义外键来实现,定义修课表中的学号是学生表 的外键,修课表中的课程号是课程表的外键。 的外键,修课表中的课程号是课程表的外键。注意是先 有主关键字值,后有外键值。 有主关键字值,后有外键值。

SQL中的完整性约束 SQL中的完整性约束1---域约束和 中的完整性约束 域约束和 断言
域约束
DOMAIN”语句定义新 用“CREATE DOMAIN 语句定义新 的域,并且还可出现CHECK CHECK子句 的域,并且还可出现CHECK子句

定义一个新的域COLOR, 定义一个新的域COLOR,可用 COLOR 下列语句实现: 下列语句实现:
CHAR( CHAR ( 6 ) DEFAULT

CREATE DOMAIN COLOR ˊ???ˊ 断言 如果完整性约束牵涉面较广, 如果完整性约束牵涉面较广,与 CONSTRAINT V_COLORS

CHECK( 多个关系有关, 多个关系有关,或者与聚合操作 CHECK(VALUE IN (ˊRedˊ,ˊYellowˊ, )); 有关,那么SQL2提供“断言” ˊBlueˊ, Greenˊ, ???ˊ)) SQL2提供 有关,那么SQL2提供“断言” ˊBlueˊ,ˊGreenˊ,ˊ???ˊ)); Assertions) (Assertions)机制让用户书写 每位教师开设的课程不能超 完整性约束 10门 过10门。 <断言名 断言名> CHECK ASSERTION <断言名> CREATE ASSERTION ASSE1 CHECK ( 10 >= ALL ASSE1 CHECK( 条件> CHECK(<条件>) ( SELECT COUNT ( C# ) FROM C GROUP BY TNAME)) )); TNAME)); <断言名 断言名> DROP ASSERTION <断言名>

SQL中的完整性约束 SQL中的完整性约束2---基本标的 中的完整性约束 基本标的 约束
候选键的定义
UNIQUE( 列名序列〉 UNIQUE(〈列名序列〉)或 PRIMARY KEY( 列名序列〉 KEY(〈列名序列〉)

外键的定义
KEY( 列名序列〉 <参照表 参照表> FOREIGN KEY(〈列名序列〉)REFERENCES <参照表> 列名序列> <参照动作 参照动作> [(<列名序列>)][ ON DELETE <参照动作> ][ ON <参照动作 参照动作> UPDATE <参照动作> ]

“检查约束”的定义 检查约束” 检查约束
CHECK( 条件表达式〉 CHECK(〈条件表达式〉)

关于外键约束完整性的补充
删除参照表中元组时的考虑
NO ACTION CASCADE方式 CASCADE方式 RESTRICT方式 RESTRICT方式 NULL方式 SET NULL方式 DEFAULT方式 SET DEFAULT方式

修改参照表中主键值时的考虑、 修改参照表中主键值时的考虑、
NO ACTION CASCADE方式 CASCADE方式 RESTRICT方式 RESTRICT方式 NULL方式 SET NULL方式 DEFAULT方式 SET DEFAULT方式

关于数据库完整性的例子
学生关系S(S#,SNAME,AGE,SEX,SDEPT) 选课关系SC(S#,C#,GRADE) 课程关系C(C#,CNAME,CDEPT,TNAME)

在教学数据库中,要求S中的元 组满足条件:男生年龄在15~35 15~35 岁之间,女生年龄在15~30岁之 间 。对应的语句为:
CHECK(AGE >= 15 AND ((SEX =ˊ男ˊ AND AGE <= 35) OR (SEX =ˊ女ˊ AND AGE <= 30)));

CREATE TABLE SC(S# CHAR(4),C# ( ( ) CHAR4), ),GRADE SMALLINT,PRIMARY KEY ), , (SNO,NO), , ), CHECK(S# IN(SELECT S# FROM S)), ( ( )), CHECK(C# IN(SELECT C# FROM C))) ( ( )))

① 在SC中插入一个元组,若C#值在C中不存在, 则系统将拒绝这个插入操作。 ② 在SC中插入一个元组,若S#值在S中不存在, 则系统将拒绝这个插入操作。 ③ 在S中删除一个元组,这个操作将与关系SC中 的检查子句无关。若此时SC中存在被删学生的 选课元组时,SC将违反检查子句中条件。

SQL3的触发器 的触发器
什么是触发器 触发器的组成
事件:插入、删除、修改等操作, 事件:插入、删除、修改等操作,引发触发器的操作 条件:引发触发器的条件 条件: 动作: 动作:引发触发器后的工作
触发器的命名 动作时间 触发事件 旧值和新值的别名表 触发动作 目标表名 动作间隔尺寸 动作时间条件 动作体

SQL3的触发器实例 的触发器实例
下面是应用于选课关系SC的一个触发器。 下面是应用于选课关系 的一个触发器。这个触发器 的一个触发器 规定,在修改关系SC的成绩值时 的成绩值时, 规定,在修改关系 的成绩值时,要求修改后的成绩 一定不能比原来的低, 一定不能比原来的低,否则就拒绝修改
CREATE TRIGGER TRIG1 AFTER UPDATE OF GRADE ON SC REFERENCING OLD AS OLDTUPLE NEW AS NEWTUPLE FOR EACH ROW WHEN (OLDTUPLE.GRADE > NEWTUPLE.GRADE) ) UPDATE SC SET GRADE = OLDTUPLE.GRADE WHERE C# = NEWTUPLE.C#

2关系数据库的安全性 关系数据库的安全性 安全性级别
数据库的安全性(Security)是指保护数据库,防止不合 是指保护数据库, 数据库的安全性 是指保护数据库 法的使用,以免数据的泄密、 法的使用,以免数据的泄密、更改或破坏。

不合法使用
无意的滥用是指系统故障、并发操作带来的错误,违 无意的滥用是指系统故障、并发操作带来的错误, 反数据完整性约束的逻辑错误。 反数据完整性约束的逻辑错误。 恶意的滥用是指未经授权的读数据(即偷窃信息 ; 未 恶意的滥用是指未经授权的读数据 即偷窃信息); 即偷窃信息 经授权的修改数据(即破坏数据 即破坏数据)。 经授权的修改数据 即破坏数据 。

数据库的完整性是指尽可能避免对数据库无意的 滥用。 滥用。 数据库的安全性是指尽可能避免对数据库恶意的 滥用。 滥用。

为了保护数据库,防止恶意的滥用, 为了保护数据库,防止恶意的滥用,可以在从低 到高的五个级别上设置各种安全措施。 到高的五个级别上设置各种安全措施。 (1)环境级:计算机系统的机房和设备应加以保护 , 环境级: 环境级 计算机系统的机房和设备应加以保护, 防止有人进行物理破坏。 防止有人进行物理破坏。 (2)职员级:工作人员应清正廉洁,正确授予用户访 职员级: 职员级 工作人员应清正廉洁, 问数据库的权限。 问数据库的权限。 (3)OS级: 应防止未经授权的用户从 处着手访问 级 应防止未经授权的用户从OS处着手访问 数据库。 数据库。 (4)网络级:由于大多数 网络级: 网络级 由于大多数DBS都允许用户通过网络进 都允许用户通过网络进 行远程访问, 行远程访问,因此网络软件内部的安全性是很重要 的。 (5)DBS级:DBS的职责是检查用户的身份是否合法 级 的职责是检查用户的身份是否合法 及使用数据库的权限是否正确。 及使用数据库的权限是否正确。

OS级的安全性 从口令到并发处理的控制,以及 级 从口令到并发处理的控制, 文件系统的安全,都属于OS的内容 的内容。 文件系统的安全,都属于 的内容。 已在国际电子商务中广泛应用。 网络级的安全性 已在国际电子商务中广泛应用。
关系数据库的安全性措施 使用数据库的方式称为“权限” 使用数据库的方式称为“权限”(Authorization)。 。 (1)读(Read)权限:允许用户读数据,但不能修改数据。 权限: 读 权限 允许用户读数据,但不能修改数据。 (2)插入 插入(Insert)权限 : 允许用户插入新的数据 , 但不能修改数 权限: 插入 权限 允许用户插入新的数据, 据。 (3)修改 修改(Update)权限:允许用户修改数据,但不能删除数据。 权限:允许用户修改数据,但不能删除数据。 修改 权限 (4)删除 删除(Delete)权限:允许用户删除数据。 权限: 删除 权限 允许用户删除数据。

修改数据库模式的权限: 修改数据库模式的权限: (1)索引 索引(Index)权限 : 允许用户创建和删除索引 。 权限: 索引 权限 允许用户创建和删除索引。 (2)资源 资源(Resource)权限:允许用户创建新的关系。 权限: 资源 权限 允许用户创建新的关系。 (3)修改 修改(Alteration)权限 : 允许用户在关系结构 权限: 修改 权限 中加入或删除属性。 中加入或删除属性。 (4)撤消 撤消(Drop)权限:允许用户撤消关系。 权限: 撤消 权限 允许用户撤消关系。

权限的授予和回收
U1 DBA U2 U3 U4 U5 一个用户拥有权限 的充分必要条件是 在权限图中从根结 点到该用户结点存 在一条路经

权限转授图
U1 DBA U2 U3 DBA U1 U2 U3

U1 DBA U2 U3
DBA

U1 U2 U3

SQL中的安全性机制 中的安全性机制
视图 SQL2中的用户权限及其操作 中的用户权限及其操作
用户权限: 用户权限:SELECT INSERT REFERENCES USAG 授权语句 回收语句
REVOKE <权限表 ON <数据库元素 FROM <用户名表 权限表> 数据库元素> 用户名表> 权限表 数据库元素 用户名表 [RESTRICT | CASCADE]

DELETE

UPDATE

GRANT <权限表 ON <数据库元素 TO <用户名表 [WITH 权限表> 数据库元素> 用户名表> 权限表 数据库元素 用户名表 GRANT OPTION]

SQL中的权限操作实例 中的权限操作实例
GRANT SELECT,UPDATE ON S TO WANG WITH , GRANT OPTION GRANT INSERT (S#,C#) ON SC TO LOU WITH , ) GRANT OPTION GRANT REFERENCES (CNO) ON C TO BAO ) WITH GRANT OPTION GRANT USAGE ON DOMAIN AGE TO CHEN REVOKE SELECT,UPDATE ON S FROM WANG , CASCADE REVOKE GRANT OPTION FOR REFERENCES (C#) ) ON C FROM BA

视图和查询修改 为不同的用户定义不同的视图, 为不同的用户定义不同的视图,也可达到访问控制的 目的。在视图中,只定义该用户能访问的数据, 目的。在视图中,只定义该用户能访问的数据,使用 户无法访问他无权访问的数据, 户无法访问他无权访问的数据,从而达到对数据的安 全保护的目的。 全保护的目的。 查询修改 DBMS可以事先为一些用户规定一些访问限制 可以事先为一些用户规定一些访问限制 条件,用户访问时查询条件, 条件,用户访问时查询条件,使其只能在规定的访 问范围内查询。 问范围内查询。

常用的安全性措施
自 然 环 境 的 安 全 性
明 键 加 密 法 普 通 加 密 法

数 据 加 密 法
多 是 m m 录 的 “交 ” 数 目 至 两 个 查 询 查 到 的 记 录 个 数 至 少 是 ; n 一 个 查 询 查 到 的 记



统 计 数 据 库 的 安 全
同 级 的 数 据 用 户 只 能 修 改 和 它 i 据 ; 级 别 低 或 同 级 的 数 用 户 只 能 查 看 比 它 i

强 制 存 取 控 制

跟踪审计 跟踪审计仅是一种监视措施, 跟踪审计仅是一种监视措施,它把用户对数据 的所有操作都自动记录入审计日志中。事后, 的所有操作都自动记录入审计日志中。事后,可 利用审计日志中的记录,分析出现问题的原因。 利用审计日志中的记录,分析出现问题的原因。 数据加密 数据是存储在介质上的, 数据是存储在介质上的,数据还经常通过通 信线路传输。敌手既可在介质上窃取数据,也可 信线路传输。敌手既可在介质上窃取数据, 在通信线路上窃听到数据,有时, 在通信线路上窃听到数据,有时,跟踪审计的日 志文件中也找不到敌手的踪影。 志文件中也找不到敌手的踪影。 原始的数据明文(Plain text)在加密密钥的 原始的数据明文(Plain text)在加密密钥的 作用下,通过加密系统加密成密文(Cipher text)。 作用下,通过加密系统加密成密文(Cipher text)。 只有掌握解密密钥的人, 只有掌握解密密钥的人,才能在解密密钥的帮助 由解密系统解密成明文。 下,由解密系统解密成明文。

总之 数据的安全性和完整性是两个不同的概念 数据的安全性是防止数据库被恶意破坏和非 法存取, 法存取,安全性措施的防范对象是非法用户 和非法操作。 和非法操作。 数据完整性是为了防止错误信息的输入, 数据完整性是为了防止错误信息的输入,保 证数据库中的数据符合应用环境的语义要求。 证数据库中的数据符合应用环境的语义要求。 完整性措施的防范对象是不合语义的数据。 完整性措施的防范对象是不合语义的数据。

6 数据库分类及发展 数据库分类
根据计算机的系统结构, 根据计算机的系统结构,DBS可分成单用户 可分成单用户 集中式、客户机/服务器式、 式、集中式、客户机/服务器式、并行式和 分布式几种。 分布式几种。

数据库技术发展概述
数据模型 分布式 数据库
● ● ● ●

面向对象模型 关系模型 层次网状模型 数据仓库




并行 数据库











● 商业管理 分 ??? ??? 布 ● 计划统计 处 ●科学实验 理 ● 决策支持 应用领域

并 行 处 理

人 工 智 能

多 媒 体

模 糊 技 术

其它计算 机技术

单用户DBMS 单用户DBMS 随着个人计算机性能的不断提高、 随着个人计算机性能的不断提高、 处理能力的不 断加强, 出现了个人计算机的单用户DBMS, 这种 断加强 , 出现了个人计算机的单用户 , DBMS可以运行在 机上 , 称为桌面型 可以运行在PC机上 可以运行在 机上, 称为桌面型(Desktop) DBMS。 属于单机单用户的 系统主要产品有: 。 属于单机单用户的DBMS系统主要产品有 : 系统主要产品有 Microsoft Access、Paradox、Fox系列和 系列和DBase系列, 系列, 、 、 系列和 系列 其中最为常见的就是Dbase系列和 系列和Fox系列。这些个 系列。 其中最为常见的就是 系列和 系列 人机DBMS系统的功能有些是不完备的, 特别是在 系统的功能有些是不完备的, 人机 系统的功能有些是不完备的 数据的一致性维护、 数据的一致性维护 、完整性检查及安全性管理方面 有许多欠缺。目前,桌面数据库中比较好的有 Access、Paradox等,它们基本实现了 、 等 它们基本实现了DBMS应该具 应该具 有的功能。 有的功能。

集中式数据库应用模式 Run on a single computer system 不与其他计算 机结合。 通用 computer system: 一个或几个处理器和许多 的连接到通用总线上的置备控制器提供共享存储器 访问。 单用户系统 (个人计算机或工作站): desk-top unit, single user, usually has only one CPU and one or two hard disks; the OS may support only one user. 多单用户系统 : 多磁盘, 多存储器,多 CPUs,和多用 户 OS. 为那些被连接到系统上的的用户服务。时 常叫做服务系统。

客户机/ 客户机/服务器模式

并行数据库结构 分等级的) 并行数据库结构 (hierarchical 分等级的)

分布式数据库系统主要有下面三个特点( 分布式数据库系统主要有下面三个特点(一) 分布式数据库 集中式数据库技术与计算机网络技术相结合的产物. 集中式数据库技术与计算机网络技术相结合的产物
① ②



数据库的数据物理上分布在各个场地, 数据库的数据物理上分布在各个场地,但逻辑上 是一个整体。 是一个整体。 每个场地既可以执行局部应用(访问本地DB), 每个场地既可以执行局部应用(访问本地 ), 也可以执行全局应用(访问异地DB)。 也可以执行全局应用(访问异地 )。 各地的计算机由数据通信网络相联系。 各地的计算机由数据通信网络相联系。本地计算 机单独不能胜任的处理任务, 机单独不能胜任的处理任务,可以通过通信网络 取得其它DB和计算机的支持 和计算机的支持。 取得其它 和计算机的支持。

分布式数据库系统( 分布式数据库系统(二)

全局终端

通信网

数据库

局部终端

局部处理机

局部处理机

局部终端

数据库

数据库

全局外模式

全局外模式 全局概念模式

全局外模式
映象1
全 局 数 据 模 式

全局 DBMS

映象2

分片模式
映象3

分布模式
映象4
局部外模式 局部外模式 局部外模式 局部外模式

局部概念模式

局部概念模式

局部 DBMS

局部内模式

???

局部内模式

局 部 数 据 模 式

局部 数据库

局部 数据库

分布式数据库系统的模式结构

三层结构的数据库应用模式

支持面向对象数据模型 面向对象数据模型的核心是: 面向对象数据模型的核心是 1)对象标识 用对象表示实体 每个对象都有唯一的标 对象标识:用对象表示实体 对象标识 用对象表示实体,每个对象都有唯一的标 称为对象标识(OID). 识,称为对象标识 称为对象标识 2)封装 每一对象是其状态和行为的封装 对象的状态 封装:每一对象是其状态和行为的封装 封装 每一对象是其状态和行为的封装.对象的状态 是该对象属性值得集合,对象的行为是在对象状态上 是该对象属性值得集合 对象的行为是在对象状态上 操作方法的集合. 操作方法的集合 3)类和类层次 所有具有相同属性和方法集的对象构 类和类层次:所有具有相同属性和方法集的对象构 类和类层次 成一个对象类.所有的类组成一个又跟幽香非换图 所有的类组成一个又跟幽香非换图,称 成一个对象类 所有的类组成一个又跟幽香非换图 称 为类层次. 为类层次 4)继承 类可以继承类层次中祖先的所有属性和方法 继承:类可以继承类层次中祖先的所有属性和方法 继承 类可以继承类层次中祖先的所有属性和方法.

面向对象的数据库OODB 面向对象的数据库 面向对象的数据库系统OODBS,是一个持久的 可 是一个持久的,可 面向对象的数据库系统 是一个持久的 共享的对象库的存储和管理者;一个对象库是由一 共享的对象库的存储和管理者 一个对象库是由一 个面向对象数据模型所定义的对象集合体,这些对 个面向对象数据模型所定义的对象集合体 这些对 象支持面向程序设计中对象的语义. 象支持面向程序设计中对象的语义 一个数据库系统可称为OODBS,必须满足的条件 必须满足的条件: 一个数据库系统可称为 必须满足的条件 1)支持一核心的面向对象数据模型 支持一核心的面向对象数据模型 2)支持传统数据库系统所有的数据库特征 支持传统数据库系统所有的数据库特征

数据库技术与其它相关技术相结合
分布处理技术 并行处理技术 面向对象技术 人工智能技术 分布式数据库 并行数据库

数据库 技术

对象-关系数据库 知识库,主动数据库, 演绎数据库 多媒体数据库 模糊数据库

多媒体技术 模糊技术

面向应用领域的数据库新技术

DSS CAx
(CAD/CAM/CIM/...)

数据仓库 工程数据库

地理信息系统 计划,统计

数据库 技术

地理数据库 空间数据库 统计数据库

... 特定领域中的数据库技术

...


更多搜索:vb课件第5章2datab
推荐相关:

VB课件第2章数据与表达式

VB课件第5章 循环结构程序... VB课件第7章过程1/2 相关文档推荐 ...vb第3章 数据类型 运算符 ... 43页 免费如要投诉违规内容,请到百度文库投诉...


VB课件后面

VB课件后面_理学_高等教育_教育专区。(九)Height、Width(高、宽) 这两个属性...1、解释运行 2、生成可执行文件 第四章 VB 程序设计基础第一节 数据类型一、...


VB课件第3章顺序结构

VB课件第2章数据与表达式... VB课件第3章顺序结构4.3 VB课件第4章分支结构 VB课件第5章 循环结构程... VB课件第7章过程1/2 相关文档推荐 ...


VB教案

¥2.00 VB教案第五章 35页 免费 VB教案(7) 28页 1下载券 VB教案第3章...利用多媒体课件讲解文字叙述内容和基本概念,进入 VB 集成开发环境中讲解各窗口功能...


vb第8章 全部教案

23页 8财富值 VB教案 258页 2财富值 VB教案第五章 35页 免费喜欢...VB教程 全套课件 vb-2 28页 免费如要投诉违规内容,请到百度文库投诉中心;如要...


vb课件1-10讲

1/2 相关文档推荐 VB程序设计课件第10讲 循环... 15页 免费 vb第二章第一...127页 5财富值 VB 29页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出...


牛顿第二定律最优秀课件

牛顿第二定律最优秀课件_理化生_高中教育_教育专区。最优秀的牛二应用课例高中...vB=3 m/s [例 4] 如图所示为上、下两端相距 L=5 m,倾角 α=30° ,...


第2章 程序设计基础

关键词:vb计算机课件工具书教材考试 1/2 同系列文档 第1章 Visual Basic概述 第3章 数据的输入输出 第4章 控制结构设计 第5章 常用控件 第8章 过程 第9章...


VB第6章 复习资料

VB第4章 复习资料 VB第5章 复习资料 1/2 相关文档推荐 【课件教程】第6章...常见错误和难点分析1.程序设计算法的问题 该章程序编写难度较大, 主要是算法的...


VB第六章课件

第11 次课 课题:第 4 章常用控件(4.6-4.7、4.9) 教学主要内容及目的: 1、...装入窗体到内存 不显示 5 VB 语言程序设计课程教案 Load 窗体名称 (2)Unload ...

网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com