第6章 管理信息系统的系统设计 系统分析阶段,主要解决的是新系统“做什么”的问题。而在系统设计阶段,需要回答的中心问题是“怎么做”,即通过给出新系统物理模型的方式,描述如何实现在系统分析中规定的系统功能。
第6章 管理信息系统的系统设计 主要内容:系统功能结构设计、系统的平台设计、子系统的分解、模块化设计、代码设计、数据库设计、人机界面设计、处理流程设计等内容。
6.1系统设计概述 6.1.1系统设计的目的与任务 系统设计阶段的主要目的是,将系统分析阶段所提出的、充分反应用户信息需求的新系统逻辑模型转换成可以实施的、基于计算机与网络技术的物理(技术)模型。逻辑模型主要确定系统“做什么”,而物理模型则主要解决“系统怎样做”的问题。
6.1.1系统设计的目的与任务 主要任务是从信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的要求,并考虑到经济、技术和运行环境等方面的条件,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信的软、硬件设备,提出系统的实施计划。
6.1.1系统设计的目的与任务 系统设计阶段的工作包括如下主要活动: 总体设计 详细设计 编写“系统设计说明书”
6.1.2系统设计的原则 应遵循以下的主要原则: 系统性 灵活性 可靠性 经济性
6.2系统功能结构设计 主要包括结构化设计方法、模块结构图及评价标准、转换策略、优化技巧等。系统的功能结构是在遵循结构化和模块化设计思想的基础上,以信息系统功能结构图和信息系统流程图来表示的。
6.2.1结构化设计方法 功能结构设计的方法包括,结构化设计方法(Structured Design,SD)、Jackson方法、Parnas方法等。 常使用的设计工具主要有:系统流程图,HIPO(分层和输入-处理-输出)技术,控制结构图,模块结构图等。
SD方法采用一组标准的准则和工具设计系统的模块结构,主要考虑以下几个问题: 每个子系统如何划分成多个模块。 如何确定子系统之间、模块之间传送的数据及其调用关系。 l 如何评价并改进模块结构的质量。 l 如何从数据流程图导出模块结构图。
6.2.2模块结构设计 模块结构图又称控制结构图或系统结构图,它是反映模块层次分解关系、调用关系、数据流和控制信息流传递关系的一种重要工具。模块结构图由模块、调用、数据、控制信息四种基本符号组成。
(一)结构图基本符号 模块 调用 数据信息 控制信息
模块 模块 可以是一个程序,也可以是一个函数或过程子函数。 模块具有四个属性:输入输出、处理功能、程序代码、内部数据 修改库存
调用 甲 乙 丙 丁 a) 调用 b) 判断调用 c) 循环调用
数据 用带空心圆的箭头表示传送的数据 ,并标上数据名,箭头的方向为数据传送的方向。 查职工 读人事 职工号 简历数据
控制信息 用带实心圆的箭头表示控制信息,并标上信息名,箭头的方向为传送的方向。 查职工 简历数据 职工号 无此职工 读人事
6.2.3*模块化 模块化:把系统划分为若干个模块,每个模块完成一个特定的功能,然后将这些模块汇集起来组成一个整体,完成指定功能的一种方法。 优点:使整个系统设计简易、结构清晰,可读性、可维护性强,提高系统的可行性,同时也有助于管理信息系统开发和组织管理。
6.2.3模块化 目标: 每个模块完成一个相对独立的特定功能; 模块之间的关联和依赖程度尽量小; 接口简单。 度量标准: 模块之间的耦合性(块间联系) 模块自身的聚合性(块内联系)
1.块间耦合 块间耦合:系统内不同模块之间互联程度的度量。 模块间的耦合度越低,模块的独立性越好。 形式有: 数据耦合 控制耦合 公共耦合 内容耦合
数据耦合 两个模块之间通过数据交换信息,且每一个参数均为数据。 开发票 计算水费 单价 数量 金额
控制耦合 两个模块之间,一个模块通过开关量、标志、名字等控制信息,明显地控制另一模块的功能。 开发票 水费/电费 金额 计算水费或电费
控制耦合(续) 把控制耦合转化为数据耦合 开发票 水费 电费 计算水费 计算电费
公共耦合 模块之间通过一个公共的数据区域传递信息。 A 公共数据区 B C
内容耦合 一个模块需要使用另一个模块的内部信息,或者转移进入另一个模块中时,这种联系方式则称为内容耦合。 内容耦合方式是改进模块时发生连锁错误的主要来源。
块间耦合遵循下列原则 模块间尽量使用数据耦合; 必要时才采用控制耦合; 限制公共耦合的范围; 坚决避免使用内容耦合。
2.块内聚合 形式有: 功能聚合 顺序聚合 通讯聚合 过程聚合 时间聚合 逻辑聚合 偶然聚合 块内聚合:衡量模块内各组成部分的凝聚程度 。 模块内的聚合度越高,模块的独立性越好。 形式有: 功能聚合 顺序聚合 通讯聚合 过程聚合 时间聚合 逻辑聚合 偶然聚合
2.块内聚合(续) 功能聚合:模块内部各组成部分全部为执行同一功能而结合为一个 整体。 顺序聚合:模块内部各组成部分,前一部分处理动作的输出是后一部分处理动作的输入。
通讯聚合:模块内部各组成部分的动作都使用相同的输入或产生相同的输出。 过程聚合:模块内部各组成部分的动作彼此间无关系,但必须以特定的次序(控制流)执行。 时间聚合:模块内部各组成部分的动作的动作必须在同一时间执行。
逻辑聚合:模块内部各组成部分在逻辑上具有相似的处理动作,但功能上、用途上却彼此无关。 偶然聚合:模块内部各组成部分之间无关系或关系松散。
3.块内聚合比较 组合名称 联结形式 可读性 可修改性 通用性 紧凑性 功能组合 好 好 好 好 10 顺序组合 好 好 好 中 9 组合名称 联结形式 可读性 可修改性 通用性 紧凑性 功能组合 好 好 好 好 10 顺序组合 好 好 好 中 9 通讯组合 中 中 中 不好 7 过程组合 中 中 中 不好 5 时间组合 不好 中 不好 较坏 4 逻辑组合 较坏 不好 较坏 较坏 0 偶然组合 最坏 最坏 最坏 最坏 0
模块形式判断树 是 否 功能聚合 顺序聚合 顺序重要吗? 通讯聚合 数据流 模块是否 执行单一 过程聚合 功能 模块组成部分 顺序重要吗? 关系判断 否 控制流 时间聚合 逻辑聚合 逻辑上相似吗? 偶然聚合
6.2.4* DFD导出初始结构图 从数据流程图导出系统的初始结构图,首先要区分数据流程图的结构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应的模块结构。 转换方法是建立在数据流程图(DFD)与模块结构图(MSC)之间关系的基础上的。
1.数据流程图的结构类型 (1)变换型DFD 一个数据流程图可以明显地分成输入、处理和输出三部分。
变换中心 输入 输出 输入 信息 正确 信息 结果 数据 格式 检查 处理 显示 物理 输入 逻辑 输入 逻辑 输出 物理 输出
(2)事务型DFD 事务型数据流程图一般呈束状形。 接受路径 动作路径 … 事务中心 1.0
2.转换策略 (1)以变换为中心的设计 步骤:a)找出变换中心确定主加工、逻辑输入和逻辑输出
2.转换策略 b)设计模块结构的顶层和第一层
2.转换策略 c)设计中、下层模块
(1)以变换为中心的设计 输入 变换中心 输出 处理后的汇款单 合格的汇款单 2 计算 汇费 3 产生 收据 收据 1 格式 检查 汇款单 业务数据 4 记账 明细账
(1)以变换为中心的设计 汇款处理系统 取得合格汇款单 计算汇费 记账 输出处理后的汇款单 合格的汇款单 处理后的汇款单 业务数据
(1)以变换为中心的设计 汇款处理系统 取得合格汇款单 计算汇费 记账 输出处理后的汇款单 格式检查 产生收据 打印收据 输入汇款单 合格的汇款单 处理后的汇款单 业务数据 汇款单 收据
2.转换策略 (2)以事务为中心的设计 步骤: 确定事务的来源; 确定以事务为中心的系统结构; 确定每一种事务以及它所需要的处理动作; 合并具有相同处理动作的模块,组成公共处理模块加入系统; 为每个事务处理模块设计下面的操作模块,再为操作模块设计细节模块。某些操作模块和细节模块可以被几个上一层模块共用。
(2)以事务分析为中心的设计 1.2 图书管理要求 新书入库 入库单 1 目录文件 1.5 注销单 1.1 注销图书 罚款单 要求类 借书单 型处理 借书单 1.3 还 借书 书 事务 中心 2 借书文件 单 无效输入 1.4 还书 罚款单
(2)以事务分析为中心的设计 图书处理系统 取得图书 处理要求 修改目录文件 操作层 细节层 新书入库 注销图书 借书 还书 打印罚款单 修改借书文件 …… 图书管理要求 入库单 借书单 还书单 注销单
6.2.5* 优化设计 将初始结构图根据模块独立性原则进行精化,对模块进行合并、分解修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的系统最终结构图。
6.2.5优化设计(续) 优化设计基本原则: 合理控制系统的深度与宽度 模块的扇入和扇出数要合理(扇出数5—7) 模块的大小要适当(一张A4纸) 消除重复的功能 作用范围和控制范围 设计单入口单出口模块
6.3 系统平台设计 主要包括管理信息系统的平台设计包括计算机软硬件选择、网络系统的设计、数据库管理系统的选择等。
6.3.1设计依据 从几个方面进行考虑: 系统的吞吐量 系统的响应时间 系统的可靠性 结构模式 地域范围或计算模式 数据管理方式
6.3.2计算机系统方式的选择 计算机处理方式可以根据系统功能、业务处理的特点,性能/价格比等因素选择批处理、联机实时处理、联机成批处理、分布式处理等方式。在一个管理信息系统中,也可以混合使用各种方式。
6.3.3计算机硬件的选择 选择技术上成熟可靠的系列机型:处理速度快;数据存储容量大;具有良好的兼容性与可扩充性、可维护性;有良好的性能/价格比;售后服务与技术服务好;操作方便;在一定时间内保持一定先进性的硬件。 主要有:服务器、客户机、网络主要设备、输入输出设备、后援设备
6.3.4计算机软件的选择 1.操作系统 2.数据库管理系统 3.开发工具: 4.应用软件
6.3.5计算机网络的选择 计算机网络系统的设计主要包括中小型主机方案与微机网络方案的选取、网络拓扑结构、互连结构及通信介质的选型、网络计算模式、网络操作系统及网络协议等的选择等。 网络计算模式原来一般采用客户机/服务器(C/S)模式,但随着Internal技术的发展和广泛应用,MIS的网络计算模式开始更多的采用浏览器/Web服务器/数据库服务器(B/W/D)模式。
6.3.6物理配置方案设计报告 1.计算机物理系统配置概述 (总体结构、背景、要求、原则、制约因素) 2.计算机物理系统选择的依据 (功能、容量、性能、硬件、通讯与网络、应用环境) 3.计算机物理系统配置 (硬件结构配置、通讯与网络系统配置、软件系统配置) 4.指出费用情况 (硬件、软件、机房、附属设施、人员培训、维护等) 5.具体配置方案的评价
6.4 代码设计 代码设计的任务:设计出一套供管理信息系统开发和运行所需的代码系统。 代码是指代表事物名称、属性、状态等的符号,它以简短的符号形式代替具体的文字说明。 代码设计的任务:设计出一套供管理信息系统开发和运行所需的代码系统。
6.4.1代码的功能 有以下几个方面主要功能: 1.便于录入 2.节省存储空间,提高处理速度 3.便于计算机识别和处理 4.提高数据标准化程度 5.提高处理精度
6.4.2代码设计的原则 遵循下面六条基本原则: 1.唯一性 2.通用性(标准化) 3.可扩充性 4.简洁性 5.系统性 6.易修改性 能否将对象唯一地加以标识是编码的首要任务。 2.通用性(标准化) 代码的编制应尽量标准化。 3.可扩充性 代码设计要留有足够的位置,以适应需要的变化。 应注意的是,留空太多也是一种浪费。 4.简洁性 5.系统性 6.易修改性
6.4.3代码的种类 1.顺序码:连续的数字或字母代表编码对象 2.层次码:按区间划分代码,每个区间有一定 的含义 身份证:350100 20080123 2014 18位= 前6位 + 中8位 +后3位+1校验位 地区编码 + 生日 + 顺序号和其它状态(性别)+校验位 如:张平的职工号为0001;李立为0002等; 1.顺序码:连续的数字或字母代表编码对象 优点:简单,位数少,易追加,易管理 ; 缺点:可识别性差,无逻辑性。 2.层次码:按区间划分代码,每个区间有一定 的含义 如某大学的学生代码* * * * * * 优点:分类明确,有严格的隶属关系,容量大; 缺点:位数多。
6.4.3代码的种类(续) 3.特征组合码:按分类对象的属性或特征分“面”, “面”内的类目按其规律编码 如:螺钉可选用材料、直径、螺钉头形状等三个“面” 第一面: 1-不锈钢 2-黄铜 3-钢 第二面: 1-Ø0.5 2- Ø 1 3- Ø 1.5 第三面: 1-圆头 2-平头 3-六角形头 代码234表示“黄铜Ø1.5方形头螺钉” 优点:具有一定的柔性,适合计算机处理 ; 缺点:利用率较低,易出现大量空码 。
6.4.3代码的种类(续) 4.十进制码:图书馆常用的图书编码方法,与层次 码的编码原理相同,所不同点是在十 进制码结构中采用了小数点符号. 5.条形码:条形码(barcode)是将宽度不等的多个 黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。
十进制码 例:500. 自然科学 621.3 电气工程 510. 数学 621.38 电子学 520. 天文学、地质学 530. 物理学、力学 …… …… 620 工程和技术科学 621 机械和电气工程 621.1 蒸汽动力工程 621.2 水力机械 621.3 电气工程 621.38 电子学 621.39 通信工程 621.4 内燃机工程
6.4.3代码的种类(续) 6.二维码:二维码是一种按某种规律在平面(二维方向)上分布用来记录数据符号信息的黑白相间的几何图形标识符。
6.4.4代码的校验 为了保证关键代码输入的准确性、减少输入错误,有意识地在编码设计的基础上,通过事先规定的某种数学方法,计算出校验码,附加在编码之后,作为编码的一部分。输入时与代码一起输入,此时计算机会用同种数学方法,输入代码进行数学计算,并与所输入的代码进行比较,以校验是否正确,并发现错误。
6.4.4代码的校验(续) 代码输入时常见的错误 抄写错误 如:1983错写成1903 易位错误 如:1983错写成1938 抄写错误 如:1983错写成1903 易位错误 如:1983错写成1938 双易位错误 如:1983错写成1389 随机错误 包括以上两种或三种的综合性错误 或其他错误
6.4.4代码的校验(续) 确定校验位的方法 将代码(Ci)各位乘以权因子(Pi),求出各位的积: C1P1,C2P2,...CnPn 求出加权和:S=C1P1+C2P2+...+CnPn 以称为模的常数 M 除和,求出余数R 即:R=S mod M 把模 M 减去余数 R 作为校验位, J=M-R 当J为10、11、12…时,其校验位码为A、B、C…
6.4.4代码的校验(续) 权因子的选取: ①几何级数,如 1,2,4,8,16,32,…… ②算术级数,如 1, 2,3,4,5,6,7,…… ③质数, 如 1,3,5,7,11,13,17,…… ④有规律的数,如 1,3,7,1,3,7,…… 模的选取: 可取 10,11,13等
6.4.4代码的校验(续) 例如,设代码为1 2 3 4 5,求其校验位值。 解:取权 1,2,4,8,16, 取模 11 则, 例如,设代码为1 2 3 4 5,求其校验位值。 解:取权 1,2,4,8,16, 取模 11 则, 原代码 1 2 3 4 5 权因子 16 8 4 2 1 乘积和 16+ 16+ 12+ 8 + 5 = 57 57/11=5......余数:2 因此,其校验位为:11-2=9 带校验位的代码(新代码)为123459(把模-余数作为校验位)
练习: 原代码1238,权因子为质数法,模M=10 , 以 J=M – R 为校验码,设计出其校验码。 原编码:1 2 3 8 原编码:1 2 3 8 权因子:11 7 5 3 S=11+14+15+24=64 R= S MOD M = 64 MOD 10 =4 J = M – R=10-4=6(校验位) 原代码加校验码:1 2 3 8 6
6.4.5 代码设计的步骤 确定代码对象 考查是否已有标准代码 根据代码的使用范围、使用时间,根据实际情况选择代码的种类与类型 考虑检错功能 编写代码表 编写相应的代码使用维护制度,保证代码的使用。
身份证校验位值的计算 现在的居民身份证由原先的15位号码升级为18位了。从左至右,第1-2位为省级行政区划代码,第3-4为为地级行政区划代码,第5-6位为县级行政区划代码,第7-10位为出生年份,第11-12位为出生月份,第13-14为出生日期,第15-17位为顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性,第18位为作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。
根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。
下面介绍算法。 先引入公式:
计算公式令结果为 Y,Y的计算公式为:Y = mod(S, 11)根据下表找出 Y 对应的校验码即为要求身份证号码的校验码C。
例如:假设某女性居民的15位身份证号码是320105820927512,32表示江苏省,01表示南京市,05表示鼓楼区,820927表示1982年9月27日。512表示是该地区同年同月同日的第512人,其中2表示是女性。那么,升级为18位后的号码为32010519820927512C。下面就根据公式来计算C的值。
Y = mod(S, 11)=MOD(313,11)=5 根据校验值对应表,可知C=7,该人员身份证号码为:320105198209275127
6.5 数据库设计 数据库设计的内容是:在对环境进行需求分析的基础上,进行满足要求及符合语义的逻辑设计,进行具有合理的存储结构的物理设计,实现数据库的运行等。 6.5.1数据描述过程 现实世界:指人们头脑之外的客观世界,它包含客观事物及其相互联系。 观念世界:又称信息世界,是现实世界在人们头脑中的反映。是对客观事物及其联系的一种抽象描述. 数据世界:是信息世界中信息的数据化。现实世界中的事物及其联系,在数据世界中用数据模型描述。
6.5.2 现实世界、信息世界和数据世界的关系 现实世界 信息世界 数据世界 个体: 一个实际存在且可识别的事物 实体: 具体描述的客观事物 6.5.2 现实世界、信息世界和数据世界的关系 现实世界 信息世界 数据世界 个体: 一个实际存在且可识别的事物 实体: 具体描述的客观事物 记录 总体: 同一类个体的集合; 实体集: 具有相同性质的实体 文件 特征项: 个体的特征; 属性: 实体的属性 数据项 标识特征项: 能够标识的特征项; 标识属性: 能够唯一表示实体的属性 关键字
现实世界、信息世界和数据世界的关系 加工转换 实体集 实体相关属性集合 数据库 记录相关属性集合 客观事物 事物相关属性集合 现实世界 认识选择描述
数据库设计是在选定数据库管理系统基础上建立数据库的过程。除用户要求分析外,包括概念结构设计、逻辑结构设计和物理结构设计三个阶段。 概念结构设计:根据用户需求设计数据库的概念数据模型(简称概念模型)。 E-R模型描述 逻辑结构设计:将概念模型转换成DBMS支持的数据模型。1NF、2NF、3NF 物理结构设计:为数据模型在设备上选定合适的存储结构和存取方法。
6.5.3数据库设计与系统开发的关系 数据库设计与系统开发阶段对照 用户要求分析 系统分析(详细调查) 概念结构设计 系统分析(逻辑设计) 逻辑结构设计 物理结构设计 系统设计 数 据 库 设 计 步 骤 系 统 开 发 数据库设计与系统开发阶段对照
6.5.4数据库设计的步骤 数据库设计的基本步骤: 1. 需求和约束分析 2.概念模式设计 3.逻辑模式设计 4.物理数据库设计 5.实施阶段 6.运行和数据库维护 其中,5和6是在系统实现阶段所做的工作
(一)需求和约束分析 进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。 包括: ● 调查用户要求 ● 数据分析 ● 确定环境约束条件 一般在系统分析时做 DFD DD的所有条目 提供实体与实体之间的联系。
(二)概念模式设计 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。 概念模式设计是整个数据库设计的关键。 工具:实体—联系模型(E-R模型)
1.E-R模型 E-R模型的三要素:实体、联系和属性。 实体:客观存在并可相互区分的事物 如:学生张三、信息管理系、班级管理系统等 属性: “属性”指实体具有的某种特性。属性用来描述一个实体 如:学生的学号、姓名、性别、年级、成绩等
联系: 现实世界的事物总是存在着这样或那样的联系,这种联系必然耍在信息世界中得到反映。在信息世界中, 事物之间的联系可分为两类: 一是实体内部的联系,如组成实体的各属性之间的关系; 一是实体之间的联系,这里我们主要讨论实体之间的联系。 如:学生与课程之间有选课联系 联系有一对一、一对多、多对多等
一对一联系图示 一对多联系图示 多对多联系图示 例如,医院每个病区有一名科室主任,每名主任只能在一个病区任职,则科室主任与病区之间为一对一联系;每个病区有若干名医生,病区与医生之间为一对多联系;每名医生诊治若干名病人,每个病人有若干名医生管理,病人和医生之间是多对多联系。 一对一联系图示 一对多联系图示 多对多联系图示
关键字(key):能唯一标识实体的属性或属性组称作候选码。 从所有候选码中选定一个用来区别同一实体集中的不同实体的称作关键字,也叫主码。 一个实体集中,任意两个实体在主码上的取值不能相同。如学号是学生实体的主码。
1.E-R模型(续) 矩形框 --- 实体 菱形框 --- 联系 椭圆形框 --- 实体和联系的属性 直线 --- 相互联系的实体之间以直线连接,并 标注联系类型
1.E-R模型(实体间的联系) 系 主任 负责 1 一对一联系 班级 包含 学生 1 N 一对多联系 产品 组成 零件 M N 多对多联系
1.E-R模型(例:学生选修课程) 学生 选修 课程 n m 成绩 姓名 学号 系别 课程名 选修课 主讲老师 用椭圆表示实体的属性 标注联系类型 m 学生 选修 课程 用无向边把实体与其属性连接起来 将参与联系的实体用线段连接 成绩 用矩形表示实体集,在框内写上实体名 用菱形表示实体间的联系
2.E-R模型设计的主要步骤 划分和确定实体; 划分和确定联系; 确定属性; 先画分E-R图 再画总E-R模型 优化E-R模型.
实例:构造一个基本的教学E-R模型 标识实体:对一个基本的教学系统,最基本的实体必须包含有教师,学生,及所学习的课程。 划分和确定关系: 标识实体:对一个基本的教学系统,最基本的实体必须包含有教师,学生,及所学习的课程。 划分和确定关系: 教师和课程之间,存在“讲授”这个关系,是一个M:N的关系; 学生和课程之间,存在“学习”这个关系,是一个L:P的关系;
实例:构造一个基本的教学E-R模型 确定属性 实体的属性: 教师(教师编号、教师姓名、职称); 学生(学号、姓名、性别); 课程(课程编号、课程名、学时、学分、教材名称); 联系的属性: 讲授(效果); 学习(成绩);
实例:构造一个基本的教学E-R模型 先画出各个分E-R图,再将各个E-R图组合 教师 教师姓名 教师编号 职称 讲授 效果 M N 课程 课程编号 课程名 学时 教材名称 学分
实例:构造一个基本的教学E-R模型 学生 学号 姓名 性别 课程 课程名 学时 教材名称 学分 学习 成绩 P L 课程编号
实例:构造一个基本的教学E-R模型 画出总E-R模型 教师 教师姓名 教师编号 职称 学生 学号 姓名 性别 课程 课程编号 课程名 学时 教材名称 学分 讲授 效果 学习 成绩 M P N L
(三)逻辑模式设计 逻辑模式设计是把概念模型(即E-R模型)转换为与选用的数据库管理系统所支持的数据模型相符的逻辑数据模型。 步骤: 2.关系模型的规范化
1.将E-R模型转为关系数据模型 转换原则: ①一个实体用一个二维表来表示,实体的所有属性就是表的属性,实体的码就是表的码。 ②一个关系用一个二维表来表示,与该联系相连的各实体的码以及联系本身的属性均成为此表的属性。而表的码为联系相连的各实体的码的组合。
实例:教学E-R模型转为关系数据模型 数据项 教师编号 教师姓名 职称 类型 C 长度 6 10 20 实体:教师 KEY=教师编号 数据项 学号 姓名 性别 类型 C 长度 8 10 2 实体:学生 KEY=学号
实例:教学E-R模型转为关系数据模型 实体:课程 KEY=课程编号 数据项 课程编号 课程名 学时 学分 教材名称 类型 C N 长度 6 20 4 2 30
实例:教学E-R模型转为关系数据模型 联系:教学 KEY=教师编号, 课程编号 数据项 教师编号 课程编号 效果 类型 C 长度 6 8 学号 课程编号 成绩 类型 C N 长度 8 6 4 联系:学习 KEY= 学号, 课程编号
2.关系模型的规范化 例子:设有一关系模式:选课(学号,课程号,成绩,学分) 应用中会出现的问题: 关键字:学号,课程号 数据冗余:每当一名学生选修一门课程时,该课程的学分就重复存储一次 更新异常:如果调整了一门课程的学分,每个相应的元组学分值都必须更新 插入异常:开设新课,准备下学期提供给学生选修,应当将新课的课程号和学分 插入到该关系模式中,由于还没有学生选课,缺少学号,关键字不完全,导致不能插入 删除异常:学生结业,要从当前数据库中删除选修记录,而某些课程新生尚未选修,那么这些课程的课程号和学分信息将无法保留.
2.关系模型的规范化 规范化是关系数据库设计的重要理论。借助规范化方法来设计数据存储的结构,并力求简化数据存储的数据结构,提高数据的可修改性、完整性和一致性。 规范化:以关系模型为背景,以关系理论为基础,在一个关系模型的数据结构中,没有出现重复的数据主项即为规范化。
关系规范化理论 (1) 函数依赖 函数依赖是关系属性之间的一种联系。它说明,如果给定了一个属性的值,就可以获得另一个属性的值 例:如下表所示,知道了“课程名”的值,即可知道“授课学时”的值。称“授课学时”函数依赖于“课程名”,或“课程名”可以决定“授课学时”。记作课程名→授课学时,反之不成立。
部分依赖:“学分”函数依赖于主关键字{学号、课程}。但决定“学分”的只是“课程”,与“学号”无关。 传递依赖的关系:学生住宿的楼号依赖于学号,学生应交的住宿费是由楼号决定的,即“收费”依赖于“楼号”,“楼号”依赖于“学号”、而“收费”又依赖于“楼号” 部分依赖:“学分”函数依赖于主关键字{学号、课程}。但决定“学分”的只是“课程”,与“学号”无关。 主关键字 学生住宿收费表(有传递依赖的关系)
(2)范式 定义:在规范化过程中,必须遵循一定的准则以指导关系的规范化,一般把这些准则称之为范式 范式分级:范式对关系中各属性间的联系提出了不同级别的要求,根据要求级别的高低,一般将关系分为第一范式、第二范式、第三范式、Boyec-Code范式、第四范式、第五范式、域关键字范式等几种。其中,高级别的范式包含在低级别的范式中 关系范式嵌套示意图
2.关系模型的规范化 第一范式(1NF):在一个数据结构中没有重复出现的数据项或空白值数据项 。
第一范式 如果在一个数据结构中没有重复出现的数据项或空白值数据项,就称该数据结构是规范的。任何满足规范化要求的数据结构都称为第一规范形式,记为1NF。
第一范式例:把不规范转为规范 不规范 职工简明表 转换 关键字:职工号 职工基本情况 工作单位 职务 职工号 姓名 性别 出生 日期 简历 出生日期 工作日期 工作单位 职务
第二范式 如果一个规范化的数据结构的所有非关键字数据项完全函数依赖于它的整个关键字,则称该数据结构是第二范式的,记为2NF。
第二范式(续) 部分依赖:假设ABC分别是同一个数据结构R中的三个元素或分别是R中若干个数据元素的集合。C依赖于AB的真子集,则称C部分依赖于AB。否则,称为C完全依赖于AB。 AB->C,A->C 则 AB->C 例如:(学号,课程号)->成绩 (学号,课程号)->姓名
第二范式例:第一范式转为第二范式 材料 供应商 库存的关系如下: 材料编号 材料名称 规格 供应商名称 供应商地址 价格 库存量 材料 供应商 库存的关系如下: 材料编号 材料名称 规格 供应商名称 供应商地址 价格 库存量 库存占用资金 材料名称、规格、供应商地址不完全依赖于关键字,不是2NF
第二范式例:第一范式转为第二范式 分解成三个2NF的数据结构 3. 供应商 1. 材料库存 2. 材料 材料编号* 材料名称 规格 供应商名称* 供应商地址 材料编号* 供应商名称* 价格 库存量 库存占用资金
第三范式 如果一个数据结构中任何一个非关键字数据项都不传递依赖于它的关键字,则称该数据结构是第三范式的,记为3NF。 传递依赖:假设ABC分别是同一个数据结构R中的三个元素或分别是R中若干个数据元素的集合,如果C依赖B,而B依赖于A,那么C自然依赖于A,即称C传递依赖A。 A->B,B->C 则 A->(传递)C 去掉传递依赖关系,就是3NF。
第三范式例:第二范式转为第三范式 因价格与库存量、库存占用资金都是非关键字,但库存量依赖于价格和库存占用资金,所以非3NF.转为第三范式:去掉多余的“库存占用资金”,而在程序中加以解决即可。 1. 材料库存 2. 材料 3. 供应商 材料编号* 供应商名称* 价格 库存量 材料编号* 材料名称 规格 供应商名称* 供应商地址
数据结构规范化设计的步骤 非规范化的数据(有重复的数据) 1NF (没有重复的数据) 2NF(所有的非关键字均完全依赖于整个关键字) 把所有非规范化的数据结构分解成若干个二维表形式的数据结构,并指定一个或若干个关键字 1NF (没有重复的数据) 若关键字由不止一个元素组成,必须保证所有的非关键字数据元素依赖于整个关键字,否则去掉部分依赖关系。 2NF(所有的非关键字均完全依赖于整个关键字) 检查所有非关键字数据元素是否彼此独立,如果不是,去掉传递依赖关系,通过去除冗余的数据元素,构成都是3NF的数据结构。 3NF(所有的非关键字均完全依赖于整个关键字,且只依赖于整个关键字)
(四)物理数据库设计 物理数据库设计是指对给定的逻辑模式,选取一个最适合应用环境的物理数据库结构的过程。 主要任务包括以下几个方面:确定文件的存储结构、选取存取路径、确定数据存放位置和确定存储分配。
6.6用户界面设计 用户界面是指信息系统与用户交互的接口,用户界面设计通常包括输出设计、输入设计、人-机对话设计等。
6.6.1输出设计 用户所需的信息、报表都要由系统输出完成. 输出设计工作主要包括: 确定输出的类型与内容 确定输出方式 进行输出格式的设计
6.6.1输出设计(续) 输出的类型与内容 输出类型的确定:外部输出和内部输出 内部输出:指一个处理过程向另一个处理过程的输出; 外部输出:指向计算机系统外的输出,如有关报表等。 输出设备与介质的选择 输出设备:打印机、磁带机、磁盘机、光盘机等; 输出介质:打印纸、磁带、磁盘等。 输出内容的设计 包括输出内容的项目名称、项目数据的类型、长度、精度、格式设计、输出方式等。
6.6.1输出设计(注意事项) 报告应注明名称、标题、日期、图号; 尽量将相类似的项目归纳在一起; 尽量将位数相同的项目归纳在一起; 当一行打印的位数有多余时,项目与项目之间的空格可以加大,使布局合理、醒目; 决定数据位数时,要考虑编辑结果的最大数(包括货币符号、逗号所占的位数); 字符从左对齐,空格和数字从右对齐; 注意“0”和空格的含义; “合计”要醒目; 打印时,应把已代码化的名称复原,以求一目了然;
6.6.2输入设计 输出信息的正确性很大程度取决于输入信息的正确性和及时性。因此,必须科学地进行输入设计,使之正确地、及时地、方便地收集信息、录入信息。 输入设计的原则 : 最小量 简单性 早检验 少转换
6.6.2输入设计(主要内容) 输入内容的确定 输入方式及设备的选择 数据项的名称、数据类型、位数和精度、数值范围及输入处理方式。 输入方式及设备的选择 键盘+显示器,鼠标,读卡机,光电阅读器,条形码识别机,手写输入器,声音识别仪,扫描仪等。
6.6.2输入设计(主要内容) 输入数据的格式设计 输入数据的检验方法 尽量与原始单据格式类似,屏幕界面要友好,数据输入格式有录入式、选择式等,屏幕格式有简列式、表格式、窗口编辑方式等。 输入数据的检验方法 重复录入校验、视觉校验、分批数据汇总校验、数据类型校验、格式校验、加检验位校验、平衡校验等
表6.4 各种校验法比较 重复校验 由多个录入员录入相同的数据文件,比较 视觉校验 对输入的数据,在屏幕上校验之后再做处理 分批汇总校验 对重要数据进行分批汇总校验 控制总数校验 对所有数据项的值求和进行校验 数据类型校验 考察输入的数据是否为正确的数据类型 格式校验 校验数据项位和位置是否符合定义 逻辑校验 检查数据项的值是否合乎逻辑 界限校验 检查数据是否在规定的范围内 记录统计校验 统计记录个数,检查记录有无遗漏和重复 代码自身 利用校验码本身特性校验
6.6.3人机对话设计 人机对话:人与计算机进行信息交流。 界面形式 界面设计原则 颜色柔和 操作实用、方便 具有在线帮助功能 菜单:下拉菜单、弹出菜单、图标 表格式(表单) 对话框(消息框) 图像 窗口 界面设计原则 风格统一 简洁 提示无二义性 功能聚类 颜色柔和 操作实用、方便 具有在线帮助功能
下拉式菜单、瀑布式菜单 图标式菜单 瀑布式菜单 弹出式菜单
6.7处理流程设计 对系统结构图中的每一个功能模块,用各种符号具体地规定处理过程内的各个步骤,并设计出所有模块和他们之间的相互关系(即联结方式),为程序员提供详细的技术资料,就是处理流程设计。 常见的设计工具: 程序流程图、N-S图、PAD图 、HIPO图等
程序流程图 程序流程图(简称FC)使用以下三种符号: (1) 矩形框表示一个处理动作; (2) 菱形框表示逻辑判断; (1) 矩形框表示一个处理动作; (2) 菱形框表示逻辑判断; (3) 箭头表示程序流向。 流程图具有顺序、选择、循环三种基本结构,任何复杂的程序流程图都可以由这三种基本结构组成。它便于程序的阅读和理解,也便于程序员编程实施。
程序流程图(续) S1 S2 条件 Y N 选择结构 循环结构 顺序结构
6.8系统设计报告 系统设计阶段的最终成果是写出系统设计报告。系统设计报告即是系统设计阶段的工作成果,也是下一阶段系统实施的基础。
6.8系统设计报告 (内容) 一、引言(摘要、背景、系统环境与限制等) 二、系统设计方案 模块设计 一、引言(摘要、背景、系统环境与限制等) 二、系统设计方案 模块设计 系统设备配置方案(软硬件环境配置清单、网络拓扑结构图) 新系统的代码体系(代码结构、编码规则) 数据文件或数据库文件说明 输入、输出设计、接口设计 处理流程设计 安全可靠性设计 方案说明及实施计划