第二章 C++语言基础

Download Report

Transcript 第二章 C++语言基础

数据库技术及应用
东南大学自动控制系
邵家玉
EMAIL:[email protected]
邵家玉@中国
QQ:171995639
POPO:Bistone
MSN: [email protected]
课件下载:http://automation.seu.edu.cn/
返回
1
课程内容:
1.数据库原理
2.数据库设计
3.数据库产品学习:
 MS ACCESS 上机练习
 MS SQL Server 2000提供课件自学
 ORACLE 8 提供课件自学
返回
2
从这门课中我们将学到什么?
1.领进门:学习数据库方面的一些基本概念
2.查询资料和理解资料的能力
3.最重要的学习能力:发现问题,解决问题
返回
3
教材:
1.王能斌。数据库系统。电子工业出版
社。1995年。
2.王能斌编。数据库系统原理。电子工
业出版社。2000年。
3.[美]J·D·厄尔曼。数据库系统原理。
返回
4
参考书目
1. 萨师煊,王珊. 数据库系统概论(第三版). 北京:高等教育出
版社,2001
2. 李昭原. 数据库原理与应用. 北京:科学出版社,2000
3. 张健沛. 数据库原理及应用系统开发. 北京:中国水利水电出版
社,1999
4. 王珊,陈红. 数据库系统原理教程. 北京:清华大学出版社,
1999
5. (美)Philip J. Pratt ,Jose J. Adamski. 陆洪毅,杨文波,程
华等译. 数据库管理系统基础. 北京:机械工业出版社. 1999
6. Abraham Silberschatz,Henry F. Korth,S. Sudarshan. 杨冬
青,唐世渭等译. 数据库系统概念. 北京:机械工业出版社.
2000
7. Hector Garcia-Molina,Jeffrey D. Ullman,Jennifer Widom.
杨冬青,唐世渭,徐其钧等译. 数据库系统实现. 北京:机械
工业出版社,2001
返回
5
考核说明:
就数据库的某一方向或与数据库相关的某一方向
撰写一篇综述性学术论文,在最后一节课前交或
者在长学期第一周内EMAIL给我,逾期者没有
成绩,责任自负。要求如下:
1 题目自拟(如主要DBMS产品功能分析、电子
商务、面向对象数据库、实时数据库、主动数据
库、SQL3、EER、数据库设计等) 。
2 字数不少于3000字。
3 不得全文直接抄袭别人已发表的论文。 要有自
己的归纳总结。(注意学术道德)
4 格式参照正式发表的学术论文的要求(要有中
英文摘要、参考文献)。
5 行文要规范。
返回
6
范例:COM/DCOM/COM+组件技术
上机实验内容:
1。MS ACCESS
2。使用多种检索方法找资料,完成考核
返回
7
第1章
数据库系统概述
返回
8
本章概要
 在本章中,首先介绍数据库中有关的主要概念,
然后回顾数据管理技术的三个发展阶段。
 要求了解数据库的三个发展阶段及各阶段的主
要特点,掌握数据库中的有关的基本概念、数
据库系统的组成及各部分的主要功能。
 重点掌握实体、属性定义和实体型之间的联系
类型及特点。
 了解三种数据模型的特点及区别,为后面各章
的学习打下基础。
 了解面向对象数据模型的基本特征。
返回
9
1.1 信息、数据与数据处理
1.1.1 数据与信息
 在数据处理中,我们最常用到的基本概念就是数据和
信息,信息与数据有着不同的含义。
1.1.1.1 信息(Information)
1. 信息的定义
 信息是关于现实世界事物的存在方式或运动状态的反
映的综合,具体说是一种被加工为特定形式的数据,
但这种数据形式对接收者来说是有意义的,而且对当
前和将来的决策具有明显的或实际的价值。
如“2000年硕士研究生将扩招30%”,对接受者有意义,
使接受者据此作出决策。
返回
10
2. 信息的特征
 信息源于物质和能量,它不可能脱离物质而存在,信息
的传递需要物质载体,信息的获取和传递要消耗能量。
 如信息可以通过报纸、电台、电视、计算机网络进行传递。
 信息是可以感知的,人类对客观事物的感知,可以通过
感觉器官,也可以通过各种仪器仪表和传感器等,不同
的信息源有不同的感知形式。
 如报纸上刊登的信息通过视觉器官感知,电台中广播的信息通
过听觉器官感知。
 信息是可存储、加工、传递和再生的。动物用大脑存储
信息,叫做记忆。计算机存储器、录音、录像等技术的
发展,进一步扩大了信息存储的范围。借助计算机,还
可对收集到的信息进行取舍整理。
返回
11
1.1.1.2 数据 (Data)
1. 数据的定义
数据是用来记录信息的可识别的符号,是信息
的具体表现形式。
2. 数据的表现形式
 可用多种不同的数据形式表示同一信息,而信
息不随数据形式的不同而改变。
如“2000年硕士研究生将扩招30%”,其中的数据可
改为汉字形式“两千年”、“百分之三十”。
 数据的概念在数据处理领域中已大大地拓宽了,
其表现形式不仅包括数字和文字,还包括图形、
图象、声音等。这些数据可以记录在纸上,也
可记录在各种存储器中。
返回
12
1.1.1.3 数据与信息的联系
 数据是信息的符号表示或载体,信息则是数据的内涵,
是对数据的语义解释。
 如上例中的数据2000、30%被赋予了特定的语义,它们就具有了
传递信息的功能。
1.1.2 数据处理
 数据处理是将数据转换成信息的过程,包括对数据的收
集、存储、加工、检索、传输等一系列活动。其目的是
从大量的原始数据中抽取和推导出有价值的信息,作为
决策的依据。
 可用下式简单的表示信息、数据与数据处理的关系:
信息=数据+数据处理
 数据是原料,是输入,而信息是产出,是输出结果。
“信息处理”的真正含义应该是为了产生信息而处理数
据。
返回
13
1.2 数据库技术的产生、发展与研究领域
1.2.1 数据库技术的产生与发展
 数据处理的中心问题是数据管理。
 数据管理是指对数据的组织、分类、编码、存储、检
索和维护。
 随着计算机硬件和软件的发展,数据管理经历了人工
管理、文件系统和数据库系统三个发展阶段。
1.2.1.1 人工管理阶段(50年代中期以前)
 这一阶段计算机主要用于科学计算。
 硬件中的外存只有卡片、纸带、磁带,没有磁盘等直
接存取设备。
 软件只有汇编语言,没有操作系统和管理数据的软件。
 数据处理的方式基本上是批处理。
返回
14
人工管理阶段的特点如下:
1. 数据不保存
 因为当时计算机主要用于科学计算,对于数据保存的
需求尚不迫切。
2. 系统没有专用的软件对数据进行管理
 每个应用程序都要包括数据的存储结构、存取方法、
输入方式等,程序员编写应用程序时,还要安排数据
的物理存储,因此程序员负担很重。
3. 数据不共享
 数据是面向程序的,一组数据只能对应一个程序。
 多个应用程序涉及某些相同的数据时,也必须各自定
义,因此程序之间有大量的冗余数据。
返回
15
4. 数据不具有独立性
 程序依赖于数据,如果数据的类型、格式、或输入输
出方式等逻辑结构或物理结构发生变化,必须对应用
程序做出相应的修改。
在人工管理阶段,程序与数据之间的关系可用图1.1
表示。
数据集1
应用程序2
数据集2
应用程序3
数据集3
…
应用程序1
图1.1 人工管理阶段
返回
16
1.2.1.2 文件系统阶段(50年代后期至60年代中期)
 这一阶段,计算机不仅用于科学计算,还大量
用于信息管理。
 大量的数据存储、检索和维护成为紧迫的需求。
 硬件有了磁盘、磁鼓等直接存储设备。
 在软件方面,出现了高级语言和操作系统。
 操作系统中有了专门管理数据的软件,一般称
为文件系统。
 处理方式有批处理,也有联机处理。
返回
17
文件管理数据的特点如下:
1. 数据以文件形式可长期保存下来
 用户可随时对文件进行查询、修改和增删等处理。
2. 文件系统可对数据的存取进行管理
 程序员只与文件名打交道,不必明确数据的物理存储,
大大减轻了程序员的负担。
3. 文件形式多样化
 有顺序文件、倒排文件、索引文件等,因而对文件的
记录可顺序访问,也可随机访问,更便于存储和查找
数据。
4. 程序与数据间有一定独立性
 由专门的软件即文件系统进行数据管理,程序和数据
间由软件提供的存取方法进行转换,数据存储发生变
化不一定影响程序的运行。
返回
18
在文件系统阶段,程序与数据之间的关系可用图
1.2表示。
应用程序1
应用程序2
文件1
文件2
…
…
文件
系
统
应用程序n
文件n
图1.2 文件系统阶段
返回
19
与人工管理阶段相比,文件系统阶段对数据的管理有了
很大的进步,但一些根本性问题仍没有彻底解决,主要
表现在以下三方面:
1. 数据冗余度大
各数据文件之间没有有机的联系,一个文件基本上对
应于一个应用程序,数据不能共享。
2. 数据独立性低
数据和程序相互依赖,一旦改变数据的逻辑结构,必
须修改相应的应用程序。
而应用程序发生变化,如改用另一种程序设计语言来
编写程序,也需修改数据结构。
3.数据一致性差
由于相同数据的重复存储、各自管理,在进行更新操
作时,容易造成数据的不一致性。
返回
20
1.2.1.3数据库系统阶段(60年代末开始)
 60年代后期,计算机应用于管理的规模更加庞
大,数据量急剧增加;
 硬件方面出现了大容量磁盘,使计算机联机存
取大量数据成为可能;
 硬件价格下降,而软件价格上升,使开发和维
护系统软件的成本增加。
 文件系统的数据管理方法已无法适应开发应用
系统的的需要。
 为解决多用户、多个应用程序共享数据的需求,
出现了统一管理数据的专门软件系统,即数据
库管理系统。
返回
21
数据库系统管理数据的特点如下:
1. 数据共享性高、冗余少
 这是数据库系统阶段的最大改进,数据不再面向某个
应用程序而是面向整个系统,当前所有用户可同时存
取库中的数据。
 这样便减少了不必要的数据冗余,节约存储空间,同
时也避免了数据之间的不相容性与不一致性。
2. 数据结构化
 按照某种数据模型,将全组织的各种数据组织到一个
结构化的数据库中,整个组织的数据不是一盘散沙,
可表示出数据之间的有机关联。
返回
22
 例:要建立学生成绩管理系统,系统包含学生
