当前位置:文档之家› 第2章 数据库设计

第2章 数据库设计

第2章 数据库设计
第2章 数据库设计

第2章 数据库设计

内容提要:本章简要介绍信息系统中数据库设计的有关内容。数据库系统已成为目前大多数被审计信息系统的核心与基础。了解和掌握这些知识,对于进一步了解和掌握被审计信息系统的结构和电子数据的特点,进而决定采取哪些数据采集和分析方法,具有十分重要的指导意义。

第1章中提到,一个会计信息系统中有很多数据文件,其中每一个子系统中都会有各自的数据文件。那么,为什么一个信息系统中要存在这样多的文件,并且以这样的结构和方式存在呢?这要从信息系统的数据库设计谈起。

信息系统的作用是提供信息,辅助人们对环境进行控制和决策。数据库是信息系统的核心和基础。它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。这个信息系统设计得成败与否,关键在数据库。因此,数据库设计是信息系统开发和建设的重要组成部分。数据库设计的步骤与信息系统开发的过程是密切相关的,如图2-1所示。

数据库设计步骤

系统开发步骤

图2-1 数据库设计的步骤与信息系统开发过程的关系

怎样才能设计出一个“好”的数据库呢?这并不是几句话所能回答的问题。因为数据库设计是一项涉及多学科的综合性技术。它不仅需要设计者具有计算机信息系统和数据库原理等方面的知识,还需要具体领域内的业务知识。数据库设计还是一个复杂的过程,它通常是一个分阶段反复进行的过程。早期的数据库设计是一门艺术,它完全依靠设计者的经验。规范化的设计方法提出后,数据库设计的状况有了一定的改善,但它仍然是一种手工化的设计方法。直到可视化的辅助设计工具的出现,人们才得以逐步摆脱以往数据库设计那种冗长乏味的局面。

2.1 数据库设计的目标与特点

数据库设计的任务是在DBMS的支持下,根据应用的需求,构造一个结构合理、性能良好的数据库及其应用系统,使之能够方便、高效地存储和处理数据,满足用户的各种应用需求。

与其他工程设计一样,数据库设计也具有以下三个特点。

●反复性

数据库设计一般不可能一次完成,往往需要反复斟酌和修改才能最终完成。每一阶段的设计工作都是后续阶段设计的基础和起点,后阶段也可向前阶段反馈要求。如此反复修改,才能逐步完善。

●试验性

数据库设计不同于一个数学问题的求解,一般来说设计结果不是唯一的。设计的过程往往是个试探的过程。在设计过程中,有各式各样的要求和制约因素,它们之间往往是矛盾的。数据库的设计很难说是最佳的,常常是考虑了一个方面而忽略了另一个方面,很难兼顾。究竟取何种方案,往往取决于数据库设计者的权衡和用户的决策。用户决策也是设计过程中的一个组成部分,而决策不一定完全是客观的,往往与用户的偏好和观点有关。

●分阶段进行

数据库设计是一个分阶段进行的工作,在不同的阶段由不同的人员参与。这一方面是由于各个阶段所要进行的工作和完成的任务不同,另一方面是为了分段把关,逐级审查,保证设计的质量和进度。尽管后阶段会向前阶段提出反馈要求,但在正常情况下,这种反馈所带来的修改量一般不大。

2.2 数据库设计方法和步骤

数据库设计一般有两种方法,一种是以信息需求为主,兼顾处理需求,这种设计方法称为面向数据的方法(Data Oriented Approach),另一种方法是以处理需求为主,兼顾信息需求,这种设计方法称为面向过程的方法(Process Oriented Approach)。这两种方法在实际中都有应用。面向过程的方法适用于处理要求比较明确、固定的应用系统,面向数据的设计方法则适合于基础数据稳定、处理复杂多变的应用系统。

信息工程的观点认为,数据位于现代企业信息处理的中心,企业的主题数据库是稳定的,而处理是复杂多变的。因此,面向数据的方法能够适应目前大多数企业信息系统建设的要求。同时,由于这种方法较好地考虑和反映了数据的内在联系,可以满足潜在应用的需要。

在强调数据稳定性的同时也不应该忽略数据库的动态行为设计(应用程序和事务处理的设计等)。数据库的设计应该与应用系统设计相结合,即结构特性与行为特性相结合。静态的结构特性是为了支持动态的行为特性。如果两者的设计相分离,就会导

致数据与程序不易结合,增加数据库设计的复杂性。

人们经过长期的探索与实践,已经总结出了一些对数据库设计进行过程控制和质量评价的理论体系,其中比较著名的有1978年新奥尔良会议提出的关于数据库设计的步骤划分,被公认为是较完整的—个设计框架,它将设计阶段分为:

N1机构需求分析

N2信息分析和定义

N2.1视图建模

N2.2视图分析与汇总

N3实现设计

N3.1模式初步设计

N3.2子模式设计

N3.3程序设计

N3.4模式评价

N3.5模式细化

N4物理设计

和新奥尔良方法同时存在的还有其他一些设计方法。目前常用的各种设计方法都属于规范设计方法,即都是运用软件工程的思想与方法,根据数据库设计的特点提出了各种设计准则和设计规程。除此之外,还有一些为数据库设计不同阶段提供的具体实现技术与方法,如概念设计阶段的E-R设计方法等。

在规范化设计方法中,逻辑数据库设计与物理数据库设计是关键与核心。逻辑数据库设计是根据用户要求和特定DBMS的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。

