




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
管理信息化信息化知识数据库系统综合概论第一章数据库系统概论及常见的三种类型的数据库系统的特点。重点介绍关系数据库的有关知识。1.1数据管理技术发展史据信息,作为我们工作、生活等各方面的决策依据。数据管理则是指对数据的组织、编码、在1880年美国进行人口普查统计时,就已采用穿孔卡片来存储人口普查数据,并采用机械为三个具有代表性的阶段,即人工管理阶段、文件管理阶段和数据库管理阶段。【1】人工管理阶段难实现多个不同应用程序间的数据资源共享。存在着大量重复数据,信息资源浪费严重。【2】文件管理阶段这一阶段发生于六十年代,由于当时计算机硬件的发展,以及系统软件尤其是文件系统的出现和发展,人们开始利用文件系统来帮助完成数据管理工作,具体讲就是:数据以多种组织结构(如顺序文件组织、索引文件文件组织和直接存取文件组织等)的文件形式保存在外部存储设备上,用户通过文件系统而无需直接与外部设备打交道,以此来完成数据的修改、插入、删除、检索等管理操作;使用这种管理方式,不仅减轻进行数据管理的应用程序工作量,更重要地是,当数据的物理组织或存储设备发生变化时,数据的逻辑组织可以不受任何影响,从而保证了基于数据逻辑组织所编制的应用程序也可以不受硬件设备变化的影响。这样就使得程序和数据之间具有了一定的相互独立性。现来对它们的管理操作。这样做同样会导致数据的过多冗余和增加数据维护工作的复杂性。管理工作,在数据的安全和保密等方面,也难以采取有效的措施加以控制。【3】数据库管理阶段1个显著特点:(1)从整体角度组织数据的组织结构如图1.1所示。图1.1学生信息数据组织结构采用这种数据组织不仅可以有效地解决了文件系统的数据组织中所存在的数据冗余以及数据一致性维护的问题。更主要的是它可以使人们从更高的全局角度出发,合理地组织数据,从而有利于更大范围内的数据资源的共享,提高信息的使用效率。(2)数据可为多个应用服务1.11.1加。(3)有一个数据库系统的管理软件质量的一个极其重要的因素。被限制在最小的范围内。由此可大大地减少数据库应用程序的开发与维护的工作量。代和面向对象模型代。(1:均是层次模型或网状模型。世界上第一个数据库系统是于1964年由美国通用电气公司开发成功的IDS(IntegratedDataStoreIBM公司于六十年代末推出了第一个商品化的层次数据库系统IMS(InformationManagementSytem),它们的出现与应用为数据库技术的发展奠定了基础。(2:1970年Codd提出了关系数据模型,由于其了不少关系数据库系统,其中具有代表性应首推IBM公司推出的SQL/DS和DB2两个商品化大且在我国用得较多的有OracleSybaseSysbaseInformixFoxPro数据库系统均已被扩充为分布式数据库系统。(3:些商品化系统。但其具体应用尚不多。1.2数据库系统统的内涵有一个较为清楚的认识。1.2.1数据库系统概念由于数据库系统是一个由许多基本概念、技术方法和其应用对象所组成的复杂的有机整体。这些数据的程序相互独立;数据库中的数据可同时为多个应用服务;数据库中的数据定义、1.2所示。(1)和逻辑组织结构在最大程度上与用户所编制的应用程序相互独立。(2)多种应用:数据库中的数据,在数据库管理系统的控制与管理之下,可以同时为多种不相互交叉的。用户的操作方式既可以按以数据输入/输出和数据维护为主的数据流量较大的通过编程来完成对数据库中数据的各种操作。(3)数据库管理系统:它一方面负责对数据库中的数据进行管理和维护;一方面为用户操作的操作并保障数据库的安全。该具有的以下五个基本特点:【1】由于数据库系统是从整体角度考虑数据的组织,因此它必须有能力描述能够反映客观据模型的数据逻辑组织结构。图1.2数据库系统组成【21存储设备上的组织结构被称为数据的物理组织;(2)数据在用户或应用程序面前所表现出变,从而引起数据物理组织的改变,这种改变称为数据的再组织。用户在编制应用程序时,包括物理和逻辑的独立性,都是由数据库管理系统进行维护的。【3】数据共享,由于数据库是从整体的角度对数据进行组织的,并在保证数据一致性的情样不仅造成存储空间的浪费,更主要的是由此可能带来数据不一致的隐患。【4】数据库系统的安全可靠与完整,一个数据库系统的可靠性体现在它的软件系统运行故能够保持一致性。这些特性可以从以下几个方面进行说明:〈1〉安全性控制安全性控制主要指的是数据库的保密性。并不是每个用户都能够存取数据库中所有数据的,法对使用者操作数据的合法权进行检验,以实现对数据库中数据安全性的保护控制。〈2〉完整性控制阿拉伯数字来表示月份,在输入14来代表月份时显然是无效的。数据库系统应提供尽可能多的检验措施,以确保数据库中的数据满足用户所要求的各种约束要求。〈3〉并发控制错误的发生,保证数据库中数据的操作能够正确完成执行。〈4〉故障的发现与恢复的内容和系统的正常运行。【5】良好的人机接口与性能,任何数据库系统最终都是要和用户打交道,系统所具有的各重要指标。1.2.2数据库结构ANSI模式、用户层数据模式和物理层数据模式。【1】概念层数据模式,又称为模式,它是对数据库中数据整体逻辑结构的描述,它是对数据库中所有数据项、记录类型以及各记录类型之间的相互关系的描述。这里需要说明的是,计是数据库设计的最基本也是最重要的任务。【2】用户层数据模式,又称为外模式或子模式,它是对以用户为对象使用数据库所涉及到共用同一个子模式。提供这一层次的数据模式描述,有以下优点:〈1〉用户只要按照描述自己所使用数据的子模式编写应用程序或输入操作命令,就可以完是用户接口变得简单。〈2〉保证了数据独立性。由于用户的数据库应用编程仅仅是依据子模式的数据逻辑结构的独立性。〈3〉数据能够被较好地共享。由于同一模式可以产生许多不同的子模式,这些子模式所描证数据的一致性、完整性和正确性。〈4〉有利于保证数据的安全和保密。由于用户是通过其相应的应用程序对数据库中数据进所描述的数据,由此就可以保证数据库中的数据具有较好的安全性。【3】物理层数据模式,又称为内模式或物理模式。它是对数据库中所有数据在物理设备上系统统一控制的。管理系统负责完成从概念层数据模式到物理层数据模式之间的数据映射,有的物理独立性。图1.3数据库结构各模式间关系1.3间这两种映射,当然这两种映射是由管理系统自动完成的,对用户是透明的。理层的数据模式描述。1.2.3数据库系统数据库系统的核心是数据库管理系统(DataBaseManagementSystem,简称DBMS),在它的操作系统之上的应用软件平台。它一般具有以下三个主要功能:(1ADBMS完成,用户不必关心。(B也由DBMSC表生成工具等,帮助用户更加容易地对数据库的操纵进行编程。(2)管理数据库。它主要包括以下功能:(A)控制整个数据库系统的运行;(B)控制用C(DE构的完整和一致。(3)维护数据库,主要包括:(A)初始化时数据库数据的装入;(B)运行时记录下与用户、操作、系统状态和结果等信息的工作日志;(C)监视数据库性能;在性能变坏时,重新组织数据库;(D)在数据库系统的硬件或软件发生故障后,对数据库中受破坏的数据进行恢复。这一小节,将略为详尽地介绍与数据库管理软件有关的一些基本情况。(一)数据库系统语言通常包括数据库数据描述语言DDL(DataDescriptionLanguage)和数据库数据操作语言DML(DataManipulationLanguage)这两种语言。数据描述语言用于描述数据库中各种模式述这两种语言一些基本功能。【1】数据描述语言分为模式描述语言、子模式描述语言和内模式描述语言。它们各自的功能如下:(1)模式描述语言,它是用来描述数据库概念层数据模式的,即用于描述数据库中所有数部语句的集合,通常就被称为一个模式,一个模式的主要内容有:①给数据库总体数据的逻辑组织结构,即模式取名等)和数据长度等。③描述模式中各记录类型之间的相互联系,如果存在有相互联系的话。个模式所需要包括的三个基本方面进行定义说明。(2)子模式描述语言,它是用来描述数据库用户层数据模式的,即用于描述用户所使用的部语句的集合,通常就被称为一个子模式,一个子模式的主要内容有:①给用户使用数据库所涉及到局部数据的逻辑组织结构,即子模式取名的数据项必须是已在模式中定义过的。模式中定义过的。COBOL子模式描述语言、FORTRAN子模式描述语言和C子模式描述语言等。(3)内模式描述语言,它是用来描述数据库中数据在物理存贮介质上的组织结构和存放方式等,它与数据库系统所运行的硬件环境特性相关。例如,系统建立了哪些物理文件?文件述的。定义,或干脆将数据描述语言与数据操作语言归并到了一起,以方便用户使用。如FoxPro数据库系统,以及目前比较流行的基于SQL的多种数据库系统。【2】数据操作语言数据库中添加数据、删除数据库中没有保留价值的数据或修改某些发生变化的数据等操作。本操作功能:(AB到数据库中;(C)修改数据库中的记录或联系;(D)删除数据库中的记录或联系;CCOBOL,FORTRAN编译程序便不能完全编译应用程序了,解决这一问题有两种办法:(A)重新设计和实现一个编译程序,使之能编译包括数据操纵语言和主语言的所有语句,这种办法不大现实经济;(B)不修改主语言编译程序,而是设计一个预编程序来对应用程序中的数据操纵语言进行后的目标程序。这样做办法比较可行,目前已为许多数据库系统所采用。工具和数据库API接口等。(二)数据库系统运行管理与控制软件这几种软件一些基本功能(1A序,它们的作用是将各种采用模式描述语言所定义数据模式编译成DBMS所使用的内部定义目标模式。(B)数据库系统各种数据操纵语言的处理程序,它们可将应用程序中采用数据操纵语言所写的数据操作语句转换成其宿主语言编译程序所能处理的语句。(C)终端操作(D)数据库控制命令解释程序,它负责解释执行每一条数据库控制命令。(2A法性,以决定一个访问是否能使用数据库。(B)并发控制程序。协调多个应用程序对数据库的操作,保证数据库中数据的一致性。(C)保密控制程序。实现对数据库数据的安全保密控制。(D)数据完整性控制程序。核对数据库完整性约束条件,以决定对数据库的操作是否有效。(E)数据库存取访问程序。实施对数据库中数据的操作,如执行检索、插入、修改、删除等操作。(F)通讯控制程序。实现用户程序与DBMS之间的通讯。(3A(B)系统恢复程序。当软硬件出现故障时,利用恢复程序将数据库恢复到正确状态。(C)行何种操作、数据变更情况等等。使每个用户每次访问都留下踪迹。(D)性能监测程序。E当数据库系统性能变坏时,对数据库重新进行物理组织。(F)转贮、编辑、打印程序、用于转贮数据库的部分和全部数据,或者编辑打印数据等。(4)数据库工具软件。它主要是为了方便建立数据库系统的具体应用,而提供各种工具软件。其中有数据库系统应用程序界面制作工具,报表制作工具等许多软件工具。命周期,它主要由以下五个阶段构成:(1DBMS及其支撑环境的选择、硬件配置,人员的配备和培训,投资估算和效益分析等活动。(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.3.1模型的组成数据模型包含两方面内容,它们是:(1)数据的静态特性,这主要包括数据的基本结构、数据间的联系和数据中的相互约束等特性;(2)数据的动态特性,这主要包括对数据操作应用的设计中,得到了广泛应用。E-R数据模型是P.P.Chen在1976E-R数据模型就是利用这三个成分来描述反E-R数据模型是从现实信息世界到数据库系统中数据逻辑构造成某个DBMS所能接受的数据逻辑组织结构,其工作往往是十分复杂而且难度也很大,增加了应用系统设计的复杂性。识。【1】实体以描述。学生实体集中的不同的学生实体,通过其不同的学号又可加以区分。例如学号为881001881002姓名为王明的学生这个具体实体。【2】联系生之间至少存在一种联系,即“教学联系,商店与商品之间存在一种‘供应联系,这些种联系记为1:1的联系。(2)一对多的联系。其定义是:对于实体型A中的一个实体,联系。通常将这种联系记为1:N的联系。1:1的联系有时可看成是1:N的联系的一种特可以教若干门课,一门课又可以有若干个教师讲。通常将这种联系记为M:N的联系。以上解成每两个实体型之间均存在一个多对多的联系。A联系。【3】属性学生实体型的属性。这些属性的一组值就表示了一个具体的实体。在一个具体的实体型中,性又可称为该实体型的标识码。是它们之间是它们之间的性。—立或理解数据库的数据逻辑组织结构都具有十分重要的意义。定。1.3.2模型的表示下:(1)首先根据数据库系统应用的整体要求,确定所涉及的现实信息世界中的所有信息对象的范围。(2)根据第一步骤的结论,确定能够描述所要求所有信息对象的各实体及属性。(3)根据(1)、(2)二个步骤的结论,确定能够描述所要求所有信息对象的各实体间的联系。(43被称为E-R图方法。厂数据库应用系统中所涉及的部分信息对象所构成的E-R图。如图1.5所示。图1.5制造工厂信息的E-R图在图1.5是部门与职工实体型间一对多的“所属联系;职工与工程型实体间多对多的“工作和一对一“管理两种联系;工程与零件实体型间多对多的“所需联系;工程、供应商和零件些属性用椭圆加以表示。-R图方法还是很受欢迎的。1.4数据模型与数据库系统应的数据库的基本情况。1.4.1层次数据模型1要素描述客观信息世界中的信息结构。(2)若将实体抽象表示为一结点,联系抽象表示为之间的联系。这描述所得到的图形称为层次数据模型的结构图。图1.6学校行政管理机构的E-R图和层次数据模型结构图图,作为示例,如图1.6所示。在如图1.61.61.4.2层次数据库系统过程。重点介绍层次数据模型中的实体、属性和联系在层次数据库中是如何定义和操纵的。这里以IBM公司的IMS层次数据库系统为例,来说明有关的情况。【1】层次数据库概念层数据逻辑组织结构的设计与描述的数据库,即与数据库的物理存储结构无关。图1.7学校行政管理机构的逻辑组织结构1.7结构,若学校有若干系(DEPT),每个系有若干班级(CLASS),每个班有若干学生(STUDENT),每个系还有若干教师(TEACHER)。其中:数据模型中的片断型有DEPT、CLASSSTUDENTTEACHERDEPT(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存取方法,它们是:(A)层次顺序存取方法(HSAM),即将数据库中的所有片断值,按照其层次数据结构从上而下、从左而右的顺序存放。(BHISAM数据库中的所有根片断值,用指针连接起来或单独存放,并建立其索引;其它下属片断值,按照其层次数据结构从上而下、从左而右的顺序存放。(C)层次直接存取方法(HDAM),来存放。(DHIDAM数据结构从上而下、从左而右的顺序用指针(PTR=H)连接起来存放,或用兄弟、子女指针(PTR=T)连接起来存放,并建立根片断值的索引。②DATASET语句:命名数据库所对应的数据集合,指定物理设备及其物理存储块的大小。③SEGM语句:定义片断名、一个片断值的长度、片断值可能的个数、采用连接指针的类型和双亲片断名。④FIELD语句:定义片断中的各字段,如字段名、字段数据类型、字段长度及排序码。⑤DBDGEN语句:指示模式编译器开始产生数据库模式定义。⑥FINISH语句:指示模式编译器结束产生数据库模式定义,检验生成结果。⑦END语句:指示说明模式描述结束。个进行。【2】层次数据库用户层数据逻辑组织结构的设计与描述1)一个逻辑数据库中的根片断必须是某个物理数据库中的根片断。(2)一个逻辑子女片断必女片断。一个物理数据库记录型中,部分带根的片断型所组成的有序集合,称为逻辑数据库记录型。辑数据库记录就有几个。一个物理数据库可以根据应用要求构成多个逻辑数据库,在图3—3的例子中,就可以选取以下六个带根子集,作为逻辑数据库,它们分别是(DEPT)、(DEPT,TEACHER)、(DEPT,CLASS)、(DEPT,CLASS,STUDENT),(DEPT,TEACHER,CLASS)、(DEPT,TEACHER,CLASS,STUDENT)。最后我们从图25DEPT和TEACHER两个片断型来构成一个逻辑数据库,每个逻辑数据库的定义包含两方面内容:(1PCB逻辑数据库与物理数据库之间的映射关系。(2PSB户的局部逻辑结构。逻辑数据库的具体定义描述如下:PCBTYPE=DB,DBDNAME=DTCS,KEYLEN=7SENSEGNAME=DEPT,PROCOPT=GSENSEGNAME=TEACHER,PARENT=DEPT,PROCOPT=IPSBGENLANG=PL1,PSBNAME=DETEDBEND现将上述描述中的部分语句的含义说明如下:①PCBPCB的类型,DB所描述的逻辑数据库层次结构中所有片断排序码总长。②SENSEG语句:指出逻辑数据库所对应的物理数据库片断名,指出其双亲片断名,以及对该片断的处理方式(PROCOPTGIRD:容许删除等。③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班级的专业修改应用数学。使用者必须熟悉层次数据库的数据层次结构。如同领航员一样,在树形的河道中航行。省地隐含在各片断定义的说明中。1.4.3网状数据模型据逻辑组织结构是一致的。其具体定义如下:(1)对E-R数据模型中的联系类型加以限数据概念描述客观信息世界中的信息结构。(2)若将实体抽象表示为一结点,联系抽象表1.8数据模型。(a)(b)(c)图1.8网状数据模型的结构图网状数据模型与层次数据模型有两点不同:(1)层次数据模型从子女实体到其双亲实体之1.8(a)中,R4实体就有两个双亲R2和R3。因此在网状数据模型中,就不能再用指定双亲的方式来定义联系了。(2)网状数据模型中1.8(c)所示。R1实体和R2实体之间有两种联系SET1和SET2R1R2SET1联系,SET2为“保养”联系。1.4.4网状数据库系统DBTGDBTG报告为网状数据库在数据模型的描述及其语言的定义制定了标准。它主要包括三方面内容,它们是:(1)模式数据描述语言规范;(2)子模式数据描述语言规范;(3)数据操纵语言规范。【1】网状数据库概念层数据逻辑组织结构的设计与描述换为网状数据库概念层数据逻辑组织结构。首记录型有几个记录,系型的系值就有几个。(a)(b)(c)图1.9学生选课网状模型下面我们以一个简单例子来说明上述有关概念,如图1.9(a)所示,这是一个学生选课小SC”联系是多对多的联系,为了建立其网状数据模型,如图1.9(b)所示还要建立一新的记录SC系(S—SCC—SC个记录型中的数据项分别是:S(S#—学号,SN—姓名),C(C#—课号,CN—课名),SC(S#—C#—G—S—SC(首记录型为S记录型为SC),C—SC(首记录型为C,属记录型为SC)。这里若假定学生选课情况如图1.9(c)所示,则C—SCC1;S1C1A,S2C1B,S3C1B,S4C1BC2;S1C2B,S3C2C,S4C2AC3;S2C3A,S4C3C而S—SC系型的系值共有四个,它们是:{S1;S1C1A,S1C2B},{S2;S2C1B,S2C3A},{S3;S3C1B,S3C2C},{S4;S4C1B,S4C2A,S4C3C}。内容:(1)模式条目。它的作用是标识一个模式,即标识一个网状数据库的概念层数据库,其格式为:SCHEMANAMEIS〈模式名〉。(2)域条目。它的作用是定义一个或若干域,其格式为:AREANAMEIS〈域名〉。一个域对方便、灵活、高效。(3)记录条目.一个记录描述条目对应一个记录型,它用来定义记录名、记录的存放方式、记录所在的域及记录中各数据项的类型、长度等。如图1.9(bRECORDNAMEISSLOCATIONMODEISCALCUSINGS#DUPLICATESARENOTALLOWEDWITHINAREA—102S#TYPEISCHARACTER302SNTYPEISCHARACTER15其中:记录的存放方式有四种,它们是:(A)计算方式(CALC),记录的存放位置由指定的数据项作为参量计算确定。(B)直接方式(DIRECT),记录的存放位置由系统所给定每个记录的数据库码确定。(C)经由方式(VIA),根据首记录,确定属记录的存放位置。(DSYSTEMDBMS所提供的一种标准方式,确定记录的存放位置。上述学SS#有相同S#值的记录存在,记录S存放于域名为AREA—1的域中。(4)系条目。一个系描述条目对应一个系型,它的内容有:系名、系的实现方式、系的构2。7(b选课系型的描述主要内容如下:SETNAMEISS—SCMODEISCHAINOWNERISSMEMBERISSCMANDATORYAUTOMATICSETSELECTIONISTHRUS—SCOWNERIDENTIFIEDBYCALC—KEY其中这里有三个概念需要进一步解释一下。(A)系的实现方式(MODE)有两种:(i)链式(CHAIN),将一个系值中的首记录及其属记录用指针连接在一起。(iiPOINTARRAY指针集中在一起,形成一张表,在首记录中存放这张表或存放指向这张表的指针。(B)属(i)加入系属籍(INSERTION),它有两种情况,自动(AUTOMATIC)和手动(MANUAL)。自动意味着当一个属记录值插入到数据库后,由DBMS自动将其加入到一个系值中;手动则意味着加入到某一系值的工作将由用户自己完成。(ii)离开系属籍(RETENTION),它有三种情况,固定(FIXEDMANDATORYOPTIONAL)。固定意味着一个属记于某个系值,也可以不附属任一系值而独立存在。(C)系值的选择方式(SETSELECTIONISTHRUi语句格式为:SETSELECTIONISTHRU〈系名〉OWNERIDENTIFIEDBYCURRENTOFSET。(ii)由首SETSELECTIONISOWNERUSING首记录是CALCCALC确定系值。(5)模式描述结束语句.其作用是告诉模式编译程序,模式定义描述结束。其语句为:ENDSCHEMA【2】网状数据库用户层数据逻辑组织结构的设计与描述用户层数据逻辑组织结构的设计即为子模式的设计,由于DBTG系统支持子模式。每一个子的定义描述与模式有所不同,它的描述主要有以下内容:(1)子模式标识部分,其作用是定义子模式名称及其所对应的模式(2)换名描述,即将模式中的域名、记录名、系名还是数据项名用其它名称替换,以消除同主语言规则不一致的地方,同时提高描述的可读性。如欲将记录名DEPT换成DEPARTMENT。(3)域的描述,列出子模式定义所涉及的域。(4)记录的描述,列出子模式定义所涉及的记录名。若其中数据项有变化,还需列出有变化的数据项。(5)系的描述,列出子模式定义所涉及的系并可改变系值选择方式。【3】网状数据库数据操纵方法在DBTG系统中,用户的应用程序是用主语言和DML语言混合编写而成,主语言用于操纵内DML的数据操纵比较复杂,这里仅列出几种常用的操作。(1)FIND(查找),它主要有:(A)在某记录类型中查找;(B)在某系类型中查找;(CDE(2)GET(取值),将当前的记录值或数据项的值读取到用户工作区,以供进一步操作。(3)STORE(存值),将当前用户工作区中的记录,存放到数据库中,并根据系属籍类型,将其插入到相应系值中。(4)MODIFY(修改),将用GET所获的记录值或数据项,在用户工作区进行修改后,用此语句将其回存到数据库中。(5)ERASE(删除),从数据库将当前所确定的记录删除。(6CONNECT容许的情况下。(7RECONNECT个系的另一系值中。当然也是要在系籍约束容许的情况下。(8)DISCONNECT(撤消属籍),将当前记录从包含它的全部或部分系型的系值中移走,在系籍约束容许的情况下。1.4.5关系数据模型关系模型是由E.F.Codd在1970年引入到数据库领域中来的。之后,E.F.Codd以及其它数据库系统已成为数据库领域中最为活跃的一个分支。数据模型的基本知识.【1】关系的数学定义(1)这里我们首先介绍笛卡尔乘积的定义。给定一组集合,,…,,则这组集合的笛卡尔乘积是集合:。这其中:笛卡尔乘积集合中的每一个元素称为元组,表示参与笛卡尔乘积中的集合个数,又称为笛卡尔乘积的度。如:现有集合A,B,其中A={a1,a2},B={b1,b2,b3},则集合A,B的笛卡尔乘积为集合D,且有D={(a1,b1),(a1,b2),(a1,b3),(a2,b1),(a2,b2),(a2,b3)}。笛卡尔乘积D集合包含了六个元组,每个元组有两个分量。(2)关系的数学定义。笛卡尔乘积的一个子集,就称为定义在集合,,…,之上的一个关NAME={}AGE={2122},集合SEX={MF}R1R2如图1.10R1R2均是建立在集合NAME、AGE、SEX基础之上的关系。关系R1表示三个人基本情况,而关系R2则无实际意义,因为一个人不可能有两个年龄和性别。【2】关系数学模型从图1.10所描述的关系R1和R2,可以看出用二维表格的形式,来描述关系的内容是非常的具体值。图1.10关系R1和R2内容=模型可表示为:学生(学号,姓名,性别,年龄,籍贯)。而如(,张三,男,21,安系数据模型中,其元组值是无序的。即(,)和(,)是相同的关系。性名称;二是表格内容,它描述关系中的具体元组值。即表格中的每一行对应一个元组值,表格中的每一列对应一个属性。如图1.11所示。图1.11学生关系的二维表格表示法获得所需要的关系数据模型,具体内容是:(1)对E-R数据模型中的各实体类型分别2表示联系的各属性集合之外,还包括相互有联系的两个(或多个)实体类型中的关键属性图1.12(a)所示,建立在这一模型基础上的关系数据模型是由以下三个关系构成,它们是STUDENT关系、COURSE关系和SC关系,这三个关系内容如图1.12(b)所示。这里我们可以看出,STUDENT关系是有由SNO和SNAME两种属性集合构成;COURSE关系是有由CNO和CNAME两种属性集合构成;而SC关系是有由SNO、CNO和GRADE三种属性集合构成;最后我们说明一下在关系数据模型中,用关系来表示描述E-R数据模型中各实体和联图1.12学生选课的实体联系模型和关系数据模型系以及用二维表格的形式,来描述关系时应注意的事项:(A)关系列表中的列,其应是相同的数据类型;也就是它们都是取自同一值域。(B)关系列表中的列的顺序是可以任意交换的。(C)同一关系中,不能有两个或两个以上内容完全相同的元组存在。(D)元组的关系列表中元组的顺序是可以任意交换的。1.4.6关系数据库系统以图1.12所示的描述学生选课数据的三个关系表进行示例描述,通过描述语言,这由这三个关系表所构成的关系数据库具体描述如下:RELATIONTABLESTUDENT(SNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULL,SNAMETYPE=CHARACTERLENGTH=20,)KEY(SNO)RELATIONTABLECOURSE(CNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULLCNAMETYPE=CHARACTERLENGTH=30,)KEY(CNO)RELATIONTABLESC(SNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULLCNOTYPE=CHARACTERLENGTH=10PROPERTY=NOTNULLGRADETYPE=NUMBERICLENGTH=6DECIMAL=2,)KEY(SNO,CNO)RELATIONTABLEKEY会详细讨论。及运算的总和就是关系代数,自70年代提出关系代数以来,它在关系数据操作语言的发展关系代数运算。它们是选择、投影和连接。(1SELECTIONSELECT〈关系表名〉WHERE〈选择条件〉。(2)投影运算(PROJECTION)。投影运算是从构成一个关系的若干基本属性集合出发,从可以表示为:PROJECT〈关系表名〉ON〈属性名〉。(3)连接运算(JOIN)。连接运算是对两个关系进行运算,从构成这两个关系的所有基本列一定要求的行,组成一个新关系表。连接运算可以表示为:JOIN〈关系表名1〉AND〈关系表名2〉WHERE〈连接条件〉。数据操作语言都是基于这三种关系代数运算而构造的。1.5关系数据库理论基础的理论基础,也就是关系范式的有关基本知识。1.5.1问题的提出们就以关系数据模型为背景来讨论这个问题,从而形成了数据库逻辑设计的一个有力工具——数据库逻辑设计,同样具有理论上的指导意义。性集的笛卡尔积的一个元素,因而,关系模式也就是这个元组集合在结构上的描述。60以有学号(S#),姓名(SN),所在系的名称(SD)等几个属性,由于一个学号只对应一个了,这就象自变量x定了之后,相应的函数值也唯一被确定了一样。我们也可以说SN,SD函数依赖于S#;或者说S#函数决定了SN,SD。记为S#->SN,S#->SD。原因,从中寻找出设计一个好的关系模式方法。当我们要建立一个数据库来描述学校中的情况时,所面临描述对象有学生(用学号S#描述),系(用系名SD描述),系负责人(用系负责人姓名DM描述),课程(用课程名CN描述)和成绩(用G描述),于是我们得到了这样一组属性:U={S#,SD,DM,CN,G}.现实世界的已知事实告诉我们:(1)一个系有若干学生,但每个学生只能属于一个系;(23生同时选修;(4)每个学生学习每门课程只有一个成绩;于是,我们得到了属性组U上的一组函数依赖:F={S#->SD,SD->DM,(S#,CN)->G}。因此一个关系模式应当描述为:R(U,D,DOM,F)1)R2U是一组属性,即组成R(3D为域的集合,即属性取值范围的集合;(4DOM为U与D之间的映象;(5F是属性组U上的一组函数依赖。由于域的定义对关系模式设计关系不大,(34S(U,F)。这个模式有下述312S#和CN是这是不容许在关系中存在的。(3)删除异常。如果一个系的学生全部毕业了,我们在删除该系学生选修课程的信息的同时,也把这个系及其负责人的信息也丢了。上述这些缺点非常不利于数据库的维护和应用,所以我们说,它是一个不好的数据库模式,信息的丢失和造成数据的不一致。产生插入和删除异常的原因可以从对关键字的定义看出,一个关系中的两个元组,如为空值的元组是不可能在关系中存在的。关系模式:SD(S#,SD,S#->SD),SG(S#,CN,G,(S#,CN)->G,D(SD,DM,SD->DM理论就是基于这一简单概念的。在1.4.5的规范化(也称第一范式)一步的分析以确定如何设计一个好的、反映现实世界的模式。CoddBC式。1.5.2函数依赖函数依赖是关系数据库设计中的一个重要概念,下面我们给出函数依赖的定义。定义1。设R(U)是属性集U上的一个关系模式,X,Y是U的子集。若对于R(U)中任意可能关系r(即对于每一时刻的数据库中对应于关系模式R的内容)r中不可能有两个元组在X的属性分量相等,而同时在Y的属性分量值却不等,则称“X函数决定Y”,或称Y函数依赖于X。记作X->Y。r中的属性或属性组Xr中Y只有一个X是R的关键字的属性集合,则对于这一关系的所有属性子集Y有X->Y成立,这是因为关键字唯一地决定一个元组。当两个元组的关键字相等时,这两个XY->姓名,则年龄就不再函数依赖于姓名了。对于函数依赖,必须说明几点的是:(1)当我们在确定关系模式R中的某个函数依赖时,是指R的所有可能关系rR中只要有一个关系r不满足这个函数依赖,我们就认为R不存在这个函数依赖;(2)一个关系模式R上的函数依赖(3SN->SD,则实际上规定一个学生只能在一个系中,排斥了他处在两个系的可能性。若X->YX->Y1X->YX称作决定因素;(2)若X->Y,Y->X,则记作X<->Y;(3)若Y不依赖于X,则记作。下面讨论函数依赖的一些性质。假设R(ABCABCR中有A->B和B->CR中必定有A->CR的某一关系r中满足A->B,B->C,但不能满足A->Cr中存在两个元组u,v,它们在属性A的分量上取值相等,而在C的分量上取值不相等,u,v在属性B的分量上的值有两种可能,若相等,则违反了B->C;若不相等;则违反了A->B;这与假设矛盾,也就说明了在r中必满足A->CA->BB->C逻辑蕴涵了函数依赖A->C。定义2。在R(UY函数依赖于属性集合X,但Y函数不依赖于X的任一子Y对XY依赖于XY对X部分函数依赖,记作。这里举一个简单的例子,在关系S(S#,SN,SD,SA)中,S#->SD,S#->SA,S#->SN;而在关系SC(S#,C#,G)中,,。定义3在R(UY->XX->ZZ对Y果X->Y,则Y<->X,实际上是Y->Z,而不是传递函数依赖.定义4。在R(UK为U的属性或属性组,若有,则称K为R的一个候选关键字,若候选关键字多于一个,则选择其中之一为主关键字(PrimaryKey).系模式S(S#,SN,SD,SA)中,S#是关键字,如在关系模式SC(S#,C#,G)中,属性组(S#,C#)是关键字。定义5在R(UXX是另一个关系模式的关键字,则称X是R的外部关键字。例如SC(S#,C#,GS#不是关键字,但S#是关系S(S#,SN,SD,SAS#对于关系模式SC来说是外部关键字,主关键字与外部关键字提供了一条关系之间相互联系的途径,例如关系模式S与关系模式SC的联系就是通过S#。1.5.3范式的定义一范式,简称1NF,在第一范式基础上进一步满足一些要求的为第二范式,其余以此类推。R为第几范式记为。方法。【1】1NF定义6.如果一个关系模式R的所有属性都是基本的、不可分的,则R是第一范式。S#STATUSCITYP#QTYS120LONDONP1300S120LONDONP2200S120LONDONP3400S120LONDONP4200S120LONDONP5100S120LONDONP6100S210PARISP1300S210PARISP2400S310PARISP2200S420LONDONP2200S420LONDONP4300S420LONDONP5400图1.13FIRST关系表关系模式FIRST(S#,STATUS,CITY,P#,QTY1.13所示,其函数依赖集,FIRSTS#P#性STATUS和CITYS#P#QTYS#P#STATUS和CITY也不是相互独立的,而是也存在着函数依赖,这使得关系FIRST在插入,删除,修改ATHENSP#出现了空值。(S3,P2)的元组,则我们也删除了S3位于PARIS的信息。商S1从LONDON迁移到AMSTERDAM,就需要修改6个元组。【2】2NF为了解决上述问题,我们把关系模式FIRST分解成两个关系模式SECOND(S#,STATUS,CITY)和SP(S#,P#,QTY),如图1.14所示。S#STATUSCITYS#P#QTYS120LONDONS1P1300S210PARISS1P2200S310PARISS1P3400S4120LONDONS1P4200S530ATHENSS1P5100SECONDS1P6100S2P1300S2P2400S3P2200S4P2200S4P4300S4P5400SP图1.14SECOND和SP关系表这样处理后的结构,克服了S#和CITY存贮操作中的问题。例如,我们可以把S5位于ATHENS的信息插入到SECOND关系中,即使S5没有提供任何零件。如果我们在关系SP中删除(S3,P2)为关键字的元组,也不会丢失供应商S3位于PARIS的信息,当供应商S1从LONDON迁移到AMSTERDAM,只要对SECOND关系S1为关键字的元组作修改就可以了,仅仅修改一次,不会出现上述的不一致了。将图1.13与图1.14FIRST中属性STATUS和CITY是非关键字属性,S#P#S#FIRST中非关键字属性并不完全函数依赖于关键字属性;而改进之后,关系模式SECOND中,非关键属性完全依赖于关键字属性;定义7.如果关系模式R是1NF,而且非关键的属性完全函数依赖于关键字的属性,那么,关系模式R是第二范式。按照定义7SECOND和SP都是2NF1NF而不是2NF以通过适当投影化为一组等价的2NF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际关系学院《工程力学与机械设计》2023-2024学年第二学期期末试卷
- 河北环境工程学院《护理学基础技术(一)》2023-2024学年第二学期期末试卷
- 南京航空航天大学金城学院《细胞生物学课程设计》2023-2024学年第二学期期末试卷
- 广州城市职业学院《战略管理》2023-2024学年第二学期期末试卷
- 广东新安职业技术学院《生物化学及实验》2023-2024学年第二学期期末试卷
- 长春师范大学《汽车底盘构造与维修》2023-2024学年第二学期期末试卷
- 山西华澳商贸职业学院《移动通信技术》2023-2024学年第二学期期末试卷
- 大学生毕业实习计划
- 大一新生军训心得感悟(28篇)
- 农村乱占耕地建房问题整治工作汇报范文(3篇)
- 品质巡检培训课件
- 初验整改报告格式范文
- 2023青岛版数学三年级下册全册教案
- 建设工程总承包EPC建设工程项目管理方案1
- T-CSUS 69-2024 智慧水务技术标准
- (2024)竹产业生产建设项目可行性研究报告(一)
- 《零起点学中医》课件
- 2024年度酒店智能化系统安装工程合同
- 2025年春部编版四年级语文下册教学计划
- 扣好人生的第一粒扣子演讲稿国旗下的讲话
- 新质生产力战略下AIGC赋能的知识和情报服务创新:新机制、新风险与新路径
评论
0/150
提交评论