大型MIS软件的开发必须重视数据库设计

80年代初以来,国内许多计算机专家先后深入一些大型企业,力图开发出理想的大型MIS。实践证明,开发出的大型MIS,多数不很理想。原因何在?据作者一孔之见,其中一条重要的原因,就是在开发过程中对MIS的数据库设计重视不够,没有把它当作一件头等大事来处理。一个大型MIS,如果它的数据库设计出了问题,就是出了大问题,或者说从根本上出了问题。这样的MIS,不会成功,只会失败。既然如此,应该怎样来解决它呢?

一、MIS的基础是数据库

MIS系统包括硬件和软件两部分。MIS的软件,是由文档加程序组成的。它的文档,就是MIS的全部设计说明书。它的程序,就是MIS的全部算法加上相应的数据结构。MIS的算法无非是它的各种录入、修改、查询、处理、输出与菜单程序的算法。MIS的数据结构,主要是指数据库设计中的各种基本表。可以这么说,基本表是MIS的基础。数据库设计既是MIS开发中的重点,又是其难点。说它是重点,因为设计出一套好的基本表需要许多技巧。

MIS的发展是分阶段的,不同的阶段,对应不同的数据库。在MIS的初级(初始与扩展)阶段,对应的数据库为应用数据库。所谓应用数据库,就是针对某项具体的应用而设计的基本表的集合,这种数据库的设计、使用与维护均较容易。在MIS的中级(控制与集成)阶段,对应的数据库为主题数据库。所谓主题数据库,就是针对某方面的主题而设计的基本表的集合,它包括本主题范围内的所有应用项目,这种数据库的设计、使用与维护均较复杂。在MIS的高级(数据管理与成熟)阶段,对应的数据库为综合数据库。所谓综合数据库,就是针对某个大型企事业单位的综合管理信息系统而设计的基本表的集合,它包括本单位的所有主题,这种数据库的设计、使用与维护均很复杂,对设计者、用户与DBA的要求均很高。

二、数据库设计的一般方法

数据库设计分五大步,即数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。需求分析的任务是将业务管理单证流转化为数据流,绘制出数据流程图DFD,并完成相应的数据字典,概念设计的任务是从DFD出发,识别实体及其相互关系,并绘制出实体关系图,即E-R图。逻辑设计的任务是从E-R图出发,确定各个实体及关系的具体属性。物理设计的任务是确定所有属性的类型、宽长与取值范围,设计出基本表的主键与外键,将所有表名与字段名英文化,完成相应的数据字典,在具体的DBMS环境上实现物理建库工作。加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理、输出工作,均可视为对数据库的加载测试工作。应该指出,大型数据库的设计不大可能一次顺利完成,上述五大步骤,很可能是一个不断迭代的过程。

三、基本表与其它表

MIS中的数据库是由一组基本表所组成的,一个实体可以用一张基本表来描述,一个复杂关系也可以用一张基本表来描述。所以,基本表可以代表一个实体,也可以代表一个关系。基本表中的字段,就是实体或关系的属性。基本表是存放基础数据的地方,这些基础数据具有五个基本性质。原子性,即表中的数据是元数据。演绎性,即由表中的数据可以生成系统所有的输出数据。稳定性,即表中的数据一次录入、多次使用、长期保存。

规范性,即表中的数据满足第三范式。客观性,即表中的数据是客观存在的数据,不是主观想象中的数据。

MIS中的表除了基本表之外,还有一些非基本表,如代码表、中间表、临时表与虚表(视图),它们不属于数据库的内容,但均以表的形式出现,为数据的录入、查询、处理、输出提供方便。利用基本表的五个性质,很容易区分基本表与非基本表。非基本表的设计是不难的,基本表的设计是较难的,MIS中的数据库设计,主要是指基本表的设计。

四、数据库的设计技巧

数据库设计中有两个难点,一是如何处理多对多的关系,二是如何设计主键。处理多对多的关系的办法为:将一个多对多的关系分解为一个一对多的关系加上另一个多对一的关系。例如,若两个表之间存在多对多的关系,就在它俩之间增加一个表,该表的字段中至少要包括前两个表的主键在内。这样,就将一个多对多的关系转化为两个一对多的关系了。

在基本表中,主键是记录的唯一标识。一般而言,主键是为索引文件或表间连接服务的。它对用户不透明,只提供给程序员使用。因此,主键的取值最好为一串无物理意义的数值,且由程序自动加1来实现。主键是一个永久为非空的字段,一旦产生,便不能修改,但可以被拷贝。通过拷贝,这个表的主键可作为那个表的外键。要设计好数据库,除了克服以上两个难点之外,还应遵循下列原则:即基本表的个数越少越好;主键的个数越少越好;字段的个数越少越好。