规范化设计方法对设计质量的控制是以大量的书面文档和数据字典为基础的。一个大型工程的设计往往需要生成许许多多的需求分析文档、E-R图、数据流程图等,并且所有这些工作都要靠手工来完成,这就在设计效率、系统可重用性、易修改性等方面带来明显的问题。随着计算机技术的发展,目前出现了许多可视化的规范化辅助设计软件,如ERWin、Oracle Designer 2000等,它们能够与数据库管理系统的某些功能紧密结合,既可以完成数据库结构的设计,生成逻辑模型与物理模型;也可以完成行为设计,生成高质量、易用的应用程序。这些辅助工具的出现,大大改善了由人工进行数据库设计时那种冗长乏味的局面,也为数据库的修改、转换提供了方便,使数据库设计的质量和效率都有了很大的提高。但是目前的辅助设计工具还只能完成数据库设计中某些过程的工作,还没有支持数据库设计全过程的辅助工具。

数据库设计目前一般采用生命周期法,它将整个设计过程分解为若干个阶段,每个阶段目标独立,前一阶段是后一阶段工作的基础,后一阶段又可以对前一阶段提出补充和完善。根据有关资料,可以将数据库设计的过程分为六个阶段,如图2-2所示。

图2-2 数据设计的阶段及各阶段的结果

其中,需求分析和概念结构设计可以独立于任何DBMS进行,逻辑结构设计和物理结构设计与具体的DBMS密切相关。下面将简要介绍这六个阶段。

2.3 需求分析

需求分析是数据库设计的第一步工作。它是整个设计过程的基础,是最困难、最耗时的一步。需求分析的目标是给出应用领域中的数据项、数据项之间的关系和数据处理的详细定义,为概念结构设计、逻辑结构设计和物理数据库设计奠定基础,为优化数据库的逻辑结构和物理结构提供依据。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计工作,需求分析做得不好,甚至会导致整个数据库设计返工。因此,需求分析必须反复细化,逐步求精,直到形成一个较为明确的需求说明书和数据说明书为止。

确定用户的最终需求是一件非常困难和繁琐的事情。一方面,用户对计算机和信息系统的知识了解不多,不知道究竟哪些业务适合用计算机来处理,哪些业务不适合用计算机处理,不知道怎样提出他们的要求,往往由于缺乏必要的知识和术语而表达不清。另一方面,系统设计人员又缺乏相关的业务知识,并不能真正理解用户的需求。“你所理解的并不是我真正想要的”就是对这个问题的最好描述。这就需要两方面的人员互相学习、互相沟通,通过不断地深入交流,才可能逐步明确用户的实际需求。

需求分析的重点是获得两方面的需求:

(1)信息需求

信息需求定义未来信息系统使用的全部信息。了解信息需求就是要弄清用户需要

向数据库输入哪些数据,希望得到哪些处理结果,各项数据间有哪些本质联系。通过了解信息需求,可以决定在数据库中存储哪些数据,描述数据的内容和结构以及它们之间的联系等。

(2)处理需求

处理需求定义未来信息系统数据处理的功能。它主要是弄清用户要完成什么样的处理功能、功能与数据之间的联系。除此之外,还要考虑处理的优先次序、处理的执行频率和场合、处理的方式(实时处理、批处理等)、用户要求的响应时间等。同时也要弄清安全性和完整性约束。

在需求分析中,用于分析和表达用户的需求的方法主要有自顶向下和自底向上两大类。其中自顶向下的结构化分析方法(Structured Analysis,SA)是一种常用的方法。它的核心思想是按照系统内部的数据传递、变换关系,自顶向下逐层分解,直到每一项功能都可以被容易地实现为止。SA方法中要用到数据流程图(Data Flow Diagram,DFD)来描述数据的处理过程。数据流图是从“数据”和“处理”两方面来表达数据处理过程的一种图形化的表示方法。

在进行需求分析的时候,首先得到的是一个顶层数据流程图,随着不断地分解和细化(数据和功能都得到细化),可以得到若干层次的数据流程图,直到底层数据流程图中每一项加工和存储都可以被容易地实现为止。

需求分析的阶段成果是系统需求说明书,此说明书主要包括数据流程图、数据字典、各类数据的统计表格、系统功能结构图和必要的说明。系统需求说明书将作为数据库设计全过程的重要依据文件。

2.4数据字典

数据字典(Data Dictionary,DD)是在系统设计过程中对各类基本要素进行描述的集合。它是描述系统逻辑模型的重要工具。对数据库设计来说,数据字典是进行详细的数据收集和数据分析所获得的主要结果。因此在数据库设计中占有很重要的地位。

在新系统的开发过程的不同阶段,软件开发人员需要查阅它;在系统运行后维护人员需要查阅它;在计算机信息系统审计过程中,当进行数据转换和系统审计时,审计人员也需要查阅它。因此,数据字典确实是一种非常重要的文档资料。

数据字典通常由数据项、数据结构、数据流、数据存储和处理过程5个部分组成。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的内容。

1.数据项

数据项是不可再分的数据单位。对数据项的描述通常包括以下内容:

●数据项编号

●数据项名称

●数据项含义说明

●别名

●数据类型

●数据长度

●取值范围

●取值含义

●与其他数据项的逻辑关系

其中取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件,是设计数据检验功能的基础。

2.数据结构

一个数据结构由若干个数据项或数据结构组合而成,它反映了数据之间的组合关系。对数据结构的描述通常包括以下内容:

●数据结构编号

●数据结构名称

●含义说明

●组成

其中数据结构的组成说明了利用数据项或其他数据结构来组成该数据结构的规则。

3.数据流

数据流是数据结构在系统内传输的路径。数据流通常包括以下内容:

●数据流编号

●数据流名称

●说明

●数据流来源

●数据流去向

●组成(数据结构)

●平均流量

●高峰期流量

●低谷期流量

其中数据流来源是说明该数据流来自哪个过程。数据流去向是说明该数据流将到哪个过程去。平均流量是指在单位时间(每天、每周、每月等)里的传输次数。高峰期流量指在高峰时期的数据流量。低谷期流量则是指在低谷时期的数据流量。数据流条目可使用的符号如下:

=:表示等价

+:表示“和”

