数据库系统教程(第 3 版)

88
1 数数数数 数数 3

description

数据库系统教程(第 3 版). 目录. 下篇 发展篇 第 8 章 ODBS 第 9 章 DDBS 第 10 章 ODBC 技术 第 11 章 XML 技术 第 12 章 现代信息 集成技术. 上篇 基础篇 第 1 章 数据库概论 第 2 章 关系运算理论 第 3 章 SQL 语言 第 4 章 规范化设计理论 第 5 章 DBD 与 ER 模型 第 6 章 DB 的存储结构 第 7 章 系统实现技术. 数据库系统教程(第 3 版). 特点: 理论性强(关系运算,模式设计) 应用性强( SQL ,数据库设计) - PowerPoint PPT Presentation

Transcript of 数据库系统教程(第 3 版)

1

数据库系统教程(第 3 版)

2

目录上篇 基础篇

第 1 章 数据库概论第 2 章 关系运算理论第 3 章 SQL 语言第 4 章 规范化设计理论第 5 章 DBD 与 ER 模

型第 6 章 DB 的存储结构第 7 章 系统实现技术

下篇 发展篇第 8 章 ODBS

第 9 章 DDBS

第 10 章 ODBC 技术第 11 章 XML 技术第 12 章 现代信息

集成技术

3

数据库系统教程(第 3 版)特点:

理论性强(关系运算,模式设计) 应用性强( SQL ,数据库设计) 可操作性(有很多题目) 实用系统

DBMS : DB2 , Sybase , Oracle , SQL server

工具: PB , VB , Delphi

4

第 1 章 数据库概论

5

第 1 章 数据库概论1.1 引言1.2 数据库的由来和发展1.3 数据描述1.4 数据抽象的级别1.5 数据库管理系统( DBMS )1.6 数据库系统( DBS )1.7 小结

6

本章的重要概念( 1 )( 1 ) DB 、 DBMS 和 DBS 的定义( 2 )数据管理技术的发展阶段:

人工管理、文件系统、数据库和高级数据库等各阶段的特点。

( 3 )数据描述:概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述( 1:1 , 1:N ,M:N )。

7

本章的重要概念( 2 )( 4 )数据抽象的级别:数据模型的定义,

概 念模 型,逻辑模型(层次模型、网状模 型、关系 模型和对 象模型),外部模 型,内部模型。三层模式和两级映像,

数据独立性。数据抽象中各个层次中记 录的联系。

( 5 ) DBMS :DBMS 的工作模式和主要功能。

( 6 ) DBS : DBS 的组成, DBA , DBS的全局 结构, DBS 结构的分类。

8

前 言从 20 世纪 50 年代中期开始,计算机的

应用由科学研究部门逐渐扩展到企业、行政部门。至 60 年代,数据处理已成为计算机的主要应用。在 60 年代末,数据库技术作为数据处理中的一门新技术发展起来的。经过近40 年的发展,数据库技术已是计算机软件领域的一个重要分支,形成了较为完整的理论体系和实用技术。本章先回顾数据管理技术的发展过程,然后介绍数据库中的基本概念,以使读者对数据库的概貌有所了解。

9

1.1 引言 1963 年,美国 Honeywell 公司的 IDS ( Integrated Da

ta Store )系统投入运行,揭开了数据库技术的序幕。 20 世纪 70 年代是数据库蓬勃发展的年代,网状系统和

层次系统占据了整个数据库商用市场,而关系系统仅处于实验阶段。

20 世纪 80 年代,关系系统由于使用简便以及硬件性能的改善,逐步代替网状系统和层次系统占领了市场。

20 世纪 90 年代,关系数据库已成为数据库技术的主流。

进入 21 世纪以后,无论是市场的需求还是技术条件的成熟,对象数据库技术、 Web 数据库技术的推广和普及已成定局。

10

1.2 数据库的由来和发展

1.2.1 人工管理阶段1.2.2 文件系统阶段1.2.3 数据库阶段1.2.4 高级数据库阶段