(学号、姓名、性别、系别、年龄)、课程
(课程号、课程名)、成绩(学号、课程号、
成绩)等数据,分别对应三个文件。
 若采用文件处理方式,因为文件系统只表示记
录内部的联系,而不涉及不同文件记录之间的
联系,要想查找某个学生的学号、姓名、所选
课程的名称和成绩,必须编写一段不很简单的
程序来实现。
 而采用数据库方式,数据库系统不仅描述数据
本身,还描述数据之间的联系,上述查询可以
非常容易地联机查到。
返回
23
3. 数据独立性高
 数据的独立性是指逻辑独立性和物理独立性。
 数据的逻辑独立性是指当数据的总体逻辑结构改变时,
数据的局部逻辑结构不变,由于应用程序是依据数据
的局部逻辑结构编写的,所以应用程序不必须修改,
从而保证了数据与程序间的逻辑独立性。
 例如,在原有的记录类型之间增加新的联系,或在某些记录
类型中增加新的数据项,均可确保数据的逻辑独立性。
 数据的物理独立性是指当数据的存储结构改变时,数
据的逻辑结构不变,从而应用程序也不必改变。
 例如,改变存储设备和增加新的存储设备,或改变数据的存
储组织方式,均可确保数据的物理独立性。
返回
24
4. 有统一的数据控制功能
 数据库为多个用户和应用程序所共享,对数据的存取
往往是并发的,即多个用户可以同时存取数据库中的
数据,甚至可以同时存取数据库中的同一个数据,为
确保数据库数据的正确有效和数据库系统的有效运行,
数据库管理系统提供下述四方面的数据控制功能。
(1)数据的安全性(security)控制:防止不合法使用
数据造成数据的泄露和破坏,保证数据的安全和机密;
 例如,系统提供口令检查或其他手段来验证用户身份,防止
非法用户使用系统;也可以对数据的存取权限进行限制,只
有通过检查后才能执行相应的操作。
(2)数据的完整性(integrity)控制:系统通过设置一些
完整性规则以确保数据的正确性、有效性和相容性。
返回
25
正确性是指数据的合法性,如年龄属于数值型数据,
只能含0,1,…9,不能含字母或特殊符号;
有效性是指数据是否在其定义的有效范围,如月份
只能用1~12之间的正整数表示;
相容性是指表示同一事实的两个数据应相同,否则
就不相容,如一个人不能有两个性别。
(3)并发(concurrency)控制:多用户同时存
取或修改数据库时,防止相互干扰而提供给用
户不正确的数据,并使数据库受到破坏。
返回
26
(4)数据恢复(recovery):当数据库被破坏或数据不
可靠时,系统有能力将数据库从错误状态恢复到最近
某一时刻的正确状态。
 数据库系统阶段,程序与数据之间的关系可用图1.3表
示。
应用程序1
应用程序2
数据库
管理系统
数
据
库
应用程序n
图1.3 数据库系统阶段
返回
27
 从文件系统管理发展到数据库系统管理是信息
处理领域的一个重大变化。
 在文件系统阶段,人们关注的是系统功能的设
计,因此程序设计处于主导地位,数据服从于
程序设计;
 而在数据库系统阶段,数据的结构设计成为信
息系统首先关心的问题。
 数据库技术经历了以上三个阶段的发展,已有
了比较成熟的数据库技术,但随着计算机软硬
件的发展,数据库技术仍需不断向前发展。
返回
28
1.2.2 数据库技术的研究领域
数据库学科的研究范围主要包括以下三个领域:
1. 数据库管理系统软件的研制
 DBMS是数据库系统的基础。
 DBMS 的研制包括研制 DBMS 本身及以 DBMS 为核心的一组相
互联系的软件系统,包括工具软件和中间件。
 研制的目标是提高系统的性能和提高用户的生产率。
2. 数据库设计
 数据库设计的研究范围包括:
 数据库的设计方法、设计工具和设计理论的研究,
 数据模型和数据建模的研究,
 计算机辅助数据库设计及其软件系统的研究,
 数据库设计规范和标准的研究等。
返回
29
3. 数据库理论
 数据库理论的研究主要集中于关系规范化理论、
关系数据理论等。
 近年来,随着人工智能与数据库理论的结合以
及并行计算技术的发展,数据库逻辑演绎和知
识推理、并行算法等都成为新的研究方向。
 随着数据库应用领域的不断扩展,计算机技术
的迅猛发展,数据库技术与人工智能技术、网
络通信技术、并行计算技术等到相互渗透、相
互结合,使数据库技术不断涌现新的研究方向。
返回
30
1.3 数据库系统的组成和结构
1.3.1 数据库系统的组成
 数据库系统通常是指数据库和相应的软硬件系统。主
要由数据(库)、用户、软件和硬件四部分组成。
1.3.1.1 数据(库)
 数据库是长期存储在计算机内有组织的共享的数据的
集合。
 它可以供用户共享,具有尽可能小的冗余度和较高的
数据独立性,使得数据存储最优,数据最容易操作,
并且具有完善的自我保护能力和数据恢复能力。
返回
31
数据库特点如下:
1. 集成性:把某特定应用环境中的各种应用相关的数据
及其数据之间的联系全部地集中地并按照一定的结构
形式进行存储,或者说,把数据库看成为若干个单个
性质不同的数据文件的联合和统一的数据整体。
2. 共享性:数据库中的一块块数据可为多个不同的用户
所共享,即多个不同的用户,使用多种不同的语言,
为了不同的应用目的,而同时存取数据库,甚至同时
存取同一块数据,即多用户系统。
返回
32
1.3.1.2 用户
 用户是指使用数据库的人,即对数据库的存储、维护
和检索等操作。
用户分为三类:
1. 第一类用户,终端用户(End User)
 主要是使用数据库的各级管理人员、工程技术人员、科研人
员,一般为非计算机专业人员;
2. 第二类用户,应用程序员(Application Programmer)
 负责为终端用户设计和编制应用程序,以便终端用户对数据
库进行存取操作。
3. 第三类用户,数据库管理员(Dadabase Administrator,
简称DBA)
 DBA是指全面负责数据库系统的“管理、维护和正常使用的”
人员,其职责如下:
返回
33
(1)参与数据库设计的全过程,决定数据库的结构和内
容;
(2)定义数据的安全性和完整性,负责分配用户对数据
库的使用权限和口令管理;
(3)监督控制数据库的使用和运行,改进和重新构造数
据库系统。当数据库受到破坏时,应负责恢复数据库;
当数据库的结构需要改变时,完成对数据结构的修改。
 DBA不仅要有较高的技术专长和较深的资历,并应具
有了解和阐明管理要求的能力。
 特别对于大型数据库系统,DBA极为重要。对于常见
的微机数据库系统 ,通常只有一个用户 ,常常不设
DBA,DBA的职责由应用程序员或终端用户代替。
返回
34
1.3.1.3 软件 (Software)
 负责数据库存取、维护和管理的软件系统,即数据库
管 理 系 统 ( Data Base Management System , 简 称
DBMS),
 数据库系统的各类人员对数据库的各种操作请求,都
由DBMS完成,
 DBMS是数据库系统的核心软件。
1.3.1.4硬件(Hardware)
 存储和运行数据库系统的硬件设备。
 包括CPU、内存、大容量的存储设备、外部设备等。
返回
35
数据库系统层次结构图如下图
由上图看出:
 DBMS在操作系统(OS)的支持下工作,
 应用程序在DBMS支持下才能使用数据库。
返回
36
1.3.2 数据库系统的结构
 可以从多种不同的角度考查数据库系统的结构。
 从数据库管理系统的角度看,数据库系统通常采用三级模式
结构,这是数据库系统内部的体系结构;
 从数据库最终用户的角度看,数据库系统的结构分为集中式
结构、分布式结构和客户/服务器结构,这是数据库系统外部
的体系结构。
1.3.2.1 数据库系统的三级模式结构
 模式(Schema)是数据库中全体数据的逻辑结构和特
征的描述。
 例如:学生记录定义为(学号、姓名、性别、系别、年龄),
称为记录型,
 而(001101,张立,男,计算机,20)则是该记录型的一个
记录值。
 模式只是对记录型的描述,而与具体的值无关。
返回
37
 在数据库系统中,对于同一意义下的数据,如:学生
数据,从计算机中处理的二进制表示到用户处理的诸
如学生姓名、年龄等概念的数据之间,存在着许多抽
象和转换。
 通常DBMS把数据库从逻辑上分为三级,即外模式、
模式和内模式,它们分别反映了看待数据库的三个角
度。三级模式结构如图 1.5 所示。
返回
38
应用1
……
应用2
子模式1
……
应用n
子模式m
子模式/模式映象
模 式
模式/内模式映象
内 模
式
数据库
图 1.5 数据库系统的三级模式结构
返回
39
1. 模式
 模式(Schema)是数据库中全体数据的逻辑结构和特
征的描述,又称概念模式或概念视图。视图可理解为
一组记录的值,用户或程序员看到和使用的数据库的
内容。
 模式处于三级结构的中间层,它是整个数据库实际存
储的抽象表示,也是对现实世界的一个抽象,是现实
世界某应用环境(企业或单位)的所有信息内容集合
的表示,也是所有个别用户视图综合起来的结果,所
以又称用户共同视图。
 它表示了数据库的整体数据。
 由多个“概念记录”组成,包含数据库的所有信息,
也称“概念数据库”、“DBA视图”。
 DBMS 提供模式描述语言(模式 DDL)来定义模式。
返回
40
2. 外模式
 又称子模式或用户模式或外视图,是三级结构的最外
层,个别用户只对整个数据库的一部分感兴趣,所以
外视图是个别用户看到和使用的数据库内容,因此也
常把外视图称为用户数据库。
 它由多种外记录值构成,这些记录值是概念视图的某
一部分的抽象表示。即个别用户看到和使用的数据库
内容,也称“用户DB”。
 由多个“外记录值”组成,是概念视图的某一部分的
抽象表示。
 从逻辑关系上看,外模式包含于概念模式。
 DBMS 提供子模式描述语言(子模式 DDL)来定义子
模式。
返回
41
3. 内模式
 又称存储模式或内视图,是三级结构中的最内层,也
是靠近物理存储的一层,即与实际存储数据方式有关
的一层,由多个存储记录组成,但并非物理层,不必
关心具体的存储位置。
 DBMS 提供内模式描述语言(内模式 DDL)来定义内
模式。
 在数据库系统中,外模式可有多个,而概念模式、内
模式只能各有一个。
 内模式是整个数据库实际存储的表示,而概念模式是
整个数据库实际存储的抽象表示,外模式是概念模式
的某一部分的抽象表示。
返回
42
4. 三级结构的优点
(1)保证数据的独立性。
 将模式和内模式分开,保证了数据的物理独立性;
 将外模式和模式分开,保证了数据的逻辑独立性。