[ ] :表示选择,即从括号内选取某一项

[ / ] :表示“或”,即选择括号内的某一项,例如,凭证类型=[收款凭证/付款凭证/转账凭证]

n1{}n2:表示重复,即重复括号内的项,n1,n2为重复n1~n2次,例如2{a}6表示把a重复2~6次。如果n1不出现时,表示从0次开始重复。

():表示任选,可全选,也可一项也不选

4.数据存储

数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:

●数据存储编号

●数据存储名称

●说明

●流入的数据流

●流出的数据流

●组成(数据结构)

●数据量

●存取方式

其中数据量是指每次存取多少数据,每天(或每小时、每周等)存取几次等信息。存取方式包括处理方式(批处理、联机处理)、处理内容(检索、更新)以及对处理内容的进一步描述。另外,流入的数据流要指出其来源,流出的数据流要指出其去向。

5.处理过程

数据字典中只一般只描述处理过程的说明性信息,通常包括以下内容:

●处理过程编号

●处理过程名称

●输入数据流

●输出数据流

●处理说明

●处理要求

其中处理说明部分简要说明该处理过程的功能,即该处理过程用来“做什么”。至于“怎么做”的处理逻辑描述,可以采用专门的工具,常用的有结构化英语、判定表、判定树等。处理要求包括处理频度(单位时间里处理多少事务,多少数据量)、响应时间要求等。这些处理要求是后面设计和评价的标准。

下面以销售业务为例,简要说明数据字典的定义。

销售业务中有很多数据项,其中“科目代码”数据项可以描述如下:数据项编号:Item001

数据项名称:KMDM

数据项含义说明:唯一标识每个科目

别名:科目代码

数据类型:字符型

数据长度:9

取值范围:100000000至999999999

取值含义:前3位是一级科目,后面每2位是一个科目级别

与其他数据项的逻辑关系:

数据流“工资结算单”可以描述如下:

数据流编号:Flow001

数据流名称:GZJSD

说明:财务部门计算的工资结算单

数据流来源:财务部门

数据流去向:职工

组成(数据结构):职工号+姓名+性别+基本工资+出勤工日+缺勤工日+

病假+事假+工伤假+应扣工资+副食补贴+物价补贴+房租水电+储蓄+

其他+实发工资

平均流量:1500/月(单位职工人数)

高峰期流量:

低谷期流量:

处理过程“登记日记账”可描述如下:

处理过程编号:Proc001

处理过程名称:DJRJZ

输入数据流:记账凭证

输出数据流:现金及银行存款日记账

处理说明:根据收款凭证、付款凭证逐笔顺序登记现金日记账和银行存款日

记账

处理要求:每月处理多次,每次处理时间小于15分钟

2.5 概念结构设计

在需求分析之后,下一步的工作是考虑如何实现这些需求。这时候应该考虑一种独立于具体的DBMS的逻辑描述方法来描述数据的逻辑结构。这一过程称为概念结构设计。概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。概念模型具备以下特点:

●丰富的语义表达能力。能描述现实世界中各种对象及其复杂的联系以及用户对

数据对象的处理要求等;

●易于交流和理解。它是DBA、应用系统开发人员和用户之间的主要文流工具;

●易于变动。当现实世界的需求改变时,概念模型能灵活地加以改变,以反映这

种变化;

●易于向各种数据模型转换。即易于从概念模型导出与DBMS有关的逻辑模型。设计概念结构的策略有以下几种:

●自顶向下:首先定义全局概念结构的框架,再做逐次细化。

●自底向上:首先定义每一局部应用的概念结构,然后按一定的规则把它们集

成起来,得到全局概念结构。

●由里向外:首先定义最重要的那些核心结构,再逐渐向外扩充。

●混合策略:把自顶向下和自底向上结合起来的方法.它先自顶向下设计一个

概念结构的框架.然后以它为骨架再自底向上设计局部概念结构,并把它们集

成起来。

这里对常用的自底向上设计策略给出数据库概念设计的主要步骤。它通常分三步:第一步进行数据抽象,设计局部概念模式;第二步是将局部概念模式集成为全局概念模式;第三步是进行评审和改进。

概念结构设计最常用的方法是P.P.S.Chen于1976年提出的“实体-联系法”(Entity-Relationship Approach,E-R方法),它主要是用E-R图来描述现实世界的概念模型。它通过将现实世界抽象为具有某种属性的实体以及实体之间相互的联系来描述现实世界,从而画出一张E-R图,就得到了一个对系统信息的初步描述,进而可能形成数据库的概念结构。E-R图的元素包括:

●方框:表示实体型(Entity),并在框内写上实体的名称;

●椭圆:表示实体的属性(Attribute),并用无向边将实体与其属性连接起来;

●菱形:表示实体间的联系(Relationship),菱形内写上联系的名称,用无向边

将菱形分别与相关的实体相连,在无向边的旁边标明联系的类型(1 :1,1 :n或m :n);若联系也有属性,则把属性椭圆和联系菱形也用无向边连接起来。

实体是现实世界中各种事物的抽象,它既可以是物理存在的事物,也可以是抽象的概念。属性是实体的一组特征或性质。实体的每一个属性都是不可再分的。实体与属性都是客观存在并可相互区分的事物,它们之间没有一定的界限。在用E-R方法设计概念模型的时候,能够归为属性的事物应尽可能地归为属性,以简化E-R图的处理,但也要根据需求而定。

联系是多个实体间的相互关联,它反映了事物之间的本质特征。联系本身也是一种实体型,因而它也具有属性。联系一般分为一对一的联系(1 :1)、一对多的联系(1 :n)和多对多的联系(m :n)。

用E-R方法进行概念设计的简要步骤如下:

(1)设计局部E-R模型

局部E-R模型的设计包括实体、属性、联系设计以及分配属性。下面以审计项目资源管理为例来描述设计E-R图的步骤。