五、MIS的开发模式

结合我国的特点,大型MIS的开发与大型数据库的设计,均应分为两个层次,即内核层与外壳层。内核层对应法治,设计上讲究通用性。外壳层对应人治,设计上讲究专用性。随着中国经济与世界经济接轨进程的发展,MIS的内核层将逐步扩大,外壳层将逐步缩小,通用性将逐步增强。

当前我国大型企事业单位的MIS建设,少数单位已跨过了初级阶段,开始迈向中级或高级阶段。与此同时,数据库设计已告别了应用数据库时期,开始向主题数据库或综合数据库过渡。主题数据库或综合数据库的设计,与应用数据库设计的本质区别是:前者是面向数据,后者是面向程序。一个大型企事业单位的MIS建设,是一个长期的反复的过程。在这一过程中,应用程序与输出图表可能逐年变动,但基础数据是稳定不变的。只要我们将基本表设计面向数据,不面向程序,用基本表组织好元数据,就能以不变应万变,避免在MIS建设中的失误。

时间: 2024-09-13 00:13:21

大型MIS软件的开发必须重视数据库设计的相关文章

安卓服务端开发编程和数据库设计

问题描述 安卓服务端开发编程和数据库设计 安卓服务端开发.我现在在开发一个安卓APP,类似与记事本,现在想实现云端备份的功能,不知道服务端该怎么做,用PHP,还是Jsp/severlet?这两个都不怎么熟悉,Java有基础会不会上手快一点.另外数据库设计方面问个白痴的问题,改用那种模式:A用户表+数据表这两个表.B用户表+每个用户的数据表. 解决方案 1.PHP.JSP都可以,看你熟悉哪一个. 2.优先 A用户表+数据表这两个表 这个方案,可通过中间表进行关联. 再提供一个服务端与android

数据库设计指南(转)

设计|数据|数据库|数据库设计     如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分.有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述.不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲.所以通过对数据库设计颇有造诣的专业人士的反馈精选,暨以给大家传授一些设计数据库的技巧和经验. 第1 部分- 设计数据库之前 这一部分罗列了12 个基本技巧,包括命名规范和明确业务需求等. 1. 考察现有环境 在设计一个新数据库时,你不但应该仔细研究业务需求而且

数据库设计方法、规范与技巧

规范|技巧|设计|数据|数据库|数据库设计 数据库设计方法.规范与技巧(推荐)   一.数据库设计过程数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求.数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点.独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述.在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系

[数据库技术]SQL数据库设计经验

设计|数据|数据库|数据库设计 一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键.如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分.有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述.不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲.所以我归纳历年来所走的弯路及体会,并在网上找了些对数据库设计颇有造诣的专业人士给大家传授

数据库设计方法、规范与技巧(推荐)

规范|技巧|设计|数据|数据库|数据库设计 数据库设计方法.规范与技巧(推荐)   一.数据库设计过程数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求.数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点.独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述.在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系

数据库设计经验谈

设计|数据|数据库|数据库设计 一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键.如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分.有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述.不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲.所以我归纳历年来所走的弯路及体会,并在网上找了些对数据库设计颇有造诣的专业人士给大家传授

数据库设计经验

设计|数据|数据库|数据库设计 一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键.如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分.有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述.不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲.所以我归纳历年来所走的弯路及体会,并在网上找了些对数据库设计颇有造诣的专业人士给大家传授

数据库设计指南之我见

网上流传着一份关于数据库设计的文档<数据库设计指南>收集了几十个数据库设计大牛在项目中总结出来的Best Practice最佳实践,我最近也花了点时间细读并结合自身实际进行了总结,感觉自己在项目中还是有不少不足的地方,下面逐条分析下.(黑字为原文,红字为我的见解) 数据库设计指南 如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分.有关数据 库设计的材料汗牛充栋,大学学位课程里也有专门的讲述.不过,就如我们反复强调的那样,再好的 老师也比不过经验的教诲.所以我们最近

数据库设计技巧奉送了_数据库其它

1. 设计数据库之前(需求分析阶段)     1) 理解客户需求,询问用户如何看待未来需求变化.让客户解释其需求,而且随着开发的继续,还要经常询问客户保证其需求仍然在开发的目的之中.     2) 了解企业业务可以在以后的开发阶段节约大量的时间.     3) 重视输入输出.     在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经设计出的报表.查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段.     举例:假如客户需要一个报表按照邮政编码排序.分段和求和,你要保证其中