(二)数据字典DataDictionary数据字典(DD)对DFD中的每一成分给以详细定义DD的类型DD的定义与实现方法数据字典是关于数据的数据库,它是对数据流程图上各个元素作出详细的定义和说明。1详细定义DFD成分定义式中使用的符号:操作符含义描述=定义为+与(顺序结构){...}重复(循环结构)〔..|..〕或(选择结构)(...)任选m..n界域*...,*注释符1详细定义DFD成分限制重复次数:35或53{}表示允许重复3-5次{}33{}表示恰好重复3次{}{}1表示至少出现1次表示允许重复0至任意次3{}32DD的类型数据流数据存储数据项加工数据流条目给出DFD中某个数据流的定义,通常包括:数据流标识数据流来源数据流去向数据流的数据组成流动属性描述:频率、数据量购书单发票领书单审查并开发票开领书单无效书单学生12各班学生用书表举例:学生教材存量表数据流条目举例数据流名:发票别名:购书发票组成:(学号)+姓名+{书号+单价+数量+总价}+书费合计数据量:100次/天高峰值:开学期间400次/天数据存储条目给出DFD中某个数据存储的定义,通常包括:数据存储名字数据存储描述数据存储组成数据存储方式关键码存取频率和数据量安全性要求(用户存取权限)购书单发票领书单审查并开发票开领书单无效书单学生12各班学生用书表举例:学生教材存量表数据存储条目举例文件名:各班学生用书表别名:无组成:{系编号+专业和班编号+年级+{书号}}组织:按系、专业和班编号从小到大排列存取要求:关键字是专业和班编号数据项条目(数据元素)不可再分解的数据单位,包括:名称描述数据类型长度(精度)取值范围及缺省值计量单位相关数据元素及数据结构数据项条目举例数据项名:系编号别名:取值:2{数字}2注释:*例如:01,12*数据项条目举例数据项名:专业和班编号别名:取值:3{数字}3注释:*例如:305*数据项条目举例数据项名:年级别名:取值及含义:〔F|M|J|S〕F-freshmen,一年级M-sophomore,二年级J-junior,三年级S-senior,四年级注释:F,M,J,S可分别用1,2,3,4代替数据项条目举例数据项名:书号别名:取值:{字母}+{数字}注释:*例如:OS4,ENG1*加工条目加工类条目即数据处理描述,也称为小说明。描述实现加工的策略而不是实现加工的细节。小说明可认为是DD的组成部分。也可在DD中定义只说明每个加工的组成(每个处理分解成多少小处理),而在小说明中详细描述它的处理逻辑。加工条目描述的内容处理逻辑(简述)描述基本加工如何把输入数据流变化为输出数据流的处理步骤,不涉及具体处理方法。执行条件输入输出优先级执行频率出错处理对策购书单缺书单销售采购12第二层DFD(0层)教材购销系统教材存量表学生F1缺书登记表F2书库保管员进书通知教材入库信息领书单按书号汇总缺书2.12.3第三层DFD(1层)采购子系统(2.0)待购教材表F5教材一览表F6书库保管员进书通知教材入库信息教材存量表F12.2按出版社统计缺书修改教材库存和待购量F2缺书登记表缺书单加工条目举例在DD中定义说明每个加工的组成:加工名:采购(CG111MD)编号:2.0加工激活条件:得到图书采购员采购操作命令加工逻辑:2.0采购={2.1按书号汇总缺书+2.2按出版社统计缺书+2.3修改教材库存和待购量}执行频率:随时加工举例加工名:月票额统计(MHCW713MD)编号:7.1.3激活条件:收到每日售票额信息处理逻辑:1统计日月票额总和日月票额信息=每日月票额信息之和2统计月合计月合计信息=每日合计信息之和执行频率:1次/月某订货系统功能说明如下:假设某一企业采购部门每天需要一张订货报表,报表按材料编号排序,报表中列出所有需要再次订货的材料。对于每种需要再次订货的材料应列出下列数据:材料编号、名称、订货数量、目前价格(或参考价格)、主要供应单位、第二供应单位等。材料入库或出库称为事务,通过放在仓库的CRT终端把事务报告给订货系统。当某种材料的库存数量少于库存量临界值时就应该再次订货。应用举例(1)如何画出上述订货系统的数据流程图呢?考虑数据的源点和终点。从上面对系统的描述可以知道,仓库管理员通过终端把事务报告给订货系统,系统经过汇总处理,每天向采购部提供一张订货报表。所以,采购员是数据的终点,而仓库管理员是数据的源点。应用举例(1)仓管员0.0订货系统采购员事务订货报表图(a)订货系统的顶层数据流程图考虑处理。问题给出“采购部需要报表”,因此必须有一个用于产生报表的处理。输入事务的结果是改变材料库存量,然而任何改变数据的操作都是处理,因此对事务进行的加工是另一个处理。考虑数据流。系统把订货报表送给采购部,因此订货报表是一个数据流;仓库需要将每笔事务输入到系统中,显然事务是另一个数据流。应用举例(1)考虑数据存储。从问题的阐述中,可以看出产生报表和处理事务这两个处理在时间上明显不匹配,每当有一个事务发生时就必须立即处理事务,而每天只产生一次订货报表。因此,用来产生订货报表的数据必须存放一段时间,也就是应该有一个数据存储。另外,“当某种材料的库存数量少于库存量临界值时就应该再次订货”,这个事实意味着必须在某个地方有材料库存量和库存量临界值这样的数据。因此,需要有一个保存清单的数据存储。应用举例(1)一旦把数据流程图中的四种成份都分离出来之后,就可着手绘制系统的数据流程图了。数据流程图的绘制也是采用自顶向下的方法,由粗到细,逐层细化,最后形成一套完整的拟建系统的数据流程图。应用举例(1)仓管员1.0处理事务采购员事务订货报表图(b)订货系统的一层数据流程图2.0产生报表D2订货信息D1库存信息数据流图D21.1事务输入和检验仓管员1.2更新库存1.3处理订货D1库存信息F3库存F1事务事务F2F4缺货信息F5订货信息订货信息图(c)订货系统的2层数据流程图(子图1)D2采购员2.0产生报表F6订货汇总信息F7订货报表订货信息图(d)订货系统的1层数据流程图(图b的局部,各数据成分加上编号)数据流图(1)数据存储条目编号名称流入数据流流出数据流组成组织形式D1库存清单文件F3F3材料编号、材料名称、单价、数量按材料类别排序D2定货信息文件F5F6时间、材料编号、材料名称、定货数量、目前价格、主要供应者、次要供应者按时间和材料类别排序(2)数据流条目编号名称来源去处组成流量说明F1材料出入库单仓管员事务输入和检验日期、材料编号、材料名称、事务类型、单价、数量60份每天事务类型1—进货2—出库F2正确的事务单事务输入和检验更新库存同上同上同上F3库存更新库存库存清单文件材料编号、材料名称、单价、数量处理与库存双向流动F4缺货信息更新库存处理定货日期、材料编号、材料名称、单价、缺货量低于库存临界的库存数量(需订货量)F5定货信息处理定货定货信息文件同定货信息文件F6同上定货信息文件产生报表同上F7定货报表产生报表采购部同上每天1份(3)数据项条目编号名称数据类型长度小数位取值范围说明01日期D0802材料编号C040000-999903材料名称C2004单价N080305库存数量N080206定货数量N080207目前价格N080308主要供应者C2009次要供应者C2010事务类型C1(4)加工条目编号名称输入处理逻辑输出P1.1事务输入与检验出入库原始单据提供出入库的录入界面并检验正确性正确的出入库信息P1.2更新库存进出库信息库存库存量=现库存量+入库量-出库量。若库存量库存临界量,则需订货库存,缺货信息P1.3处理定货缺货信息根据缺货量写入定货信息文件定货信息P2.0产生报表定货信息根据处理订货的请求,生成订货报表,并打印定货报表(5)外部项条目编号名称简述输入数据流输出数据流01仓管员对材料的出入库进行登记原始出库单或入库单据02采购部根据定货报表进行定货定货报表应用举例(2)某高校学分制学生选课系统要求如下:学生根据学期开课清单填写选课单,学生选课系统对每个学生的选课单进行处理:根据教学计划检查该生是否存在尚未取得学分的必修课程,如果存在则要求重修;计算该学生课程上课时间冲突率:如果不发生冲突或者冲突率小于30%则可以选修,否则根据重修—必修—任选的优先级删除已选课程。最后产生每个学生的个人课表,以及每门课程的成绩记录单(列出该门课程的学生名单)。1数据流图选课单学生教师成绩记录单学生课表图1学生选课系统的顶层DFD学生选课系统选课单学生学生教师开课清单课程注册费用成绩记录单学生课表图2学生选课系统1-DFD1.学生选课2.课程注册3.表格打印开课清单1.4计算课程注册费1.1合法校验1.3计算课程冲突率1.2查已修课程成绩选课单学生成绩库学生学号合法的选课记录费用重修课程已选课程图3学生选课系统加工1的下层分解(2-DFD1)1数据流图(续)学生教师课程注册成绩记录单学生课表图4学生选课系统加工3的下层分解(2-DFD2)3.1打印学生课表3.2打印课程成绩单1数据流图(续)(1)数据流条目数据流:选课单选课单=学生学号+{课程编码+备注}1数据流:学生课程表学生课程表=学生学号+{课程时间表}1数据流:成绩记录单成绩记录单=课程编码+课程名+[任课教师|指导教师]+{学号+成绩(+备注)}注释:备注域用于标识课程类别(必修/限选/任选/重修)2数据字典数据流:费用费用=学生学号+{课程编码+课程费用}1+合计金额数据流:学生学号(别名:学号)学生学号:基本数据项,由8位数字组成。其中,1~6位为班级号,7~8位为班内序号,从01开始。数据流:合法选课记录(别名:选课记录,重修课程,已选课程)合法选课记录=学号+{课程编码+备注}12数据字典(2)文件条目(数据存储条目)文件:开课清单课程记录=课程编码+课程名+注册金额+[任课教师|指导教师](+职称)+起始周+终止周+{上课时间}文件组织:以课程编码为记录关键字升序排列2数据字典文件:课程注册注册记录=学生学号+课程编码+课程名+注册金额+[任课教师|指导教师](+职称)+起始周+终止周+{上课时间}文件组织:以课程编码为记录关键字升序排列文件:学生成绩库学生成绩=学生学号+课程编码+成绩+备注文件组织:以学号为记录关键字升序排列注释:备注域用于标识课程类别(必修/限选/任选/重修)2数据字典(3)数据项条目课程编码:XXXXXXX(7位数字)第1位:系编号第2∼3位:教研室编号第4∼6位:课程序号第7位:课堂号课程时间表=课程编码+起始周+终止周+{星期+节+教室号}起始--终止周:1∼22星期:1∼6节:1∼12教室号:XXXX课程名:长度(=30的字符串_任课教师:姓名长度=8的字符串成绩:nnn(3位整数)(4)加工说明(略)2数据字典3DD的定义和实现方法DD定义方法:找出DFD中所有数据成分(数据流,数据存储,数据项,加工)对数据项分类作各成分组成的定义规定特性和限制排序3DD的定义和实现方法DD排序方法:按DFD层次排序先层次排序;后内部排序(字母,汉字...顺序)3DD的定义和实现方法DD实现方法:人工方法(利用编号的卡片)自动方法(利用字典管理程序)DD应具特点:通过名字可方便查阅数据定义无冗余易更新修改(三)加工小说明描述加工的工具判定树判定表结构化语言1判定树/决策树(DecisionTree)条件1条件2结果计7-9月订票量20:15%算12月订票量≤20:5%折扣1-6月订票量20:30%量10,11月订票量≤20:5%例:优惠折扣某商业公司的销售策略规定:不同的购货量、不同的顾客可以享受不同的优惠。具体办法是:年购货额在5万元以上且最近三个月无欠款的顾客可享受15%的折扣;近三个月有欠款,但是本公司十年以上的老顾客,可享受10%的折扣;若不是老顾客,只有5%的折扣;年购货额在5万元以下无折扣。判定表ST语言例:优惠折扣交易额大于5000元以最近三个月无欠款: