第十二章 数据库设计方法

12.1 数据库设计概述

  数据库设计

    数据库设计是指利用现有的数据库管理系统,针对具体的应用对象构建合适的数据模式,建立数据库及其应用系统,使之能有效地收集、存储、操作和管理数据,满足企业中各类用户的应用要求。

    数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。

  数据库设计基本步骤

    1.需求分析阶段

      进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理需求分析)。

    2.概念设计阶段

      它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

    3.逻辑设计阶段

      将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。

    4.物理设计阶段

      为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。

    5.数据库实施阶段

      设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

    6.数据库运行和维护阶段

      对数据库系统进行评价、调整与修改。

  数据库设计过程中的各级模式

 

  数据库设计工具

    数据库设计更侧重于数据建模,而程序设计更侧重于业务建模。

    在真实的软件开发环境中,数据建模与业务建模两者是相辅相成的,不可或缺。

    在关系数据库数据建模时,数据库的开发人员经常使用ERwin、PowerDesigner、Rational Rose以及Visio等CASE工具创建E-R图,然后使用ERwin、PowerDesigner以及Visio等工具直接创建数据库或者直接生成SQL脚本文件。

12.2 系统需求分析

  1.需求分析

     需求分析是设计数据库的起点,需求分析的结果是否准确反映用户的实际需求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。

    需求分析的任务是通过详细调查现实世界处理的对象(如组织、部门、企业等),充分了解原系统(手工系统或计算机系统)的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。

    用户对数据库要求:

      信息要求:了解用户获得信息的内容、性质及其联系、存储哪些数据

      处理要求:了解用户希望数据库应用系统对数据进行什么处理,对各种数据处理的相应时间,处理的频率。数据处理方式的要求。

      安全性要求:了解用户对数据库中存放的信息的安全保密要求。

      完整性要求:了解用户对数据库中存放的信息应满足什么样的约束条件。

 

  2.需求分析的方法

     需求分析步骤:

      收集资料:是数据库设计人员和用户共同完成。确定企业组织的目 标,从这些目标导出数据库的总体要求。

      分析整理:对所收集到的数据进行抽象的过程。

      分析整理:对所收集到的数据进行抽象的过程。

      数据字典:是系统中各类数据描述的集合,包括数据项、数据结构、 数据流、数据存储和处理过程。

      用户确认:需求分析得到的数据流图和数据字典要返回给用户,通过反复完善,最终取得用户的认可。

    调查用户需求的方法

      跟班作业

      开调查会

      请专人介绍

      询问

      问卷调查

      查阅记录

 

 

  3.数据流图

    数据流图表达了数据和处理过程的关系。

    在SA方法中,处理过程的处理逻辑常常借助于判定表或判定树来描述。

    系统中的数据则借助于数据字典(Data Dictionary,DD)来描述。

    对用户需求进行分析与表达后,必须提交给用户,征得用户的认可。

    数据流图符号说明:

    图书管理系统的数据流

      (1) 注册。

      (2) 借书。

      (3)还书。

      (4) 图书查询。

 

 

 

 

  4.数据字典

    数据字典是对数据流图的注释和重要补充,它帮助系统分析人员全面确定用户的要求,并为以后的系统设计提供参考依据。

    数据字典的内容包括:数据项、数据结构、数据流、数据存储和处理过程5个部分。

    其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

 

    1.数据项

      数据项是不可再分的数据单位 】

      对数据项的描述:

        数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}

      取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件

 

    2.数据结构

      数据结构反映了数据之间的组合关系。

      数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}

    3.数据项

      数据流是数据结构在系统内传输的路径。

      数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}

      数据流来源是说明该数据流来自哪个过程

      数据流去向是说明该数据流将到哪个过程去

      平均流量是指在单位时间(每天、每周、每月等)里的传输次数

      高峰期流量则是指在高峰时期的数据流量

    4.数据存储

      数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。

      数据存储描述={数据存储名,说明,编号,流入的数据流 ,流出的数据流,组成:{数据结构},数据量,存取方式}

      流入的数据流:指出数据来源

      流出的数据流:指出数据去向

      数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息

      存取方法:批处理 / 联机处理;检索 / 更新;顺序检索 / 随机检索

    5.处理过程

      处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息

      处理过程描述={处理过程名,说明,输入:{数据流}, 输出:{数据流},处理:{简要说明}}

      简要说明:主要说明该处理过程的功能及处理要求

        功能:该处理过程用来做什么

        处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等

        处理要求是后面物理设计的输入及性能评价的标准

  成绩管理系统数据流图的应用举例

    (1)数据项名:成绩。

      说明:课程考核的分数值。

      别名:分数。

      数据类型:数值型,带一位小数。

      取值范围:0~100。

    (2)数据结构名:成绩单。

      别名:考试成绩。

      描述:学生每学期考试成绩单。

      定义:成绩清单=学生号+课程号+学期+考试成绩。

    (3)处理过程:选课登记处理。

      输入数据流:学期、学生号、课程号。

      输出数据流:选课清单。

      说明:把选课学生的学生号、所处的学期号、所选的课程号记录在数据库中。

    (4)数据存储名:学生信息表。

      说明:用来记录学生的基本情况。

      组成:记录学生各种情况的数据项,如学生号、姓名、性别、专业、班级等。

      流入的数据流:提供各项数据的显示,提取学生的信息。

      流出的数据流:对学生情况的修改、增加或删除。

 