①确定实体类型:本问题有审计项目(Project)、审计人员(Auditor)和审计资源(Resource)三个实体类型。

②确定联系类型:Project和Auditor之间是m :n联系,即一个审计项目需要多个审计人员共同完成,一个审计人员可以参与多个审计项目。Project和Resource之间也是m :n联系,即一种审计资源可供多个审计项目使用(如审计软件、通信资源),一个审计项目也可用到多种审计资源。分别定义联系类型为P-A和P-R。

③确定实体类型的属性(其中带下划线的属性是键):实体类型Project的属性有{项目编号(Prj_Code),项目名称(Name),项目性质(Prj_Attr),审计组长(Audit_Chief),主审(Main_Staff),审计方案(Strategy),进点日期(Start_Date),工作周期(Time_Period)}。

实体类型Auditor的属性有{身份证号(ID_Code),姓名(Name),年龄(Age),性别(Gender),所学专业(Major),工作年限(Serve_Period)}。

实体类型Resource的属性有{资源编号(Code),资源名称(Name),资源类型(Type),剩余额度(Available),有效期限(Exp_Date)}。

④确定联系类型的属性:联系类型应该至少包括与之联系的所有实体类型的键,比如联系类型P-A有属性:项目编号Prj_Code(实体类型Project的键),参与项目的审计人员的身份证号ID_Code(实体类型Auditor的键),完成项目的进度情况(Status)。联系类型P-R有属件:项目编号Prj_Code(实体类型Project的键),项目使用的资源编号Code(实体类型Resource的键),资源的使用情况(Usage)。

⑤根据实体类型和联系类型画出E-R图。局部的E-R图如图2-3所示。

图2-3 局部的E-R图

(2)将局部E-R模型集成为全局E-R模型

这一步是将所有局部的E-R图集成为全局的E-R图,即全局的概念模型。这一过程一般采用两两集成的方法,即:先将具有相同实体的两个E-R图,以该相同实体为基准进行集成。如果还有相同实体的E-R图,则再次集成。这样一直继续下去,直到所有具有相同实体的局部E-R图都被集成,从而得到全局的E-R图。将局部的E-R图集成为全局的E-R图时,可能会存在这样一些冲突:

●属性冲突:包括类型、取值范围和取值单位的冲突。属性冲突一般用讨论、协

商等行政性手段解决;

●命名冲突:包括实体类型名、联系类型名和属性名之间的同名异义、异名同义

等命名冲突。属性的命名冲突极为常见。处理命名冲突也像处理属性冲突一样,需要用讨论、协商的办法解决;

●结构冲突:如同一对象在不同的局部视图中有不同的抽象,有的作为实体,有

的作为联系或属性;同一实体在不同的局部视图中所包含的属性成分不同;同样两个实体间的联系在不同的局部视图中有不同的类型等。解决结构冲突的办法是根据应用的语义对实体联系的类型进行综合或调整。

图2-4 全局的E-R图

图2-4是由局部的E-R图集成后得到的全局的E-R图。在局部的E-R图中,实体类型Project、Auditor和Resource都有属性Name,存在命名冲突,在集成的时候将它们分别改成了Prj_Name、Auditor_Name和Rsc_Name。

(3)对全局E-R模型进行优化

一个好的全局E-R模型除了能反映用户的功能需求外,还应满足以下几个条件:

●实体类型个数尽可能少;

●实体类型所含的属性尽可能少;

●实体类型间的联系没有冗余。

优化就是要达到这3个目的。为此,要合并相关实体类型。一般把1 :1联系的两个实体类型合并,合并具有相同键的实体类型。消涂冗余属性和冗余联系。但有时为提高效率,可根据具体情况保留适当的冗余。这时候应该把数据字典中数据关联的说明作为完整性约束条件。

2.6 逻辑结构设计

概念模型是现实世界的对象在概念世界中的反映,具有较高的抽象级别、较稳定的结构,并且与具体的实现系统无关。数据库设计的下一步工作是将这个概念世界的

模型映射到计算机世界中来,以便于最终在计算机上用具体的DBMS实现出来。

从理论上讲,设计逻辑结构时应该挑选一种最适合描述与表达相应概念结构的数据模型,然后再选用支持这种数据模型的DBMS来实现。但实际上关系型DBMS是目前应用最广泛的数据库管理系统。所以,大多数的逻辑结构设计都是针对关系型数据库的逻辑结构设计。

数据库逻辑结构设计的目标有以下几个:

●满足数据的完整性和安全性要求;

●满足关系的规范化要求;

●在逻辑层上支持高效率的事务处理;

●存储空间利用率高。

逻辑结构设计的步骤如下:

●形成初始关系数据库模式;

●关系模式规范化和优化;

●外模式设计。

下面是逻辑结构设计的几个步骤和内容。

(1)形成初始关系数据库模式

将E-R模型转换成关系数据模型,就形成了初始的关系数据库模式。E-R模型向关系数据模型转换的规则如下:

①一个实体类型转换成一个关系模式,实体的属性就是关系的属性。实体的键就是关系的键。

②一个联系类型转换成一个关系模式,参与该联系类型的各实体的键以及联系的属性转都换成关系的属性。该关系的键有三种可能情况:

●若联系为1 :1联系,则每个实体的键均是该关系的候选键。

●若联系为1 :n联系,则关系的键为n端实体的键。

●若联系为m :n联系,则关系的键为各个相关实体的键的组合。

③具有相同键的关系模式可合并。

为了减少系统中的关系个数,如果两个关系模式具有相同的键,就可以考虑将他们合并为一个关系模式。合并方法是将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉同义的属性(可能同名也可能不同名),并适当调整属性的次序。

(2)关系模式的规范化和优化