(2)简化了用户接口。
 按照外模式编写应用程序或敲入命令,而不需了
解数据库内部的存储结构,方便用户使用系统。
(3)有利于数据共享。
 在不同的外模式下可有多个用户共享系统中数据,
减少了数据冗余。
(4)利于数据的安全保密。
 在外模式下根据要求进行操作,不能对限定的数
据操作,保证了其他数据的安全。
返回
43
1.3.2.2 数据库系统的二级映象
 数据库系统的三级模式是对数据的三个抽象级
别,它使用户能逻辑地抽象地处理数据,而不
必关心数据在计算机内部的存储方式,把数据
的具体组织交给 DBMS 管理。
 为了能够在内部实现这三个抽象层次的联系和
转换,DBMS 在三级模式之间提供了二级映象
功能。
返回
44
1. 模式/内模式映象
 数据库中的模式和内模式都只有一个,所以模
式/内模式映象是唯一的。
 它确定了数据的全局逻辑结构与存储结构之间
的对应关系。
例如,存储结构变化时,模式/内模式映象也应有相
应的变化,使其概念模式仍保持不变,即把存储结
构的变化的影响限制在概念模式之下,这使数据的
存储结构和存储方法较高的独立于应用程序,通过
映象功能保证数据存储结构的变化不影响数据的全
局逻辑结构的改变,从而不必修改应用程序,即确
保了数据的物理独立性。
返回
45
2.外模式/模式映象
 数据库中的同一模式可以有任意多个外模式,
对于每一个外模式,都存在一个外模式/模式映
象。
 它确定了数据的局部逻辑结构与全局逻辑结构
之间的对应关系。
例如,在原有的记录类型之间增加新的联系,或在
某些记录类型中增加新的数据项时,使数据的总体
逻辑结构改变,外模式/模式映象也发生相应的变化,
这一映象功能保证了数据的局部逻辑结构不变,由
于应用程序是依据数据的局部逻辑结构编写的,所
以应用程序不必须修改,从而保证了数据与程序间
的逻辑独立性。
返回
46
1.4 数据库管理系统(DBMS)
 数据库管理系统是对数据进行管理的大型系统
软件,它是数据库系统的核心组成部分,
 用户在数据库系统中的一切操作,包括数据定
义、查询、更新及各种控制,都是通过DBMS
进行的。
 DBMS就是实现把用户意义下的抽象的逻辑数
据处理转换成计算机中的具体的物理数据的处
理软件,这给用户带来很大的方便。
返回
47
1.4.1 DBMS的主要功能
1. 数据定义
 DBMS 提 供 数 据 定 义 语 言 DDL ( Data Define
Language),定义数据的模式、外模式和内模式三级
模式结构,定义模式/内模式和外模式/模式二级映象,
定义有关的约束条件,
 例如,为保证数据库安全而定义的用户口令和存取权限,为
保证正确语义而定义完整性规则。
2. 数据操纵
 DBMS提供数据操纵语言 DML( Data Manipulation
Language)实现对数据库的基本操作,包括检索、插
入、修改、删除等。
 SQL语言就是DML的一种。
返回
48
3. 数据库运行管理
 DBMS 对数据库的控制主要通过四个方面实现:
 数据的安全性控制
 数据的完整性控制
 多用户环境下的并发控制
 数据库的恢复
 以确保数据正确有效和数据库系统的正常运行。
4. 数据库的建立和维护功能
 包括数据库的初始数据的装入,
 数据库的转储、恢复、重组织,
 系统性能监视、分析等功能。
5. 数据通信
 DBMS提供与其他软件系统进行通信的功能。
 实现用户程序与DBMS之间的通信,通常与操作系统
协调完成。
返回
49
1.4.2 DBMS的组成
 DBMS是许多“系统程序”所组成的一个集合。
 每个程序都有自己的功能,共同完成DBMS的一件或
几件工作。
1. 语言编译处理程序
(1)数据定义语言DDL及其编译程序
 它把用DDL编写的各级源模式编译成各级目标模式,这些目
标模式是对数据库结构信息的描述,而不是数据本身,它们
被保存在数据字典中,供以后数据操纵或数据控制时使用。
(2)数据操纵语言DML及其编译程序,实现对数据库
的基本操作。DML有两类,
 一类是宿主型,嵌入在高级语言中,不能单独使用;
 另一类是自主型或自含型,可独立地交互使用。
返回
50
2. 系统运行控制程序,主要包括以下几部分:
系统总控程序:是DBMS运行程序的核心,用于控
制和协调各程序的活动;
安全性控制程序:防止未被授权的用户存取数据库
中的数据;
完整性控制程序:检查完整性约束条件,确保进入
数据库中的数据的正确性、有效性和相容性;
并发控制程序:协调多用户、多任务环境下各应用
程序对数据库的并以操作,保证数据的一致性;
数据存取和更新程序:实施对数据库数据的检索、
插入、修改、删除等操作;
通信控制程序:实现用户程序与DBMS间的通信。
返回
51
3. 系统建立、维护程序,主要包括以下几部分:
装配程序:完成初始数据库的数据装入;
重组程序:当数据库系统性能变坏时(如查询速度
变慢),需要重新组织数据库,重新装入数据;
系统恢复程序:当数据库系统受到破坏时,将数据
库系统恢复到以前某个正确的状态。
4. 数据字典(Data Dictionary,简称DD)
用来描述数据库中有关信息的数据目录,
包括数据库的三级模式、数据类型、用户名、用户
权限等有关数据库系统的信息,
起着系统状态的目录表的作用,
帮助用户、DBA 、DBMS本身使用和管理数据库。
返回
52
1.4.3 DBMS的数据存取的过程
 在数据库系统中,DBMS与操作系统、应用程序、硬
件等协同工作,共同完成数据各种存取操作,其中
DBMS起着关键的作用。
 DBMS对数据的存取通常需要以下四步:
 1. 用户使用某种特定的数据操作语言向DBMS发出存取请求;
 2. DBMS接受请求并解释;
 3. DBMS依次检查外模式、外模式/模式映象、模式、模式/
内模式映象及存储结构定义;
 4. DBMS对存储数据库执行必要的存取操作;
 上述存取过程中还包括安全性控制、完整性控制,以
确保数据的正确性、有效性和一致性。
返回
53
1.5 数据模型
1.5.1 数据模型的组成要素
 数据模型是模型的一种,是现实世界数据特征的抽象。
 数据模型通常由数据结构、数据操作和数据的约束条
件三个要素组成。
1. 数据结构
 数据结构用于描述系统的静态特性。
 数据结构是所研究的对象类型的集合,它是刻画一个
数据模型性质最重要的方面。
 在数据库系统中,人们通常按照其数据结构的类型来
命名数据模型。
 数据结构有层次结构、网状结构和关系结构三种类型,
按照这三种结构命名的数据模型分别称为层次模型、
网状模型和关系模型。
54
返回
2. 数据操作
 数据操作用于描述系统的动态特性。
 数据操作是对数据库中各种数据操作的集合,包括操
作及相应的操作规则。
 如数据的检索、插入、删除和修改等。
 数据模型必须定义这些操作的确切含义、操作规则以
及实现操作的语言。
3. 数据的约束条件
 数据的约束条件是一组完整性规则的集合。
 完整性规则是给定的数据模型中数据及其联系所具有的制
约和依存规则,用以限定符合数据模型的数据库状态以及
状态的变化,以保证数据的正确、有效、相容。
 数据模型还应该提供定义完整性约束条件的机制,以反映
具体应用所涉及的数据必须遵守的特定的语义约束条件。
 例如,在学生数据库中,学生的年龄不得超过40岁。
返回
55
1.5.2 数据之间的联系
1.5.2.1 三个世界的划分
 由于计算机不能直接处理现实世界中的具体事物,所
以人们必须将具体事物转换成计算机能够处理的数据。
 在数据库中用数据模型来抽象、表示和处理现实世界
中的数据。
 数据库即是模拟现实世界中某应用环境(一个企业、
单位或部门)所涉及的数据的集合,它不仅要反映数
据本身的内容,而且要反映数据之间的联系。
 这个集合或者包含了信息的一部分 (用用户视图模
拟),或者包含了信息的全部(用概念视图模拟),
而这种模拟是通过数据模型来进行的。
返回
56
 为了把现实世界中的具体事物抽象、组织为某一
DBMS支持的数据模型,在实际的数据处理过程中,
 首先将现实世界的事物及联系抽象成信息世界的信息模型,
 然后再抽象成计算机世界的数据模型。
 信息模型并不依赖于具体的计算机系统,不是某一个
DBMS所支持的数据模型,它是计算机内部数据的抽
象表示,是概念模型;
 概念模型经过抽象,转换成计算机上某一DBMS支持
的数据模型。所以说,数据模型是现实世界的两级抽
象的结果。
 在数据处理中,数据加工经历了现实世界、信息世界
和计算机世界三个不同的世界,经历了两级抽象和转
换。这一过程如图1.6所示。
返回
57
现实世界
认识抽象
信息世界
计算机世界
图1.6 数据处理的抽象和转换过程
返回
58
1.5.1.2 信息世界中的基本概念
在信息世界中,常用的主要概念如下:
1. 实体(Entity)
 客观存在并且可以相互区别的“事物”称为实体。
 实体可以是可触及的对象,如一个学生,一本书,一辆
汽车;也可以是抽象的事件,如一堂课,一次比赛等。
2. 属性(Attributes)
 实体的某一特性称为属性。
 如学生实体有学号、姓名、年龄、性别、系等方面的属性。
 属性有"型"和“值”之分,"型"即为属性名,如姓名、年龄、性
别是属性的型;“值”即为属性的具体内容,如(990001,张立,
20,男,计算机)这些属性值的集合表示了一个学生实体。
返回
59
3. 实体型(Entity Type)
 若干个属性型组成的集合可以表示一个实体的类型,
简称实体型。
 如学生(学号,姓名,年龄,性别,系)就是一个实体型。
4. 实体集(Entity Set)
 同型实体的集合称为实体集。
 如所有的学生、所有的课程等。
5. 键(Key)
 能唯一标识一个实体的属性或属性集称为实体的键。
 如学生的学号,学生的姓名可能有重名,不能作为学生实体
的键。
返回
60
6. 域(Domain)
 属性值的取值范围称为该属性的域。
 如学号的域为6位整数,姓名的域为字符串集合,年龄的域为小
于40的整数,性别的域为(男,女)。
7. 联系(Relationship)
 在现实世界中,事物内部以及事物之间是有联系的,这
