数据字典

​ 数据字典

(Data Dictionary,DD)是数据收集和分析后所获得的成果,它定义了所有与系统相关的数据项、数据结构、外部实体、数据流、数据存储、处理逻辑等数据字典元素,并按字典顺序组织编写,以方便用户和开发人员理解系统的输入、输出、存储和处理逻辑。

  • 数据字典中的所有描述应该具有严密性、准确性和无二义性。
  • 数据字典和DFD共同构成了数据库系统的逻辑模型,是需求规格说明书的主要组成部分。

词条

数据字典用相应数据字典元素的词条描述,每个词条应包含以下信息:

  • 名称:定义数据字典元素的名称。每个数据字典元素都有一个区别于其他数据字典元素的名称,不允许不同的数据字典元素使用同一名称。数据字典元素的名称一般和业务管理的单据、帐本等实际工作中所用的名称一致。

  • 别名:定义数据字典元素的别名。有些数据字典元素可能有别名,如库存管理系统中的订货单的别名有订单。

  • 代码:定义数据字典元素的代码,代码一般可由汉语拼音声母缩略而成、或者用英文单词或英文缩略词等。代码既可以用于数据库需求分析和设计,还可以在数据库实现时用于表示基本表、视图的属性名称。不允许不同的数据字典元素使用同一代码。

  • 定义数据字典元素的编号。良好的编号方法能够很好地反映数据字典元素之间的关系,方便数据库开发人员阅读、审核,也是避免数据分析遗漏的有效手段。

  • 分类:定义数据字典元素的类别,是数据项、数据结构、外部实体、数据流、数据存储还是处理逻辑。

  • 描述:定义数据字典元素的含义、构成等。

符号 含义 说明
= 定义为,等于,由…构成 等式左边“定义为”、“等于”右边,或者“由”右边“构成”
+ 例如,x=a+b,表示xab组成
[...|...] 例如,x=[a|b] ,表示xab组成
重复 表示大括号中的内容重复出现。例如,x={a},表示x由0个或多个a组成
mn 有重复次数限制的重复 表示大括号中的内容重复出现,其中mn分别表示容重复次数的下限和上限。例如,x=3{a}5表示x由3个a、或4个a、或5个a组成
(...) 可选 例如,x=(a) ,表示a可在x中出现,也可不出现
‘...’ 字符或字符串 单引号中的内容是字符或字符串。例如,x=‘a’,表示x取值字符a
.. 连接符 例如,x=1..9,表示x取1到9中任意一个值

数据项

  • 数据项也称为数据元素,是在其所属系统范围内具有完整意义的、不可再分的数据。

  • 数据项的含义是相对的,它和所属系统有着密切的关系。即某些数据在一个系统中是数据项,而在另一个系统中未必是数据项。

  • 在数据库系统开发中,大部分数据项作为基本表和视图的属性(属性也称为字段、属性列、列)的设计依据,部分作为应用程序常量或变量的设计依据。

  • 数据项用数据项词条描述。数据项词条一般应包含如下内容:

    • 数据项名称 给出数据项的名称。
    • 别名 如果数据项有多个名称,则给出别名。
    • 编号 给出数据项的编号。可采用自顶向下的方法编号。
    • 含义说明 说明数据项的含义、用途等。
    • 类型 说明数据项的数据类型,如字符型、数值型、日期型、逻辑型、备注型等。
    • 长度 说明数据项长度,常用字节数、二进制位数等表示。
    • 取值范围及含义 说明数据项的取值范围及含义。例如,性别数据项取值范围为{1, 0},其中1表示’男’、0表示’女’。
    • 相关元素 说明与该数据项有关的DFD、数据字典元素等。
数据项名称 销售单编号
别名 销售单号
编号 1.1.2
含义说明 每个销售单必须是唯一编号,以便查询和审核
类型 字符型
长度 20B
取值范围及含义 销售员号+顺序号。其中,销售员号的取值范围及含义见销售员词条,顺序号=’000000’..’999999’
相关元素 销售员

数据结构

  • 数据结构是由若干个相互关联的数据项依据某种逻辑联系组织起来的联合体。例如,在成绩管理系统中,学生信息就是一个数据结构,即用姓名、学号、所在系、专业等数据项联合起来描述学生,表示学生身份的完整信息。

  • 此外,数据结构可能是若干个数据项或其他数据结构构成的。也就是说,数据结构中可以含有数据结构。

  • 在数据库系统开发中,数据结构可以用基本表、视图等实现。

  • 数据结构用数据结构词条描述。数据结构词条一般应包含如下内容:

    • 数据结构名称 给出数据结构的名称。
    • 别名 如果数据结构有多个名称,则给出别名。
    • 编号 给出数据结构的编号。可采用自顶向下的方法编号。
    • 含义说明 说明数据结构的含义、用途等。
    • 组成 说明数据结构是由哪些数据项或数据结构组成的。
    • 相关元素 说明与该数据结构有关的DFD、数据字典元素等。

    其中,“组成”和“相关元素”可能构成数据完整性约束条件。