11

1.2 数据库的由来和发展 磁盘容量的发展

数据管理技术的发展经历了人工管理、文件系统、数据库阶段和高级数据库阶段。

时间 1956 1965 1971 1978 1981 1985 1995 2003 2008

容量 / 轴5

MB

30

MB

100

MB

600

MB

1.2

GB

5

GB

10

GB

180

GB

1

TB

12

1.2.1 人工管理阶段 在人工管理阶段( 20 世纪 50 年代中期以前),

计算机主要用于科学计算,其他工作还没有展开。外部存储器只有磁带、卡片和纸带等,还没有磁盘等字节存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理的方式基本上是批处理。

人工管理阶段的数据管理有下列特点: ① 数据不保存在计算机内。 ② 没有专用的软件对数据进行管理。 ③ 只有程序( program )的概念,

没有文件( file )的概念。④ 数据面向程序。即一组数据对应一个程序。

13

1.2.2 文件系统阶段( 1 ) 在这一阶段( 20 世纪 50 年代后期至 60 年

代中期),计算机不仅用于科学计算,还用于信息管理。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取存储设备。软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存的数据管理软件。数据处理的方式有批处理,也有联机实时处理。

14

1.2.2 文件系统阶段( 2 ) 文件系统阶段的数据管理有以下特点:

① 数据以“文件”形式可长期保存在外部存储器的磁盘上。② 数据的逻辑结构与物理结构有了区别,但比较简单。 ③ 文件组织已多样化。有索引文件、链接文件和直接存取

文件等。 ④ 数据不再属于某个特定的程序,可以重复使用,即数据

面向应用。 ⑤ 对数据的操作以记录为单位。

随着数据管理规模的扩大,数据量急剧增加,文件系统显露出三个缺陷:① 数据冗余( redundancy ) ② 数据不一致( inconsistency )③ 数据联系弱( poor data relationship )

15

职工工资文件职工档案文件职工保健文件

文件库 数据库

o

o

o

o

o

o

16

1.2.3 数据库阶段( 1 ) 数据管理技术进入数据库阶段的标志是 20 世纪 60

年代末的三件大事: ①1968 年美国 IBM 公司推出层次模型的 IMS 系统 。②1969 年美国 CODASYL 组织发布了 DBTG报告,总结了当时各式各样的数据库,提出网状模型。

③1970 年美国 IBM 公司的 E.F.Codd 连续发表论文,提出关系模型,奠定了关系数据库的理论基础。

17

1.2.3 数据库阶段( 2 )数据库阶段的数据管理具有以下特点:① 采用数据模型表示复杂的数据结构。 ② 有较高的数据独立性。③ 数据库系统为用户提供了方便的用户接口。 ④ 数据库系统提供以下四方面的数据控制功能:并发控制,恢复,完整性和安全性。⑤ 增加了系统的灵活性 。

18

1.2.3 数据库阶段( 3 )数据库的整体逻辑结构

用户的局部逻辑结构

数据库的物理结构

逻辑数据独立性

物理数据独立性

图 1.2 数据库系统的结构

19

程序和数据间的联系:

文件系统阶段信息处理的传统方式:

1.2.3 数据库阶段( 4 )

应用程序n

应用程序1…

数据库管理系

统 DBMS

数据库

输入 程序 输出

20

数据库阶段信息处理方式的演变

1.2.3 数据库阶段( 5 )

联机终端 要求 报表

查询处理程序 报表生成程序

数据库

应用程序 应用程序

输入 输出 输入 输出

21

1.2.3 数据库阶段( 6 ) 定义 1.1 数据库( Database ,简记为 DB ):

DB 是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 DB 能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。

22

1.2.3 数据库阶段( 7 ) 定义 1.2 数据库管理系统( DBMS ):

DBMS 是位于用户与 OS之间的一层数据管理软件,它为用户或应用程序提供访问 DB 的方法,包括 DB的建立、查询、更新及各种数据控制。 DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。

OS

DB