些联系同样也要抽象和反映到信息世界中来,
 在信息世界中将被抽象为实体型内部的联系和实体型之
间的联系。
 实体内部的联系通常是指组成实体的各属性之间的联系;
 实体之间的联系通常是指不同实体集之间的联系。
 反映实体型及其联系的结构形式称为实体模型,也称作
信息模型,它是现实世界及其联系的抽象表示。
返回
61
两个实体型之间的联系有如下三种类型:
(1)一对一联系(1:1)
 实体集A中的一个实体至多与实体集B中的一个实体相
对应,反之亦然,则称实体集A与实体集B为一对一的
联系。记作1:1。
 如:班级与班长,观众与座位,病人与床位。
(2)一对多联系(1:n)
 实体集A中的一个实体与实体集B中的多个实体相对应,
反之,实体集B中的一个实体至多与实体集A中的一个
实体相对应。记作1:n。
 如:班级与学生、公司与职员、省与市。
(3)多对多(m:n)
 实体集A中的一个实体与实体集B中的多个实体相对应,
反之,实体集B中的一个实体与实体集A中的多个实体
相对应。记作(m:n)。
 如:教师与学生,学生与课程,工厂与产品。
返回
62
 实际上,一对一联系是一对多联系的特例,而一对多
联系又是多对多联系的特例。
 可以用图形来表示两个实体型之间的这三类联系,如
图书 1.7所示。
A
B
(a)
A
(b)
B
A
B
(c)
图1.7 不同实体集实体之间的联系
返回
63
1.5.1.3 计算机世界中的基本概念
 信息世界中的实体抽象为计算机世界中的数据,存储
在计算机中。在计算机世界中,常用的主要概念如下:
1. 字段(Field)
 对应于属性的数据称为字段,也称为数据项。字段的
命名往往和属性名相同。
 如学生有学号、姓名、年龄、性别、系等字段。
2. 记录(Record)
 对应于每个实体的数据称为记录。
 如一个学生(990001,张立,20,男,计算机)为一个记录。
3. 文件(File)
 对应于实体集的数据称为文件。
 如所有学生的记录组成了一个学生文件。
返回
64
 在计算机世界中,信息模型被抽象为数据模型,实体
型内部的联系抽象为同一记录内部各字段间的联系,
实体型之间的联系抽象为记录与记录之间的联系。
 现实世界是设计数据库的出发点,也是使用数据库的
最终归宿。
 实体模型和数据模型是现实世界事物及其联系的两级
抽象。而数据模型是实现数据库系统的根据。
 通过以上的介绍,我们可总结出三个世界中各术语的
对应关系如图1.8所示。
现实世界
信息世界
计算机世界
事物总体
实体集
文件
事物个体
实体
记录
特征
属性
字段
事物间联系
实体模型
数据模型
图1.8 三个世界各术语的对应关系
返回
65
1.5.3 数据模型的分类
 数据模型的好坏,直接影响数据库的性能。
 数据模型的选择,是设计数据库的一项首要任
务。
目 前 最 常 用 的 数 据 模 型 有 层 次 模 型
(Hierarchical Model)、网状模型(Network
Model)和关系模型(Relational Model)。
 这三种数据模型的根区别在于数据结构不同,
即数据之间联系的表示方式不同。
层次模型用“树结构”来表示数据之间的联系;
网状模型是用“图结构”来表示数据之间的联系;
关系模型是用“二维表”来表示数据之间的联系。
返回
66
 其中层次模型和网状模型是早期的数据模型,统称为
非关系模型。
 20世纪70年代至80年代初,非关系模型的数据库系统
非常流行,在数据库系统产品中占据了主导地位,
 现在已逐渐被关系模型的数据库系统取代,
 但在美国等国,由于早期开发的应用系都是基于层次
数据库或网状数据库系统,因此目前层次数据库或网
状数据库的系统仍很多。
 20世纪80年代以来,面向对象的方法和技术在计算机
各个领域,包括程序设计语言、软件工程、计算机硬
件等各方面都产生了深远的影响,出现了一种新的数
据模型——面向对象的数据模型
返回
67
1.5.3.1 层次模型
 层次模型是数据库系统中最早出现的数据模型,采用
层 次 模 型 的 数 据 库 的 典 型 代 表 是 IBM 公 司 的 IMS
(Information Management System)数据库管理系统,
 现实世界中,许多实体之间的联系都表现出一种很自
然的层次关系,如家族关系,行政机构等。
 层次模型用一棵“有向树”的数据结构来表示各类实
体以及实体间的联系。
 在树中,每个结点表示一个记录类型,结点间的连线(或边)
表示记录类型间的关系,每个记录类型可包含若干个字段,
记录类型描述的是实体,字段描述实体的属性,各个记录类
型及其字段都必须命名。
 如果要存取某一记录型的记录,可以从根结点起,按照有向
树层次向下查找。
返回
68
图1.9是层次模型有向树的示意图。结点
A为根结点,D,F,G为叶结点,B,D为兄
结点……
A
B
D
C
E
F
图1.9 层次模型有向树的示意图
返回
69
1. 层次模型的特征
(1)有且仅有一个结点没有双亲,该结点就是根结点;
(2)根以外的其他结点有且仅有一个双亲结点,这就使
得层次数据库系统只能直接处理一对多的实体关系;
(3)任何一个给定的记录值只有按其路径查看时,才能
显出它的全部意义,没有一个子女记录值能够脱离双
亲记录值而独立存在。
 例如:以下是一个层次模型的例子,如图1.10所示。
TS
D#
教研室R
R#
T#
RN
TN TD
DN
学生S
DL
S#
SN
SS
图1.10 TS数据库模型
返回
70
 层次数据库为TS,它具有四个记录型,分别是:
 记录型D(系)是根结点,由字段D#(系编号)、DN
(系名)、DL(系地点)组成,它有两个孩子结点,:
R和S,
 记录型R(教研室)是D的孩子结点,同时又是T的双亲
结点,它由R#(教研室编号)、RN(教研室名)两个
字段组成,
 记录型S(学生)由S#(学号)、SN(姓名)、SS(成
绩)三个字段组成,
 记录型T(教师)由T#(职工号)、TN(姓名)、TD
(研究方向)三个字段组成,
 S与T是叶结点,它们没有子女结点,由D到R,R到T,
由D到S均是一对多的关系。
返回
71
 对应上述数据模型的一个值,
该值是D02系(计算机系)记录值及其所有后代记
录值组成的一棵树,
D02系有3个教研室子记录值:R01、R02、R03和3
个学生记录值:S63871、S63874、S63876,
教 研 室 R01有 3个教师记录值: T2101、T17090、
T3501.
返回
72
2. 层次模型的数据操纵与数据完整性约束
 层次模型的数据操纵主要有查询、插入、删除和修改,
 进行插入、删除和修改操作时要满足层次模型的完整
性约束条件。
 进行插入操作时,如果没有相应的双亲结点值就不能插入子
女结点值;
 进行删除操作时,如果删除双亲结点值,则相应的子女结点
值也被同时删除;
 修改操作时,应修改所有相应的记录,以保证数据的一致性。
返回
73
3. 层次模型的优缺点
 层次模型的优点主要有:
(1)比较简单,只需很少几条命令就能操纵数
据库,比较容易使用。
(2)结构清晰,结点间联系简单,只要知道每
个结点的双亲结点,就可知道整个模型结构。
现实世界中许多实体间的联系本来就呈现出一
种很自然的层次关系,
如表示行政层次,家族关系很方便。
(3)它提供了良好的数据完整性支持。
返回
74
 层次模型的缺点主要有:
(1)不能直接表示两个以上的实体型间的复杂
的联系和实体型间的多对多联系,只能通过引
入冗余数据或创建虚拟结点的方法来解决,易
产生不一致性。
(2)对数据的插入和删除的操作限制太多。
(3)查询子女结点必须通过双亲结点。
返回
75
1.5.3.2 网状模型
 现实世界中事物之间的联系更多的是非层次关系的,
用层次模型表示这种关系很不直观,
 网状模型克服了这一弊病,可以清晰的表示这种非层
次关系。
 20 世 纪 70 年 代 , 数 据 系 统 语 言 研 究 会 CODASYL
(Conference On Data System Language)下属的数据
库任务组DBTG(Data Base Task Group)提出了一个
系统方案,DBTG系统,也称CODASYL系统,成为
了网状模型的代表。
 网状模型取消了层次模型的两个限制,两个或两个以
上的结点都可以有多个双亲结点,则此时有向树变成
了有向图,该有向图描述了网状模型。
返回
76
网状模型的特征
(1)有一个以上的结点没有双亲;
(2)至少有一个结点可以有多于一个双亲。
 即允许两个或两个以上的结点没有双亲结点,
允许某个结点有多个双亲结点,则此时有向树
变成了有向图,该有向图描述了网状模型。
 网状模型中每个结点表示一个记录型(实体),
每个记录型可包含若干个字段(实体的属性),
结点间的连线表示记录类型(实体)间的父子
关系。
返回
77
 如:学生和课程间的关系。一个学生可以选修
多门课程,一门课程可以由多个学生选修。如
图1.11所示
学生
课程
图1.11 学生与课程的网状模型
返回
78
2. 网状模型的数据操纵与完整性约束
 网状模型的数据操纵主要包括查询、插入、删
除和修改数据。
插入数据时,允许插入尚未确定双亲结点值的子女
结点值,如可增加一名尚未分配到某个教研室的新
教师,也可增加一些刚来报到,还未分配宿舍的学
生。
删除数据时,允许只删除双亲结点值,如可删除一
个教研室,而该教研室所有教师的信息仍保留在数
据库中。
修改数据时,可直接表示非树形结构,而无需像层
次模型那样增加冗余结点,因此,修改操作时只需
更新指定记录即可。
 它没有像层次数据库那样有严格的完整性约束
条件,只提供一定的完整性约束。
返回
79
3. 网状模型的优缺点
 网状模型的优点主要有:
(1)能更为直接地描述客观世界,可表示实体
间的多种复杂联系。
(2)具有良好的性能和存储效率
 网状模型的缺点主要有
(1)结构复杂,其DDL语言极其复杂。
(2)数据独立性差,由于实体间的联系本质上
是通过存取路径表示的,因此应用程序在访问
数据时要指定存取路径。
返回
80
1.5.3.3 关系模型
 关系模型是发展较晚的一种模型,
 1970年美国IBM公司的研究员E.F.Codd首次提出了数
