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