用户DBMS

23

1.2.3 数据库阶段( 8 ) 定义 1.3 数据库系统( Database System ,

简记为 DBS ): DBS 是实现有组织地、动态地存储大

量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。

定义 1.4 数据库技术( DBT ): 数据库技术是研究数据库的结构、存

储、设计、管理和使用的一门软件学科。

24

1.2.4 高级数据库阶段( 1 )

20 世纪 80 年代的分布式数据库系统( DDBS )20 世纪 90 年代的对象数据库系统( ODBS )

开放数据库互联技术( ODBC )21 世纪初的 Web 数据库系统

XML 数据库技术 现代信息集成 (DW 、 OLAP 、 DM)

25

1.2.4 高级数据库阶段( 2 )

1. 对象数据库系统主要有以下两个特点 ① 对象数据模型能完整地描述现实世界地数据

结构,能表达数据间嵌套、递归的联系。② 具有面向对象技术的封装性(把数据与操作

定义在一起)和继承性(继承数据结构和操作)的特点,提高了软件的可重用性。

26

1.2.4 高级数据库阶段( 3 )2. 分布式数据库系统主要有下面三个特点① 数据库的数据物理上分布在各个场地,但逻

辑上是一个整体。 ② 每个场地既可以执行局部应用 (访问本地 D

B) ,也可以执行全局应用 (访问异地 DB) 。③ 各地的计算机由数据通信网络相联系。本地

计算机单独不能胜任的处理任务,可以通过通信网络取得其它 DB 和计算机的支持。

27

1.2.4 高级数据库阶段( 4 )分布式数据库系统

通信网全局终端 数据库

局部处理机

局部处理机局部终端 局部终端

数据库 数据库

28

1.2.4 高级数据库阶段( 5 )3.开放数据库互联(ODBC)技术

20世纪 80年代末,普遍的共识是有必要建立一个公共的、与数据库管理系统无关的应用程序设计接口( API)。在使用 API以后,同一个应用程序就可以访问不同的数据库服务器。

最先上市的公共API是Microsoft公司于1992年推出的 ODBC 产品,因此就把这种技术命名为 ODBC技术,即开放数据库互连技术。

29

1.2.4 高级数据库阶段( 6 )4 . XML数据库技术

XML是一种能够表达比传统数据模型中的数据结构化程度低的数据语言。与对象数据库相比, XML 也提供了一条途径来表示有嵌套结构的数据,但在数据结构化方面有非常大的灵活性。 5 .现代信息集成技术

数据仓库( DW)联机分析处理技术( OLAP)数据挖据( DM)

30

1.3 数据描述

1.3.1 概念设计中的数据描述1.3.2 逻辑设计中的数据描述1.3.3 物理设计中的数据描述1.3.4 数据联系的描述

31

1.3 数据描述在数据处理中,数据描述将涉及到不同的

范畴。从事物的特性到计算机中的具体表示,实际上经历了三个阶段——概念设计中的数据描述、逻辑设计中的数据描述和物理设计中的数据描述。本节先介绍这三个阶段的数据描述,再介绍数据之间联系如何描述。

32

1.3.1 概念设计中的数据描述实体( entity ):客观存在,可以相互区别的事物称为实体。

实体集( entity set ):性质相同的同类实体的集合,称为实体集。

属性( attribute ):实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。

实体标识符( identifier ):能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码( key ),或简称为键。

33

1.3.2 逻辑设计中的数据描述( 1 )

字段( field ):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。

记录( record ):字段的有序集合称为记录。 文件( file ):同一类记录的集合称为文件。 关键码( key ):能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。

34

1.3.2 逻辑设计中的数据描述( 2 )

术语的对应关系:概念设计 逻辑设计

………实体 记录 ………属性 字段(数据项) ………实体集 文件

………实体标识符 关键码

35

学生

张三

类型物理

逻辑

记录

36

1.3.3 物理设计中的数据描述(1) 物理存储介质层次根据访问数据的速度、成本和可靠性,计算机系统的存储介质可分成以下六类。

