(一)逻辑结构设计的任务和步骤
概念结构设计阶段得到的E-R模型是用户的模型,它独立于任何一种数据模型,独立于任何一个具体的DBMS。为了建立用户所要的数据库,需要把上述概念模型转换为某个具体的DBMS所支持的数据模型。数据库逻辑结构设计的任务是将概念结构转换成特定的DBMS所支持的数据模型的过程。从此开始便进入了“实现设计”阶段,需要考虑到具体的DBMS的性能、具体的数据模型特点。
在理想状态下,数据库逻辑结构设计应该选择最适合描述与表达相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,综合考虑性能、价格等各种因素,从中选择最佳的DBMS。目前,DBMS产品一般只支持关系、网状、层次三种模型中的一种。即使是同一种数据模型,由于机器系统的不同以及许多不同的限制,也需要提供不同的环境与工具。逻辑结构设计一般分三步进行。
1.将概念结构转换为一般的数据模型(关系、层次或网状模型)。
2.将转换来的一般数据模型向特定的DBMS所支持的数据模型转换。
3.对数据模型进行优化,产生全局逻辑结构,由此设计出外部模式。
(二)概念模型向关系模型的转换
概念设计中得到的E-R图是由实体、属性和系组成的,而关系数据库逻辑设计的结果是一组关系模式的集合。所以,将E-R图转换为关系模型实际上就是将实体、实体的属性和实体之间的联系转换成关系模式。在转换中要遵循以下原则。
1.一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的关键字就是关系的码。
2.一个1∶1联系可以转换为一个独立的模式,也可以与任意一端对应的关系模式合并。如果变换为相对独立的模式,则与其相关的实体的重要名称以及与其本身相关的全部属性均可以成为该项联系的属性,可以选择其中任意一项实体的代名词作为该项联系的代名词;如果与某一项实体相关的概念模型结合,就需要详尽的信息资源作为材料。例如,该项概念模型的属性以及另一项实体的代名词和与其相关的实体属性,就可选取适宜的实体代名词作为该项概念模型的关键名称。如果联系为1∶1,每个实体的关键名词就都能作为模型关系的关键词。
3.1∶n的关系可以变换为独立的形式,也可以与n端有关联性的关系融合。对于一个独立的联系模型,两个相关联的代名词及该关联性本身的所有属性均为该关系模式的属性,其关键字为n端实体的关键字。也就是说,如果联系为1∶m,则n端实体的键是关系的键。
4.一个m∶n联系转换为一个关系模式,各相关实体的关键字以及该联系本身所有属性均为该关系模式的属性,其关键字为两个相关联实体关键字的组合。也就是说,如果联系为m∶n,则各实体键的组合是关系的键。
5.三个以上实体间的多元联系构成的关系模式和两个实体间的m∶n联系一样,与该多元联系相关联的各实体的关键字以及该联系本身的所有属性合并组成该关系模式的属性,其关键字为各相关联实体关键字的组合。
6.具有相同关键字的关系模式可以合并为一个关系模式。
一般数据模型形成后,下一步可根据该模式产生具体的DBMS支持下的关系数据模型。目前对于关系模型来说,一般关系模型与特定的DBMS所支持的模型之间差别不大,因而这种转换通常都比较简单。
(三)数据模型的规范化
数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该适当地修改、调整数据模型结构,以减少冗余与更新异常现象。这就是数据模型的规范化。应用规范化理论对关系的逻辑模式进行初优化,以减少乃至消除关系模式中存在的各种异常,改善完整性、一致性和存储效率。规范化理论是数据库逻辑设计的指南和工具,关系数据模型的优化以关系规范化理论为指导,具体方法如下。
1.确定数据依赖。确定数据依赖关系是进行规范化设计的首要工作。确定数据依赖即按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖,以及不同关系模式属性间的数据依赖的过程。
2.针对各个关系逻辑之间的信息依赖进行最小限度的完善,清除冗余联系。
3.结合信息依赖于科学、规范的理论逻辑的现象,针对关系模式进行细致分析。要进一步确定关系模式中的各个属性是否为最初级的逻辑属性,并且找出各个属性之间是否具有多种数据信息的依赖关系,如函数依赖、传递函数依赖、多值依赖等,并明确每种概念关系是否具备范式标准,属于哪种范式关系。
4.在进行关系式的完善工作过程中,每种关系逻辑至少要具备第一范式标准,将完善后的概念关系模型与用户需求的调查资料进行对比分析,观察其与使用环境的匹配度,并基于此确定下一步的合成和分解过程。
5.对关系模式进行必要的分解,可提高数据操作的效率和存储空间的利用率。常用的方法为水平分解和垂直分解。具体分解方法在后文中详细介绍。
概念模型的规范是一种理论叙述,为负责设计程序的工作人员提供了理论依据,可以通过规范化的关系进一步判断运行过程存在的隐患。规划化的概念关系为数据库的运行提供了保障,能够顺利解决冗余资源与新兴数据的矛盾,所以它是数据库运行过程至关重要的环节。
结合数据库的整体设计过程,科学、规范的概念关系在逻辑设计过程中的应用有以下几个方面。
(1)在调查用户需求的时候,利用数据依赖与分析,表述各个信息数据之间的关系。
(2)设计概念结构期间,遵循规范化的理论原则,明确属性的关键词,清除概念模型中的多余联系。(www.xing528.com)
(3)设计逻辑结构阶段,在E-R模型向其他概念模型变换的过程中,通过整合和分解模型的方法实现结构的规范化。
(四)模式评价与改进
1.模式评价
关系模式的规范化不是目的而是手段,数据库设计的目的是最终满足应用的需求。因此,为了进一步提高数据库应用系统的性能,还应该对规范化后产生的关系模式进行评价、改进。经过反复多次的尝试和比较,最后得到优化的关系模式。
模式评价的目的是检查所设计的数据库模式是否满足用户的功能要求、效率,确定加以改进的部分。模式评价包括功能评价和性能评价。
(1)功能评价。
功能评价指对照需求分析的结果,检查规范化后关系模式集合是否支持用户所有的应用要求。关系模式必须包括用户可能访问的所属性。在涉及多个关系模式的应用中,应确保连接后不丢失信息。如果发现有的应用不被支持或不完全被支持,则应该改进关系模式。发生这种问题可能是在逻辑设计阶段,也可能是在需求分析或概念设计阶段。是哪个阶段的问题就返回到哪个阶段去,因此有可能对前两个阶段再进行评审,解决所存在的问题。
在功能评价的过程中,可能会发现冗余的关系模式或属性,这时应对它们加以区分,搞清楚它们是为未来发展预留的还是由于某种错误造成的,如名字混乱。如果属于错误处置,进行改正即可。如果这种冗余来源于前两个设计阶段,也要返回重新进行评审。
(2)性能评价。
对于目前得到的数据库模式,由于缺乏物理设计所提供的数量测量标准和相应的评价手段,因此性能评价是比较困难的,只能对实际性能进行估计,包括逻辑记录的存取数据传送量以及物理设计算法的模型等。
美国密歇根大学的T.特里(T.Teorey)和J.弗赖伊(J.Fry)于1980年提出的逻辑记录访问(Logical Record Access,LRA)方法是一种常用的模式性能评价方法。LRA方法对于网状模型和层次模型较为实用,对于关系模型的查询也能起到一定的估算作用。有关LRA方法,本书不作详细介绍,读者可以参考相关书籍。
2.模式改进
模式改进是指根据模式评价的结果,对已生成的模式进行改进。如果因为需求分析、概念设计的疏漏导致某些应用不能得到支持,则应该增加新的关系模式或属性。如果因为性能考虑而要求改进,则可采用合并或分解的方法。
(1)合并。
如果有若干个关系模式具有相同的主键,对这些关系模式的处理主要是查询操作,而且经常是多关系的查询,那么可对这些关系模式按照组合使用频率进行合并。这样便可以减少相关操作,提高查询效率。
如果大部分概念模型具有一致的关键词,并且利用查询功能来检查关系模式的完整性,通过复杂的关系网络确定关系模式的性质,结合关系模式合并的频率进行整合。这样不仅能够减少相关操作,还能提高工作效率。
(2)分解。
为进一步优化信息数据的使用效率以及存储空间利用率,科学、有效的分解方法是整合关系模式的最佳手段。根据程序需求的差异,针对关系模式进行水平分解和垂直分解。
水平分解是把关系的元组分为若干子集合,定义每个子集合为一个子关系。对于经常进行大量数据分类条件查询的关系,可进行水平分解,这样可以减少应用系统每次查询需要访问的记录数,从而提高查询性能。例如,教师关系(职工号、姓名、职称……),其中类别包括助教、讲师、教授。如果多数查询一次只涉及其中的一类教师,就应该把整个教师关系水平分割为助教、讲师和教授三个关系。
垂直分解是把关系模式的属性分解为若干子集合,形成若干子关系模式。垂直分解的原则是把经常一起使用的属性分解出来,形成一个子关系模式。
例如,教师关系(职工号、姓名、性别、年龄、职称、工资、岗位律贴、住址、电话),如果经常查询的仅是前六项,而后三项很少使用,则可以将教师关系进行垂直分割,得到两个教师关系。
教师关系1(职工号、姓名、性别、年龄、职称、工资)。
教师关系2(职工号、岗位津贴、住址、电话)。
这样,不仅降低了查询信息的频率,还提高了工作效率。垂直分解能够有效促进数据库的工作效率,但也存在其他事务不得不进行的查询工作,从而阻碍数据库运行的正常进度。所以,是否选择垂直分解要根据事物分解后总工作效率的进程来决定。垂直分解要确保关系模式的连接性和数据依赖性。针对该评价模式反复进行评价手段的改进,得出一个切实可行的评价模式。逻辑程序设计的最终呈现结果是全局逻辑数据库。针对关系数据体系,概括来说就是一组符合相关标准的关系模式构成的关系模式体系。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。