据库系统的关系模型。
 他发表了题为“大型共享数据银行数据的关系模型”(A
Relation Model of Data for Large Shared Data Banks),在文中解
释了关系模型,定义了某些关系代数运算,研究了数据的函
数相关性,定义了关系的第三范式,从而开创了数据库的关
系方法和数据规范化理论的研究,
 他为此获得了1981年的图灵奖。
 此后许多人把研究方向转到关系方法上,陆续出现了关系数
据库系统。
 1977年IBM公司研制的关系数据库的代表System R开始运行,
其后又进行了不断的改进和扩充,出现了基于System R的数据
库系统SQL/DB。
返回
81
20世纪80年代以来,计算机厂商新推出的数据库管
理系统几乎都支持关系模型,非关系系统的产品也
都加上了关系接口。
数据库领域当前的研究工作也都是以关系方法为基
础。
 关系数据库已成为目前应用最广泛的数据库系
统,如现在广泛使用的小型数据库系统Foxpro、
Acess , 大 型 数 据 库 系 统 Oracle 、 Informix 、
Sybase、SQL Server等都是关系数据库系统。
返回
82
1. 关系模型的基本概念
 关系模型的数据结构是一个“二维表框架”组
成的集合,每个二维表又可称为关系,所以关
系模型是“关系框架”的集合。
 关系模型与层次模型、网状模型不同,它是建
立在严格的数学概念之上的。
 教学数据库的关系模型及其实例,包含五个关
系:教师关系T、学生关系S、课程关系C、选
课关系SC和授课关系TC,分别对应五张表。
 下面以其为例,介绍关系模型中所涉及的一些
基概念。
返回
83
 T(教师表)
TNO
教师号
TN
姓名
SEX
性别
AGE
年龄
PROF
职称
SAL
工资
COMM
岗位津
贴
DEPT
系别
T1
李力
男
47
教授
1500
3000
计算机
T2
王平
女
28
讲师
800
1200
信息
T3
刘伟
男
30
讲师
900
1200
计算机
T4
张雪
女
51
教授
1600
3000
自动化
T5
张兰
女
39
副教授
1300
2000
信息
返回
84
 S(学生表)
SNO
学号
SN
姓名
SEX
性别
AGE
年龄
DEPT
系别
S1
赵亦
女
17
计算机
S2
钱尔
男
18
信息
S3
孙珊
女
20
信息
S4
李思
男
21
自动化
S5
周武
男
19
计算机
S6
吴丽
女
20
自动化
返回
85
 C(课程表)
CNO
课程号
CN
课程名
CT
课时
C1
程序设计
60
C2
微机原理
80
C3
数字逻辑
60
C4
数据结构
80
C5
数据库
60
C6
编译原理
60
C7
操作系统
60
返回
86
 SC(选课表)
TC(授课表)
SNO
学号
S1
CNO
课程号
C1
SCORE
成绩
90
TNO
教师号
T1
CNO
课程号
C1
S1
C2
85
T1
C4
S2
C5
57
T2
C5
S2
C6
80
T3
C1
S2
C7
T3
C5
S2
C5
70
T4
C2
S3
C1
0
T4
C3
S3
C2
70
T5
C5
S3
C4
85
T5
C7
S4
C1
93
S4
C2
85
S4
C3
83
S5
C2
89
返回
87
(1)关系(Relation)
 一个关系对应一张二维表,如图的五张表对应五个关
系。
(2)元组(Tuple)
 表格中的一行,如S表中的一个学生记录即为一个元组。
(3)属性(Attribute)
 表格中的一列,相当于记录中的一个字段,如S表中有
五个属性(学号,姓名,性别,年龄,系别)。
(4)关键字(Key)
 可唯一标识元组的属性或属性集,也称为关系键或码,
如S表中学号可以唯一确定一个学生,为学生关系的主码
/主关键字。
返回
88
(5)域(Domain)
 属性的取值范围,如年龄的域是(14~40),性
别的域是(男,女)。
(6)分量
 每一行对应的列的属性值,即元组中的一个属
性值,如学号、姓名、年龄等均是一个分量。
(7)关系模式
 对关系的描述,一般表示为:关系名(属性1,
属性2,……属性n),如:学生(学号,姓名,
性别,年龄,系别)。
返回
89
 在关系模型中,实体是用关系来表示的,如:
学生(学号,姓名,性别,年龄,系别)
课程(课程号,课程名,课时)
 实体间的关系也是用关系来表示的,如:
学生和课程之间的关系
选课关系(学号,课程号,成绩)
返回
90
2. 关系模型的数据操纵与完整性约束
 数据操纵主要包括查询、插入、删除和修改数
据,这些操作必须满足关系的完整性约束条件,
即实体完整性、参照完整性和用户定义的完整
性。有关完整性的具体含义将在下一章介绍。
 在非关系模型中,操作对象是单个记录,而关
系模型中的数据操作是集合操作,操作对象和
操作结果都是关系,即若干元组的集合;
 用户只要指出“干什么”,而不必详细说明
“怎么干”,从而大大地提高了数据的独立性,
提高了用户的生产率。
返回
91
3、关系模型的优缺点
 关系模型的优点主要有:
(1) 与非关系模型不同,它有较强的数学理论根据。
(2) 数据结构简单、清晰,用户易懂易用,不仅用关系描述
实体,而且用关系描述实体间的联系。
(3) 关系模型的存取路径对用户透明,从而具有更高的数据
独立性、更好的安全保密性,也简化了程序员的工作和数
据库建立和开发的工作。
 关系模型的缺点主要有:
 由于存取路径对用户透明,查询效率往往不如非关系模型,因此,
为了提高性能,必须对用户的查询表示进行优化,增加了开发数据
库管理系统的负担。
返回
92
1.6 数据模型与数据库系统的发展
数据模型是数据库系统的核心和基础,
数据模型的发展经历了格式化数据模型
(层次数据模型和网状数据模型的统
称)、关系数据模型和面向对象的数据
模型三个阶段,按照这种划分,数据库
技术的发展也经历了三个发展阶段。
返回
93
1.6.1 第一代数据库系统
 层次数据库系统和网状数据库系统的数据模型分别为
层次模型和网状模型,但从本质上讲层次模型是网状
模型的特例,二者从体系结构、数据库语言到数据存
储管理上均具有共同的特征,都是格式化模型,属于
第一代数据库系统。
 第一代数据库系统的特点是:
1.支持三级模式的体系结构
 层次数据库和网状数据库均支持三级模式结构,即外模式、
模式和内模式,并通过外模式与模式、模式与内模式二级映
象,保证了数据的物理独立性和逻辑独立性。
2.用存取路径来表示数据之间的联系
 数据库不仅存储数据而且存储数据之间的联系。数据之间的
联系在层次和网状数据库系统中是用存取路径来表示和实现
的。
返回
94
3.独立的数据定义语言
第一代数据库系统使用独立的数据定义语言来描述
数据库的三级模式以及二级映象。格式一经定义就
很难修改,这就要求数据库设计时,不仅要充分考
虑用户的当前需求,还要了解需求可能的变化和发
展。
4.导航的数据操纵语言
导航的含义就是用户使用某种高级语言编写程序,
一步一步的引导程序按照数据库中预先定义的存取
路径来访问数据库,最终达到要访问的数据目标。
在访问数据库时,每次只能存取一条记录值。若该
记录值不满足要求就沿着存取路径查找下一条记录
值。
返回
95
1.6.2 第二代数据库系统
 第二代数据库系统是指支持关系数据模型的关
系数据库系统。
 关系模型不仅简单、清晰,而且有关系代数作
为语言模型,有关系数据理论作为理论基础。
所以在关系模型提出后,很快便从实验室走向
了社会,20世纪80年代几乎所有新开发的数据
库系统都是关系型数据库系统。这些商用数据
库系统的运行,特别是微机RDBMS的使用,使
数据库技术日益广泛地应用到企业管理、情报
检索、辅助决策等各个方面,成为实现和优化
信息系统的基本技术。
返回
96
 关系模型之所以能成为深受广大用户欢迎的数
据模型,与第一代数据库系统所支持的格式化
模型相比,主要具有以下特点:
关系模型的概念单一,实体以及实体之间的联系都
用关系来表示;
关系模型以关系代数为基础,形式化基础好;
数据独立性强,数据的物理存取路径对用户隐蔽;
关系数据库语言是非过程化的,将用户从编程数据
库记录的导航式检索中解脱出来,大大降低了用户
编程的难度。
返回
97
1.6.3 传统数据库的局限性
 一般说来,将第一代数据库和第二代数据库称为传统
数据库。
 由于传统数据库尤其是关系数据库系统具有许多优点,
人们纷纷采用数据库技术来进行数据管理,数据库技
术被应用到了许多新的领域,如计算机辅助设计/计算
机辅助制造(CAD/CAM),计算机辅助工程(CASE),
图像处理等,这些新领域的应用不仅需要传统数据库
所具有的快速检索和修改数据的特点,而且在应用中
提出了一些新的数据管理的需求,如要求数据库能够
处理声音、图像、视频等多媒体数据。
 在这些新领域中,传统数据库暴露了其应用的局限性,
主要表现在以下几个方面:
返回
98
1.面向机器的语法数据模型
 传统数据库中采用的数据模型是面向机器的语法数据
模型,只强调数据的高度结构化,只能存储离散的数
据和有限的数据与数据之间的关系,语义表示能力较
差,无法表示客观世界中的复杂对象,如声音、图像、
视频等多媒体数据,工程、测绘等领域中的非格式化
数据。此外,传统数据模型缺乏数据抽象,无法揭示
数据之间的深层含义和内在联系。
2.数据类型简单、固定
 传统的DBMS主要面向事务处理,只能处理简单的数据
类型,如整数、实数、字符串、日期等,而不能根据
特定的需要定义新的数据类型。例如,不能定义包含
三个实数分量(x,y,z)的数据类型circle来表示圆,
而只能分别定义三个实型的字段。这样对于复杂的数
据类型只能由用户编写程序来处理,加重了用户的负
担,也不能保证数据的一致性。
返回
99
3.结构与行为完全分离
 从应用程序员的角度来看,在某一应用领域内标识的
对象可以包含两方面的内容,即对象的结构和对象的
行为。
 传统的数据库可以采用一定的数据库模式来表示前者,
而对于后者,却不能直接存储和处理,必须通过另外
的应用程序加以实现。例如,对于多媒体数据,虽然
可以在带有前面所提到的缺陷的情况下以简单的二进
制代码形式存储其结构,但却无法存储其行为(如播
放声音、显示图像等)。这样,这些多媒体数据必须
由相应的应用程序来识别,而对于其他不了解其格式
的用户来说,数据库中存储的是没有任何意义的二进
制数据。
 由此可见,在传统数据库中,对象的结构可以存储在