( 1 )高速缓冲存储器( cache )( 2 )主存储器( main memory )( 3 )快擦写存储器( flash memory )( 4 )磁盘存储器( magnetic disk )( 5 )光存储器( optical storage )( 6 )磁带( tape storage )

37

1.3.3 物理设计中的数据描述(2)

高速缓存

内存

快闪存储器

磁盘存储器

光存储器

磁带存储器

图 1.6 存储介质层次

辅助存储器联机存储器

第三级存储器脱机存储器

38

1.3.3 物理设计中的数据描述(3) 位( bit ,比特):一个二进制位称为“位”。一位只能取 0或 1 两个状态。

字节( byte ): 8 个比特称为一个字节,可以存放一个字符所对应的 ASCII码。

字( word ):若干个字节组成一个字。一个字所含的二进制位的位数称为字长。

块( block ):又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为 210~214 字节。

桶( bucket ):外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。

卷( volume ):一个输入输出设备所能装载的全部有用信息,称为“卷”。

39

1.3.4 数据联系的描述( 1 )定义 1.5 联系( relationship )是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。定义 1.6 二元联系有以下三种类型:① 一对一联系:如果实体集 E1 中每个实体至多和实体集 E2 中的一个实体有联系,反之亦然,那么实体集 E1和 E2 的联系称为“一对一联系”,记为“ 1:1” 。② 一对多联系:如果实体集 E1 中每个实体可以与实体集 E2 中任意个(零个或多个)实体间有联系,而 E2 中每个实体至多和 E1 中一个实体有联系,那么称 E1 对 E2 的联系是“一对多联系”,记为“ 1:N” 。 ③ 多对多联系:如果实体集 E1 中每个实体可以与实体集 E2 中任意个(零个或多个)实体有联系,反之亦然,那么称 E1 和 E2 的联系是“多对多联系”,记为“M:N” 。

40

1.3.4 数据联系的描述( 2 )例 1.2

E2

E1 E2

座位

E1

乘客

E1 E2

E1 E2

学生 课程

E2

E1 E2

E1

车间 工人

41

1.3.4 数据联系的描述( 3 )例 1.3

零件M

N

飞机 驾驶员

航行班次N

1 M

图1.10 三元联系 图1.11 一元联系

42

1.4 数据抽象的级别 1.4.1 数据抽象的过程 1.4.2 概念模型 1.4.3 逻辑模型 1.4.4 外部模型 1.4.5 内部模型 1.4.6 三层模式和两级映像 1.4.7 高度的数据独立性

43

1.4.1 数据抽象的过程( 1 )模型( model ):对现实世界的抽象。数据模型:描述数据库的结构和语义,对现实世界的数据进行抽象。从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象过程。根据数据抽象的级别定义了四种模型:概念数据模型、逻辑数据模型、外部数据模型和内部数据模型。一般,在提及时省略“数据”两字。

44

1.4.1 数据抽象的过程( 2 )定义 1.7 表达用户需求观点的数据全局逻辑结构的模型,称为“概念模型”。表达计算机实现观点的 DB全局逻辑结构的模型,称为“逻辑模型”。表达用户使用观点的 DB局部逻辑结构的模型,称为“外部模型”。表达DB物理结构的模型,称为“内部模型”。

45

1.4.1 数据抽象的过程( 3 )

综合

转换

应用 1 应用 3应用 2

逻辑模型

内部模型

外部模型3

外部模型2

外部模型1

映像

映像

DB

概念模型

用户需求

用户需求

用户 1

用户 3

用户 2

用户需求

图 1.12 四种模型之间的相互关系

46

1.4.1 数据抽象的过程( 4 )数据抽象的过程,具体步骤如下:第 1 步:根据用户需求,设计数据库的概念模型,这是一个“综合”的过程。第 2 步:根据转换规则,把概念模型转换成数据库的逻辑模型,这是一个“转换”的过程。第 3 步:根据用户的业务特点,设计不同的外部模型,给程序员使用。第 4 步:数据库实现时,要根据逻辑模型设计其内部模型。一般,上述第 1 步称为 DB 的概念设计,第 2 、 3 步称为 DB 的逻辑设计,第 4 步称为 DB 的物理设计。

