首页 理论教育 概念结构设计方法-现代数据库原理与索引优化

概念结构设计方法-现代数据库原理与索引优化

时间:2023-10-21 理论教育 版权反馈
【摘要】:概念结构设计就是将需求分析得到的用户需求抽象为信息结构,即概念模型。E-R模型提供了对数据模型既标准、规范,又直观、具体的构造手法,从而使得E-R模型成为应用最为广泛的数据库概念结构设计工具。设计概念结构的E-R模型可采用四种方法:自上而下的设计方法。

概念结构设计方法-现代数据库原理与索引优化

在需求分析阶段,设计人员充分调查并描述了用户的需求,但这些需求只是现实世界的具体要求,应把这些需求抽象为信息世界的结构,才能更好地实现用户的需求。概念结构设计就是将需求分析得到的用户需求抽象为信息结构,即概念模型。概念结构设计是整个数据库设计的关键

(一)概念结构

概念结构为其他复杂的信息形式提供构建思维和基础。相比较数据模型而言,概念模型的独立性更强,更加复杂,稳定性更高。概念结构设计的主要任务是在需求分析确定的基础上,采用某种特定的结构将数据组及其相互间的关系,以形象、直观、易于理解的形式精确地表达出来。设计概念结构的准则如下:

1.设计一种概念结构,要充分考虑用户对信息数据的实际需求,将现实空间内的信息概括为抽象的数据形式,并且形成的概念模型应该具备一定的现实意义。

2.概念结构表述的信息更利于用户理解,表现手法直接、清晰,为与用户进行交流创造了便利,提升了用户的参与度和数据信息的存取效率

3.概念结构的形式便于修改、添加。

4.结合数据库的逻辑特征,进行概念结构模型的设计,为后续概念模型的转变创造条件,向层次、网状等多个方向上转变。

概念模型是设计概念结构的主要手段,它针对数据的特征及信息做了详尽的表述,是创建数据库和相关逻辑程序的重要组分。所以,概念模型必须具备以下特征:

1.逻辑思维清晰,表述形式繁多。概念模型是表述用户需求的主要形式,能够反映出用户的实际需求,理清各个环节事务关联性以及用户对数据的整合思路,具有真实性。

2.易于交流和理解。概念模型是DBA、应用开发人员和用户之间的主要界面,因此,概念模型要表达自然、直观和容易理解,以便与不熟悉计算机的用户交换意见。用户对信息数据的开发利用能够大大推进数据库的运作,为数据工作的顺利开展提供保障。

3.便于修改和添加。数据库的模型要能够灵活应对外界变化,实时体现用户对数据的实际需求。

4.易于向各种数据模型转换。概念模型独立于特定的DBMS,因而更加稳定,能方便地向关系模型、网状模型或层次模型等各种数据模型转换。

5.便于向其他形式转变。概念模型具有一定的独立性和稳定性等特征,能够快速地向其他模式转换,如关系、网状、层次等模型。

人们根据数据库的特征,提出了多种类型的模型,E-R模型是其中较著名且具有实际意义的模型,能够清晰体现出真实世界的数据特征。

(二)概念结构设计的方法与步骤

1.概念结构设计的方法

选择哪一种模型来开展概念模型的设计工作,是完成结构设计的关键。E-R模型提供了对数据模型既标准、规范,又直观、具体的构造手法,从而使得E-R模型成为应用最为广泛的数据库概念结构设计工具。

设计概念结构的E-R模型可采用四种方法:

(1)自上而下的设计方法。以用户的实际需求为基准,完善概念结构的大致框架,并在此基础上进一步进行细致的划分。

(2)自下而上的设计方法。结合用户的每一项需求,设计各个局部的概念结构,将布局设计整合在一起,转变成抽象的逻辑概念,最终组建成完备的概念结构。

(3)逐步扩张的设计方法。先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至全局概念结构。

(4)混合策略的设计方法。将自顶向下和自底向上的设计方法相结合,先用自顶向下方式设计一个全局概念结构框架,再以它为基础,采用自底向上的设计方法集成各局部概念结构。

其中最常用的方法是自底向上的设计方法,即自顶向下地进行需求分析,然后再自底向上地设计概念结构。因此,在数据库的具体设计过程中,通常先采用自顶向下的设计方法进行需求分析,得到每个具体的应用需求,然后反过来根据每个子需求,采用自底向上的设计方法分步设计产生每个局部的E-R模型,再综合各局部的E-R模型,逐层向上回到顶部,最终产生全局E-R模型。本节概念结构设计的步骤只介绍自底向上设计方法的步骤。

2.概念结构设计的步骤

自底向上设计方法的步骤可分为两步。

(1)将数据信息抽象化,构建局部的E-R模型,就是用户的设计图画。

(2)将局部的概念模型组合成整体E-R模型,即整体结构的构建。

(三)数据抽象、局部概念结构设计与全局概念结构设计

设计局部E-R模型的关键就是正确划分实体和属性。实体和属性之间在形式上并无可以明显区分的界限,通常是按照现实世界中物的自然划分来定义实体和属性的,将现实世界中的事物进行数据抽象,得到实体和属性。概念结构是对现实世界的一种抽象。