获得初始关系数据库模式之后,下一步的工作是对它进行规范化和优化。规范化处理的目的是消除数据冗余形成的异常,改善完整性、一致性和存储效率。一般达到第三范式即可。

在规范化的同时,还要进行关系模式的优化。如果关系模式不能很好地反映用户需求,则应对它进行必要的修改,例如增加或删除一些关系或属性;如果模式的性能不好,则要考虑对它进行必要的合并或分解。

一般来说,对具有相同关键字的关系模式,如果对它们的操作主要是查询,并且经常在一起使用,就可以将这类关系模式合并;如果因某个关系的属性过多而影响了效率,可以考虑将它分解成两个或多个关系。这种属性组分解称为垂直分解。垂直分

解所后得到的每一关系都应包含原关系的主键。

数据库的逻辑结构设计结果不是唯一的,它往往是很多因素作用的结果。另外,它还可能与用户的观点与偏好有关。

将图2-4的全局E-R图转换成关系模式并进行必要的规范化后,得到如下的关系模式(斜体加重部分为主键)。

Project(Prj_Code,Prj_Name,Prj_Attr,Audit_Chief,Main_Staff,Strategy,Start_Date,Time_Period)

Auditor(ID_Code,Auditor_ Name,Age,Gender,Major,Serve_Period)

Resource(Code,Rsc_Name,Type,Available,Exp_Date)

P-A(Prj_Code,ID_Code,Status)

P-R(Prj_Code,Code,Usage)

结合数据字典中对相关数据项的描述,可以设计出关系数据库系统中的表结构,如表2-1~表2-5所示。

表2-1 Project(项目)表的结构定义

表2-2 Auditor(审计人员)表的结构定义

表2-3 Resource(审计资源)表的结构定义

表2-4 P-A(审计人员参与项目情况)表的结构定义

表2-5 P-R(项目资源使用情况)表的结构定义

(3)外模式设计

逻辑设计的另一项重要内容是外模式设计,又称用户子模式设计。外模式是应用程序与数据库的接口,它的作用大致有以下几点:

①提供了数据的逻辑独立性:应用程序是通过外模式来和数据库打交道的。当数据的逻辑模式随着应用的发展而不断变化时,这时只需要不断修改外模式的定义,而不需要去修改应用程序。因此,外模式提供了一种逻辑数据独立性,使得应用程序不受逻辑模式变化的影响。

②能适应用户对系统的不同需求:逻辑数据库结构是面向整个组织的,而对某个具体用户来说,他关心的只是与他的业务范围相关的那部分数据结构。因此有必要从方便用户的角度来重新定义每个用户使用的数据结构。外模式正好提供了这样一种手段。目前关系型DBMS一般都提供视图的概念,支持用户的虚拟视图。为了方便用户,可以将一些复杂的查询定义成视图。利用视图定义功能可以设计出更符合用户需要的子模式。

③具有一定的安全保密作用:外模式为每个用户划定了访问数据的范围,每个用户都只知道整个逻辑结构的一部分,从而保障了应用程序有效地访问数据库而不破坏数据库的安全性。

2.7 数据库物理设计

数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构。它通过对数据库内部物理结构作调整并选择合理的存取路径来提高数据库访问速度及有效利用存储空间。在现代关系数据库中已大量屏蔽了内部物理结构,因此留给用户参与物理设计的余地并不多,一般的关系型数据库中留给用户参与物理设计的内容大致有以下几种:

●索引设计

●聚簇设计

●分区设计

●系统配置

下面就这4个方面的设计作简要介绍。

1.索引设计

索引设计是数据库物理设计的基本问题,有效的索引设计对提高数据库访问效率的作用很大。索引一般建立在关系的属性上,有单属性的索引和组合属性的索引,它的作用是提高查询的速度。下面给出符合建立索引的条件:

(1)主关键字及外关键字上一般都应建立索引,以加快实体间连接速度,有助于引用完整性检查以及唯一性检查。

(2)用户经常访问的字段上应建立索引。

(3)以读操作为主的关系表尽可能多地建立索引。

(4)对等值连接查询而言,如果满足条件的元组数量小则可以考虑在有关属性上建立索引。

(5)有些查询可从索引中直接得到结果,不必访问数据块,此种查询可建索引,如查询某属性的MIN,MAX,A VG,SUM,COUNT等函数值可沿该属性索引的顺序集扫描直接求得结果。

2.聚簇设计

聚簇是将有关的数据记录集中存放在一个物理块内或相邻物理块或同一柱面内以提高查询效率,在目前的关系型DBMS中均有此功能,聚簇一般至少定义在一个属性之上,它不仅适用于单个关系,也适用于多个关系。

聚簇功能可以大大提高按聚簇属性进行查询的效率,但是对于与聚簇属性无关的访问则效果不佳,而建立聚簇开销很大,会导致关系中元组移动其物理存储位置,并使此关系上原有的索引无效而必须重建。当一个元组的聚簇码发生改变时,该元组的存储位置也要做相应移动。因此只有在特定情况可考虑建立聚簇:

(1)通过聚簇访问该表是主要的,与聚簇无关的其他访问是次要的,可以考虑建立聚簇。

(2)聚簇属性的对应数据量不能太少也不宜过大,太少效益不明显而太大则要对盘区采用多个链接块,对提高效率不利。

(3)聚簇属性的值应相对稳定以减少修改聚簇所引起的维护开销。

3.分区设计

数据库中的数据一般存放在磁盘内,由于数据量大,往往需要用到多个磁盘驱动器或磁盘阵列、因此就产生了数据在多个盘组上的分配问题,这就是所谓磁盘分区设计,它是数据库物理设计的内容之一。

分区设计的一般指导性原则是:

(1)减少磁盘访问冲突,提高I/O并行性。多个事务并发访问同一磁盘组时会产生磁盘访问冲突而引发等待,如果事务访问的数据能均匀分布在不同的磁盘组上,则可并发执行I/O,从而提高数据库访问速度。