数据结构名称 学生
别名
编号 1.1.3
含义说明 为了方便访问学生信息,将姓名、学号、所在系、专业作为一个整体进行存取
组成 姓名+学号+所在系名称+专业名称
相关元素 姓名,学号,所在系名称,专业名称

外部实体

  • 外部实体是指不受系统控制、处于系统之外的事物、机构、人员等客观实体的统称。
  • 外部实体在DFD中一般作为数据流的源点(起点)或汇点(终点)。在数据库系统开发中,外部实体可作为基本表、应用程序常量或变量的设计依据。
  • 外部实体用外部实体词条描述。外部实体词条一般应包含如下内容:
    • 外部实体名称 给出外部实体的名称。
    • 别名 如果外部实体有多个名称,则给出别名。
    • 编号 给出外部实体的编号。可采用自顶向下的方法编号。
    • 简要描述 说明外部实体的性质、职能等。
    • 输入的数据流 列出进入该外部实体的数据流。
    • 输出的数据流 列出离开该外部实体的数据流。
    • 数量:在整个DFD中,该外部实体出现的次数。
外部实体名称 教务科
别名
编号 1.5
简要描述 负责日常教学管理工作,如排课表、教学调度、学生成绩管理
输入的数据流 教学进度表、课程成绩单、调课申请表、免修申请表
输出的数据流 教学任务书、课程表、成绩单
数量 6

数据流

  • 数据流是系统中有着起点和终点的数据结构;其中,起点和终点可以是外部实体、处理、数据存储之一,但是起点和终点中至少有一个是处理。数据流反映了数据从起点到终点的移动。例如,在学生成绩管理系统中,从成绩数据存储中读出某个学生的成绩用于形成成绩单,成绩就是数据流,其起点是成绩数据存储、终点是形成成绩单处理。
  • 在数据库系统开发中,数据流可以用视图等实现。
  • 数据流用数据流词条描述。数据流词条一般应包含如下内容:
    • 数据流名称 给出数据流的名称。
    • 别名 如果数据流有多个名称,则给出别名。
    • 编号 给出数据流的编号。可采用自顶向下的方法编号。
    • 说明 简要介绍数据流产生的原因和结果。
    • 数据流来源 指出数据流来自何方。
    • 数据流去向 指出数据流到何处去。
    • 组成 说明数据流是由哪些数据结构组成的。
    • 平均流量 给出数据流平均流量,即单位时间(如每天、每周、每月)内传输的次数。
    • 高峰期流量 给出数据流高峰期的流量。平均流量、高峰期流量等为数据库的存储设计、服务器设计等提供依据。
    • 相关元素 说明与该数据流有关的DFD、数据字典元素等。
数据流名称 成绩
别名
编号 1.1.3
说明 因学生或管理人员查询成绩而产生
数据流来源 处理1.2.1:读取学生成绩
数据流去向 处理1.2.3:显示学生成绩
组成 姓名+学号+课程代码+课程名称+成绩
平均流量 600次/天
高峰期流量 期末,50000次/天
相关元素 处理1.2.1、处理1.2.3,数据项1.2.1、数据项1.2.2、数据项1.2.3、数据项1.2.4、数据项1.2.5

数据存储

  • 数据存储是数据及其结构停留或保存的地方,是数据流的来源和去向之一。数据存储可以是手工文档、手工凭单或计算机文档。例如,在学生成绩管理系统中,学生基本信息就是一个数据存储。

  • 在数据库系统开发中,数据存储一般用基本表实现。

  • 数据存储用数据存储词条描述。数据存储词条一般应包含如下内容:

    • 数据存储名称 给出数据存储的名称。
    • 别名 如果数据存储有多个名称,则给出别名。
    • 编号 给出数据存储的编号。数据存储编号一般以字母F开头,然后按顺序编号。
    • 说明 简要介绍存放的是什么数据。
    • 输入的数据流 说明进入该数据存储的数据流。
    • 输出的数据流 说明从该数据存储出去的数据流。
    • 组成 说明数据存储是由哪些数据结构组成的。
    • 数据量 说明每次存取多少数据。
    • 存取频度 给出该数据存储单位时间(如每天、每周、每月)内的存取次数。
    • 存取方式 说明是批处理还是联机处理、是检索还是更新、是顺序检索还是随机检索,指出关键字等。
    • 数据量、存取频度、存取方式等为数据库的存储设计、服务器设计等提供依据。
    • 相关元素 说明与该数据存储有关的DFD、数据字典元素等。
    数据存储名称 学生基本信息
    别名
    编号 F1
    说明 存储学生的基本信息
    输入的数据流 学生基本信息
    输出的数据流 学生基本信息、学生简要信息
    组成 姓名+学号+曾用名+性别+籍贯+民族+家庭出身+个人成份+政治面貌+出生日期+入学前文化程度+毕业学校+参加工作日期+入学前单位+家长姓名+邮政编码+家庭地址+联系电话+所在系+专业+班级+入学日期+学制
    数据量 平均每次访问5个学生的基本信息,每次最多访问2000个学生的基本信息
    存取频度 平均频度:600次/天,期末高峰期频度:50000次/天
    存取方式 联机处理,检索+更新,随机检索,关键字为学号
    相关元素 处理1.2.1、处理1.2.3,数据项1.2.1、数据项1.2.2……

