目 录
一 前 言 1
1 MIS系统开发方法 1
2 MIS系统开发过程 2
二 系统需求分析 4
1现行业务描述 4
2现行系统存在问题的分析 5
3解决方案 6
1 系统目标设计 7
2 系统功能分析 8
3系统各功能模块设计 8
4数据流图 9
1数据库需求分析 13
2 数据库逻辑结构设计 14
1 PowerBuilder开发工具简介 20
2 Powerbuilder 8应用程序开发的基本步骤 20
3 编码规范 21
4 创建祖先窗口和全局函数 21
5 应用程序对象 App_librarain 24
7 补充说明 48
七 结束语 49
四 数据库设计
数据库的设计是MIS系统的核心部分,设计数据库,首先要进行需求分析,然后进行数据库的概念结构设计、逻辑结构设计、数据库结构实现等步骤。
1数据库需求分析
根据以上的需求分析和数据组织,开始设计数据结构,即根据需求勾画出实体/关系图(E/R)。在概念上,E/R图代表的是系统需要的数据及其这些数据之间的关系。如图所示的实体/关系图:
图4.1
从图中可以看出,在这个系统中实际存在的实体:图书和借阅人,其中借阅人和图书是多对多关系,针对本系统,通过对图书借阅管理的内容和数据流程分析,设计数据项和数据结构如下:
图书基本信息,其数据项有图书编号、图书名称、作者、出版社等。
借阅人基本信息,其数据项有借阅人编号、借阅人姓名、电话等。
图书借阅登记,其数据项有借阅序号、借阅图书编号、借阅人编号等。
为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应增加出版社信息
与图书分类信息:
出版社信息,其数据项有出版社编号、出版社名称、地址、电话、传真等。
图书分类信息,其数据项有分类编号、分类名称、同一类型图书数目。
同时针对于本系统的多用户使用特点,增加用户信息表:
(6)用户信息表,其数据项有用户名、密码、用户权限。
为了实现图书借阅超期罚款制度,还应增设罚金规则表:
(7)罚金规则表,其数据项包括免费使用天数、罚金费率、规则启用开关。
2 数据库逻辑结构设计
数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。这就是所谓的第四范式。数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。
另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成CHAR(1)或BIT
型。建议实际应用中定义成CHAR(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的 值来解决,这样就避免了修改数据库结构。
数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。
程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库结构一旦改变,
所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致程序的失败。PB的数据窗口与其他语言的数据控件不一样,它的很多东西是预编译的。即使你一个模块已经调试无误,但只要数据库结构改动。相应的模块就一定要重新修改,否则一定会出问题。
图书借阅管理系统数据库中各个表的设计结果如下面几个表格所示。每个表格表示为数据库中的一个表。