(2)分散热点数据,均衡I/O负荷。在数据库中数据被访问的频率是不均匀的,那些经常被访问的数据称为热点数据(Hot Spot Data),此类数据宜分散存放在各磁盘

组上以均衡各盘组的负荷,充分发挥多磁盘组并行操作的优势。因此进行物理设计时可以考虑将表和索引分别放在不同的磁盘上,也可以将比较大的表分别放在两个磁盘上,这在多用户环境下特别有效。此外还可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。

(3)保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典、数据目录,其访问频率很高,保证对它的访问直接影响整个系统的效率,在比种情况可以提供一个固定盘组专供其使用以保证访问速度。

4.系统配置

DBMS一般都提供一些存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,这些变量都被系统赋了合理的默认值,但是这些值不一定适合每一种应用环境。在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。这些配置变量一般包括:同时使用数据库的用户数;同时打开的数据库对象数;使用的缓冲区长度、个数;时间片大小;物理数据库的大小、位置;填充因子;锁的数目等,这些参数值影响存取时间和存储空间的分配,在物理设计时要根据应用环境确定这些参数值,在系统运行时还要根据实际情况做进一步的调整,以使系统性能达到最优。

2.8 数据库实施和运行维护

物理数据库设计完成之后就进入了数据库实施阶段。数据库实施阶段包括以下工作:

●用DDL定义数据库

●将数据装载到数据库中

●应用程序编制和调试

●数据库试运行

试运行符合设计目标后,数据库就真正投入运行了。数据库投入运行标志着开发任务基本完成而维护工作开始了。维护工作并非只是查看系统能否正常运行,而是要不断地对它的设计进行评价、调整、修改,甚至完全改变以前的设计。在数据库运行阶段,对数据库经常性的维护工作主要由DBA完成。

一般来说,维护工作主要包括:

●数据库的安全性、完整性控制及数据的备份、转储与恢复。

●数据库故障恢复。在系统运行过程中,可能存在无法预料的自然或人为因素,

如电源故障、磁盘故障等,许多大型的DBMS都提供了故障恢复功能,但要

有DBA的配合才能完成。

●数据库性能的监控、分析与改进。

●数据库的重组与重构。

关于数据库实施和运行维护的详细内容,这里就不介绍了,有兴趣的读者可以参阅有关数据库系统原理的书籍。

在了解了数据库设计的全部过程之后,就不难理解为什么会计信息系统中会有如此多的文件或表,并以这样的形式存在。实际上,它们都是会计信息系统数据库设计的结果。更重要的,数据库设计的概念与方法非常有助于审计人员了解和掌握被审计信息系统的结构和特点,为面向数据的计算机审计和信息系统审计打下基础。

第二章 数据库设计和ER模型(ans)

第二章 数据库设计和ER 模型 (单选)在数据库规划阶段,包括在数据字典中Ⅰ.数据项、数据流;Ⅱ.数据结构、数据存储; ER 模型图例 (单选) 如下图所示是一个ER 模型,下列对其基数描述最为合理的是一个学生最少需要选1门课程,最多选6门课程;每个课程多最可以被50个学生选修。 (单选)关系中元组在组成主要的属性上不能有空值。 (单选)在数据库设计中,将E-R 图转换成关系数据模型的过程属于逻辑设计阶段。 (单选)将数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统的生存期。 (单选)数据字典是对数据描述的集中管理。 (单选)将概念模型转换逻辑模型是数据中逻辑设计阶段的主要步骤之一。 (单选)表示数据库的概念模型一般使用ER 图。 (单选)ER 模型中所指的实体一般是实体集。 (单选)一个联系涉及到的实体集个数,称为该联系的度数。 (单选)采用ER 模型进行数据库的概念设计,可以分成三步进行,下列正确的是先设计局部ER 模型,然后合成全局模型,最后体优进行整化。 (单选)下列不属于全局ER 模型的优化目的的是优化存储结构。 (单选)关系模式是对关系的描述,一般表示为关系名(属性名1,属性名2,…,属性名n )。 (单选)已知有关系表R (如下表所示),其元数和基数正确的是数为6,基数为3. (单选)下列哪个不可以为空主键。 (单选)区别一个元组与另一个元组靠的是元组的属性而不是顺序,所以关系中的元组没有先后顺序。 (单选)表中可以唯一确定一个元组(一个记录)的某个属性组(字段组)称为主键。 (单选)若某个属性组不是关系A 的主码,但它是另一个关系B 的主码,则称属性或属性组称为关系A 的外键。 (单选)现有一个公司员工记录表,如下表所示内容,如果想以员工号为查询元组的标志,那

数据库第二章课后习题解答

第3部分 习题及其解答 第一章的两道题 设计 N 开始时间 结束时间 版权 专利号 月薪

3-2 习题2 分别把习题、习题的ER 图转换成关系模型数据结构。 【参考答案】 1.习题的ER 图可转换成如下的关系模型数据结构。 ① 程序员(编号,姓名,性别,年龄,单位,职称),其中编号是关键字; ② 程序(程序名称,版权,专利号,价格),其中程序名称是关键字; ③ 设计(编号,程序名称,开始时间,结束时间),其中(编号,程序名称)是关键字。 2.习题的ER 图可转换成如下的关系模型数据结构。 ① 工厂(工厂名称,厂址,联系电话),其中工厂名称是关键字; ② 产品(产品号,产品名,规格,单价),其中产品号是关键字; ③ 工人(工人编号,姓名,性别,职称,工厂名称,雇用期,月薪),其中工人编号是关键字,工厂名称是外关键字,雇用期和月薪是联系属性; ④ 生产(工厂名称,产品号,月产量),其中(工厂名称,产品号)是关键字,生产关系是表示联系的。 判断下列情况,分别指出它们具体遵循那一类完整性约束规则 生产 月产量 雇用 雇用期