数据库中,而对象的行为必须由应用程序来表示,对
象的结构与行为完全相分离。
返回
100
4.被动响应
 传统数据库只能根据用户的命令执行特定的服务,属于被动响应,
用户要求做什么,系统就做什么。而在实际应用中,往往要求一
个系统能够管理它本身的状态,在发现异常情况时及时通知用户;
能够主动响应某些操作或外部事件,自动采取规定的行动等等。
例如,一个仓库管理系统除了希望数据库系统能够正确,高效地
存储有关物品的数据,还希望数据库系统能够对仓库库存进行监
控,当库存太少或太多时主动向用户发出警告。要完成这样的工
作,数据库系统必须更加主动、更加智能化,而传统的数据库显
然不能适应这一要求。
5.事务处理能力较差
 传统数据库只能支持非嵌套事务,对于较长事务的运行较慢,且
中事务发生故障时恢复比较困难。
 由于存在上述种种缺陷,使得传统数据库无法满足新
领域的应用需求,数据库技术遇到了挑战,在这种情
况下,新一代数据库技术应运而生。
返回
101
1.6.4 第三代数据库系统
1.6.4.1 第三代数据库系统的特点
 第 三 代 数 据 库 系 统 是 指 支 持 面 向 对 象 ( Object
Oriented,简称OO)数据模型的数据库系统。
 在数据库面临许多新的应用领域时,1989年9月,一批
专门研究面向对象技术的著名学者著文“面向对象的
数据库系统宣言”,提出继第一代(层次、网状)和
第二代(关系)数据库系统后,新一代DBS将是OODBS。
1990年9月,一些长期从事关系数据库理论研究的学者
组建了高级DBMS功能委员会,发表了“第三代数据库
系统宣言”的文章,提出了第三代DBMS应具有的三个
基本特点。
返回
102
1.第三代数据库系统应支持面向对象的数据模型
 除提供传统的数据管理服务外,第三代数据库系统应
支持数据管理、对象管理和知识管理,支持更加丰富
的对象结构和规则,以提供更加强大的管理功能,支
持更加复杂的数据类型,以便能够处理非传统的数据
元素(如超文本、图片、声音等)。90年代成功的
DBMS都会提供上述服务。
 有关OO模型的基本内容,将在下一节“面向对象的数
据库技术”中详细介绍。
2.第三代数据库系统必须保持或继承第二代数据
库系统的优点
 第三代数据库系统不仅能很好的支持对象管理和规则
管理,还要更好地支持原有的数据管理,保持第二代
数据库系统的非过程化的数据存取方式和数据独立性。
返回
103
3.第三代数据库系统必须具有开放性
 数据库系统的开放性(open)是指必须支持当
前普遍承认的计算机技术标准,如支持SQL语
言,支持多种网络标准协议,使得任何其他系
统或程序只要支持同样的计算机技术标准即可
使用第三代数据库系统;开放性还包括系统的
可移植性、可连接性、可扩展性和可互操作性
等。
返回
104
1.6.4.2
研究第三代数据库系统的途径
 数据库工作者为了给应用建立合适的数据库系统,进
行了艰苦的探索,从多方面发展了现行的数据库系统
技术,主要的研究途径和方向有:
 对传统数据库(主要是关系数据库)进行不同层次上的扩充。
 与计算机领域中其他学科的新技术紧密结合,丰富和发展数
据库系统的概念、功能和技术。
 面向应用领域的数据库技术的研究。
 其中,前两个途径是立足于数据库已有的成果和技术,
加以发展进化,有人称之为“进化论”的观点和方法。
后者是立足于新的应用需求和计算机未来的发展,研
究全新的数据库系统,有人称之为“革新论”的观点
和方法。
返回
105
1.7 面向对象的数据库技术
1.7.1 面向对象模型的核心概念
 面向对象的程序设计方法是目前程序设计中主要的方法之
一,它简单、直观、自然,十分接近人类分析和处理问题
的自然思维方式,同时又能有效地用来组织和管理不同类
型的数据。
 把面向对象程序设计方法和数据库技术相结合能够有效地
支持新一代数据库应用。于是,面向对象数据库系统研究
领域应运而生,吸引了相当面多的数据库工作者,获得了
大量的研究成果,开发了很多面向对象数据库管理系统,
包括实验系统和产品。
 比 较 典 型 的 有 POSTGRES 系 统 和 Gemstone 系 统 , 其 中
POSTGRES系统是以INGRES关系数据库系统为基础,扩充其
功能,使之具有面向对象的特性;Gemstone系统是在面向
对象程序语言基础上扩充得到的。
 目前,各个关系数据库厂商都在不同程度上扩展了关系模
型,推出了符合面向对象数据模型的数据库系统。
返回
106
 面向对象的数据模型吸收了面向对象程序设计
方法的核心概念和基本思想,用面向对象的观
点来描述现实世界的实体。
 一系列面向对象的核心概念构成了面向对象数
据模型的基础,其中主要包括对象和对象标识、
属性和方法、封装和消息、类和继承。下面简
要介绍这些概念:
1 . 对 象 ( Object ) 和 对 象 标 识 ( Object
Identifier,简称OID)
 对象是面向对象编程中最重要的概念,用对象
来表示现实世界中的实体。一个学生,一门课
程,一次考试记录等等都可以看作对象。
 每个对象都包含一组属性和一组方法。
返回
107
属性用来描述对象的状态、组成和特性,是对象的
静态特征。
• 一个简单对象如整数,其值本身就是其状态的完全描述,
不再需要其它属性,这样的对象称为原子对象。
• 属性的值也可以是复杂对象。一个复杂对象包含若干个属
性,而这些属性作为一种对象,又可能包含多个属性,这
样就形成了对象的递归引用,从而组成各种复杂对象。
方法用以描述对象的行为特性。
• 一个方法实际是一段可对对象操作的程序。
• 方法可以改变对象的状态,所以称为对象的动态特征。如
一台计算机,它不仅具有描述其静态特征的属性:CPU型
号、硬盘大小、内存大小等,还具有开机、关机、睡眠等
动态特征。
• 由此可见,每个对象都是属性和方法的统一体。
• 与关系模型的实体概念相比,对象模型中的对象概念更为
全面,因为关系模型主要描述对象的属性,而忽视了对象
的方法,因此会产生前面提到过的“结构与行为相分离”
的缺陷。
返回
108
 每一对象都由唯一的对象标识来识别,用于确
定和检索这个对象。
对象标识独立于对象的内容和存储位置,是一种逻辑
标识符,通常由系统产生,在整个系统范围内是唯一
的。
两个对象即使内部状态值和方法都相同,如标识符不
同,仍认为是两个相等而不同的对象。
如同一型号的两个零件,在设计图上被用在不同的地
方,这两个零件是“相等”的,但被视为不同的对象
具有不同的标识符。
在这一点上,面向对象的模型与关系模型不同,在关
系模型中,如果两个元组的属性值完全相同,则被认
为是同一元组。
返回
109
2.封装(Encapsulation)和消息(Message)
 每一个对象都是其属性和方法的封装。
 用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽
的。
 封装的目的是为了使对象的使用和实现分开,使用者不必知道
行为实现的细节,只需用消息来访问对象,这种数据与操作统
一的建模方法有利于程序的模块化,增强了系统的可维护性和
易修改性。
 例如,在一个面向对象的系统中,把计算机定义为一个对象,
用户只要掌握如何开机、关机等操作就可以使用计算机了,而
不用去管计算机内部是如何完成这些操作的细节问题。
 消息是用来请求对象执行某一处理或回答某些信息的要
求。
 一个对象所能接受的消息与其所带参数构成对象的外部界面。
 某一对象在执行相应处理时,如果需要,它可以通过传递消息
请求其它对象完成某些操作,消息传递是对象之间联系的唯一
方式。
 一个对象可以向许多对象同时发出消息,也可以接受多个对象
发来的消息。
返回
110
 消息中只包含发送者的要求,它告诉接收者需要完成哪些处理。
如何处理由接收者解释。接收者独立决定采用什么方式完成所
需的处理。
 在面向对象系统中对对象的操作在于选择一个对象并通
知它要作什么,该对象决定如何完成这一工作,即在它
的一组方法中选择合适的方法作用于其自身。因此,在
面向对象的系统中,对象是操作的基本单位。
3.类(Class)和继承(Inheritance)
 具有同样属性和方法集的所有对象构成了一个对象类
(简称类),一个对象是某一类的实例(Instance)。
 例如,把学生定义一个类,则某个学生张三、李四等则
是学生类中的对象。在OODB中,类是“型”,对象是某
一类的“值”。
返回
111
 此外,类的表示具有层次性。在OO模型中,可以通过
对已有的类定义进行扩充和细化来定义一个新类,从
而形成了一种层次结构,有了超类和子类的概念。
 所谓超类就是可以通过扩充和细化导出其他类,而子
类是指由通过扩展类定义而得到的类。
 这种层次结构的一重要特点是继承性。
 因为一个类可以有多个子类,也可以有多个超类,因
此,一个类可以直接继承多个类,这种继承方式称为
多重继承。
 如在职研究生,既属于职工类,又属于学生类,他继
承了职工和学生的所有性质。
 如果一个类至多只有一个超类,则一个类只能从单个
超类继承属性和方法,这种继承方式称为单重继承。
 在多重继承情况下,类的层次结构不再是一棵树,而
是一个网络结构。
返回
112
1.7.2 面向对象数据库系统的特点
 OODBS是面向对象技术与数据库技术相结合的产物,所
以称一个数据库系统为面向对象的数据库系统至少应
满足两个条件,一个是支持面向对象数据模型的内核;
另一个是支持传统数据库的所有数据成份,所以OODBS
除了具有原来关系数据库的各种特点外,还具有以下
特点:
1.扩充数据类型
 RDBMS只支持某些固定的类型,不能依据某一特定的应
用所需来扩展其数据类型,而OODBS允许用户在关系数
据库系统中扩充数据类型。
 新数据类型可定义为原有类型的子类或超类,新的数
据类型定义之后,存放在数据库管理系统核心中,如
同基本数据类型一样,可供所有用户共享。
返回
113
2.支持复杂对象
 OODBS中的基本结构是对象而不是记录,一个对象不仅
包括描述它的数据,还包括对它操作的方法。
 OODBS不仅支持简单的对象,还支持由多种基本数据类
型或用户自定义的数据类型构成的复杂对象,支持子
类、超类和继承的概念,因而能对现实世界的实体进
行自然而直接的模拟,可表示诸如某个对象由“哪些
对象组成”,有“什么性质”,处在“什么状态”,
具有丰富的语义信息,这是传统数据库所不能比拟的。
3.提供通用的规则系统
 规则在DBMS及其应用中是十分重要的,在传统的RDBMS