47

1.4.2 概念模型( 1 )概念模型的特点如下所述:( 1 )概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述。( 2 )概念模型是从用户需求的观点出发,对数据建模。( 3 )概念模型独立于硬件和软件。硬件独立意味着概念模型不依赖于硬件设备,软件独立意味着该模型不依赖于实现时的 DBMS 软件。( 4 )概念模型是数据库设计人员与用户之间进行交流的工具。

48

1.4.2 概念模型( 2 )ER模型是 P.P.Chen于 1976年提出的。这个模型直接从现实世界中抽象出实体类型及实体间联系,然后用实体联系图( ER图)表示数据模型。设计 ER图的方法称为 ER方法。 ER图是直接表示概念模型的有力工具。定义 1.8 ER图有三个基本成分:①矩形框,用于表示实体类型(考虑问题的对象)。②菱形框,用于表示联系类型(实体间联系)。③椭圆形框,用于表示实体类型和联系类型的属性。

49

1.4.2 概念模型( 3 )

图 1.13 ER图实例

S#

STUDENT SC

SNAME AGE C#

SEX

CNAME

T#TNAME

TITLE

SCORE

TCCOURSE TEACHER1NM N

50

1.4.2 概念模型( 4 )ER模型有两个明显的优点:一是简单,容易理解,真实地反映用户的需求;二是与计算机无关,用户容易接受。因此 ER模型已成为软件工程的一个重要设计方法。但是 ER模型只能说明实体间语义的联系,还不能进一步说明详细的数据结构。在数据库设计时,遇到实际问题总是先设计一个 ER模型,然后再把 ER模型转换成计算机能实现的数据模型,譬如关系模型。

51

1.4.3 逻辑模型在选定 DBMS 软件后,就要将概念模型按照选定的DBMS 的特点转换成逻辑模型。逻辑模型具有下列特点:( 1 )逻辑模型表达了 DB 的整体逻辑结构,但它是设计人员对整个应用项目数据库的全面描述。( 2 )逻辑模型是从数据库实现的观点出发,对数据建模。( 3 )逻辑模型独立于硬件,但依赖于软件( DBMS )。( 4 )逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。

52

1. 层次模型( 1 ) 用树型(层次)结构表示实体类型及实体间联系的

数据模型称为层次模型( hierarchical model )。 层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由 DBMS 完成。

层次模型有两个缺点:一是只能表示 1:N 联系,虽然系统有多种辅助手段实现 M:N 联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。

53

1. 层次模型( 2 )

层次模型例子 层次模型的具体实例

(树结构)

COURSE

SC TEACHER

STUDENT

C4 , C++

C3 , OS

C2 , DB

C1 , C

S1,C1,80

S2,C1,85

S1,WANG,20,M S2,LIU,18,F

T2,C1,SHI, 教授

54

2. 网状模型( 1 )用有向图结构表示实体类型及实体间联

系的数据模型称为网状模型( network model )。

网状模型的特点是记录之间联系通过指针实现, M:N 联系也容易实现(一个 M:N 联系可拆成两个 1:N 联系),查询效率较高。

网状模型的缺点是数据结构复杂和编程复杂。

55

2. 网状模型( 2 )

网状模型例子

网状模型的实例(局部)

(有向图结构)STUDENT COURSE

TEACHER

SC

T_C

C_SCS_SC

C1 C3 C2 C4

S1,C1,80

S1 S2 S3 S4

S1,C2,60

S1,C3,70

S2,C1,85

S2,C2,75

S4,C4,90

56

层次模型( DS 是树结构)网状模型( DS 是有向图结构)

•DS复杂•用指针表示联系•编程复杂(过程性语言)

3GL

57