1.用户写一条语句明确指定月份数据在1~12之间有效。 2.关系数据库中不允许主键值为空的元组存在。 3.从A 关系的外键出发去找B 关系中的记录,必须能找到。 【解答】 1.用户用语句指定月份数据在1~12之间有效,遵循用户定义的完整性约束规则。 2.关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则; 3.从A 关系的外键出发去找B 关系的记录,必须能找到,遵循引用完整性约束规则。 判断下列情况,分别指出他们是用DML 还是用DDL 来完成下列操作 1.创建“学生”表结构。 2.对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。 3.把“学生”表中学号“021”修改为“025”。 【解答】 1.创建“学生”表结构,即定义一个关系模式,用DDL 完成。 2.修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL 完成。 3.修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML 完成。 给出两个学生选修课程关系A 和B ,属性为姓名、课程名、成绩。分别写出后列各关系代数运算的结果关系。 1.A 和B 的并、交、差、乘积、自然联接。 2.> '' (A ); 2= ''∧<'' (B ); ,(A ); (B )。 3. 关系A 姓名 课程名 成绩 李红 数学 89 罗杰明 英语 78 关系B 姓名 课程名 成绩 黄边晴 C++语言 86 李红 数学 89

第2章数据库设计方法

第2章数据库设计方法 ※1.实体关系 ⑴概念模型 ①概念模型的基本概念 l实体:客观存在并可相互区别的事物称为实体。实体可以是具体的事物,也可以是抽象的事件。 l实体的属性:实体所具有的某一特性称为属性。一个实体可由若干个属性来描述。 l实体的主属性:主属性也称关键字,它能惟一的标识一个实体。关键字可以是属性或属性集。 l属性的域:属性的取值范围称为该属性的域。 l实体型:具有相同属性的实体必然具有共同的特征。用实体名及其属性名的集合来描述的同类实体,称为实体型或称实体结构。 l实体集:同类型实体的集合称为实体集。 l实体的联系:实体的内部联系是指组成实体的各属性之间的联系;实体间的联系是指不同实体集之间的联系。两个实体集之间的联系可以分为下列3种: n一对一联系(1:1):是指第一实体集中的每个实体最多只与第二实体集中的一个实体相联系,反之亦然,此即为一对一联系。 n一对多联系(1:N):是指第一实体集中的每个实体与第二实体集中的N个实体相联系,而第二实体集中的每个实体最多只与第一实体集中的一个实体相联系,此即为一对多联系。 n多对多联系(M:N):是指第一实体集中的每个实体与第二实体集中的N个实体相联系,而第二实体集中的每个实体与第一实体集中的M个实体相联系,此即为多对多联系。 ②概念模型的表示方法 概念模型是对现实世界的建模,概念模型应当能够全面、准确地描述现实世界中的基本概念。概念模型最著名、最实用的方法是实体-联系方法,简称E-R方法。E-R图的使用请参阅课本第2章的2.2.1相关内容。 ⑵构造E-R模型 ①构造E-R模型的方法 构造E-R模型的步骤分为:确定实体、除去重复的实体、列出每个实体的属性、标记主

第二章 数据库应用系统生命周期

第二章数据库应用系统生命周期 2.1数据库应用系统生命周期 2.1.1 软件工程与软件开发方法 1、软件工程:将工程化应用于软件生产 2、软件工程的目标:在给定成本、进度的前提下,开发出满足用户需求并具有下述特征的软件产品:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性。 3、软件生命周期:指软件产品从考虑其概念开始,到该产品交付使用的整个时期,包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段; 4、软件项目管理:为了能使软件开发按预定的质量、进度和成本进行,而对成本、质量、进度、人员、风险等进行分析和有效管理的一系列活动。 5、软件工程以关注软件质量为特征,由方法、工具和过程三部分组成; 6、软件过程模型(软件开发模型):是对软件过程的一种抽象表示,表示了软件过程的整体框架和软件开发活动各阶段间的关系,常见的有:瀑布模型、快速原型模型、增量模型和螺旋模型。 2.1.2 DBAS软件组成 1、数据库应用软件在内部可看作由一系列软件模块/子系统组成,这些模块/子系统可分成两类: (1) 与数据访问有关的数据库事务模块:利用DBMS提供的数据库管理功能,以数据库事务方式直接对数据库中的各类应用数据进行操作,模块粒度较小; (2) 与数据访问无直接关联的应用模块:在许多与数据处理有关的应用系统中,对数据库的访问只是整体中的一部分,其他功能则与数据库访问无直接关系,这部分模块粒度可以比较大。 2、 DBAS设计开发的硬件方面:主要涉及根据系统的功能、性能、存储等需求选择和配置合适的计算机硬件平台,并与开发好的DBAS软件系统进行集成,组成完整的数据库应用系统; 2.1.3 DBAS生命周期模型 1、数据库应用系统的生命周期模型: (1) 参照软件开发瀑布模型的原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现和部署、运行管理与维护等5个基本活动组成; (2) 将快速原型模型和增量模型的开发思路引入DBAS生命周期模型,允许渐进、迭代地开发DBAS; (3) 根据DBAS的软件组成和各自功能,细化DBAS需求分析和设计阶段,引入了数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计DBAS中的数据库、数据库事务和应用程序; (4) 将DBAS设计阶段细分为概念设计、逻辑设计、物理设计三个步骤,每一步的设计内容又涵盖了三条设计主线。

数据库第二章课后习题解答

第3部分习题及其解答第一章的两道题

