版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章数据库系统概论本章目的在于使读者对数据库系统的根本知识能有一个较为全面的理解,为今后的学习和工作打下根底。本章重点介绍了有关数据库构造和数据库系统组织的根本知识和根本概念,以及常见的三种类型的数据库系统的特点。重点介绍关系数据库的有关知识。1.1数据管理技术开展史随着消费力的不断开展,社会的不断进步,人类对信息的依赖程度也在不断地增加。数据作为表达信息的一种量化符号,正在成为人们处理信息时重要的操作对象。所谓数据处理就是对数据的搜集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列工作全部过程的概述。数据处理的目的就是使我们可以从浩瀚的信息数据海洋中,提取出有用的数据信息,作为我们工作、生活等各方面的决策根据。数据管理那么是指对数据的组织、编码、分类、存储、检索和维护,它是数据处理的一个重要内容中心。数据处理工作由来以久,早在1880年美国进展人口普查统计时,就已采用穿孔卡片来存储人口普查数据,并采用机械设备来完成对这些普查数据所进展的处理工作。电子计算机的出现以及其后其硬件、软件的迅速开展,加之数据库理论和技术的开展,为数据管理进入一个革命性阶段提供有力的支持。根据数据和应用程序互相依赖关系、数据共享以及数据的操作方式,数据管理的开展可以分为三个具有代表性的阶段,即人工管理阶段、文件管理阶段和数据库管理阶段。【1】人工管理阶段这一阶段发生于六十年代以前,由于当时计算机硬件和软件开展才刚刚起步,数据管理中全部工作,都必需要由应用程序员自己设计程序完成去完成。由于需要与计算机硬件以及各外部存储设备和输入输出设备直接打交道,程序员们常常需要编制大量重复的数据管理根本程序。数据的逻辑组织与它的物理组织根本上是一样的,因此当数据的逻辑组织、物理组织或存储设备发生变化时,进展数据管理工作的许多应用程序就必需要进展重新编制。这样就给数据管理的维护工作带来许多困难。并且由于一组数据常常只对应于一种应用程序,因此很难实现多个不同应用程序间的数据资源共享。存在着大量重复数据,信息资源浪费严重。【2】文件管理阶段这一阶段发生于六十年代,由于当时计算机硬件的开展,以及系统软件尤其是文件系统的出现和开展,人们开场利用文件系统来帮助完成数据管理工作,详细讲就是:数据以多种组织构造〔如顺序文件组织、索引文件文件组织和直接存取文件组织等〕的文件形式保存在外部存储设备上,用户通过文件系统而无需直接与外部设备打交道,以此来完成数据的修改、插入、删除、检索等管理操作;使用这种管理方式,不仅减轻进展数据管理的应用程序工作量,更重要地是,当数据的物理组织或存储设备发生变化时,数据的逻辑组织可以不受任何影响,从而保证了基于数据逻辑组织所编制的应用程序也可以不受硬件设备变化的影响。这样就使得程序和数据之间具有了一定的互相独立性。但由于数据文件的逻辑构造完全是根据应用程序的详细要求而设计,它的管理与维护完全是由应用程序本身来完成,因此数据文件的逻辑构造与应用程序亲密相关,当数据的逻辑构造需要修改时,应用程序也就不可防止地需要进展修改;同样当应用程序需要进展变动时,常常又会要求数据的逻辑构造进展相应的变动。在这种情况下,数据管理中的维护工作量也是较大的。更主要的是由于采用文件的形式来进展数据管理工作,常常需要将一个完好的、互相关联的数据集合,人为地分割成假设干互相独立的文件,以便通过基于文件系统的编程来实现来对它们的管理操作。这样做同样会导致数据的过多冗余和增加数据维护工作的复杂性。例如人事部门、教务部门和医务部门对学生数据信息的管理,这三个部门中有许多数据是一样的,如姓名、年龄、性别等,由于是各部门均是根据自己的要求,建立各自的数据文件和应用程序,这样不仅造成了大量的一样数据重复存储,而且在修改时,常常需要同时修改三个文件中的数据项,如修改学生年龄,此外假设需要增加一个描绘学生的数据项,如通讯地址,那么所有的应用程序就必须都要进展相应的修改。除此之外,采用文件系统来帮助进展数据管理工作,在数据的平安和保密等方面,也难以采取有效的措施加以控制。【3】数据库管理阶段1在不断改良和完善文件系统的过程中,从六十年代后期开场,人们逐步研究和开展了以数据的统一管理和数据共享为主要特征的数据库系统。即在数据在统一控制之下,为尽可能多的应用和用户效劳,数据库中的数据组织构造与数据库的应用程序互相间有较大的相对独立性等。与以往前数据管理方法和技术相比,利用数据库系统来进展数据管理工作具有以下三个显著特点:〔1〕从整体角度组织数据数据库系统与文件系统的最大差异就在于前者在描绘数据时,不仅仅是对数据本身进展描绘,而且对数据之间的互相联络也进展了描绘。因此在组织数据时是从一个相对较高的整体角度进展的,而不是仅仅局限于个别的数据管理应用场合。如前面提到的人事部门、教务部门和医务部门对学生数据的管理工作,在利用数据库系统来进展管理时,假设从整体考虑,其数据的组织构造如图1.1所示。EMBEDMSDraw\*mergeformat图1.1学生信息数据组织构造采用这种数据组织不仅可以有效地解决了文件系统的数据组织中所存在的数据冗余以及数据一致性维护的问题。更主要的是它可以使人们从更高的全局角度出发,合理地组织数据,从而有利于更大范围内的数据资源的共享,进步信息的使用效率。〔2〕数据可为多个应用效劳正因为数据库中的数据是从整体角度进展组织的,因此,数据库中所存储的数据往往就不仅局限于只为一二个应用提供效劳,而是在更大范围内为仅可能多的应用提供效劳,如图1.1所示的一个数据库中所存储的数据,就至少可以为三个部门的应用提供效劳。而实际上如图1.1所示的数据组织构造仅仅只是一个学校数据管理数据库中的一小部分。与此同时由于数据库系统是以多级〔层〕组织形式对数据进展组织的,各级〔层〕形式之间的映射是由数据库系统自己完成的,这就使得数据与程序之间可以具有较高的物理和逻辑相对独立性。正是这一点,给数据库中的数据为多个应用提供效劳奠定了根底。事实上数据库的规模越大,所可以提供的应用效劳就可以越多,也就越能表达出数据库在数据管理中的优势。当然这只是相对而言,随着数据库中数据规模的扩大,数据库应用系统的制作和维护的工作也在迅速增加。〔3〕有一个数据库系统的管理软件任何数据库系统都包含一个管理软件,即数据库系统的管理软件,通常又称为数据库管理系统,它负责统一管理数据库系统中所有数据资源,是数据库系统与用户应用之间的接口,通过它,用户可以不必要理解过多的计算机硬件、软件和数据库本身许多专业知识,更不用去理解数据库系统是如何完成数据管理工作的详细细节,如文件如何翻开、关闭、读、写等等,就可以通过编写一些较为简单数据库应用程序,很方便地完成在较高级别逻辑组织根底上的数据管理工作。除此之外,数据库管理系统还负责完成在对数据库进展并发访问时,保证数据一致性的并发控制工作;保证数据平安性的访问控制工作;以及在数据库系统出现故障时,提供保证数据一致性和完好性的恢复机制等诸多数据库系统本身的各种管理控制工作。因此这里也可以看出,数据库管理系统功能的强弱及其各项性能指标的好坏,是衡量数据库系统质量的一个极其重要的因素。利用数据库系统进展数据管理工作,不仅可以保证数据的物理组织构造和存储设备与数据库应用程序之间保持互相独立性;同时也可以保证数据的逻辑组织构造与数据库应用程序之间保持最大可能的互相独立性,即当数据的逻辑组织构造发生变化时,数据库应用程序的变动被限制在最小的范围内。由此可大大地减少数据库应用程序的开发与维护的工作量。在数据库管理阶段,根据数据库系统本身所支持的数据模型的特点及所采用的相应数据库系统技术,可以认为数据库管理到目前为止已开展经历了三代,即层次网状模型代、关系模型代和面向对象模型代。〔1〕层次网状模型代:流行于六十至七十年代,在这一代中的数据库系统所支持的数据模型均是层次模型或网状模型。世界上第一个数据库系统是于1964年由美国通用电气公司开发成功的IDS〔IntegratedDataStore〕,它就是基于网状模型的数据库系统。IBM公司于六十年代末推出了第一个商品化的层次数据库系统IMS〔InformationManagementSytem〕,它们的出现与应用为数据库技术的开展奠定了根底。〔2〕关系模型代:流行于七十至八十年代,在这一代中的数据库系统所支持的数据的数据模型均是关系模型。以关系〔表〕形式组织数据。1970年Codd提出了关系数据模型,由于其具有严格的数学根底,抽象级别较高,且简单明晰,便于理解应用。到了七十年代末,出现了不少关系数据库系统,其中具有代表性应首推IBM公司推出的SQL/DS和DB2两个商品化关系数据库系统。进展八十年代以后,关系数据库系统已成为数据库系统开展的主流,几乎所有新推出的数据库系统产品都是关系型的,它们中不仅有用于大型机和小型机数据库产品,而且有可用于微机的数据库产品。市场上开场出现关系数据库的系列产品,这其中发行量较大且在我国用得较多的有Oracle、Sybase、Sysbase、Informix、FoxPro等。随着微机和计算机网络的广泛普及和应用,分布式数据库系统在八十年代后期,开场得到很大开展。其理论和技术日趋成熟。目前几乎所有分布式数据库系统均是关系型的,而且几乎所有主要关系数据库系统均已被扩大为分布式数据库系统。〔3〕面向对象代:开场九十年代,在这一代中的数据库系统支持面向对象的数据模型。它是数据库技术与面向对象程序设计方法相结合的产物。作为新一代数据库系统,如今已有了一些商品化系统。但其详细应用尚不多。1.2数据库系统本节主要介绍有关数据库构造和数据库系统组织的一些根本知识和概念,使读者对数据库系统的内涵有一个较为清楚的认识。数据库系统概念由于数据库系统是一个由许多根本概念、技术方法和其应用对象所组成的复杂的有机整体。很难用一两句话将其描绘清楚。但为了使读者对它有一个总体的理解,首先这里我们试着给出一个关于数据库系统的定义,即数据库系统中的数据库是一个已被规格化和构造化且互相关联的数据集合,这些数据中不存在有害的或无意义的冗余;数据的组织与存储构造与使用这些数据的程序互相独立;数据库中的数据可同时为多个应用效劳;数据库中的数据定义、输入、修改和检索等所有操作均是按一种公用的且可控的方式进展。根据这一数据库定义以及实际应用的详细数据库系统的情况,我们可以认为一个数据库系统实际上是由三部分内容组成,它们是数据库、多种应用和数据库管理系统。这三部分之间的互相关系如图1.2所示。〔1)数据库:互相关联的且具有最小冗余的数据在其中按照一定物理组织构造存放,并且从用户和数据库管理系统角度来看,这些数据又是按一定逻辑构造组织的。这种物理组织构造和逻辑组织构造在最大程度上与用户所编制的应用程序互相独立。(2)多种应用:数据库中的数据,在数据库管理系统的控制与管理之下,可以同时为多种不同内容的应用提供效劳,即可以为多个不同目的用户效劳,各用户所操作使用的数据可以是互相穿插的。用户的操作方式既可以按以数据输入/输出和数据维护为主的数据流量较大的批处理方式进展;也可以按以查询为主的数据流量较小的联机处理方式进展,必要时还可以通过编程来完成对数据库中数据的各种操作。(3)数据库管理系统:它一方面负责对数据库中的数据进展管理和维护;一方面为用户操作数据库中的数据提供一种公用的操作方法,接收用户的操作命令,帮助完成有关的对数据库的操作并保障数据库的平安。根据对数据库的定义以及数据库系统根本组成及作用的描绘,我们认为一个的数据库系统应该具有的以下五个根本特点:【1】由于数据库系统是从整体角度考虑数据的组织,因此它必须有才能描绘可以反映客观事物及其互相联络的复杂数据模型,使用它可以对数据本身及互相间的各种关系进展充分描绘,这也是人们为什么要采用数据库系统来进展数据管理的主要原因之一。目前数据库系统共提供了四种数据模型,它们是层次数据模型、网状数据模型、关系数据模型和对象数据模型,一种类型数据库系统通常只提供上述其中一种数据模型描绘方法,即只支持其中一种数据模型的数据逻辑组织构造。图1.2数据库系统组成【2】数据库中数据的独立性。为了说明这一点,首先我们介绍两个概念,〔1〕数据在物理存储设备上的组织构造被称为数据的物理组织;〔2〕数据在用户或应用程序面前所表现出的组织构造被称为数据的逻辑组织;一种数据的逻辑组织,可以采用不同的物理组织来实现,物理组织的好坏影响着系统的性能和效率。在运行阶段中,由于性能的要求或存储设备的改变,从而引起数据物理组织的改变,这种改变称为数据的再组织。用户在编制应用程序时,那么是根据数据的逻辑组织对数据进展操作的。因此数据物理组织的变化,不会影响数据的逻辑组织,因此也就不会影响已有的应用程序,这种情况就被称为数据的物理独立性;而数据的逻辑独立性是指当数据的逻辑组织发生变化时,如数据模型中增加了新的记录类型,某一记录类型中增加了新的数据项等,原有应用程序的执行不受影响或影响最小。数据的独立性,包括物理和逻辑的独立性,都是由数据库管理系统进展维护的。【3】数据共享,由于数据库是从整体的角度对数据进展组织的,并在保证数据一致性的情形之下,使数据库中的数据为尽可能多的用户提供给用效劳。这些用户所使用的数据可以是穿插的,即数据可以共享。假如数据不能共享,数据库中那么必然会出现大量的冗余数据,这样不仅造成存储空间的浪费,更主要的是由此可能带来数据不一致的隐患。【4】数据库系统的平安可靠与完好,一个数据库系统的可靠性表达在它的软件系统运行故障率很小以及在数据库系统由于各种意外而出现故障时,数据库中的数据的损失最小;平安性是指数据库系统对其所存储的数据的保护才能,可以有效地防止数据有意无意地泄露或篡改,控制数据的受权访问等。而数据库系统的完好性那么是指在多用户操作数据情况下,数据可以保持一致性。这些特性可以从以下几个方面进展说明:〈1〉平安性控制平安性控制主要指的是数据库的保密性。并不是每个用户都可以存取数据库中所有数据的,负责人和全体工作人员允许掌握的数据范围显然是有区别的,数据库系统把各用户存取数据的权利分成假设干等级,如教学人员作为一个用户可以登录学生的成绩,而学生作为一个用户那么仅可以查阅成绩而无法对它进展修改或删除。通过对各个用户授于不同的使用权限,以确保数据库免遭损害和被非法使用,通常是通过采用口令密码以及数据库中数据访问受权等方法对使用者操作数据的合法权进展检验,以实现对数据库中数据平安性的保护控制。〈2〉完好性控制所谓完好性包括数据的正确性、有效性和相容性。正确的数据不一定是有效的。如假设用两位阿拉伯数字来表示月份,在输入14来代表月份时显然是无效的。数据库系统应提供尽可能多的检验措施,以确保数据库中的数据满足用户所要求的各种约束要求。〈3〉并发控制在多用户操作使用数据库系统的情况下,不同用户并行地操作数据库就可能引起对数据库的干扰,从而使得数据库中的数据发生不一致的问题。如当甲用户从数据库中预定了仅剩的一张机票之后,假设在数据库尚来不及将剩余的机票数改为零时,乙用户又恳求订票时怎么办?显然对这种并发的操作要采取某种控制措施,最常用的方法是封锁技术,以排除和防止这种错误的发生,保证数据库中数据的操作可以正确完成执行。〈4〉故障的发现与恢复由于数据库系统在运行过程中很难保证不产生故障、出现意义或受到破坏,而且往往这些情况的发生的时间都是随机的,如断电、用户误操作等,而重建一个数据库往往要花费很大的精力和代价,有时甚至是不可能的,因此数据库系统应提供给急保护设施,一旦系统的软硬件发生故障或用户误操作导致系统异常时,系统应可以以尽量小的代价,尽快地恢复数据库的内容和系统的正常运行。【5】良好的人机接口与性能,任何数据库系统最终都是要和用户打交道,系统所具有的各种功能最终都需要由用户来进展操作使用。简单易学、操作简便和用户界面友好是任何一个数据库系统所必须的。此外系统的响应速度,单位时间内数据的吞吐量也是衡量数据库性能重要指标。数据库构造在上一小节,我们介绍了数据库系统所涉及的三个根本成分以及数据库系统所应具有的五个特点,在这一小节中,我们将略为详尽地介绍数据库系统的主要组成之一,数据库的有关知识。在数据库技术中,为了进步数据库中数据的逻辑独立性和物理独立性,采用了分级〔层〕方法,将数据库中数据的组织构造划分成多个级〔层〕。根据美国国家标准协会〔ANSI〕所提出的报告,数据库的数据组织构造可以分为三个互相关联的层次,它们分别是概念层数据形式、用户层数据形式和物理层数据形式。【1】概念层数据形式,又称为形式,它是对数据库中数据整体逻辑构造的描绘,它是对数据库中所有数据项、记录类型以及各记录类型之间的互相关系的描绘。这里需要说明的是,这种描绘仅仅是一种逻辑组织构造的描绘,是面向用户需要而提出的。而非是真正的数据存储组织构造。提供这一层次的数据形式描绘,主要是为了数据库应用系统的设计者,在对与应用有关的所有用户的需求进展统一综合考虑之后提出的,它可以从总体上,将这些需求所涉及到的数据及其它们间的互相联络,有机地结合成为一个逻辑整体。概念层数据形式的设计是数据库设计的最根本也是最重要的任务。【2】用户层数据形式,又称为外形式或子形式,它是对以用户为对象使用数据库所涉及到的所有数据部分逻辑构造的描绘。它是形式一个子集或者是一个映射,一个数据库只有一个形式,但通常都对应着多个子形式。子形式所包含的数据之间容许有重叠,也容许多个用户共用同一个子形式。提供这一层次的数据形式描绘,有以下优点:〈1〉用户只要按照描绘自己所使用数据的子形式编写应用程序或输入操作命令,就可以完成满足自己要求的数据库操纵工作。而无需理解整体数据形式或数据的存储组织构造,从而是用户接口变得简单。〈2〉保证了数据独立性。由于用户的数据库应用编程仅仅是根据子形式的数据逻辑构造的描绘,而子形式一般都是形式的一个真子集,因此假设因需要而对形式所描绘的数据逻辑构造进展部分修改或扩大时,如增加新的数据项或者增加新的记录类型等,只要不影响子形式从形式中的原有的映射关系,那么用户根据子形式所开发的应用程序,那么就不受形式变动的任何影响。所以提供形式与子形式这两层数据逻辑构造的描绘,就可以较好地保证数据的逻辑独立性。〈3〉数据可以被较好地共享。由于同一形式可以产生许多不同的子形式,这些子形式所描绘的数据可以来源于形式所描绘的全局数据逻辑构造中各种数据项或记录类型,因此这样做,这样就可以很方便地实现数据的共享,也就大大减少了数据可能存在的冗余,从而有利于保证数据的一致性、完好性和正确性。〈4〉有利于保证数据的平安和保密。由于用户是通过其相应的应用程序对数据库中数据进展操作,因此他只能操作其子形式所描绘范围内的数据,而无法接触到其它用户及其子形式所描绘的数据,由此就可以保证数据库中的数据具有较好的平安性。【3】物理层数据形式,又称为内形式或物理形式。它是对数据库中所有数据在物理设备上实际存储的组织构造的描绘。数据库数据根据这一层数据形式的描绘,被存放到假设干按各种组织方式建立起来的物理文件中,对这些物理文件的所有存取访问的控制都是由数据库管理系统统一控制的。管理系统负责完成从概念层数据形式到物理层数据形式之间的数据映射,这样由于所有的数据库应用程序或效劳所涉及到数据又都是根据形式的数据描绘得到的,因此当数据库数据的物理组织构造发生变化时,概念层数据形式描绘通常无需修改,同样也就保证了与形式相关联的子形式和用户应用程序也无需修改,从而使得数据库系统中数据也具有的物理独立性。图1.3数据库构造各形式间关系由于一个数据库是采用上述的三个层构造方式对其中的数据组织进展描绘的,从而较好地保证了数据的逻辑独立性和物理独立性,方便了用户对数据库中数据的操作使用,减少了数据冗余。这三层形式之间的互相关系如图1.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〕应用程序检查状态信息,如执行成功,那么可对程序工作区中的数据作正常处理,否那么按出错类型决定程序的后续处理。用户修改一个记录的操作步骤也是类似的。首先读出所需记录,在程序工作区中修改好,而后再把修改好的记录写回数据库中原记录的位置上。图1.4数据库的工作过程1.3实体联络模型本节主要介绍有关实体联络模型的概念和根本知识,使读者理解并掌握根本的实体联络模型的使用方法。模型的组成我们都知道数据是表达信息的一种重要的量化符号,是信息存在的一种重要形式。而所谓数据模型那么是数据特征的一种抽象。它不是描绘个别的数据,而是描绘数据的共性。一般来讲,数据模型包含两方面内容,它们是:〔1〕数据的静态特性,这主要包括数据的根本构造、数据间的联络和数据中的互相约束等特性;〔2〕数据的动态特性,这主要包括对数据操作的方法。在数据库应用系统中,建立反映客观信息范畴的数据模型是数据库应用系统设计中最为重要的,也最根本的步骤之一,它是连接客观信息世界和数据库系统数据逻辑组织的桥梁。也是计算机专业人员与非计算机专业的用户之间进展交流的共同根底。这里我们将要介绍的数据模型就是实体联络数据模型〔又称E-R数据模型〕,它与传统的数据模型有所不同。E-R数据模型是面向现实世界,而不是面向实现方法的,它主要是用于描绘现实信息世界中数据的静态特性。而不涉及数据的处理过程。但由于它简单易学,因此在数据库系统应用的设计中,得到了广泛应用。E-R数据模型是在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数据模型,以及建立或理解数据库的数据逻辑组织构造都具有非常重要的意义。实体、属性和联络三个根本要素的概念是有明确区分的,但是对于某个详细数据对象,终究它应该被认为是实体,还是属性或联络,常常需要根据详细应用背景和用户的观点,方可确定。模型的表示前面,我们介绍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数据模型与数据库系统本节主要介绍常用的三种数据库系统所支持的数据模型有关根本知识,以及与数据模型相对应的数据库的根本情况。层次数据模型层次数据模型是定义在E-R数据模型根底之上一种数据模型,它与层次数据库系统中数据逻辑组织构造是一致的。其详细定义如下:〔1〕对E-R数据模型中的联络类型加以限制,只容许是一对多的联络〔包括一对一联络〕,在此根底上,用实体、属性和联络这三个根本要素描绘客观信息世界中的信息构造。〔2〕假设将实体抽象表示为一结点,联络抽象表示为一有向线段,无视属性,所得到的E-R数据模型的抽象拓扑图,满足有向树的定义,即:M=N-1;其中:M为有向线段总数;N为结点总数。该拓扑图有以下特点:〔A〕有且仅有一个结点无双亲结点,此结点称为树的根。〔B〕除根结点外,其它结点有且仅有一个双亲结点。满足以上两条约束的E-R数据模型,就可称为是层次数据模型,在层次数据模型中,用长方形表示实体型;将长方形分为假设干方块,表示实体型的各属性;用有向线段表示各实体型之间的联络。这描绘所得到的图形称为层次数据模型的构造图。图1.6学校行政管理机构的E-R图和层次数据模型构造图在现实世界中,有许多层次构造的例子,如在行政管理部门中,部下设许多局,局下设许多处,处下设许多科等。这里我们给出一学校的行政管理机构的E-R图和层次数据模型构造图,作为例如,如图1.6所示。在如图1.6所示的例子中,其数据模型构造图如图1.6的右半部所示,显然它满足树的定义,而其中各实体型之间的互相联络均为一对多的联络,所以说这是个典型的层次数据模型构造。层次数据库系统层次数据库系统的应用流行于七十年代,目前已较少使用,但它在数据库的开展过程中,扮演过重要的角色。在这一小节,我们将介绍层次数据库的数据描绘,数据操纵的定义和根本过程。重点介绍层次数据模型中的实体、属性和联络在层次数据库中是如何定义和操纵的。这里以IBM公司的IMS层次数据库系统为例,来说明有关的情况。【1】层次数据库概念层数据逻辑组织构造的设计与描绘在将现实世界的信息构造用E-R数据模型〔E-R图〕描绘出来后,再将所获得的E-R数据模型转换成层次数据模型,这时就可以进展层次数据库概念层数据逻辑组织构造的设计了。在设计概念层数据逻辑组织构造时,通常将实体型定义为片断型,实体型的属性定义为片断型的字断,并通过指定片断的双亲片断,定义片断型之间的联络,由此将层次数据模型的定义描绘转换为层次数据库概念层数据逻辑组织构造。并将这一数据模型构造,称为是IMS中的物理数据库记录型。需要说明的是,这里讲的物理数据库并不是指存储在物理设备上的数据库,即与数据库的物理存储构造无关。图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=HDAMDATASETDD1=DTCSHDAM,DEVICE=3330,BLOCK=1024SEGMNAME=DEPT,BYTES=20,FREQ=20,PTR=TFIELDNAME=(DNO,SEQ,U),BYTES=4,START=1,TYPE=CFIELDNAME=DNA,BYTES=8,START=5,TYPE=CFIELDNAME=DMA,BYTES=8,START=13,TYPE=CSEGMNAME=TEACHER,BYTES=14,FREQ=50,PTR=T,PARENT=DEPTFIELDNAME=(TNO,SEQ,U),BYTES=4,START=1,TYPE=CFIELDNAME=TNA,BYTES=8,START=5,TYPE=CFIELDNAME=TAG,BYTES=2,START=13,TYPE=CSEGMNAME=CLASS,BYTES=14,FREQ=60,PTR=T,PARENT=DEPTFIELDNAME=(CNO,SEQ,U),BYTES=4,START=1,TYPE=CFIELDNAME=CSK,BYTES=10,START=5,TYPE=CSEGMNAME=STUDENT,BYTES=15,FREQ=300,PTR=T,PARENT=DEPTFIELDNAME=(SNO,SEQ,U),BYTES=5,START=1,TYPE=CFIELDNAME=SNA,BYTES=8,START=6,TYPE=CFIELDNAME=SAG,BYTES=2,START=14,TYPE=CDBDGENFINISHEND现将上述描绘中的部分语句的含义说明如下:①DBD语句:给所要描绘的物理数据库取名,规定其数据库的存取方法,在IMS中有四种存取方法,它们是:〔A〕层次顺序存取方法〔HSAM〕,即将数据库中的所有片断值,按照其层次数据构造从上而下、从左而右的顺序存放。〔B〕层次索引存取方法〔HISAM〕,即将数据库中的所有根片断值,用指针连接起来或单独存放,并建立其索引;其它下属片断值,按照其层次数据构造从上而下、从左而右的顺序存放。〔C〕层次直接存取方法〔HDAM〕,即将数据库中的所有片断值,按照其层次数据构造从上而下、从左而右的顺序用指针连接起来存放。〔D〕层次索引直接存取方法〔HIDAM〕,即将数据库中的所有片断值,按照其层次数据构造从上而下、从左而右的顺序用指针〔PTR=H〕连接起来存放,或用兄弟、子女指针〔PTR=T〕连接起来存放,并建立根片断值的索引。②DATASET语句:命名数据库所对应的数据集合,指定物理设备及其物理存储块的大小。③SEGM语句:定义片断名、一个片断值的长度、片断值可能的个数、采用连接指针的类型和双亲片断名。④FIELD语句:定义片断中的各字段,如字段名、字段数据类型、字段长度及排序码。⑤DBDGEN语句:指示形式编译器开场产生数据库形式定义。⑥FINISH语句:指示形式编译器完毕产生数据库形式定义,检验生成结果。⑦END语句:指示说明形式描绘完毕。这里需要注意的是片断描绘的顺序必须是按照其层次数据构造从上而下、从左而右的顺序逐个进展。【2】层次数据库用户层数据逻辑组织构造的设计与描绘在IMS数据库系统中,用户层数据逻辑组织构造所定义的子形式,称为IMS逻辑数据库,它是从物理数据库中派生出来的,数据库的应用程序只能使用逻辑数据库。逻辑数据库有两种类型,一种是逻辑数据库仅仅从一个物理数据库中的部分片断所构成的数据构造;另一种是逻辑数据库从一个以上的物理数据库中的部分片断所构成的数据构造。这里我们只介绍第一种情况下的逻辑数据库的定义和描绘。设计逻辑数据库时,必须遵守以下两条规那么:〔1〕一个逻辑数据库中的根片断必须是某个物理数据库中的根片断。〔2〕一个逻辑子女片断必须有一个物理双亲片断和一个逻辑双亲片断。即任何物理数据库中的根片断不能成为逻辑子女片断。一个物理数据库记录型中,部分带根的片断型所组成的有序集合,称为逻辑数据库记录型。实际上逻辑数据库记录型是物理数据库记录型的一个带根子集。同样根片断值有几个,其逻辑数据库记录就有几个。一个物理数据库可以根据应用要求构成多个逻辑数据库,在图3—3的例子中,就可以选取以下六个带根子集,作为逻辑数据库,它们分别是〔DEPT〕、〔DEPT,TEACHER〕、〔DEPT,CLASS〕、〔DEPT,CLASS,STUDENT〕,〔DEPT,TEACHER,CLASS〕、〔DEPT,TEACHER,CLASS,STUDENT〕。最后我们从图2。5所示物理数据库定义中,选取DEPT和TEACHER两个片断型来构成一个逻辑数据库,每个逻辑数据库的定义包含两方面内容:〔1〕一个程序通讯块〔PCB〕,它描绘逻辑数据库与物理数据库之间的映射关系。〔2〕假设干个程序说明块〔PSB〕,它描绘特定用户的部分逻辑构造。逻辑数据库的详细定义描绘如下:PCBTYPE=DB,DBDNAME=DTCS,KEYLEN=7SENSEGNAME=DEPT,PROCOPT=GSENSEGNAME=TEACHER,PARENT=DEPT,PROCOPT=IPSBGENLANG=PL1,PSBNAME=DETEDBEND现将上述描绘中的部分语句的含义说明如下:①PCB语句:定义PCB的类型,DB代表数据库类型,给出它所对应的物理数据库名字;指出所描绘的逻辑数据库层次构造中所有片断排序码总长。②SENSEG语句:指出逻辑数据库所对应的物理数据库片断名,指出其双亲片断名,以及对该片断的处理方式〔PROCOPT〕,处理方式有:G:容许读;I:容许插入;R:容许修改;D:容许删除等。③PSBGEN语句:指出PSB的应用程序所采用的主语言,并给出PSB的名字。④END语句:指示说明子形式描绘完毕。逻辑数据库记录型类似于子形式定义,当物理数据库构造发生变化时,假如对应的逻辑数据库不变,那么应用程序将不受影响。进步了用户应用程序的独立性。同时由于逻辑数据库只涉及到物理数据库的一部分,用户应用程序只能对这些部分的片断进展存取,这样对数据的平安性提供了一定的控制。【3】层次数据库数据操纵方法IMS数据库系统中的数据操纵语言所提供的操作有四种类型,它们是查找、插入、删除、更新。下面我们简单介绍一下这些的使用。这里操作假定是基于图3-3的物理数据库所定义的一个逻辑数据库,它包含有DEPT、CLASS和STUDENT三个片断型。①GU〔GetUnique):其功能是检索出满足条件的第一个片断值。例如:GUDEPTCLASS〔CSK='应用数学'〕上述语句执行结果是,检索出第一个专业是应用数学的班级信息。②GN〔GetNext):其功能是从当前位置开场,检索出满足条件的一个片断值。例如:GNDEPTCLASS〔CSK='应用数学'〕STUDENTNSGNSTUDENTGOTONS上述语句执行结果是,检索出第一个专业是应用数学的班级中的第一个学生及其之后的所有学生信息。③ISRT〔Insert):其功能是将用户工作区中已建立的一个片断值,插入满足要求数据库记录中。例如:ISRTDEPT〔DNO='001')CLASS〔CNO='9010'〕STUDENT上述语句执行结果是,将用户工作区中已建立好的一个学生片断值,插入001系9010班级中。④DLET〔Delete):其功能是删除满足条件的一片断值及其下属的所有片断值。例如:GHUDEPT〔DNO='001'〕CLASS〔CNO='9010'〕DLET上述语句执行结果是,将001系9010班级及其板级中所有学生的片断值全部删除。GHU的操作功能与GU类似,只是用GHU操作检索的片断值是用于删除或修改。⑤REPL〔Replace):其功能是修改满足条件的一片断值。例如:GHUDEPT〔DNO='001')CLASS〔CNO='9010'〕〔修改用户工作区中的CSK值〕REPL上述语句执行结果是,将001系C9010班级的专业修改应用数学。由以上操作例子可以看出,层次数据库的数据操作是基于检索进展的;数据检索都是从根片断开场,按照数据库的层次数据构造进展查找的。因此在使用层次数据库的数据操作命令时,使用者必须熟悉层次数据库的数据层次构造。如同领航员一样,在树形的河道中航行。最后我们要说明的是在层次数据库的数据逻辑组织定义中,层次数据模型中的实体被定义成片断,属性被定义成片断中的字段,而实体间的联络那么没有被显式定义出来,这些联络被缺省地隐含在各片断定义的说明中。网状数据模型网状数据模型也是定义在E-R数据模型根底之上一种数据模型,它与网状数据库系统中数据逻辑组织构造是一致的。其详细定义如下:〔1〕对E-R数据模型中的联络类型加以限制,只容许是一对多的联络〔包括一对一联络〕,在此根底上,用实体、属性和联络这三个数据概念描绘客观信息世界中的信息构造。〔2〕假设将实体抽象表示为一结点,联络抽象表示为一有向线段,无视属性,所得到的数据模型抽象拓扑图,满足以下要求:〔A〕可以有一个以上的结点无双亲结点。〔B〕至少有一个结点可以有两个或两个以上的双亲结点。满足以上两条约束的E-R数据模型,就可称为是网状数据模型,在网状数据模型中,用长方形表示实体型;将长方形分为假设干方块,表示实体型的各属性;用有向线段表示各实体型之间的联络。这描绘所得到的图形称为网状数据模型的构造图。如图1.8所示,它们均为网状数据模型。(a)(b)(c)图1.8网状数据模型的构造图网状数据模型与层次数据模型有两点不同:〔1〕层次数据模型从子女实体到其双亲实体之间的联络是唯一的。即一个子女实体对应于一个双亲实体;而在网状数据模型中,从子女实体到其双亲实体之间的联络可以不是唯一的,如图1.8(a)中,R4实体就有两个双亲R2和R3。因此在网状数据模型中,就不能再用指定双亲的方式来定义联络了。〔2〕网状数据模型中容许有复合链。即两个实体型之间可以有两种以上联络,如图1.8(c)所示。R1实体和R2实体之间有两种联络SET1和SET2。如R1实体为工人,R2实体为机器,SET1为“使用〞联络,SET2为“保养〞联络。为了描绘网状数据模型中各实体型之间不同的联络,必须给每个联络明确的定义,在网状数据库中,每个联络被定义成一个系。它是网状数据库中的重要内容。网状数据模型对于层次或非层次构造的事物都能比拟自然地模拟描绘,从这一点上讲,它比层次数据模型功能要强。网状数据库系统网状数据库系统的应用开场于七十年代,目前仍有少量的系统还再运行。同样它在数据库的开展过程中,曾起过重要的作用。在这一小节,我们将介绍网状数据库的数据描绘,数据操纵的一些根本知识。这里以网状数据库方面著名的DBTG报告为根底,介绍有关的情况。DBTG报告为网状数据库在数据模型的描绘及其语言的定义制定了标准。它主要包括三方面内容,它们是:〔1〕形式数据描绘语言标准;〔2〕子形式数据描绘语言标准;〔3〕数据操纵语言标准。【1】网状数据库概念层数据逻辑组织构造的设计与描绘在将现实世界的信息构造用E-R数据模型〔E-R图〕描绘出来后,再将所获得的E-R数据模型转换成网状数据模型,这时就可以进展网状数据库概念层数据逻辑组织构造的设计了。在设计概念层数据逻辑组织构造时,通常将实体型定义为记录型,实体型的属性定义为记录型的数据项,并将实体型之间的联络用系加以描绘,由此将网状数据模型的定义描绘转换为网状数据库概念层数据逻辑组织构造。同记录的概念类似,记录有型和值两种形式。系也有型和值之分,系型是与系所描绘的联络相关联的记录型的集合,通常一个系型是由一个首记录型和假设干相关的属记录型组成。首记录型的一个记录值和其属记录型相应的记录值所构成的集合即为系型的系值。一个系型中的首记录型有几个记录,系型的系值就有几个。(a)(b)(c)图1.9学生选课网状模型下面我们以一个简单例子来说明上述有关概念,如图1.9〔a〕所示,这是一个学生选课小例子,这里有两个实体型,他们是学生实体型〔S〕和课程实体型〔C〕,它们之间的“选课〞联络是多对多的联络,为了建立其网状数据模型,如图1.9〔b〕所示还要建立一新的记录型,即学生选课记录型〔SC〕,这样学生记录型和学生选课记录型之间的联络为一对多的联络〔S—SC〕,课程记录型和学生选课记录型之间的联络也为一对多的联络〔C—SC〕,这三个记录型中的数据项分别是:S〔S#—学号,SN—姓名〕,C〔C#—课号,CN—课名〕,SC〔S#—学号,C#—课号,G—成绩〕,表示两种联络的系型分别是S—SC〔首记录型为S,属记录型为SC〕,C—SC〔首记录型为C,属记录型为SC〕。这里假设假定学生选课情况如图1.9(c)所示,那么C—SC系型的系值共有三个,它们是:{C1;S1C1A,S2C1B,S3C1B,S4C1B},{C2;S1C2B,S3C2C,S4C2A},{C3;S2C3A,S4C3C},而S—SC系型的系值共有四个,它们是:{S1;S1C1A,S1C2B},{S2;S2C1B,S2C3A},{S3;S3C1B,S3C2C},{S4;S4C由于网状数据库形式定义较为繁琐,这里我们只给出网状数据库形式定义描绘所包括的主要内容:〔1〕形式条目。它的作用是标识一个形式,即标识一个网状数据库的概念层数据库,其格式为:SCHEMANAMEIS〈形式名〉。〔2〕域条目。它的作用是定义一个或假设干域,其格式为:AREANAMEIS〈域名〉。一个域对应于物理设备的一块存储空间,通过域可以将数据库划分成假设干部分,使得数据库系统管理员可以按详细应用环境的需要,合理地分配物理存储空间,以使得数据库的管理和维护更为方便、灵敏、高效。〔3〕记录条目.一个记录描绘条目对应一个记录型,它用来定义记录名、记录的存放方式、记录所在的域及记录中各数据项的类型、长度等。如图1.9〔b〕中学生记录型的描绘如下:RECORDNAMEISSLOCATIONMODEISCALCUSINGS#DUPLICATESARENOTALLOWEDWITHINAREA—102S#TYPEISCHARACTER302SNTYPEISCHARACTER15其中:记录的存放方式有四种,它们是:〔A〕计算方式〔CALC〕,记录的存放位置由指定的数据项作为参量计算确定。〔B〕直接方式〔DIRECT〕,记录的存放位置由系统所给定每个记录的数据库码确定。〔C〕经由方式〔VIA〕,根据首记录,确定属记录的存放位置。〔D〕系统方式〔SYSTEM〕,由DBMS所提供的一种标准方式,确定记录的存放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年桥梁安全性分析与技术措施
- 2026春招:行政专员真题及答案
- 2026春招:销售代表面试题及答案
- 人工智能在康复医学中的应用
- 手术室护理要点解读
- 人工智能在疾病诊断与治疗中的应用
- 2026年河南水利与环境职业学院单招综合素质考试备考试题带答案解析
- 2026年广西安全工程职业技术学院单招综合素质笔试备考试题带答案解析
- 医疗单位医护人员职业操守
- 医学伦理学在临床实践
- 售后技术服务流程规范
- 生活垃圾收集容器选型与配置方案
- 2025年西安交通大学少年班招生考试初试数学试题(初中组)+答案
- 急性肺栓塞诊断和治疗指南(2025版)解读课件
- 2026届新高考化学热点复习水溶液的多重平衡图像
- 中职思政一年级“中国特色社会主义”期末考试试卷
- 《经济学基础》教学
- 建设项目使用林地可行性报告
- IABP最常见的并发症及临床管理
- 2025至2030年中国中试基地行业市场全景调查及发展趋向研判报告
- 江苏开放大学道路勘测设计060836形考作业1、3答案
评论
0/150
提交评论