3. 关系模型( 1 )关系模型( relational model )的主要

特征是用二维表格表达实体集。 与前两种模型相比,数据结构简单,容易为初学者理解。

关系模型是由若干个关系模式组成的集合。

关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。

58

3. 关系模型( 2 )例 1.7 TEACHER模式( T#, TNAME, TITLE)COURSE模式( C#, CNAME, T#)STUDENT模式( S#, SNAME, AGE, SEX)SC模式( S#, C#, SCORE)图 1.18 关系模型的例子

59

3. 关系模型( 3 ) TEACHER 关系 COURSE 关系T#

TNAME

TITLE C#CNAME

T#

T2 SHI 教授 C1 C T2T3 LI 副教授 C2 DB T3T1 DAI 讲师 C3 OS T3T4 GU 讲师 C4 C++ T2 STUDENT 关系 SC 关系S#

SNAME

AGE SEX S# C#SCORE

S1WANG

20 M S1 C1 80

S4 LIU 18 F S1 C2 60S2 HU 17 M S1 C3 70S3 XIA 19 F S4 C4 90

S2 C1 85图 1.19 关系模型的实

例 S2 C2 75

60

3. 关系模型( 4 )关系模型和层次、网状模型的最大差别

是用关键码而不是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。

关系模型是数学化的模型。由于把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。

61

4. 对象模型( 1 )

对象( object )是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。

将属性集和方法集相同的所有对象组合在一起,构成了一个类( class )。

62

4. 对象模型( 2 )

类 SC PC ● PS ● SCORE

类 COURSE C# CNAME PT ●

类 TEACHER T# TNAME TITLE

类 STUDENT S# SNAME AGE

SEX

图1.20 对象模型的类层次例子

63

四种逻辑模型的比较层次模型 网状模型 关系模型 面向对象模型

创始1968年 IBM公司的 IMS系

1969年 CODASYL的 DBTG报告(1971年通过 )

1970年 E.F.Codd

提出关系模型

20世纪 80年代

数据结构 复杂(树结构)

复杂(有向图结构)

简单(二维表)

复杂(嵌套、递归 )

数据联系 通过指针 通过指针 通过表间的公共属性 通过对象标识

查询语言 过程性语言 过程性语言 非过程性语言 面向对象语言

典型产品 IMS

IDS/ⅡIMAGE/3000

IDMSTOTAL

OracleSybase

DB2SQL Server

Informix

ONTOS DB

盛行期 20世纪 70年代 70年代至 80年代中期 80年代至现在 90年代至现在

64

1.4.4 外部模型( 1)例 1.9 图 1.18所示的关系模型由 TEACHER、COURSE、 STUDENT和 SC等四个关系模式组成。 外部模型中的模式称为“视图”( View)。

学生视图 STUDENT_VIEW( S#, SNAME, C#, CNAME, SCORE, T#, TNAME)教师视图 TEACHER_VIEW( T#, TNAME, C#, CNAME, S#, SNAME, SEX, SCORE)

65

1.4.4 外部模型( 2)外部模型具有如下的特点:( 1)外部模型是逻辑模型的一个逻辑子集。( 2)外部模型独立于硬件,依赖于软件。( 3)外部模型反映了用户使用数据库的观点。从整个系统考察,外部模型具有下列优点:( 1)简化了用户的观点。( 2)有助于数据库的安全性保护。( 3)外部模型是对概念模型的支持。

66

1.4.5 内部模型内部模型又称为物理模型,是数据库最低层的抽象,它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)。内部模型是与硬件和软件紧密相连的。 在层次、网状模型设计时,要精心设计内部模型,以提高系统的效率。 但随着计算机软、硬件性能的大幅度提高,并且目前占绝对优势的关系模型是以逻辑级为目标,因而可以不必考虑内部级的设计细节,由系统自动实现。

67

1.4.6 三层模式和两级映像 (1)1. 三层模式体系结构定义 1.9 从用户(或应用程序)到数据库之间,

DB的数据结构描述有三个层次:① 外模式是用户与数据库系统的接口,是用户用

到的那部分数据的描述。外模式由若干个外部记录类型组成。

② 逻辑模式是数据库中全部数据的整体逻辑结构的描述。它由若干个逻辑记录类型组成,还包含记录间联系、数据的完整性安全性等要求。

③ 内模式是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。

68

1.4.6 三层模式和两级映像 (2)三层模式体系结构具有以下特点:( 1 )用户使用 DB 的数据操纵语言( DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作。( 2)逻辑模式必须不涉及到存储结构、访问技术等细节。数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而逻辑模式提供了连接这两级的相对稳定的中间观点,并使得两级中任何一级的改变都不受另一级的牵制。( 3)内模式并不涉及到物理设备的约束。

69

1.4.6 三层模式和两级映像 (3)2.两级映像定义 1.10 三层模式之间存在着两级映像:① 外模式/逻辑模式映像存在于外部式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。这个映像一般是放在外模式中描述的。② 逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性。这个映像一般是放在内模式中描述的。数据库的三层模式和两级映像结构称为“数据库的体系结构”,有时亦称为“三层模式结构”,或“数据抽象的三个级别”。这个结构早先是在 1971年通过的 DBTG报告中提出,后来收入在 1975年的 ANSI/ X3/ SPARC报告中。

70

1.4.7 高度的数据独立性 (1)定义 1.11 数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修改应用程序,则称系统达到了数据独立性目标。 (1)物理数据独立性:对内模式的修改尽量不影响逻辑模式、外模式和应用程序,我们称数据库达到了物理数据独立性(简称物理独立性)。 (2)逻辑数据独立性:对逻辑模式的修改尽量不影响外模式和应用程序,我们称数据库达到了物理数据独立性(简称物理独立性)。数据库的三层模式结构是一个理想的结构,使数据库系统达到了高度的数据独立性。

71

1.4.7 高度的数据独立性 (2) 用户(应用程序)…用户记录

…外部记录

…逻辑记录

…内部记录

…物理记录

结构一致,只是数据传输问题。

结构不一致,除了数据传输,还需格式转换。

结构一致,只是数据传输问题。

外模式 / 逻辑模式映像

逻辑模式 / 内模式映像

外模式

逻辑模式

内模式

DB

图1.21 数据抽象各个层次中记录的联系

72

1.5 数据库管理系统

1.5.1 DBMS 的工作模式1.5.2 DBMS 的主要功能

73

1.5.1 DBMS 的工作模式( 1 )

①接受应用程序的数据请求和处理请求②将用户的数据请求 ( 高级指令 )转换成复杂的机器代码 (低层指令 )

③实现对数据库的操作④从对数据库的操作中接受查询结果⑤对查询结果进行处理(格式转换)⑥将处理结果返回给用户

DB应用程序 DBMS数据请求 低层指令

数据( 处理结果 )

数据(查询结果 )

图 1.22 DBMS的工作模式

74

1.5.1 DBMS 的工作模式( 2 )

图 1.23 用户访问数据的过程

应用程序

DB 的系统缓冲区

外模式

模式

内模式

DB

OS

DBMS

75

1.5.2 DBMS 的主要功能

① 数据库的定义功能( DDL )② 数据库的操纵功能( DML )③ 数据库的保护功能

恢复,并发控制,完整性,安全性。④ 数据库的维护功能( Utilities )⑤ 数据字典( DD )

76

1.6 数据库系统

1.6.1 DBS 的组成1.6.2 DBS 的全局结构1.6.3 DBS 结构的分类1.6.4 应用程序的演变1.6.5 DBS 的效益

77

1.6.1 DBS 的组成( 1 ) DBS 是采用了数据库技术的计算机系统。 DBS 是

一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件和数据库管理员的集合体。

DB 是与一个企业组织各项应用有关的全部数据的集合。

软件: DBMS 、 OS 、 3GL 、 4GL 。 定义 1.12 DBA 是控制数据整体结构的一组人员,负责 DBS 的正常运行,承担创建、监控和维护数据库结构的责任。

78

1.6.1 DBS 的组成( 2 ) DBA 的主要职责有以下六点:① 定义模式② 定义内模式③ 与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务。

④ 定义安全性规则,对用户访问数据库的授权。⑤ 定义完整性规则,监督数据库的运行。⑥ 数据库的转储与恢复工作。

79

1.6.2 DBS 的全局结构( 1 )

存储管理器

终端用户 应用程序员 专业用户 DBA 用户

应用界面 数据库模式查询应用程序 界面

索引

统计数据数据文件 日志

数据字典

磁盘存储器

权限和完整性管理器

事务管理器

缓冲区管理器

文件管理器

数据库管理系统

DML编译器

嵌入型 DML预编译器

DDL编译器

查询运行核心程序

应用程序目标码

查询处理器

80

1.6.2 DBS 的全局结构( 2 )

数据库用户 DBMS 的查询处理器 DBMS 的存储管理器 磁盘存储器中的数据结构

81

1.6.3 DBS 结构的分类集中式 DBS ( centralized DBS ) 客户机/服务器式 DBS ( client/ser

ver DBS ,记为 C/S DBS )

并行式 DBS ( parallel DBS )分布式 DBS ( distributed DBS )

82

1.6.4 应用程序的演变应用程序从低级到高级大致经历了以下几个阶段:( 1 )采用“交互式 SQL”直接使用 DB 的方式( 2 )采用“主语言 +嵌入式 SQL” 方式编写程序( 3 )采用“主语言 +ODBC函数 +嵌入式 SQL”方式编写应用程序( 4 )采用“ 4GL+事件和函数 +嵌入式 SQL” 方式编写应用程序 应用程序采用 PowerBuilder 一类软件开发工具(属于 4GL )编写。

83

1.6.5 DBS 的效益

① 灵活性② 简易性③ 面向用户④ 有效的数据控制⑤ 加快应用系统的开发速度⑥ 维护方便⑦ 标准化

84

1.7 小 结( 1 ) 数据管理技术经历了人工管理、文件系统、

数据库和高级数据库技术等四个阶段。数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统的三个缺陷:数据的冗余、不一致性和联系弱。

在数据库领域,应该准确使用术语,深刻了解实体间 1:1 、 1:N 和 M:M 三种联系的意义。

85

1.7 小 结( 2 )数据模型是对现实世界进行抽象的工具。从现实世界的信息到数据库存储的数据以及用户使用的数据,这是一个逐步抽象的过程。分成四个级别:概念模型、逻辑模型、外部模型和内部模型。概念模型是对现实世界的抽象,是一种高层的数据模型。逻辑模型是用某种 DBMS 软件对 DB 管理的数据的描述。外部模型是逻辑模型的逻辑子集,是用户使用的数据模型。内部模型是对逻辑模型的物理实现。

86

1.7 小 结( 3 ) DB 是存储在一起集中管理的相关数据的集合。

DB 的体系结构是对数据的三个抽象级别。它把数据的具体组织留给 DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。由于三层结构之间往往差别很大,存在着两级映象,因此使 DBS 具有较高的数据独立性:物理数据独立性和逻辑数据独立性。

87

1.7 小 结( 4 ) 数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。

DBMS 是位于用户与 OS之间的一层数据管理软件。数据库语言分成 DDL 和 DML 两类。DBMS 主要由查询处理器和存储管理器两大部分组成。

DBS 是包含 DB 和 DBMS 的计算机系统。 D

BS 的全局结构体现了 DBS 的模块功能结构。

88

本章的重点篇幅 ( 1 )教材 P22 的表 1.3 。

(四种逻辑数据模型的比较)( 2 )教材 P26 的图 1.21 。

(数据抽象各个层次中记录的联系)( 3 )教材 P26 的图 1.22 。

( DBMS 的工作模式)( 4 )教材 P30 的图 1.24 。

( DBS 的全局结构)