处理逻辑

  • 数据库系统要做的工作包括数据读取、数据变换、数据显示、数据写入、数据通信等,这些工作在DFD中用处理来表示。处理逻辑用于描述处理是如何工作的,有哪些输入和输出。描述处理逻辑的方法比较多,如判定表、判定树、结构化自然语言、伪代码(相关内容在软件工程、高级语言程序设计、算法设计等著作中有比较深入的介绍),但这些方法占用篇幅比较大。相反,数据字典中的处理逻辑词条用很小的篇幅给出处理逻辑的简明描述,便于快速地从宏观上了解数据库系统的功能,因而应用非常广泛。
  • 在数据库系统设计与实现阶段,处理逻辑往往与应用程序模块形成一一对应的关系。
  • 处理逻辑词条一般应包含如下内容:
    • 处理名称 给出处理的名称。
    • 编号 给出处理的编号,编号与DFD一致。
    • 说明 简要介绍处理及其功能。
    • 输入的数据流 列出进入该处理的数据流。
    • 输出的数据流 列出离开该处理的数据流。
    • 处理逻辑 简要介绍处理事项、逻辑顺序。注意,由于词条的空间不能太大,处理逻辑在数据字典中一般不需要详细描述,详细描述应在软件功能分析中进行。
    • 平均执行频率 给出该处理单位时间(如每天、每周、每月)内的平均运行次数。
    • 平均执行频率 给出该处理单位时间(如每天、每周、每月)内的高峰期运行次数。
    • 相关元素 说明与该处理逻辑有关的DFD、数据字典元素等。
处理名称 生成成绩总表
别名
编号 1.1.3.2
说明 成绩总表是学生在校期间全部成绩的汇总。本处理生成成绩总表后,提交给打印成绩总表处理打印
输入的数据流 学号、成绩、学生、课程
输出的数据流 成绩总表
处理逻辑 该模块通过学生学号从成绩数据存储中读取该学号学生的所有课程成绩,再从学生基本信息数据存储中读取学生姓名、专业和所在系等数据,然后从课程名录数据存储中读取课程名称和学分等信息,最后按格式生成成绩总表
平均执行频率 200次/天
高峰期执行频率 毕业前夕,3000次/天
相关元素 处理1.1.3.1、处理1.1.3.3、数据存储F1、数据存储F2……

数据字典编制的结构化方法

  • SA方法可以用来编制和组织数据字典。具体做法是:首先是数据字典的词条按照“自顶向下、逐层分解”的顺序展开,这样做的好处是层次清晰、易于阅读。其次是数据字典的编号也可以利用层次化的思想进行设计,这样做的好处是容易找出数据字典元素之间的层次关系。

  • 例2-1 试用SA方法编制图2-12所示的银行储蓄管理系统的“银行存折”数据存储相关的数据存储、数据结构、数据项等词条。为了节省篇幅,我们仅给出数据字典元素的名称,组成(或含义)、类别和编号。

    • 存折=户名+所号+帐号+开户日+性质+(印密)+1{存取行}50,数据存储,编号:F1。

    • 户名=2{字母}24,数据项,编号:1.1。

    • 所号=‘0001’…‘9999’,数据项,编号:1.2。

    • 帐号=‘00000001’…‘99999999’,数据项,编号:1.3。

    • 开户日= 年+月+日,数据结构,编号:1.4。

    • 性质=‘1’..‘6’,数据项,编号:1.5。其中‘1’表示普通帐户,‘2’表示工资帐户等。

    • 印密=‘0’ ..‘1’,数据项,编号:1.6。其中‘0’表示有印密;‘1’表示没有印密,即印密在存折上不显示。

    • 存取行=日期+(摘要)+支出+存入+余额+操作+复核,数据结构,编号:1.7。

    • 日期= 年+月+日,数据结构,编号:1.7.1。

    • 年=‘0001’..‘9999’,数据项,编号:1.7.1.1。

    • 月=‘01’..‘12’,数据项,编号:1.7.1.2。

    • 日=‘01’..‘31’,数据项,编号:1.7.1.3。

    • 摘要= 1{字母}4,数据项,编号:1.7.2。其中摘要的内容用缩略词表示业务种类,如“存”、“取”、“转”、“换”分别表示“存款”、“取款”、“转帐”、“更换新存折”。

    • 支出=金额,数据项,编号:1.7.3。

    • 存入=金额,数据项,编号:1.7.4。

    • 余额=金额,数据项,编号:1.7.5。

    • 金额=0.01..99999999.99,数据项,编号:1.7.3.1。

    • 操作=‘00001’..‘99999’,数据项,编号:1.7.6。

    • 复核=‘00001’..‘99999’,数据项,编号:1.7.7。

posted @ 2020-04-22 10:58  vlj  阅读(8220)  评论(0编辑  收藏  举报