3-2 习题2 2.6 分别把习题1.10、习题1.11的ER图转换成关系模型数据结构。 【参考答案】 1.习题1.10的ER图可转换成如下的关系模型数据结构。 ①程序员(编号,,性别,年龄,单位,职称),其中编号是关键字; ②程序(程序名称,,专利号,价格),其中程序名称是关键字; ③设计(编号,程序名称,开始时间,结束时间),其中(编号,程序名称)是关键字。 2.习题1.11的ER图可转换成如下的关系模型数据结构。 ①工厂(工厂名称,厂址,联系),其中工厂名称是关键字; ②产品(产品号,产品名,规格,单价),其中产品号是关键字; ③工人(工人编号,,性别,职称,工厂名称,雇用期,月薪),其中工人编号是关键字,工厂名称是外关键字,雇用期和月薪是联系属性; ④生产(工厂名称,产品号,月产量),其中(工厂名称,产品号)是关键字,生产关系是表示联系的。 2.8 判断下列情况,分别指出它们具体遵循那一类完整性约束规则? 1.用户写一条语句明确指定月份数据在1~12之间有效。 2.关系数据库中不允许主键值为空的元组存在。 3.从A关系的外键出发去找B关系中的记录,必须能找到。 【解答】 1.用户用语句指定月份数据在1~12之间有效,遵循用户定义的完整性约束规则。 2.关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则; 3.从A关系的外键出发去找B关系的记录,必须能找到,遵循引用完整性约束规则。 2.9 判断下列情况,分别指出他们是用DML还是用DDL来完成下列操作? 1.创建“学生”表结构。 2.对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。 3.把“学生”表中学号“021”修改为“025”。 【解答】 1.创建“学生”表结构,即定义一个关系模式,用DDL完成。 2.修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL完成。 3.修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML完成。 2.12 给出两个学生选修课程关系A和B,属性为、课程名、成绩。分别写出后列各关系代数运算的结果关系。

第二章关系数据库练习和答案

第二章关系数据库 一、选择题 1. 下面的选项不是关系数据库基本特征的是()。 A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 2. 一个关系只有一个()。 A.候选码 B. 外码 C. 超码 D. 主码 3. 关系模型中,一个主码是()。 A.可以由多个任意属性组成 B.至多由一个属性组成 C.可有多个或者一个其值能够唯一表示该关系模式中任何元组的属性组成 D.以上都不是 4. 现有如下关系: 患者(患者编号,患者姓名,性别,出生日起,所在单位) 医疗(患者编号,患者姓名,医生编号,医生姓名,诊断日期,诊断结果) 其中,医疗关系中的外码是()。 A. 患者编号 B. 患者姓名 C. 患者编号和患者姓名 D. 医生编号和患者编号 5. 现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的外码是()。 A. 书号 B. 读者号 C. 书号+读者号 D. 书号+读者号+借期 6. 关系模型中实现实体间N:M 联系是通过增加一个()。 A.关系实现 B. 属性实现 C. 关系或一个属性实现 D. 关系和一个属性实现 7. 关系代数运算是以()为基础的运算。 A. 关系运算 B. 谓词演算 C. 集合运算 D. 代数运算 8. 关系数据库管理系统应能实现的专门关系运算包括()。 A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 9. 五种基本关系代数运算是()。 A.∪-× σ π B.∪-σ π C.∪∩× σ π D.∪∩σ π 10. 关系代数表达式的优化策略中,首先要做的是()。 A.对文件进行预处理 B.尽早执行选择运算 C.执行笛卡尔积运算 D.投影运算 11. 关系数据库中的投影操作是指从关系中()。 A.抽出特定记录 B. 抽出特定字段 C.建立相应的影像 D. 建立相应的图形 12. 从一个数据库文件中取出满足某个条件的所有记录形成一个新的数据库文件的操作是()操作。

数据库系统基础教程第二章答案解析

Exercise 2.2.1a For relation Accounts, the attributes are: acctNo, type, balance For relation Customers, the attributes are: firstName, lastName, idNo, account Exercise 2.2.1b For relation Accounts, the tuples are: (12345, savings, 12000), (23456, checking, 1000), (34567, savings, 25) For relation Customers, the tuples are: (Robbie, Banks, 901-222, 12345), (Lena, Hand, 805-333, 12345), (Lena, Hand, 805-333, 23456) Exercise 2.2.1c For relation Accounts and the first tuple, the components are: 123456 → acctNo savings → type 12000 → balance For relation Customers and the first tuple, the components are: Robbie → firstName Banks → lastName 901-222 → idNo 12345 → account Exercise 2.2.1d For relation Accounts, a relation schema is: Accounts(acctNo, type, balance)

数据库系统原理与设计(第2版) 万常选版 第2章 关系模型与关系代数 课后答案

3.简述如下概念,并说明它们之间的联系与区别:。 (1)域,笛卡尔积,关系,元组,属性 答:域:域是一组具有相同数据类型的值的集合。 笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的。这组域的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di?Di,i=1,2,…,n }其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。元素中的每一个值di叫作一个分量(Component)。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 元组:关系中的每个元素是关系中的元组。 属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 (2)超码,主码,候选码,外码 答:超码:对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码 (superkey) 。 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。 外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S 的主码Ks相对应,则称F是基本关系R的外码(Foreign key),简称外码。 基本关系R称为参照关系(Referencing relation),基本关系S称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。 (3)关系模式,关系,关系数据库 答:关系模式:关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为:R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom 为属性向域的映象集合,F为属性间数据的依赖关系集合。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。 关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。 2.3.为什么需要空值null? 答:引入空值,可以方便于数据库的维护和建立,数字或者字符有时并不能解决想要解决的问题,毕竟它们是真实的存在,有了空值,那么有些操作,比如查询,插入,删除都可以更加方便,比如公司的部门,新增的部门,信息是不存在的,是之后数据库人员进行添加之后才有的,所以让它为空,比给它0更加贴近实际。空值是所有可能的域的一个取值,表明值未知或不存在。 2.3.关系模型的完整性规则有哪些? 答:关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的

相关主题
文本预览
相关文档 最新文档