中用触发器来保证数据库的完整性。触发器可以看成
规则的一种形式。OODBS支持的规则系统将更加通用,
更加灵活。
 例如规则中的事件和动作可以是任何的SQL语句,可以
使用用户自定义的函数,规则还能够被继承。这就大
大增强了OODBS功能,使之具有主动数据库的特性。
返回
114
1.7.3 面向对象数据库语言
 OODB语言融程序语言和数据库语言于一体,用于描述
面向对象数据库模式,说明并操纵类定义与对象实例。
 Gemstone数据库系 统中所采 用的 OPAL 语言被认 为是
OODB语言的典型代表,主要包括对象定义语言(ODL)
和对象操纵语言(OML)。
1.对象定义语言
 ODL可以对类进行定义与操纵,其中包括定义类的属性、
操纵特征、继承性与约束,可以修改和撤销类。
 ODL还可以用于对象方法的定义与实现。
 在操作实现中,语言的命令可用于操作对象的局部数
据结构。
 对象模型中的封装性允许方法由不同程序设计语言来
实现,并且隐藏不同程序设计语言实现的事实。
2.对象操纵语言
 对象操纵包括对实例对象进行插入、修改、删除和查
询等操作。
返回
115
1.7.4 面向对象数据库的研究内容
 把面向对象的技术与数据库技术相结合形成面向对象
的数据库系统,有许多新的课题要研究。
1.数据模型研究
 目前,面向对象的数据库还没有一个确定的数据模型,
支持面向对象数据库的数据模型大多源于支持面向对
象程序设计语言的数据模型,并进行了一些数据库功
能的扩充。它们都包含了面向对象的基本思想,但缺
乏一个公共的形式框架,以至在这个框架中可以定义
面向对象的数据模型,给出这个数据模型中对象及其
方法的形式语义以建立面向对象数据库系统的理论基
础。
2.与程序设计语言集成的研究
 面向对象程序设计语言着重于数据库的行为特征和结
构特征,而数据库着重于对永久性数据的管理,两者
的集成将会对更广泛的应用领域有更好的支持。
返回
116
3.体系结构的研究
 将面向对象的概念引入数据库中,对传统数据库系统
中的一些结构概念需要重新考虑,包括查询、索引、
并发控制以及存储结构,这些都要涉及到对类的处理,
要比传统数据模型中的结构得多。
 人们认为OODBS将成为下一代数据库系统的典型代表,
但是,OODBS在奠基其新一代数据库地位之前要清除
两个障碍:标准化和性能。
 关系数据库的成功不仅在于其简单的数据模型和高度
的数据独立性,还在于其标准化。标准化对OODBMS实
际上更为重要,因为OODBMS涉及范围远远超出RDBMS,
应用更加复杂,为了使应用实际可行,为了使应用实
际可以在不同环境间移植和操作,以及为了使用户容
易学习新的OODBS,标准尤其重要。即将颁布的SQL99
(俗称SQL3)增加了OODB的许多特征,会对OODB的标
准化有所贡献。
返回
117
1.8 数据库技术与其他相关技术的结合
 数据库技术与其他相关技术的结合是当前数据库技术发
展的重要特征。
 计算机领域中其他新兴技术的发展对数据库技术产生了
重大影响。面对传统数据库技术的不足和缺陷,人们自
然而然地想到借鉴其他新兴的计算机技术,从中吸取新
的思想、原理和方法,将其与传统的数据库技术相结合,
以推出新的数据库模型,从而解决传统数据库存在的问
题。通过这种方法,人们研制出了各种各样的新型数据
库,例如:
 数据库技术与分布处理技术相结合,出现了分布式数据库;
 数据库技术与人工智能技术相结合,出现了演绎数据库、主动
数据库和知识库等;
 数据库技术与多媒体技术相结合,出现了多媒体数据库。
 下面我们将对其中的几个新型数据库中以介绍。
返回
118
1.8.1 分布式数据库(Distributed Database)
1.8.1.1 集中式系统和分布式系统
 到目前为止,我们所介绍的数据库系统都是集中式数
据库系统。所谓集中式数据库就是集中在一个中心场
地的电子计算机上,以统一处理方式所支持的数据库。
这类数据库无论是逻辑上还是物理上都是集中存储在
一个容量足够大的外存储器上,其基本特点是:
 集中控制处理效率高,可靠性好;
 数据冗余少,数据独立性高;
 易于支持复杂的物理结构,去获得对数据的有效访问。
 但是随着数据库应用的不断发展,人们逐渐地感觉到
过份集中化的系统在处理数据时有许多局限性。例如,
不在同一地点的数据无法共享;系统过于庞大、复杂,
显得不灵活且安全性较差;存储容量有限不能完全适
应信息资源存储要求等等。
119
返回
 正是为了克服这种系统的缺点,人们采用数据分散的办
法,即把数据库分成多个,建立在多台计算机上,这种
系统称为分散式数据库系统。
 由于计算机网络技术的发展,才有可能并排分散在各处
的数据库系统通过网络通信技术连结起来,这样形成的
系统称为分布式数据库系统发展起来了。
 近年来,分布式数据库已经成为信息处理中的一个重要
领域,它的重要性还将迅速增加。
1.8.1.2
分布式数据库的定义
 分布式数据库是一组结构化的数据集合,它们在逻辑上
属于同一系统而在物理上分布在计算机网络的不同结点
上。网络中的各个结点(也称为“场地”)一般都是集
中式数据库系统,由计算机、数据库和若干终端组成。
返回
120
 数据库中的数据不是存储在同一场地,这就是
分布式数据库的“分布性”特点,也是与集中
式数据库的最大区别。
 表面上看,分布式数据库的数据分散在各个场
地,但这些数据在逻辑上却是一个整体,如同
一个集中式数据库。因而,在分布式数据库中
就有全局数据库和局部数据库这样两个概念。
所谓全局数据库就是从系统的角度出发,指逻辑上
一组结构化的数据集合或逻辑项集;
而局部数据库是从各个场地的角度出发,指物理结
点上各个数据库,即子集或物理项集。
 这是分布式数据库的“逻辑整体性”特点,也
是与分散式数据库的区别。
返回
121
 例如,假设一个银行有三个支行,图8.1中的三个场地
分别代表一个支行所在地。
 在一般情况下,一个支行的用户所提出的各种应用,
只需要通过访问该支行的帐目数据库即可实现。也就
是说,这些应用完全由该支行的计算机进行处理。我
们把这些应用称之为局部应用。局部应用的典型例子
就是银行的借贷业务,它只需要存取某一支行的数据
库就可完成。如果分布式数据库只限于局部应用,那
么还只是起了分散式数据库的作用。
 而银行中的很多业务,并非只限于某一支行的数据库。
如银行中的通兑业务,即场地1存款的用户可能到场地
2或场地3去取款;银行中的转帐业务,要求从一个支
行的帐户中转出若干金额到另一个支行的帐户中去。
这些应用要求就要同时更新两个支行(场地)上的数
据库。我们把这些应用称为全局应用(或分布应用)。
返回
122
DB1
DB1
计算机1
场地1
DB2
DB1
计算机2
T1
T2
T3
场地2
T1
T2
T3
网络
DB3
DB1
计算机3
图8.1
场地3
T1
T2
T3
分布式数据库系统的例子
返回
123
1.8.1.3
分布式数据库的特点
 分布式数据库可以建立在以局域网连接的一组工作站
上,也可以建立在广域网(或称远程网)的环境中。
但分布式数据库系统并不是简单地把集中式数据库安
装在不同的场地,而是具有自己的性质和特点。
1.自治与共享
 分布式数据库有集中式数据库的共享性与集成性,但
它更强调自治及可控制的共享。
 这里的自治是指局部数据库可以是专用资源也可以是
共享资源。
 这种共享资源体现了物理上的分散性,这是由按一定
的约束条件被划分而形成的。
 因此,要由一定的协调机制来控制以实现共享。同时
可以构成很灵活的分布式数据库。
 它的两个极端分别是完全集中式或者完全分散式。
返回
124
2.冗余的控制
 在研究集中式数据库技术时强调减少冗余,但在研究
分布式数据库时允许冗余――物理上的重复。
 这种冗余(多副本)增加了自治性,即数据可以重复
地驻留在常用的结点上以减少通信代价,提供自治基
础上的共享。冗余不仅改善系统性能,同时也增加了
系统的可用性。即不会由于某个结点的故障而引起全
系统的瘫痪。但这无疑增加了存储代价;也增加了副
本更新时的一致性代价,特别当有故障时,结点重新
恢复后保持多个副本一致性的代价。
3.分布事务执行的复杂性
 逻辑数据项集实际上是由分布在各个结点上的多个关
系片段(子集)所合成的。
 一个项可以物理上被划分为不相交(或相交)的片段;
一个项(或片段)可以有多个相同的副本且存储在不
同的结点上。
返回
125
 所以,对分布式数据库存取的事务是一种全局
性事务,它是由许多在不同结点上执行对各局
部数据库存取的局部子事务所合成的。如果仍
应保持事务执行的原子性,则必须保证全局事
务的原子性;当多个全局事务并发时,则必须
保持全局可串行性。也就是说,这种全局事务
具有分布执行的特性。
 分布式数据库的状态一致性和可恢复性是面向
全局的。所有子事务提交后全局事务才能提交;
不仅要保证子事务的可串行化,而且应该保证
全局事务的可串行化。
返回
126
4.数据的独立性
 数据库技术的一个目标是使数据与应用程序间尽量独
立,相互之间影响最小。也就是数据的逻辑和物理存
储对用户是透明的。在分布式数据库中数据的独立性
有更丰富的内容。
 使用分布式数据库时,应该像使用集中式数据库时一
样,即系统要提供一种完全透明的性能,具体包括以
下内容:
(1)逻辑数据透明性。某些用户的逻辑数据文件改变时,或者
增加新的应用使全局逻辑结构改变时,对其它用户的应用程
序没有或尽量少的影响。
(2)物理数据透明性。数据在结点上的存储格式或组织方式改
变时,数据的全局结构与应用程序无需改变。
(3)数据分布透明性。用户不必知道全局数据如何划分的细节。
(4)数据冗余的透明性。用户无需知道数据重复,即数据子集
在不同结点上冗余存储的情况。
返回
127
1.8.1.4 分布式数据库的应用及展望
 一个完全分布式数据库系统在站点分散实现共
享时,其利用率高,有站点自治性,能随意扩
充逐步增生,可靠性和可用性好,有效且灵活,
用户完全像使用本地的集中式数据库一样。
 分布式数据库已广泛应用于企业人事、财务、