1.将数据信息抽象化的方法

(1)分类。

定义某一类概念作为现实世界中一组对象的类型,这些对象具有某些共同的特性和行为。它将一组具有某些共同特性和行为的对象抽象为一个实体。在E-R模型中,实体型就是这种抽象,对象和实体之间是“is member of ”的关系。例如在教学管理中,“赵华”是一名学生,表示“赵华”是学生中的一员,他具有学生共同的特性和行为:在某个班某个专业,学习某些课程

(2)聚集。

定义某一类型的组成部分,将局部的概念结构抽象为现实世界的实体概念。在概念模型中,局部结构集合成现实世界的整体架构,这类局部与整体架构之间是“is part of ”的关系。例如,学号、姓名、性别、年龄、系别等可以抽象为学生实体的属性,其中学号是标示学生实体的主键。

(3)概括。

定义类型之间的一种子集联系,它抽象了类型之间的“ is subset of ”的语义。例如教师是一个实体型,专业课教师、基础课教师也是实体型。专业课和基础课教师均是教师的子集。如果把教师称为超类,专业课教师、基础课教师就可以称为教师的子类。具有继承性是概括的重要性质。

2.局部概念结构设计

局部概念结构设计是形成整体概念结构模型的关键一步。设计局部概念结构(局部E-R模型),要结合数据库的实际情况,在复杂的概念结构层次中选择适宜的局部结构开展数据工作,作为构建E-R模型的起点,使得每个局部概念结构对应一个整体架构。不同层次的数据流图都对应某个局部的应用程序,局部应用程序中的数据信息都被储存在相应的数据字典中。现在是要将全部数据信息从数据库中提取出来,利用数据流图将局部概念结构进行细致划分,剖析出其中实体的特性,确定各个实体之间的联系和类别。

局部概念结构设计的过程通常包括以下几个步骤。

(1)确定局部概念结构的范围。

局部概念结构的范围可以按两方面确定。一方面,将联系密切的若干功能域所涉及的数据包在一个局部概念结构视图中;另一方面,一个局部概念结构视图所包含的实体数目要适中。

(2)确定实体。

局部的应用程序和数据流图应该是一一对应的,局部应用程序所涉及的信息都应该集中在数据存储空间中。确定实体(集)的任务就是在局部应用范围内选择一些数据,将这些数据信息从储存空间中提取出来,作为局部程序的实体。这里的实体(集)是指对一组具有某些共同特性和行为的对象的抽象。例如,李华是学生,具有学生所共有的特性,学号、姓名、性别、年龄、系别等都是学生的共同特征,因此,学生可以抽象为一个实体。

(3)确定实体的属性。

在现实世界中,实体与属性的确定是相对而言的,很难有明确的划分界限。同一个事物,在一种应用环境中作为属性,而在另一种环境中可能就是实体。例如,关于系的描述,从学生这个实体(集)考虑学生的所在系是其中的一个属性,是属于学生这个实体(集)的。但是在另一种应用环境中,当将系考虑为实体(集)时,系包括系编号、系名称、系主任、系所在地等信息,系就成为一个独立的实体了。实体与属性并没有明显的实质性区别,界限较为模糊,可以依据下列两个基本准则来区分实体和属性。(www.xing528.com)

属性自身不具备需要表述的数据信息,但具有需要展开描述的特征性质。属性不需要进一步划分,是完整的数据项。属性是独立的个体,与其他数据信息没有紧密的关联性,实体与属性的关系是1∶m。

具备上述特征的事物,都可以将其视为属性。在实际空间中可以视为属性的物质,都应该当作属性进行处理,完善E-R模型。例如,学生是一个实体,学号、姓名、性别、年龄、系别是学生的属性,系别如果没有与系名称、系所在地、系主任发生联系,根据准则就可以作为学生实体的属性。但是如果不同的学生有不同的系名称、系所在地、系主任,则系别作为一个实体看待更加妥当。

(4)定义实体(集)间的联系。

现实世界中各种联系可以归纳为以下三种。

①存在性联系:如学校有学生、教师有职称。

②功能性联系:如教师与学生之间有教学联系。

③事件联系:如教师授课、学生借书。

联系也可有描述性属性,通常来说,联系性质可分为一对一、一对多、多对多三种。

3.全局概念结构设计

设计完成局部的概念结构后,需进行整体架构的组建,将各部分概念模型集合成全局概念模型,即完成了视图的构建。全局概念模型是指局部模型的整合,消去冗余的实体、实体属性和联系,解决各种冲突,最后促成全局概念模型的组建。

视图构建的方法主要有两种。

(1)多元集成法。

多元集成法是指将多个局部E-R模型一次性合并、集成,产生全局E-R模型的过程。多元集成法是指将局部的概念结构整合成一个完整的整体,构建成全局概念模型。

(2)二元集成法。

二元集成法是通过不断积累的方式,一次整合成两个E-R模型。二元集成法也被称为逐步集成法。

