版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统与数据模型
本章目的在于使读者对数据库系统的基本知识能有一个较为全面的熟悉,为今后的学
习与工作打下基础。本章重点介绍了有关数据库结构与数据库系统组织的基本知识与基本
概念,与常见的三种类型的数据库系统的特点。重点介绍关系数据库的有关知识。
1.1数据管理技术进展史
随着生产力的不断进展,社会的不断进步,人类对信息的依靠程度也在不断地增加。
数据作为表达信息的一种量化符号,正在成为人们处理信息时重要的操作对象。所谓数据
处理就是对数据的收集、整理、存储、分类、排序、检索、保护、加工、统计与传输等一
系列工作全部过程的概述。数据处理的目的就是使我们能够从浩瀚的信息数据海洋中,提
取出有用的数据信息,作为我们工作、生活等各方面的决策根据。数据管理则是指对数据
的组织、编码、分类、存储、检索与保护,它是数据处理的一个重要内容中心。数据处理
工作由来以久,早在1880年美国进行人口普查统计时,就已使用穿孔卡片来存储人口普查
数据,并使用机械设备来完成对这些普查数据所进行的处理工作。电子计算机的出现与其
后其硬件、软件的迅速进展,加之数据库理论与技术的进展,为数据管理进入一个革命性
阶段提供有力的支持。根据数据与应用程序相互依靠关系、数据共享与数据的操作方式,
数据管理的进展能够分为三个具有代表性的阶段,即人工管理阶段、文件管理阶段与数据
库管理阶段。
[1]人工管理阶段
这一阶段发生于六十年代往常,由于当时计算机硬件与软件进展才刚刚起步,数据管
理中全部工作,都务必要由应用程序员自己设计程序完成去完成。由于需要与计算机硬件
与各外部存储设备与输入输出设备直接打交道,程序员们常常需要编制大量重复的数据管
理基本程序。数据的逻辑组织与它的物理组织基本上是相同的,因此当数据的逻辑组织、
物理组织或者存储设备发生变化时,进行数据管理工作的许多应用程序就务必要进行重新
编制。这样就给数据管理的保护工作带来许多困难。同时由于一组数据常常只对应于一种
应用程序,因此很难实现多个不一致应用程序间的数据资源共享。存在着大量重复数据,
信息资源浪费严重。
[2]文件管理阶段
这一阶段发生于六十年代,由于当时计算机硬件的进展,与系统软件特别是文件系统
的出现与进展,人们开始利用文件系统来帮助完成数据管理工作,具体讲就是:数据以多
种组织结构(如顺序文件组织、索引文件文件组织与直接存取文件组织等)的文件形式储
存在外部存储设备上,用户通过文件系统而无需直接与外部设备打交道,以此来完成数据
的修改、插入、删除、检索等管理操作;使用这种管理方式,不仅减轻进行数据管理的应
用程序工作量,更重要地是,当数据的物理组织或者存储设备发生变化时,数据的逻辑组
织能够不受任何影响,从而保证了基于数据逻辑组织所编制的应用程序也能够不受硬件设
备变化的影响。这样就使得程序与数据之间具有了一定的相互独立性。
但由于数据文件的逻辑结构完全是根据应用程序的具体要求而设计,它的管理与保护
完全是由应用程序本身来完成,因此数据文件的逻辑结构与应用程序密切有关,当数据的
逻辑结构需要修改时,应用程序也就不可避免地需要进行修改;同样当应用程序需要进行
变动时,常常又会要求数据的逻辑结构进行相应的变动。在这种情况下,数据管理中的保
护工作量也是较大的。更要紧的是由于使用文件的形式来进行数据管理工作,常常需要将
一个完整的、相互关联的数据集合,人为地分割成若干相互独立的文件,以便通过基于文
件系统的编程来实现来对它们的管理操作。这样做同样会导致数据的过多冗余与增加数据
保护工作的复杂性。比如人事部门、教务部门与医务部门对学生数据信息的管理,这三个
部门中有许多数据是相同的,如姓名、年龄、性别等,由因此各部门均是根据自己的要
求,建立各自的数据文件与应用程序,这样不仅造成了大量的相同数据重复存储,而且在
修改时,常常需要同时修改三个文件中的数据项,如修改学生年龄,此外若需要增加一个
描述学生的数据项,如通讯地址,那么所有的应用程序就务必都要进行相应的修改。除此
之外,使用文件系统来帮助进行数据管理工作,在数据的安全与保密等方面,也难以采取
有效的措施加以操纵。
[3]数据库管理阶段
1在不断改进与完善文件系统的过程中,从六十年代后期开始,人们逐步研究与进展了
以数据的统一管理与数据共享为要紧特征的数据库系统。即在数据在统一操纵之下,为尽
可能多的应用与用户服务,数据库中的数据组织结构与数据库的应用程序相互间有较大的
相对独立性等。与以往前数据管理方法与技术相比,利用数据库系统来进行数据管理工作
具有下列三个显著特点:
(1)从整体角度组织数据
数据库系统与文件系统的最大差别就在于前者在描述数据时,不仅仅是对数据本身进
行描述,而且对数据之间的相互联系也进行了描述。因此在组织数据时是从一个相对较高
的整体角度进行的,而不是仅仅局限于个别的数据管理应用场合。如前面提到的人事部
门、教务部门与医务部门对学生数据的管理工作,在利用数据库系统来进行管理时,若从
整体考虑,其数据的组织结构如图1.1所示。
学生信息数据公用部分
人事部门学生数据专用部分教务部门学生数据专用部分医务部门学生数据专用部分
图1.1学生信息数据组织结构
使用这种数据组织不仅能够有效地解决了文件系统的数据组织中所存在的数据冗余与
数据一致性保护的问题。更要紧的是它能够使人们从更高的全局角度出发,合理地组织数
据,从而有利于更大范围内的数据资源的共享,提高信息的使用效率。
(2)数据可为多个应用服务
正由于数据库中的数据是从整体角度进行组织的,因此,数据库中所存储的数据往往
就不仅局限于只为一二个应用提供服务,而是在更大范围内为仅可能多的应用提供服务,
如图1」所示的一个数据库中所存储的数据,就至少能够为三个部门的应用提供服务。而实
际上如图1.1所示的数据组织结构仅仅只是一个学校数据管理数据库中的一小部分。与此同
时由于数据库系统是以多级(层)组织模式对数据进行组织的,各级(层)模式之间的映
射是由数据库系统自己完成的,这就使得数据与程序之间能够具有较高的物理与逻辑相对
独立性。正是这一点,给数据库中的数据为多个应用提供服务奠定了基础。事实上数据库
的规模越大,所能够提供的应用服务就能够越多,也就越能表达出数据库在数据管理中的
优势。当然这只是相对而言,随着数据库中数据规模的扩大,数据库应用系统的制作与保
护的工作也在迅速增加。
(3)有一个数据库系统的管理软件
任何数据库系统都包含一个管理软件,即数据库系统的管理软件,通常又称之数据库
管理系统,它负责统一管理数据库系统中所有数据资源,是数据库系统与用户应用之间的
接口,通过它,用户能够不必要熟悉过多的计算机硬件、软件与数据库本身许多专业知
识,更不用去熟悉数据库系统是如何完成数据管理工作的具体细节,如文件如何打开、关
闭、读、写等等,就能够通过编写一些较为简单数据库应用程序,很方便地完成在较高级
别逻辑组织基础上的数据管理工作。除此之外,数据库管理系统还负责完成在对数据库进
行并发访问时,保证数据一致性的并发操纵工作;保证数据安全性的访问操纵工作;与在
数据库系统出现故障时,提供保证数据一致性与完整性的恢复机制等诸多数据库系统本身
的各类管理操纵工作。因此这里也能够看出,数据库管理系统功能的强弱及其各项性能指
标的好坏,是衡量数据库系统质量的一个极其重要的因素。
利用数据库系统进行数据管理工作,不仅能够保证数据的物理组织结构与存储设备与
数据库应用程序之间保持相互独立性;同时也能够保证数据的逻辑组织结构与数据库应用
程序之间保持最大可能的相互独立性,即当数据的逻辑组织结构发生变化时,数据库应用
程序的变动被限制在最小的范围内。由此可大大地减少数据库应用程序的开发与保护的工
作量。
在数据库管理阶段,根据数据库系统本身所支持的数据模型的特点及所使用的相应数
据库系统技术,能够认为数据库管理到目前为止已进展经历了三代,即层次网状模型代、
关系模型代与面向对象模型代。
(1)层次网状模型代:流行于六十至七十年代,在这一代中的数据库系统所支持的数
据模型均是层次模型或者网状模型。世界上第一个数据库系统是于1964年由美国通用电气
公司开发成功的IDS(IntegratedDataStore),它就是基于网状模型的数据库系统。IBM公
司于六十年代末推出了第一个商品化的层次数据库系统IMS(InformationManagement
Sytem),它们的出现与应用为数据库技术的进展奠定了基础。
(2)关系模型代:流行于七十至八十年代,在这一代中的数据库系统所支持的数据的
数据模型均是关系模型。以关系(表)形式组织数据。1970年Codd提出了关系数据模型,
由于其具有严格的数学基础,抽象级别较高,且简单清晰,便于懂得应用。到了七十年代
末,出现了很多关系数据库系统,其中具有代表性应首推IBM公司推出的SQL/DS与DB2两
个商品化关系数据库系统。进行八十年代以后,关系数据库系统已成为数据库系统进展的
主流,几乎所有新推出的数据库系统产品都是关系型的,它们中不仅有用于大型机与小型
机数据库产品,而且有可用于微机的数据库产品。市场上开始出现关系数据库的系列产
品,这其中发行量较大且在我国用得较多的有Oracle、Sybase、Sysbase、Informix、FoxPro
等。随着微机与计算机网络的广泛普及与应用,分布式数据库系统在八十年代后期,开始
得到很大进展。其理论与技术日趋成熟。目前几乎所有分布式数据库系统均是关系型的,
而且几乎所有要紧关系数据库系统均已被扩充为分布式数据库系统。
(3)面向对象代:开始九十年代,在这一代中的数据库系统支持面向对象的数据模
型。它是数据库技术与面向对象程序设计方法相结合的产物。作为新一代数据库系统,现
在已有了一些商品化系统。但其具体应用尚不多。
1.2数据库系统
本节要紧介绍有关数据库结构与数据库系统组织的一些基本知识与概念,使读者对数
据库系统的内涵有一个较为清晰的认识。
1.2.1数据库系统概念
由于数据库系统是一个由许多基本概念、技术方法与其应用对象所构成的复杂的有机
整体。很难用一两句话将其描述清晰。但为了使读者对它有一个总体的熟悉,首先这里我
们试着给出一个关于数据库系统的定义,即数据库系统中的数据库是一个已被规格化与结
构化且相互关联的数据集合,这些数据中不存在有害的或者无意义的冗余;数据的组织与
存储结构与使用这些数据的程序相互独立;数据库中的数据可同时为多个应用服务;数据
库中的数据定义、输入、修改与检索等所有操作均是按一种公用的且可控的方式进行。根
据这一数据库定义与实际应用的具体数据库系统的情况,我们能够认为一个数据库系统实
际上是由三部分内容构成,它们是数据库、多种应用与数据库管理系统。这三部分之间的
相互关系如图1.2所示。
(1)数据库:相互关联的且具有最小冗余的数据在其中按照一定物理组织结构存放,同时
从用户与数据库管理系统角度来看,这些数据又是按一定逻辑结构组织的。这种物理组织
结构与逻辑组织结构在最大程度上与用户所编制的应用程序相互独立。
(2)多种应用:数据库中的数据,在数据库管理系统的操纵与管理之下,能够同时为多种不
一致内容的应用提供服务,即能够为多个不一致目的用户服务,各用户所操作使用的数据
能够是相互交叉的。用户的操作方式既能够按以数据输入/输出与数据保护为主的数据流量
较大的批处理方式进行;也能够按以查询为主的数据流量较小的联机处理方式进行,必要
时还能够通过编程来完成对数据库中数据的各类操作。
(3)数据库管理系统:它一方面负责对数据库中的数据进行管理与保护;一方面为用户操作
数据库中的数据提供一种公用的操作方法,接收用户的操作命令,帮助完成有关的对数据
库的操作并保障数据库的安全。
根据对数据库的定义与数据库系统基本构成及作用的描述,我们认为一个的数据库系
统应该具有的下列五个基本特点:
[1]由于数据库系统是从整体角度考虑数据的组织,因此它务必有能力描述能够反映客观
事物及其相互联系的复杂数据模型,使用它能够对数据本身及相互间的各类关系进行充分
描述,这也是人们为什么要使用数据库系统来进行数据管理的要紧原因之一。目前数据库
系统共提供了四种数据模型,它们是层次数据模型、网状数据模型、关系数据模型与对象
数据模型,一种类型数据库系统通常只提供上述其中一种数据模型描述方法,即只支持其
中一种数据模型的数据逻辑组织结构。
用户1
IA
四户z]数据库管理系跳}三一"数据库
用户n
图1.2数据库系统构成
[2]数据库中数据的独立性。为了说明这一点,首先我们介绍两个概念,(1)数据在物
理存储设备上的组织结构被称之数据的物理组织;(2)数据在用户或者应用程序面前所表
现出的组织结构被称之数据的逻辑组织;一种数据的逻辑组织,能够使用不一致的物理组
织来实现,物理组织的好坏影响着系统的性能与效率。在运行阶段中,由于性能的要求或
者存储设备的改变,从而引起数据物理组织的改变,这种改变称之数据的再组织。用户在
编制应用程序时,则是根据数据的逻辑组织对数据进行操作的。因此数据物理组织的变
化,不可能影响数据的逻辑组织,因而也就不可能影响已有的应用程序,这种情况就被称
之数据的物理独立性;而数据的逻辑独立性是指当数据的逻辑组织发生变化时,如数据模
型中增加了新的记录类型,某一记录类型中增加了新的数据项等,原有应用程序的执行不
受影响或者影响最小。数据的独立性,包含物理与逻辑的独立性,都是由数据库管理系统
进行保护的。
[3]数据共享,由于数据库是从整体的角度对数据进行组织的,并在保证数据一致性的情
形之下,使数据库中的数据为尽可能多的用户提供应用服务。这些用户所使用的数据能够
是交叉的,即数据能够共享。假如数据不能共享,数据库中则必定会出现大量的冗余数
据,这样不仅造成存储空间的浪费,更要紧的是由此可能带来数据不一致的隐患。
[4]数据库系统的安全可靠与完整,一个数据库系统的可靠性表达在它的软件系统运行故
障率很小与在数据库系统由于各类意外而出现故障时,数据库中的数据的缺失最小;安全
性是指数据库系统对其所存储的数据的保护能力,能够有效地防止数据有意无意地泄露或
者篡改,操纵数据的授权访问等。而数据库系统的完整性则是指在多用户操作数据情况
下,数据能够保持一致性。这些特性能够从下列几个方面进行说明:
<1)安全性操纵
安全性操纵要紧指的是数据库的保密性。并不是每个用户都能够存取数据库中所有数
据的,负责人与全体工作人员同意掌握的数据范围显然是有区别的,数据库系统把各用户
存取数据的权利分成若干等级,如教学人员作为一个用户能够登录学生的成绩,而学生作
为一个用户则仅能够查阅成绩而无法对它进行修改或者删除。通过对各个用户授于不一致
的使用权限,以确保数据库免遭损害与被非法使用,通常是通过使用口令密码与数据库中
数据访问授权等方法对使用者操作数据的合法权进行检验,以实现对数据库中数据安全性
的保护操纵。
〈2〉完整性操纵
所谓完整性包含数据的正确性、有效性与相容性。正确的数据不一定是有效的。如若
用两位阿拉伯数字来表示月份,在输入14来代表月份时显然是无效的。数据库系统应提供
尽可能多的检验措施,以确保数据库中的数据满足用户所要求的各类约束要求。
〈3〉并发操纵
在多用户操作使用数据库系统的情况下,不一致用户并行地操作数据库就可能引起对
数据库的干扰,从而使得数据库中的数据发生不一致的问题。如当甲用户从数据库中预定
了仅剩的一张机票之后,若在数据库尚来不及将剩余的机票数改为零时,乙用户又请求订
票时怎么办?显然对这种并发的操作要采取某种操纵措施,最常用的方法是封锁技术,以
排除与避免这种错误的发生,保证数据库中数据的操作能够正确完成执行。
〈4〉故障的发现与恢复
由于数据库系统在运行过程中很难保证不产生故障、出现意义或者受到破坏,而且往
往这些情况的发生的时间都是随机的,如断电、用户误操作等,而重建一个数据库往往要
花费很大的精力与代价,有的时候甚至是不可能的,因此数据库系统应提供应急保护设
施,一旦系统的软硬件发生故障或者用户误操作导致系统特殊时,系统应能够以尽量小的
代价,尽快地恢复数据库的内容与系统的正常运行。
[5]良好的人机接口与性能,任何数据库系统最终都是要与用户打交道,系统所具有的各
类功能最终都需要由用户来进行操作使用。简单易学、操作简便与用户界面友好是任何一
个数据库系统所务必的。此外系统的响应速度,单位时间内数据的吞吐量也是衡量数据库
性能重要指标。
1.2.2数据库结构
在上一小节,我们介绍了数据库系统所涉及的三个基本成分与数据库系统所应具有的
五个特点,在这一小节中,我们将略为详尽地介绍数据库系统的要紧构成之一,数据库的
有关知识。在数据库技术中,为了提高数据库中数据的逻辑独立性与物理独立性,使用了
分级(层)方法,将数据库中数据的组织结构划分成多个级(层)。根据美国国家标准协
会(ANSI)所提出的报告,数据库的数据组织结构能够分为三个相互关联的层次,它们分
别是概念层数据模式、用户层数据模式与物理层数据模式。
【1】概念层数据模式,又称之模式,它是对数据库中数据整体逻辑结构的描述,它是对数
据库中所有数据项、记录类型与各记录类型之间的相互关系的描述。这里需要说明的是,
这种描述仅仅是一种逻辑组织结构的描述,是面向用户需要而提出的。而非是真正的数据
存储组织结构。提供这一层次的数据模式描述,要紧是为了数据库应用系统的设计者,在
对与应用有关的所有用户的需求进行统一综合考虑之后提出的,它能够从总体上,将这些
需求所涉及到的数据及其它们间的相互联系,有机地结合成为一个逻辑整体。概念层数据
模式的设计是数据库设计的最基本也是最重要的任务。
[2]用户层数据模式,又称之外模式或者子模式,它是对以用户为对象使用数据库所涉及
到的所有数据局部逻辑结构的描述。它是模式一个子集或者者是一个映射,一个数据库只
有一个模式,但通常都对应着多个子模式。子模式所包含的数据之间容许有重叠,也容许
多个用户共用同一个子模式。提供这一层次的数据模式描述,有下列优点:
〈1〉用户只要按照描述自己所使用数据的子模式编写应用程序或者输入操作命令,就能够
完成满足自己要求的数据库操纵工作。而无需熟悉整体数据模式或者数据的存储组织结
构,从而是用户接口变得简单。
(2)保证了数据独立性。由于用户的数据库应用编程仅仅是根据子模式的数据逻辑结构的
描述,而子模式通常都是模式的一个真子集,因此若因需要而对模式所描述的数据逻辑结
构进行部分修改或者扩充时,如增加新的数据项或者者增加新的记录类型等,只要不影响
子模式从模式中的原有的映射关系,那么用户根据子模式所开发的应用程序,则就不受模
式变动的任何影响。因此提供模式与子模式这两层数据逻辑结构的描述,就能够较好地保
证数据的逻辑独立性。
〈3〉数据能够被较好地共享。由于同一模式能够产生许多不一致的子模式,这些子模式所
描述的数据能够来源于模式所描述的全局数据逻辑结构中各类数据项或者记录类型,因此
这样做,这样就能够很方便地实现数据的共享,也就大大减少了数据可能存在的冗余,从
而有利于保证数据的一致性、完整性与正确性。
〈4〉有利于保证数据的安全与保密。由于用户是通过其相应的应用程序对数据库中数据进
行操作,因此他只能操作其子模式所描述范围内的数据,而无法接触到其它用户及其子模
式所描述的数据,由此就能够保证数据库中的数据具有较好的安全性。
[3]物理层数据模式,又称之内模式或者物理模式。它是对数据库中所有数据在物理设备
上实际存储的组织结构的描述。数据库数据根据这一层数据模式的描述,被存放到若干按
各类组织方式建立起来的物理文件中,对这些物理文件的所有存取访问的操纵都是由数据
库管理系统统一操纵的。管理系统负责完成从概念层数据模式到物理层数据模式之间的数
据映射,这样由于所有的数据库应用程序或者服务所涉及到数据又都是根据模式的数据描
述得到的,因此当数据库数据的物理组织结构发生变化时,概念层数据模式描述通常无需
修改,同样也就保证了与模式有关联的子模式与用户应用程序也无需修改,从而使得数据
库系统中数据也具有的物理独立性。
存储模式数据
字模前
图L3数据库结构各模式间关系
由于一个数据库是使用上述的三个层结构方式对其中的数据组织进行描述的,从而较
好地保证了数据的逻辑独立性与物理独立性,方便了用户对数据库中数据的操作使用,减
少了数据冗余。这三层模式之间的相互关系如图1.3所示。由于数据库中数据,实际上是按
照物理层数据模式进行存储的,而概念层数据模式与用户层数据模式都只是对物理层数据
模式描述的数据的一种逐级(层)地逻辑抽象,用户在对数据库进行操作时,都务必通过
数据库管理系统,来完成从用户层数据模式到概念层数据模式之间、概念层数据模式到物
理层数据模式之间这两种映射,当然这两种映射是由管理系统自动完成的,对用户是透明
的。
目前实际应用的中高档数据库系统的数据组织结构基本上是按照上述三层模式标准,
来描述数据组织的。也有一些中低档数据库系统,为了方便通常用户的操作使用,对上述
三层模式标准进行了一些简化,它们往往使用一层或者二层模式来描述数据组织结构,通
常都略去了物理层的数据模式描述。
1.2.3数据库系统
数据库系统的核心是数据库管理系统(DataBaseManagementSystem,简称DBMS),
在它的操纵与帮助下,用户能够建立、使用、修改与保护数据库中数据。数据库管理系统
是建立在操作系统之上的应用软件平台。它通常具有下列三个要紧功能:
(1)提供操作数据库的用户高级接口。具体讲就是(A)提供数据描述语言,供用户对整
个数据库中的数据进行各类逻辑与物理组织结构描述,而这些组织结构的具体实现细节,
则山DBMS完成,用户不必关心。(B)提供数据操纵语言,供用户对数据库中数据按照其
定义逻辑组织结构进行各类操作,如插入、删除、修改与查询等,这些操作的的具体实现
细节,则也由DBMS完成,用户不必关心。(C)同时还可能提供其它工具,如用户界面生
成工具、报表生成工具等,帮助用户更加容易地对数据库的操纵进行编程。
(2)管理数据库。它要紧包含下列功能:(A)操纵整个数据库系统的运行;(B)操纵
用户对数据库的并发性操作;(C)执行对数据库中数据的安全、保密、有效性与完整性检
验;(D)实施对数据库中数据的检索、插入、删除、修改等操作。(E)保护数据库数据
组织结构的完整与一致。
(3)保护数据库,要紧包含:(A)初始化时数据库数据的装入:(B)运行时记录下与
用户、操作、系统状态与结果等信息的工作日志;(C)监视数据库性能;在性能变坏时,
重新组织数据库;(D)在数据库系统的硬件或者软件发生故障后,对数据库中受破坏的数
据进行恢复。
这一小节,将略为详尽地介绍与数据库管理软件有关的一些基本情况。
(-)数据库系统语言
数据库系统语言是用户与数据库系统进行交互操作的要紧工具,是连接用户与数据库
系统的桥梁。数据库语言功能的强弱直接影响到用户使用数据库系统的方便程度。数据库
系统语言通常包含数据库数据描述语言DDL(DataDescriptionLanguage)与数据库数据操
作语言DML(DataManipulationLanguage)这两种语言。数据描述语言用于描述数据库中
各类模式的定义;而数据操作语言则是用于描述对数据库中数据所要进行的各类操作。这
里我们将概述这两种语言一些基本功能。
[1]数据描述语言
数据描述语言是建立与使用数据库的重要工具,它是用于描述数据库各层数据模式描
述的语言。数据库管理系统将对用户用该语言所描述的各层数据模式,进行编译,产生可
供数据库系统操作时所使用的目标模式。对应着数据库的模式、子模式与内模式,数据描
述语言又可分为模式描述语言、子模式描述语言与内模式描述语言。它们各自的功能如
下:
(1)模式描述语言,它是用来描述数据库概念层数据模式的,即用于描述数据库中所有数
据与它们间相互关系的特性。用模式描述语言写出的数据库全体数据的逻辑组织结构的全
部语句的集合,通常就被称之一个模式,一个模式的要紧内容有:
①给数据库总体数据的逻辑组织结构,即模式取名
②描述模式中每个记录类型名称,与其中各数据项的名称、数据类型(如字符型、数字型
等)与数据长度等。
③描述模式中各记录类型之间的相互联系,假如存在有相互联系的话。
一个模式仅仅是对数据库概念层逻辑数据组织结构的一个描述,并非是概念层逻辑数
据本身。与其它程序语言一样,模式描述语言也有自己的一套清晰而又严格的语句与语法
规则。对应不一致类型的数据库系统,如层次数据库系统与网状数据库系统,它们的模式
描述语言也有很大差别,即使是同一类型数据库系统,如关系数据库系统,不一致软件商
推出的系统,其模式描述语言也不尽相同。但有一点是一致的,这就是它们都务必是可对
上面所说明的,描述一个模式所需要包含的三个基本方面进行定义说明。
(2)子模式描述语言,它是用来描述数据库用户层数据模式的,即用于描述用户所使用的
数据的逻辑数据组织结构的定义。用子模式描述语言写出的用户局部数据逻辑组织结构的
全部语句的集合,通常就被称之一个子模式,一个子模式的要紧内容有:
①给用户使用数据库所涉及到局部数据的逻辑组织结构,即子模式取名
②描述子模式中所包含的每个记录类型及其中的各数据项,这些记录类型的名称与各数据
项的名称与长度,能够与模式中的定义是完全不一致的,但这里要紧是描述子模式中的记
录类型及其数据项与模式中记录类型及其数据项之间的对应映射关系,子模式中所描述的
记录及其中的数据项务必是已在模式中定义过的。
③描述子模式中各记录类型之间的相互联系。这里同样是描述子模式中的记录间相互联系
与模式中记录间相互联系之间的对应映射关系。子模式中所描述的记录间相互联系务必是
已在模式中定义过的。
与模式描述语言不一致,子模式描述语言有的时候与编写应用程序所使用的其它程序
设计语言有关,因此根据子模式描述语言所适用的编写应用程序语言,子模式描述语言也
可分为COBOL子模式描述语言、FORTRAN子模式描述语言与C子模式描述语言等。
(3)内模式描述语言,它是用来描述数据库中数据在物理存贮介质上的组织结构与存放方
式等,它与数据库系统所运行的硬件环境特性有关。比如,系统建立了什么物理文件?文件
的存贮设备是什么?文件是以什么样的组织方式等等,这些都是由内模式描述语言来负责
描述的。
上述内容仅仅是关于数据描述语言中一些最基本的部分。通常各软件商生产出的数据
库系统,往往都要根据自己的具体实现情况,提供出相应的一整套数据描述语言的规范,
其中也有一些数据库系统,对上述的数据描述语言的标准进行了一些简化,只给出一种或
者二种描述语言定义,或者干脆将数据描述语言与数据操作语言归并到了一起,以方便用
户使用。如FoxPro数据库系统,与目前比较流行的基于SQL的多种数据库系统。
[2]数据操作语言
数据操纵语言是用户操纵数据库中数据的工具,用户借助它来实现从数据库中检索数
据、向数据库中添加数据、删除数据库中没有保留价值的数据或者修改某些发生变化的数
据等操作。
数据操纵语言通常分为两种类型,即宿主式数据操纵语言与自含式数据操纵语言。自
含式数据操纵语言在数据库系统中可独立使用,是一种完整的语言,这类语言使用简单方
便,很适合于在终端上使用。这类语言的优点是系统运行效率较高且使用简单,缺点是它
的应用范围常常受到限制,比如要提取出数据库中的一些数据进行某种复杂运算处理时,
单靠数据库系统所提供的这类数据操纵语言有的时候就很难做到这一点。自含式数据操纵
语言通常包含下列基本操作功能:(A)从数据库中选择满足一定要求的记录或者联系;
(B)增加新的记录或者联系到数据库中;(C)修改数据库中的记录或者联系;(D)删
除数据库中的记录或者联系;
另一种是宿主式数据操纵语言,它不能单独使用,务必嵌入到某种程序设计语言(如
C,COBOL,FORTRAN)之中方能进行数据库操作,这种数据操纵语言语句仅负责对数据
库中数据的操作,其它复杂的数据处理工作均有主语言完成,有的时候这样做会使得用户
的应用程序变得相当复杂。由于这样的程序既包含了主语言语句,也包含了数据操纵语言
语句,也就使得主语言原先的编译程序便不能完全编译应用程序了,解决这一问题有两种
办法:(A)重新设计与实现一个编译程序,使之能编译包含数据操纵语言与主语言的所有
语句,这种办法不大现实经济;(B)不修改主语言编译程序,而是设计一个预编程序来对
应用程序中的数据操纵语言进行预编译,将其首先转换成用主语言写的程序,然后再用主
语言的编译程序来编译,以产生最后的目标程序。这样做办法比较可行,目前已为许多数
据库系统所使用。
实际上许多数据库系统除了提供上述两种数据操作语言之外,还提供了许多编程工具
与或者编程命令,以便帮助用户更加容易地编制数据库的应用程序,如用户界面生成工
具、报表生成工具与数据库API接口等。
(二)数据库系统运行管理与操纵软件
数据库系统运行管理与操纵软件是数据库管理系统软件的实际构成,它要紧包含语言
编译处理程序、系统运行操纵程序与数据库日常管理程序与数据库工具等多种软件。下面
将概述这几种软件一些基本功能
(1)语言编译处理程序。它要紧包含:(A)数据库系统中各类数据描述语言的编译处理
程序,它们的作用是将各类使用模式描述语言所定义数据模式编译成DBMS所使用的内部定
义目标模式。(B)数据库系统各类数据操纵语言的处理程序,它们可将应用程序中使用数
据操纵语言所写的数据操作语句转换成其宿主语言编译程序所能处理的语句。(C)终端操
作命令解释程序,它要紧用于解释终端操作命令的意义,完成相应数据库系统命令的执行
过程。(D)数据库操纵命令解释程序,它负责解释执行每一条数据库操纵命令。
(2)系统运行操纵程序。它要紧包含:(A)数据库系统的总控程序,它用于检查访问的
合法性,以决定一个访问是否能使用数据库。(B)并发操纵程序。协调多个应用程序对数
据库的操作,保证数据库中数据的一致性。(C)保密操纵程序。实现对数据库数据的安全
保密操纵。(D)数据完整性操纵程序。核对数据库完整性约束条件,以决定对数据库的操
作是否有效。(E)数据库存取访问程序。实施对数据库中数据的操作,如执行检索、插
入、修改、删除等操作。(F)通讯操纵程序。实现用户程序与DBMS之间的通讯。
(3)数据库日常管理程序。这要紧包含:(A)数据装入程序。实现将初始数据装入数据
库。(B)系统恢复程序。当软硬件出现故障时,利用恢复程序将数据库恢复到正确状态。
(C)工作日志程序。负责记载进入数据库的所有访问,其内容包含用户名称、进入系统时
间、进行何种操作、数据变更情况等等。使每个用户每次访问都留下踪迹。(D)性能监测
程序。监测操作执行时间与存贮空间占用情况,为数据库的再组织提供根据。(E)重新组
织程序。当数据库系统性能变坏时,对数据库重新进行物理组织。(F)转贮、编辑、打印
程序、用于转贮数据库的部分与全部数据,或者者编辑打印数据等。
(4)数据库工具软件。它要紧是为了方便建立数据库系统的具体应用,而提供各类工具软
件。其中有数据库系统应用程序界面制作工具,报表制作工具等许多软件工具。
最后我们简单介绍一下建立数据库应用系统的基本知识。数据库应用系统的设计方法
我们将在第五章全面介绍。与其它应用软件开发与应用过程一样,数据库系统的应用,也
有一个生命周期,它要紧由下列五个阶段构成:
(1)数据库系统的规划。它包含系统的应用范围与功能的确认、应用环境的分析、DBMS
及其支撑环境的选择、硬件配置,人员的配备与培训,投资估算与效益分析等活动。
(2)数据库系统的设计。它包含熟悉应用系统的信息与处理需求,设计满足其要求的整体
数据模型及处理流程,并结合具体所使用的数据库系统、硬件环境与系统软件平台的特
点,设计出符合具体数据库系统应用要求的数据模型,及其应用软件的流程图。选择合适
的商用数据库系统,来设计、建立、管理与保护数据库系统,使之能够为用户提供最佳服
务。
(3)数据库系统的建立。首先根据数据库系统的设计结果,定义数据模式,规定访问权
限,设置完整性约束。然后准备数据,对其进行正确性校验后,将其录入,与此同时,完
成要紧应用程序的编制工作。
(4)数据库系统的管理。它包含应用软件的编制与修改、数据库的重新组织、数据库系统
中数据的备份与恢复等工作。保证数据库系统的完好,为用户提供可靠的服务。
(5)数据库系统的调整。由于应用数据库系统的用户所在的硬环境,如单位组织调整、人
员变化等,软环境,如人员素养、应用要求等,发生变化,在数据库系统运行一段时间
后,往往都需要进行扩充与重构,即需要对数据库系统的各类数据模式的定义与处理流程
进行适当的修改与补充,使之习惯新的形势。
通常与一个数据库系统的应用系统有关的人员,有下列四类,他们是:(A)系统管理
员,他的任务要紧是定义数据库系统的物理存储模式,分配并管理各用户操作的权限,管
理日常数据库系统的运行工作,与保护数据库系统中的数据,保证其完整与安全、(B)系
统分析员,他们的任务要紧是,从整体上分析数据库系统应用所涉及的客观信息结构与内
容,定义相应的数据库系统的全局数据模式;(C)应用程序员,他们的任务要紧是分析具
体用户的信息处理需要,定义数据库系统的子模式,编写具体数据库应用程序;(D)用
户,他们具体的数据库应用程序与数据库的最终使用者。
(三)数据库系统访问示例
这里,我们介绍一下普通用户读取数据库系统中数据时,数据库的工作过程(如图1.4
所示),以便使读者能够从中熟悉DBMS是如何来进行数据库系统的管理工作的。用户访问
数据库系统中数据的过程实际上就是用户与DBMS进行交互的过程。其具体步骤如下:
(1)用户通过应用程序指明它使用的子模式名称,发出数据操作命令,DBMS通过处理用
户的应用程序,接收该操作命令。
(2)DBMS按照应用程序中的子模式名称,调出相应的子模式,核对该用户的访问权利、
操作合法性等,若检查通过则继续执行,否则拒绝执行并报告出错信息。
(3)DBMS按模式确定子模式中操作所涉及的记录类型,并通过模式到存储模式的映射,
找出这些记录类型的相应存贮模式。
(4)DBMS查阅存贮模式,确定应从哪个物理文件、存贮设备与调用哪个访问程序去读取
所需的记录。
(5)DBMS的访问程序找到有关的物理数据地址,向操作系统发出读操作命令。
(6)操作系统收到DBMS发来的命令后,启动系统的输入/输出程序完成读操作,把要读
取的数据块送到内存中的系统缓冲区。
(7)DBMS收到操作系统关于输入/输出操作结束回答后,按模式、子模式的定义,将已
读入到系统缓冲区的内容映射为用户程序所要的逻辑记录,并送到用户的工作区中。
(8)DBMS向应用程序发送反映操作执行结果的状态信息(由状态字描述),如“执行成
功”、“数据未找到”等。
(9)记载DBMS系统的工作日志。
(10)应用程序检查状态信息,如执行成功,则可对程序工作区中的数据作正常处理,否
则按出错类型决定程序的后续处理。
用户修改一个记录的操作步骤也是类似的。首先读出所需记录,在程序工作区中修改
好,而后再把修改好的记录写回数据库中原记录的位置上。
图L4数据库的工作过程
1.3实体联系模型
本节要紧介绍有关实体联系模型的概念与基本知识,使读者熟悉并掌握基本的实体联
系模型的使用方法。
1.3.1模型的构成
我们都明白数据是表达信息的一种重要的量化符号,是信息存在的一种重要形式。而
所谓数据模型则是数据特征的一种抽象。它不是描述个别的数据,而是描述数据的共性。
通常来讲,数据模型包含两方面内容,它们是:(1)数据的静态特性,这要紧包含数据的
基本结构、数据间的联系与数据中的相互约束等特性;(2)数据的动态特性,这要紧包含
对数据操作的方法。在数据库应用系统中,建立反映客观信息范畴的数据模型是数据库应
用系统设计中最为重要的,也最基本的步骤之一,它是连接客观信息世界与数据库系统数
据逻辑组织的桥梁。也是计算机专业人员与非计算机专业的用户之间进行交流的共同基
础。这里我们将要介绍的数据模型就是实体联系数据模型(又称E—R数据模型),它与
传统的数据模型是完全不一致的。E—R数据模型是面向现实世界,而不是面向实现方法
的,它要紧是用于描述现实信息世界中数据的静态特性。而不涉及数据的处理过程。但由
于它简单易学,因而在数据库系统应用的设计中,得到了广泛应用。
E-R数据模型是P.P.Chen在1976年提出的,它为数据库系统应用的设计人员提供了三个
基本的模型描述成分,它们是实体、联系与属性。E-R数据模型就是利用这三个成分来描述
反映一个客观信息世界内容的数据模型。在数据库应用系统设计中,通常还需要将这一数
据模型转换为各数据库管理系统所支持的具体数据模型,即层次数据模型、网状数据模型
与关系数据模型等。由此我们也能够看出E-R数据模型是从现实信息世界到数据库系统中数
据逻辑组织结构设计之间的一个中间阶段,只因此是这样,要紧是由于假如直接将现实世
界的信息,构造成某个DBMS所能同意的数据逻辑组织结构,其工作往往是十分复杂而且难
度也很大,应用设计人员不仅要考虑现实世界各类信息及其内在的联系,与各类具体应用
对数据处理的要求,而且还要考虑使用某种特定的数据库系统后,所面临的各类条件限
制,这样就大大增加了应用系统设计的复杂性。
下面我们就介绍一下E-R数据模型中的三个基本要素,即实体、联系与属性的有关
基本知识。
[1]实体
数据是用来描述现实世界中各类事物的。而要描述的对象是形形色色的,有具体的,
也有抽象的;有物理上存在的,也有是概念性的;如张三、汽车、运动、兴趣、神灵等。
这些对象的共同特征是能够相互有区别,否则就会被认为是同一种对象。凡是能够相互区
别开并能够被我们所识别的事、物、概念等对象均可认为是实体。它是具有共同某些特征
的一类具体实体,即可认为是一实体集合,对这一集合中所有实体共同特征的描述,称之
实体型。实体集中的各具体实体,称之该实体型的值或者实体值。关于同一实体集中的不
一致实体其特征值不完全相同,并由此可加以区分。如学生实体集,事实上体型能够通过
学号、姓名、年龄等特征加以描述。学生实体集中的不一致的学生实体,通过其不一致的
学号又可加以区分。比如学号为881001姓名为李平的学生是一个具体实体,显然不一致于
学号为881002姓名为王明的学生这个具体实体。
[2]联系
在现实世界中,任何事物都不是孤立存在的。实体之间存在着各类相互联系,比如教
师与学生之间至少存在一种联系,即“教学”联系,商店与商品之间存在一种‘供应'联
系,这些都是不一致类型的实体之间存在的联系。还有一种联系是存在于同一类型实体之
间的,比如学生实体型里,某一学生是班长,显然他与其他学生间也存在着一种“领导”
联系。在E-R数据模型中,通常将不一致实体型之间存在的联系归纳成三种不一致类
型,它们是:(1)一对一的联系。其定义是:关于实体型A中的一个实体,在实体型B
中至多有一个实体与之对应,反之关于实体型B中的一个实体,在实体型A中至多有一个
实体与之对应。这样的联系被称之是一对一的联系。比如两个实体型分别为国家与总统,
显然,一个国家只有一个总统,而一个总统只能对应于一个国家;又如系与系主任两个实
体型,一个系只能有一名系主任,而一个系主任只能领导一个系。这些显然都是两种实体
型之间一对一联系的情况。通常又将这种联系记为1:1的联系。(2)一对多的联系。其
定义是:关于实体型A中的一个实体,实体型B中能够有若干个实体与之对应;反之,关
于实体B中的一个实体,则实体型A中只能有一个实体与之对应。这样的联系被称之是一
对多的联系,比如两个实体型分别为系与教师,一个系能够有若干教师,一个教师只能对
应一个系,显然这是两种实体型之间一对多的联系。通常将这种联系记为1:N的联系。1:
1的联系有的时候可看成是1:N的联系的一种特殊情况。(3)多对多的联系。其定义
是:关于实体型A中的一个实体,实体型B中能够有若干个实体于之对应;反之,关于实
体型B中的一个实体,则实体型A中也有若干个实体与之对应,这样的联系被称之是多对
多的联系。比如两个实体型分别为教师与课程,一个教师能够教若干门课,一门课又能够
有若干个教师讲。通常将这种联系记为M:N的联系。以上介绍的三种类型的联系不仅能够
用于描述二个不一致类型的实体,还能够用于描述多个不一致类型的实体。如在现实世界
中,存在着许多多个实体型相互之间都有联系的情况。如教师、课程、学生三个实体型之
间就存在一种联系,一个教师能够教若干门课,一门课又能够有若干个教师教授;一个教
师能够教若干学生,一学生又能够有若干个教师教;一门课能够有若干学生选,一学生又
能够选若干门课。有的时候为了方便我们也能够将这三个实体型之间联系,分解成每两个
实体型之间均存在一个多对多的联系.
最后我们再介绍一种较为特殊的联系,这就是同一实体型中的不一致的具体实体之间
也能够存在有某联系,如职工实体型,在这一实体型中的实体有普遍职工,也有经理,经
理与职工之间有一种领导与被领导的关系。在E-R数据模型中,通常我们将这种特殊的
联系,称之ISA联系。
[3]属性
实体型是对实体集合中所有实体共同描述特征的集合,这些实体所共有的描述特征就
称之实体的属性。如学生实体型,其共有的描述特征通常有学号、姓名、年龄、性别等,
它们都是学生实体型的属性。这些属性的一组值就表示了一个具体的实体。在一个具体的
实体型中,其中的每一个属性都有其取值范围,这一范围称之属性的值域。一个属性的值
域能够是整数、浮点数、字符串等。如学生实体型中的年龄属性的值域就是一定区间中的
整数,而姓名属性的值域就是符合一定要求的字符串等。实体型中的某个(些)属性的取
值能够用来唯一区分实体型中具体实体,如学生实体型中的学号属性的取值就能够用来区
分每一个学生。这种属性又可称之该实体型的标识码。
不仅实体型有属性,联系也能够有属性,如学生与课程这两个实体型,“选课”是它
们之间的一种联系,学生选修某门课程取得了某个成绩,显然成绩描述是的一个属性,但
它既不是学生实体型中的一个属性,也不是课程实体型中的一个属性。而成绩属性的具体
取值,既依靠于某个具体的学生,又依靠于某个具体的课程,因此我们将成绩属性定义为
是学生与课程这两个实体型之间选课联系的属性。又如机器与零件这两个实体型,“构
造”是它们之间的一种联系,数量这一属性,即需要多少数量的零件构造某一个机器,则
是构造这一联系的属性。
充分认识与懂得联系能够有属性这一概念,关于正确地建立或者懂得E—R数据模
型,与建立或者懂得数据库的数据逻辑组织结构都具有十分重要的意义。
实体、属性与联系三个基本要素的概念是有明确区分的,但是关于某个具体数据对
象,毕竟它应该被认为是实体,还是属性或者联系,常常需要根据具体应用背景与用户的
观点,方可确定。
1.3.2模型的表示
前面,我们介绍E-R数据模型中的三个基本的要素,这里我们将介绍使用并描述E
-R数据模型。使用E-R数据模型来分析描述现实信息世界中的各类信息对象的要紧分
析步骤如下:(1)首先根据数据库系统应用的整体要求,确定所涉及的现实信息世界中的
所有信息对象的范围。(2)根据第一步骤的结论,确定能够描述所要求所有信息对象的各
实体及属性。(3)根据(1)、(2)二个步骤的结论,确定能够描述所要求所有信息对象
的各实体间的联系。(4)根据(3)步骤的结论,确定能够描述所要求所有信息对象的各
实体间的联系的属性。在完成了上述的分析步骤,就能够获得能够描述现实信息世界的E
—R数据模型。
为了能够形象地描述出E—R数据模型,这里我们介绍一种E—R数据模型的表示方
法,即用长方型来表示实体类型,联系用菱型框及与实体型相连的线表示,将联系的类型
写在线上或者线的邻近,在长方形框内与菱形框内分别写上实体型名称与联系名称,用椭
圆表示实体类型与联系的属性,将其与所描述的相应的实体类型或者联系用线相连,在椭
圆框内写上属性的名称。这样我们就能够得到一个能够较好地描绘出实体、实体与实体之
间相互联系与有关实体与联系属性的结构图,这个图通常就被称之E-R图。获得E-R
图的全部过程通常就被称之E-R图方法。
最后为了说明上面我们所介绍的有关E-R图的建立与表示方法,这里我们介绍一个
制造工厂数据库应用系统中所涉及的部分信息对象所构成的E—R图。如图1.5所示。
图1.5制造工厂信息的E-R图
在图1.5中,我们共描述了五个实体类型,它们分别是部门、职工、工程、供应商与零
件实体型,这些实体型用长方形加以表示。并描述了这五个实体型间的相互联系,这些联
系分别是部门与职工实体型间一对多的“所属”联系;职工与工程型实体间多对多的“工
作”与一对一“管理”两种联系;工程与零件实体型间多对多的“所需”联系;工程、供
应商与零件三个实体型间相互多对多的“供应”联系。这些联系用菱形加以表示。最后作
为示意,我们分别给出了零件实体型的三个属性描述与职工与工程型实体间“工作”联系
的属性描述,这些属性用椭圆加以表示。
目前实体关系数据模型及其E—R图方法已被广泛地应用于数据库应用系统的概念设
计。由于E-R图直观易懂,通过它,计算机专业人员与非计算机专业人员能够进行直接
地交流与合作,同时使用E-R图,能够很方便、真实与合理地描述出一个具体数据库应
用系统的信息结构,并以此作为进一步设计数据库应用系统的基础。因此目前实体关系数
据模型及其E-R图方法还是很受欢迎的。
1.4数据模型与数据库系统
本节要紧介绍常用的三种数据库系统所支持的数据模型有关基本知识,与与数据模型
相对应的数据库的基本情况。
1.4.1层次数据模型
层次数据模型是定义在E-R数据模型基础之上一种数据模型,它与层次数据库系统
中数据逻辑组织结构是一致的。其具体定义如下:(1)对E—R数据模型中的联系类型加
以限制,只容许是一对多的联系(包含一对一联系),在此基础上,用实体、属性与联系
这三个基本要素描述客观信息世界中的信息结构。(2)若将实体抽象表示为一结点,联系
抽象表示为一有向线段,忽视属性,所得到的E-R数据模型的抽象拓扑图,满足有向树
的定义,即:M=N-1;其中:M为有向线段总数;N为结点总数。该拓扑图有下列特
点:(A)有且仅有一个结点无双亲结点,此结点称之树的根。(B)除根结点外,其它
结点有且仅有一个双亲结点。满足以上两条约束的E—R数据模型,就可称之是层次数据
模型,在层次数据模型中,用长方形表示实体型;将长方形分为若干方块,表示实体型的
各属性;用有向线段表示各实体型之间的联系。这描述所得到的图形称之层次数据模型的
结构图。
图L6学校行政管理机构的E—R图与层次数据模型结构图
在现实世界中,有许多层次结构的例子,如在行政管理部门中,部下设许多局,局下
设许多处,处下设许多科等。这里我们给出一学校的行政管理机构的E-R图与层次数据
模型结构图,作为示例,如图1.6所示。
在如图1.6所示的例子中,其数据模型结构图如图1.6的右半部所示,显然它满足树的
定义,而其中各实体型之间的相互联系均为一对多的联系,因此说这是个典型的层次数据
模型结构。
1.4.2层次数据库系统
层次数据库系统的应用流行于七十年代,目前已较少使用,但它在数据库的进展过程
中,扮演过重要的角色。在这一小节,我们将介绍层次数据库的数据描述,数据操纵的定
义与基本过程。重点介绍层次数据模型中的实体、属性与联系在层次数据库中是如何定义
与操纵的。这里以IBM公司的IMS层次数据库系统为例,来说明有关的情况。
[1]层次数据库概念层数据逻辑组织结构的设计与描述
在将现实世界的信息结构用E-R数据模型(E—R图)描述出来后,再将所获得的
E-R数据模型转换成层次数据模型,这时就能够进行层次数据库概念层数据逻辑组织结
构的设计了。在设计概念层数据逻辑组织结构时,通常将实体型定义为片断型,实体型的
属性定义为片断型的字断,并通过指定片断的双亲片断,定义片断型之间的联系,由此将
层次数据模型的定义描述转换为层次数据库概念层数据逻辑组织结构。并将这一数据模型
结构,称之是IMS中的物理数据库记录型。需要说明的是,这里讲的物理数据库并不是
指存储在物理设备上的数据库,即与数据库的物理存储结构无关。
TEACHER
图1.7学校行政管理机构的逻辑组织结构
我们以一个简单例子来说明有关情况,如图1.7所示,这是一学校行政管理机构的逻辑
组织结构,若学校有若干系(DEPT),每个系有若干班级(CLASS),每个班有若干学生
(STUDENT),每个系还有若干教师(TEACHER)。其中:数据模型中的片断型有
DEPT、CLASS.STUDENT,TEACHER,各片断型中的字断分别是DEPT(DNO-系编
号,DNA-系名,DMA-系主任),CLASS(CNO-班级编号,CSK-专业),STUDENT
(SNO-学生编号,SNA-姓名,SAG-年龄),TEACHER(TNO-教师编号,TNA-教师姓
名,TAG-教师年龄)。整个数据结构命名为DTCS。这里TEACHER与CLASS片断型称之是
DEPT片断型的下属片断,同样STUDENR称之是CLASS的下属片断。DEPT又可称之是
TEACHER与CLASS的双亲片断(在这里它又是根片断),TEACHER与CLASS又可互称之
兄弟片断。整个数据模型结构DTCS称之是一物理数据库记录型,其每一个记录值是由根片
断的一个值及其所有相应的下属片断的值所构成。一个物理数据库有多少个根片断值,则
它就有多少个物理数据库记录。如学校有20个系,它的物理数据库就有20个记录。每一条
记录包含了某个系及其该系所有教师、班级与学生的全部信息。通常一个IMS数据库是
由若干这样的物理数据库记录所构成。
最后我们给出上述实例的物理数据库的定义描述。该描述要紧包含下列内容:(1)命
名物理数据库,规定存储组织方法与存取方法,指定物理设备及块的大小。(2)命名各片
断,指出使用的指针类型及其片断的双亲片断。(3)命名各片断中的字段名、数据类型与
长度。图2.5的物理数据库的具体描述内容如下:
DBDNAME=DTCS,ACCESS=HDAM
DATASETDD1=DTCSHDAM,DEVICE=3330,BLOCK=1024
SEGMNAME=DEPT,BYTES=20,FREQ=20,PTR=T
FIELDNAME=(DNO,SEQ,U),BYTES=4,START=1,TYPE=C
FIELDNAME=DNA,BYTES=8,START=5,TYPE=C
FIELDNAME=DMA,BYTES=8,START=13,TYPE=C
SEGMNAME=TEACHER,BYTES=14,FREQ=50,PTR=T,PARENT=DEPT
FIELDNAME=(TNO,SEQ,U),BYTES=4,START=I,TYPE=C
FIELDNAME=TNA,BYTES=8,START=5,TYPE=C
FIELDNAME=TAG,BYTES=2,START=13,TYPE=C
SEGMNAME=CLASS,BYTES=14,FREQ=60,PTR=T,PARENT=DEPT
FIELDNAME=(CNO,SEQ,U),BYTES=4,START=1,TYPE=C
FIELDNAME=CSK,BYTES=10,START=5,TYPE=C
SEGMNAME=STUDENT,BYTES=15,FREQ=300,PTR=T,PARENT=DEPT
FIELDNAME=(SNO,SEQ,U),BYTES=5,START=1,TYPE=C
FIELDNAME=SNA,BYTES=8,START=6,TYPE=C
FIELDNAME=SAG,BYTES=2,START=14,TYPE=C
DBDGEN
FINISH
END
现将上述描述中的部分语句的含义说明如下:
①DBD语句:给所要描述的物理数据库取名,规定其数据库的存取方法,在IMS中有四
种存取方法,它们是:(A)层次顺序存取方法(HSAM),马上数据库中的所有片断值,
按照其层次数据结构从上而下、从左而右的顺序存放。(B)层次索引存取方法
(HISAM),马上数据库中的所有根片断值,用指针连接起来或者单独存放,并建立其索
引;其它下属片断值,按照其层次数据结构从上而下、从左而右的顺序存放。(C)层次直
接存取方法(HDAM),马上数据库中的所有片断值,按照其层次数据结构从上而下、从
左而右的顺序用指针连接起来存放。(D)层次索引直接存取方法(HIDAM),马上数据
库中的所有片断值,按照其层次数据结构从上而下、从左而右的顺序用指针(PTR=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防城港市防城区2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 安阳市安阳县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 合肥市长丰县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 郴州市永兴县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 铁合金电炉冶炼工岗前安全防护考核试卷含答案
- 软膏剂工岗前环保竞赛考核试卷含答案
- 野生植物采集工岗前管理应用考核试卷含答案
- 自来水笔制造工安全应急考核试卷含答案
- 应急通信管理员安全素养知识考核试卷含答案
- 邢台市新河县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 2025年信用报告征信报告详版个人版模板样板(可编辑)
- 工业气体生产工安全培训效果测试考核试卷含答案
- GB/T 46318-2025塑料酚醛树脂分类和试验方法
- 产后康复服务流程标准手册
- 消费者接受度2025年智能家居照明系统市场分析报告
- DB11-T 693-2024 施工现场临建房屋应用技术标准
- 2025河北雄安容港农业科技有限公司招聘工作人员30名笔试参考题库附带答案详解
- 足球无人机课件
- 建筑工程项目质量追溯与问题整改方案
- 人民城市人民建-人民城市为人民主题课件(含文字稿)
- 2025年社保业务考试试题及答案
评论
0/150
提交评论