库存等管理系统,百货公司、销售店的经营信
息系统,电子银行、民航定票、铁路定票等在
线处理系统,国家政府部门的经济信息系统,
大规模数据资源如人口普查、气象预报、环境
污染、水文资源、地震监测等信息系统。
返回
128
 此外,随着数据库技术深入各应用领域,除了商业性、
事务性应用以外,在以计算机作为辅助工具的各个信
息领域,如CAD,CAM,CASE,OA,AI,军事科学等,
同样适用分布式数据库技术,而且对数据库的集成共
享、安全可靠等特性有更多的要求。
 为了适应新的应用,一方面要研究克服关系数据模型
的局限性,增加更多面向对象的语义模型,研究基于
分布式数据库的知识处理技术;另一方面可以研究如
何弱化完全分布、完全透明的概念,组成松散的联邦
型分布式数据库系统。这种系统不一定保持全局逻辑
一致,而仅提供一种协商谈判机制,使各个数据库维
持其独立性,但能支持部分有控制的数据共享,这对
OA等信息处理领域很有吸引力。
 总之,分布式数据库技术有广阔的应用前景。随着计
算机软、硬件技术的不断发展和计算机网络技术的发
展,分布式数据库技术也将不断地向前发展。
返回
129
1.8.2 主动数据库(Active Database)
1.8.2.1 主动数据库的定义
 主动数据库是相对传统数据库的被动性而言的。在传
统数据库中,当用户要对数据库中的数据进行存取时,
只能通过执行相应的数据库命令或应用程序来实现。
数据库本身不会根据数据库的状态主动做些什么,因
而是被动的。
 然而在许多实际应用领域中,例如计算机集成制造系
统,管理信息系统,办公自动化中常常希望数据库系
统在紧急情况下能够根据数据库的当前状态,主动、
适时地作出反应,执行某些操作,向用户提供某些信
息。例如,前面提到的仓库管理系统就是这样。这类
应用的特点是事件驱动数据库操作以及要求数据库系
统支持涉及时间方面的约束条件。
返回
130
 为此,人们在传统数据库的基础上,结合人工智能技
术研制和开发了主动数据库。
 所谓主动数据库就是批除了完成一切传统数据库的服
务外,还具有各种主动服务功能的数据库系统。
1.8.2.2
主动数据库的实现
 主动数据库的目标旨在提供对紧急情形及时反应的功
能,同时又提高数据库管理系统的模块化程度。
 一般的方法是在传统数据库系统中嵌入ECA规则,即事
件-条件-动作(Event-Conditon-Action)。
 ECA规则可以表示为以下形式:
WHEN <事件>
IF <条件> THEN <动作>(或后跟一组IF-THEN规则)
返回
131
 系统提供一个“自动监视”机构(一般可以是一个直
接由操作系统控制的独立进程或某种硬件设施等),
它主动地不时地检查着这些规则中包含的各种事件是
否已经发生,一旦某事件被发现,系统就主动触发执
行相应的IF-THEN规则(或规则组)。
 显然,此时DBMS本身就可主动履行一些预先由用户设
定的动作,可把诸如完整性约束、存取控制、例外处
理、触发警告、主动服务、状态开关切换乃至复杂的
演绎推理功能等以一种统一的机制得以实现。
 为了有效地支持ECA规则,在主动数据库中需要有以下
实现技术的支持:
1.知识模型
 所谓知识模型是指在主动数据库管理系统中描述、存
储、管理ECA规则的方法。
 为此,必须扩充传统的数据模型,使之能支持对ECA规
则的定义、操作及规则本身的一致性保证。
 此外,知识模型还应支持有关时间的约束条件。
返回
132
 传统数据库系统中,数据模型的描述能力有限,尽管
为了实现完整性制而引入了触发器机制,但触发器和
主动数据库中规则相比表达能力低。只能描述“更新
单个关系”这类事件。也不区分事件和条件。条件的
检查、动作的执行总是在触发之后立即执行或事物提
交前执行,执行方式简单。因此主动数据库必须扩充
传统的数据模型,增加规则部分,即知识模型。
2.执行模型
 执行模型指ECA规则的处理、执行方式,包括ECA规则
中事件—条件、条件—动作之间各种耦合方式及其语
义描述,规则的动作和用户事务的关系。执行模型是
对传统事务模型的发展和扩充。
 在主动数据库中研究并提出了立即执行、延时执行、
紧耦合/松耦合等等多种多样的执行ECA规则的方式。
 丰富多样的执行模型使用户可以灵活地定义主动数据
库的行为,克服了传统数据库管理系统中触发器事务
只能顺序执行其规则的不足。
返回
133
3.条件检测
 主动数据库中条件检测是系统的关键技术之一。主动
数据库中条件复杂,可以是动态的条件、多重条件、
交叉条件。
 所谓交叉是指条件可以互相覆盖,即其中某些子条件
可以属于其他主条件。因此高效地对条件求值是系统
的目标之一。
4.事物调度
 一般地,事物调动是指如何控制事务的执行次序,使
的事务满足一定的约束条件。
 在传统DBMS中并发事务的调度执行应满足可串行化要
求以保证数据库的一致性。
 在主动数据库中,对事务的调度不仅要满足并发环境
下的可串化要求而且要满足对事务时间方面的要求。
例如事务中操作的开始时间、终止时间、所须的执行
时间等。
返回
134
 要同时满足两方面要求的调度是一个困难的技术问题。
它要综合传统数据库的并发控制技术和实时操作系统
中与时间要求有关的调度技术。
 由于主动数据库中执行模型的复杂性更增加事务调度
的技术难度。为此要研究一种新的框架或新的调度模
型,以此为基础来建立调度策略、调度算法。
 由于事务调度要满足时间方面的要求,因而调度机制
常常是执行时间的谓词,而对执行时间估计的代价模
型同样是尚未解决的难题。
5.体系结构
 主动数据库系统的体系结构应该是具有高度的模块性
和灵活性。由于目前大部分主动数据库是在传统DBMS
或面向对象数据库管理系统上研制的,其体系结构大
多是扩充DBMS的事务管理部件、对象管理部件以支持
执行模型和知识模型。
返回
135
6.系统效率
 对主动数据库的研究必须包括对不同体系结构、算法
运行效率的比较和评价。
 为了提高系统效率,正在研究的课题有如:把条件计
算和动作执行从触发事务中分离出来,启发式事务调
度算法,条件检测方法,以及在分布环境和多处理机
环境下的系统资源分布策略,负载平衡的研究等等。
 系统效率是主动数据库研究中一个重要问题。由于上
面讨论中可以发现,在设计各种算法和在体系结构的
选择方面,系统效率是主要的设计目标。
 主动数据库是一个正在研究探索的新领域,许多概念
尚不成熟,不少技术难题尚未解决。
返回
136
1.8.3 多媒体数据库(Multimedia Database)
 “ 多 媒 体 ” 译 自 20 世 纪 80 年 代 初 产 生 的 英 文 词
“multimedia”。 多媒体是在计算机控制下把文字、
声音、图形、图象、视频等多种类型数据的有机组集
成。其中数字、字符等称为格式化数据,文本、声音、
图形、图象、视频等称为非格式化数据。
 数据库从传统的企业管理扩展到CAD、CAM等多种非传
统的应用领域。这些领域中要求处理的数据不仅包括
一般的格式化数据,还包括大量不同媒体上的非格式
化数据。在字符型媒体中,信息是由数字与字母组成
的,要按照数学字母的特征来处理。
 在图形媒体中,信息用有关图形描绘,其中包括几何
信息与非几何信息,以及描述各几何体之间相互的拓
朴信息。这些不同媒体上的信息具有不同的性质与特
性,因此,如何组织存在于不同媒体上的信息,就要
建立多媒体数据库系统。
返回
137
 多媒体数据库是指能够存储和管理相互关联的多媒体
数据的集合。
 这些数据集合语义丰富、信息量特别大、管理过程复
杂,因而要求多媒体数据库能够支持多种数据模型,
能够存储多种类型的多媒体数据,并针对多媒体数据
的特点采用数据压缩与解压缩等特殊存储技术;同时,
要提供对多媒体数据进行处理的功能,包括查询、播
放、编辑等功能,可以将物理存储的信息以多媒体方
式向用户表现和支付。
 多媒体数据库目前有三种结构:
 第一种结构:由单独一个多媒体数据库管理系统来管理不同
媒体的数据库以及对象空间。
 第二种结构:主辅DBMS体系结构。每一个媒体数据库由一个
辅DBMS管理。另外有一个主DBMS来一体化所有的辅DBMS。用
户在DBMS上使用多媒体数据库。对象空间由主DBMS来管理。
返回
138
 第三种结构:协作DBMS体系结构。每个媒体数据库对应一个
DBMS,称为成员DBMS,每个成员放到外部软件模型中,外部
软件模型提供通信、查询和修改的界面。用户可以在任一点
上使用数据库。
 多媒体数据库的研究历史不长,但却是计算机科学技
术中方兴未艾的一个重要分支。
 从理论上说,它涉及的内容大到可以把一切对象装进
一个数据库系统,因而所遇到的问题极多,需要有深
刻的思想,不但有技术问题,也有对现实世界的认识
和理解问题。
 人们期待着,随着多媒体数据库系统本身的进一步研
究,随着不同介质集成的进一步实现,商用多媒体数
据库管理系统必将蓬勃发展,多媒体数据库领域必将
在高科技方面上有越来越重要的地位。
返回
139
 通过上述对数据库系统的介绍,我们可以得出
这样的结论,传统的数据库技术和其他计算机
技术相互结合、相互渗透,使数据库中新的技
术内容层出不穷。
 数据库的许多概念、技术内容、应用领域,甚
至某些原理都有了重大的发展和变化。
 新的数据库技术不断涌现,这些新的数据库技
术,有力地提高了数据库的功能、性能,并使
数据库的应用领域得到极大的发展。这些新型
的数据库系统共同构成了数据库系统的大家族。
返回
140
小
结
 本章概述了信息、数据与数据处理的基本概念,介绍
了数据管理技术发展的三个阶段,说明了数据库系统
的优点。
 通过介绍数据库系统的组成,DBMS的功能与组成,
使读者了解数据库系统实质是一个人机系统,人的作
用特别是DBA的作用非常重要。
 数据库系统的三级抽象和二级映象保证了数据库系统
的逻辑独立性和物理独立性。
 另外介绍了三种数据模型的区别,其中关系模型为广
泛应用。
 最后本章主要介绍了数据库新技术的主要内容和发展
方向。
返回
141