免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2025年上半年 数据库系统工程师 上午试卷 综合知识
  第25题      
  知识点:   逻辑结构设计
  关键词:   关系规范化   数据库   数据        章/节:   数据库设计       

 
关系规范化是在数据库设计的(32)阶段进行。
 
 
  A.  逻辑设计
 
  B.  需求分析
 
  C.  物理设计
 
  D.  概念设计
 
 
 

  相关试题:数据库设计          更多>  
 
  第41题    2025年上半年  
   0%
E-R模型向关系模型转换时,三个实体之间多对多的联系m:n:p应该转换为一个独立的关系模式,且该关系模式的主键由(28)组成。
  第59题    2013年上半年  
   69%
假设描述职工信息的属性有:职工号、姓名、性别和出生日期;描述部门信息的属性有:部门号、部门名称和办公地点。一个部门有多个..
  第67题    2021年上半年  
   42%
以下关于数据库的重组和重构的说法中,正确的是( )。
   知识点讲解    
   · 逻辑结构设计
 
       逻辑结构设计
        逻辑结构设计即在概念结构设计的基础上进行数据模型设计,可以是层次模型、网状模型和关系模型,本节介绍如何在全局E-R图基础上进行关系模型的逻辑结构设计。逻辑结构设计阶段的主要工作步骤包括确定数据模型、将E-R图转换成为指定的数据模型、确定完整性约束和确定用户视图,如下图所示。
        
        逻辑结构设计阶段工作步骤
                      E-R图向关系模式的转换
                      E-R方法所得到的全局概念模型是对信息世界的描述,并不适用于计算机处理,为适合关系数据库系统的处理,必须将E-R图转换为关系模式。E-R图是由实体、属性和联系三要素构成的,而关系模型中只有唯一的结构——关系模式,通常采用下述方法加以转换。
                             实体向关系模式的转换
                             将E-R图中的实体逐一转换成为一个关系模式,实体名对应关系模式的名称,实体的属性转换为关系模式的属性,实体标识符就是关系的码。
                             联系向关系模式的转换
                             E-R图中的联系有三种:一对一联系(1:1)、一对多联系(1:*)和多对多联系(*:*)。针对这三种不同的联系,转换方法如下:
                             (1)一对一联系的转换。通常一对一联系不需要将其转换为一个独立的关系模式,只需要将联系归并到关联的两个实体的任一方,给待归并的一方实体属性集中增加另一方实体的码和该联系的属性即可,归并后的实体码保持不变。
                             (2)一对多联系的转换。通常一对多联系也不需要将其转换为一个独立的关系模式,只需要将联系归并到关联的两个实体的多方,给待归并的多方实体属性集中增加一方实体的码和该联系的属性即可,归并后的多方实体码保持不变。
                             (3)多对多联系的转换。多对多联系只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的码及联系的属性,关系的码是多方实体的码构成的属性组。
                      关系模式的规范化
                      由E-R图转换得来的初始关系模式并不能完全符合要求,还会有数据冗余、更新异常存在,这就需要经过进一步的规范化处理,具体步骤如下:
                      (1)根据语义确定各关系模式的数据依赖。在设计的前一阶段,只是从关系及其属性来描述关系模式,并没有考虑到关系模式中的数据依赖。关系模式包含着语义,要根据关系模式所描述的自然语义写出关系数据依赖。
                      (2)根据数据依赖确定关系模式的范式。由关系的码及数据依赖,根据规范化理论,就可以确定关系模式所属的范式,判定关系模式是否符合要求,即是否达到了3NF或4NF。
                      (3)如果关系模式不符合要求,要根据关系模式的分解算法对其进行分解,达到3NF、BCNF或4NF。
                      (4)关系模式的评价及修正。根据规范化理论,对关系模式分解之后,就可以在理论上消除冗余和更新异常。但根据处理要求,可能还需要增加部分冗余以满足处理要求,这就需要做部分关系模式的处理,分解、合并或增加冗余属性,提高存储效率和处理效率。
                      确定完整性约束
                      根据规范化理论确定了关系模式之后,还要对关系模式加以约束,包括数据项的约束、表级约束及表间约束,可以参照SQL标准来确定不同的约束,如检查约束、主码约束、参照完整性约束,以保证数据的正确性。
                      用户视图的确定
                      确定了整个系统的关系模式之后,还要根据数据流图及用户信息建立视图模式,提高数据的安全性和独立性。
                      (1)根据数据流图确定处理过程使用的视图。数据流图是某项业务的处理,使用了部分数据,这些数据可能要跨越不同的关系模式,建立该业务的视图,可以降低应用程序的复杂性,并提高数据的独立性。
                      (2)根据用户类别确定不同用户使用的视图。不同的用户可以处理的数据可能只是整个系统的部分数据,而确定关系模式时并没有考虑这一因素,如学校的学生管理,不同的院系只能访问和处理自己的学生信息,这就需要建立针对不同院系的视图达到这一要求,这样可以在一定程度上提高数据的安全性。
                      应用程序设计
                      应用程序设计与开发是数据库应用系统开发的重要组成内容,它应遵循应用软件开发的一般规律,即遵循常规的软件工程的方法。数据库应用系统开发是基于DBMS的二次开发,一方面是对用户信息的存储,另一方面就是对用户处理要求的实现,通常在设计过程中把数据存储的设计称为结构设计,处理的实现称为行为设计。在现阶段,还没有一种将两者合一的设计方法,因而称之为行为和结构分离的设计。
                      应用程序设计有两种方法:结构化设计方法和面向对象设计方法。在设计阶段就是从分析入手,得到结构化模型或面向对象模型。
                             结构化设计方法
                             结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的分析结果则展现了系统对数据的加工和转换。面向数据流建模是目前仍然被广泛使用的方法之一,而DFD则是面向数据流建模中的重要工具,DFD将系统建模成输入一处理一输出的模型,即流入软件的数据对象,经由处理的转换,最后以结果数据对象的形式流出软件。DFD使用分层的方式表示,第一个数据流模型有时被称为第0层DFD或者环境数据流图。从整体上表现系统,随后的数据流图将改进第0层图,并增加细节信息。
                             除DFD外,在进行建模时,还可结合数据字典和加工处理说明对DFD进行补充。数据字典以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储,通常包括数据流条目、数据存储条目和数据项条目。数据流条目描述DFD中数据流的组成,数据存储条目描述DFD中数据存储文件的组成,而数据项条目则描述数据流或数据存储中所使用的数据项。加工处理的说明则可采用结构化自然语言、判定表和判定树等多种形式进行详细描述,其目的在于说明加工做什么。
                             掌握上述的工具后,即可对问题进行结构化的分析,其实施步骤如下:
                             (1)确定系统边界,画出系统环境图。
                             (2)自顶向下,画出各层数据流图。
                             (3)定义数据字典。
                             (4)定义加工说明。
                             (5)将图、字典以及加工组成分析模型。
                             DFD、数据字典和处理加工说明可以充分地描述系统的分析模型,其后需要对分析模型进行变换从而得到系统的总体设计模型。系统总体设计模型可以采用层次图、HIPO图和结构图来表达,但不论是哪一种图形工具,都反映了模块间的调用关系。
                             在分析模型的基础上进行设计时,主要是针对DFD进行变换从而得到模块的调用关系图,因此,需要掌握数据流的变换设计与事务设计。面向数据流的设计方法把数据流图映射成软件结构,数据流图的类型决定了映射的方法,数据流图可分为变换型数据流图和事务型数据流图。变换型数据流图具有明显的输入、变换(或称主加工)和输出;而事务型数据流图则是数据沿输入通路到达一个处理时,这个处理根据输入数据的类型在若干动作序列中选择一个来执行。变换设计的核心在于确定输入流和输出流的边界,从而孤立出变换中心;事务设计的核心在于将事务类型判断处理变换成调度模块以选择后续的输出分支模块。
                             经过总体设计阶段的工作,已经确定了软件的模块结构和接口描述,但每个模块仍被看作黑盒子。后续的详细设计目标是确定怎样具体地实现所要求的系统,经过详细设计,可以得出对目标系统的精确描述,从而在编码阶段可以将这个描述直接翻译成用某种程序设计语言书写的程序。因此,详细设计的结果基本上决定了最终的程序代码的质量。详细设计可以采用程序流程图、N-S图、PAD图和PDL语言等工具来表达。
                             数据库应用程序的设计可以借鉴传统的结构化程序设计方法,使用“输入一处理一输出”模型编写系统结构,这些模型大部分依靠数据库和文件,并且不需要复杂的实时处理。同时也有着广泛的结构化程序设计语言作支持,如C、Basic、Pascal、Fortran等。
                             面向对象开发方法
                             目前,面向对象分析和设计通常采用UML。UML是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,已成为面向对象建模的工业标准。UML通过事务、关系和图对现实世界进行建模。
                             面向对象开发方法将问题和问题的解决方案组织为离散对象的集合,数据结构和行为都包含在对象的表示中。面向对象的特性包括表示、抽象、分类、封装、继承、多态和持久性。面向对象开发方法包括面向对象分析、面向对象设计和面向对象实现。面向对象分析强调在问题领域内发现和描述对象或概念。例如,在图书馆信息系统里包含了书、图书馆和顾客这样一些概念。面向对象设计采用协作的对象、对象的属性和方法说明软件解决方案的一种方式,强调的是定义软件对象和这些软件对象如何协作来满足需求,是面向对象分析的延续。例如,图书馆系统中的软件对象“书”可以有“标题”属性和“获取书”方法,在面向对象编程过程中会实现设计的对象,如Java中的Book类。
                             面向对象开发方法中分析和设计有时会存在一部分重叠,不是完全独立的活动。在迭代开发中,不严格区分分析、设计和实现,而是每次迭代不同程度地进行精化。有关应用程序设计的详细内容可参考本书第10章。
   题号导航      2025年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第25题    在手机中做本题