在实际应用中,可以根据系统的复杂性选择这两种方案。一般采用二元集成法,如果局部视图的整合较为容易,也可以运用多元集成法。大多数情况下,二元集成法最为常用,将两个视图整合为一个整体,大大降低了集成的难度。但无论使用哪种方法,集成过程都包括两部分。

(1)解决冲突,合并局部E-R图,生成初步E-R图。

这个步骤将所有的局部E-R图整合成统一的综合概念结构。全局概念模型是局部结构的结合体,为局部模型的运行提供保障,而且必须具备一个完整的数据概念结构。不同的局部概念结构具备不同的特征,需要不同的工作人员结合特性进行独立的局部设计,所以,各个局部的概念结构种类繁多且复杂,具有各种各样的特征,是数据集合的冲突。集成全部概念模型并不是字面意义上的将局部模型集合成全局模型,而是要消除局部模型之间的冲突,使集成后的全局概念模型包含多数局部概念模型的特性,而且深度较浅,能够被大多数用户所理解和接受。集成全局模型的前提就是顺利解决局部模型之间的矛盾。各个局部视图之间的矛盾类型主要有三种:

①属性冲突,即属性值的类型取值范围或取集合不同。例如对于学生学号的描述,有的部门把它定义为整型,有的部门把它定义为字符型。

②命名冲突,即属性名、实体名、实体联系名相互冲突。

③结构冲突。

同一对象在不同的局部E-R模型中产生不同的抽象,即在不同应用中具有不同的抽象。例如在教学管理中,系的描述在某一局部应用被当作实体,而在另一局部应用中则被当作属性。

同一实体在不同的局部E-R模型中属性组成不同。

实体间联系在不同的局部E-R模型中为不同的类型。例如,两实体间的联系在某一局部E-R模型中为一对一的联系类型,而在另一局部E-R模型中可能为一对多的联系类型。

对于属性冲突和命名冲突,需要通过各部门讨论协商等行政手段加以解决。对于结构冲突,需要加以分析后采用下面的解决方法。

在不同应用中具有不同的抽象。其解决方法是把属性变为实体或实体变为属性,使同一对象具有相同的抽象。变换后产生的结构仍要遵循前面所讲述的两个准则。

同一实体在不同的局部E-R模型中属性组成不同。其解决方法是取两个分E-R模型属性的并集,再适当调整属性的先后次序。

实体间联系在不同的局部E-R模型中为不同的类型。其解决方法是根据具体应用的语义,对实体联系的类型做适当的综合或调整。

全局概念设计的目的不仅仅是把若干分E-R模型在形式上合并成一个全局E-R模型,更为重要的是必须消除冲突,使之成为能够被全系统中所有用户所共同理解和接受的统一形式的模型。这是形成初步E-R模型的第一步。消除冗余是形成E-R模型的第二步。

(2)消除冗余,修改生成基本E-R图。

在合并后产生的初步E-R图中,可能存在冗余的数据和实体间冗余的联系。冗余数据是指可以从基础信息中提取出来的数据,冗余的联系是指可以从其他联系中提取出的关系。冗余的存在会威胁数据库的完整性和稳定性,影响数据库的维护工作,应该消除。我们把消除了冗余的初步E-R图称为基本E-R图。消除冗余的方法通常有如下两种。

①用分析法消除冗余。分析法是指通过对数据以及它们相互间存在的内在联系进行分析,找出和发现它们的冗余,并对初步E-R模型加以修改、重构,从而消除冗余的方法。消除冗余主要采用分析法。数据字典是分析冗余数据的依据,还可以通过数据流图分析出冗余的联系。在实际工作中,有些冗余数据和联系有存在的必要,并不是全部冗余事务都要消除。为了进一步提高工作效率,不得不利用冗余信息的价值进行有关工作的开展。所以在设计数据结构时,要结合用户的实际需求进行冗余的筛选,做出科学的取舍。详细调查冗余数据的产生原因和存在因素,保证数据库信息的完整性和架构的稳定,可以将数据字典中的相关阐述作为数据库运行的准则。

②用规范化理论消除冗余。在规范化理论中,函数依赖[1]的概念提供了消除冗余联系的形式化工具。其具体使用方法如下。

按需求分析阶段得到的语义,分别写出每个关系模式内容各属性间的数据依赖和不同关系模式属性间的数据依赖。

对各个关系模式之间的数据依赖进行极小化处理,消除冗余联系。

保持数据的关系范式。对关系模式进行分析,确定关系模式达到哪一级范式。

使结构更加规范化,并尽可能消除不必要的数据冗余。

对关系模式进行必要的分解,使描述关系式的语义单一化,但这种分解要保持实体之间的完整性。

此外,全局概念结构设计应满足以下要求:

a.完整性和正确性。集成的全局E-R图应包含各局部E-R图表达的所有语义,正确地表示与所有局部E-R图相关的应用领域统一的数据观点。

b.最小化。现实世界中的同一个概念一般只出现在全局E-R图中的一个地方。

c.可理解性。集成的全局E-R图对用户和设计者都是可以理解的。

d.全局E-R图内部必须具有一致性,即不能存在互相矛盾的表达。

e.全局概念模型应该具备满足不同发展阶段和发展形式的相关要求。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