12.3 概念结构设计

  概念结构设计

    概念结构设计就是将需求分析得到的用户需求抽象为信息结构,即概念模型。

    (1)从逻辑设计中分离出概念设计以后,各阶段的任务相对单一化,设计复杂程度大大降低,便于组织管理。

    (2)概念模型不受特定的DBMS的限制,也独立于存储安排和效率方面的考虑,因而比逻辑模型更为稳定。

    (3)概念模型不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而更有可能准确反映用户的信息需求。

  概念模型的特点  

    (1) 语义表达能力丰富

    (2) 易于交流和理解

    (3) 易于修改和扩充

    (4) 易于向各种数据模型转换

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

    1 设计方法:

      ⑴自顶向下。首先定义全局概念结构的框架,然后逐步细化。

      ⑵自底向上。首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。

      ⑶逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。

      ⑷混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

    2 设计步骤

(1)进行数据抽象,设计局部 E-R 模型。

(2)集成各局部 E-R 模型,形成全局 E-R 模型.

    3 数据抽象和局部E-R模型设计

      数据抽象

        1.分类:将一类具有共同特性和行为的对象定义为一种类型,如E-R模型中的实体型。

        2.聚集:定义某类型的组成成分,对应E-R模型中实体的属性。

 

 

         3.概括:定义类型之间的子集联系,形成超(父)类、子类。

          概括的重要性质:继承,即子类集成超类的所有抽象,是E-R模型的抽象机制的扩充。

 

  局部 E-R 模型设计

    选择局部应用:中层数据流图为依据

    逐一设计局部E-R图

      根据数据抽象后所得的DD,并参照DFD

        标定局部应用中的实体、实体属性、实体码

        确定实体间的联系及类型

    属性确定原则:

      不能再具有需要描述的性质。

      不能与其他实体具有联系。

 

  局部视图必须满足条件:

    (1) 对用户需求是完整的。

    (2) 所有实体、属性、联系都有唯一的名字。

    (3) 不允许有异名同义、同名异义的现象。

    (4) 无冗余的联系。

  全局E-R模型设计

    全局E-R模型设计两个步骤。

      (1)合并,消除各局部 E-R 图之间的冲突,生成初步 E-R 图。

        依靠协商或应用语义消除各局部E-R图之间的冲突

        属性冲突:如属性的类型、取值范围冲突,或属性取值单位冲突

        命名冲突:如同名异义,或一义多名 结构冲突:

        如不同应用中,同一对象有不同的抽象或同一实体包含的属性不完全相同。

      (2)优化,消除不必要的冗余,生成基本 E-R 图。

 

posted @ 2019-05-20 19:50  souwote  阅读(685)  评论(0编辑  收藏  举报