馆管理信息系统中,使用了开放式并发控制(参见附录中我翻译的英文文章),即只有当实际更新数据时,该行才对其他用户不可用。更新将在数据库中检查该行并确定是否进行了任何更改。如果试图更新已更改的记录,则将导致并发冲突。
4)全部数据层都基于存储过程构建
使用存储过程,可以减少网络流量,提高程序的速度以及安全性。具体内容请参见笔者文章里对存储过程的研究讨论。
3系统设计过程及原理阐述
管理信息系统(以下简称MIS)服务于现代化的企事业管理,是提供企事业工作效率和经济效益的计算机网络系统。
管理信息系统涉及的因素非常多、非常复杂,开发起来具有一定的难度。如果掌握了一套行之有效的开发方法,以及把握好MIS开发中的重点,开发中就可以大量的解约人力、财力等。
我个人经过大量的研究、实践。认为在MIS开发中,首先数据库技术是MIS开发中的重要技术。数据库开发成败直接影响到整个MIS的开发。所以,构架一个优秀的MIS一定要有好的数据库设计。本文讨论的重点就是数据库设计理论。主要是两方面,一是基本的数据库理论;二是.NET平台上的ADO.NET数据访问技术。
其次,在MIS开发过程中,所使用的开发工具和应开发应用程序的种类也很重要。这里就不能不提到Microsoft公司的.NETFramework平台。.NETFramework是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发。它提供一个一致的面向对象的编程环境、提供一个将软件部署和版本控制冲突最小化的代码执行环境等等非常优秀的特点。在以后介绍开发过程中将简单阐述。
再次,界面的设计也是MIS的一个重点。界面一定要具有易学性及易使用性。在当今流行的程序设计中,设计包含用户界面的应用程序时有两种选择:Windows窗体和Web窗体。两者在开发环境中都具有完全的设计时支持,并且可以提供丰富的用户界面和高级应用程序功能以解决业务问题。要根据应用程序的具体功能来选择到底开发何种应用程序。我所开发的这个图书馆管理信息系统是这两者的结合。在管理功能方面,我使用了传统的WinForms技术。而在读者使用方面的功能模块,是用webForms开发的。
3.1数据库设计
数据库技术是20世纪60年代后期产生何发展起来的一项计算机数据管理技术,现广泛运用与各种信息处理以及科学研究上。数据库技术已经成为当今时代非常重要的技术。
当今流行的数据库系统主要是以关系数据库为代表的第二代数据库系统。
当今流行的大型数据库管理系统主要有SQLServer、Oracle、Sybase等。
图书馆管理信息系统选用的是SQLserver2000数据库管理系统。
选择它的原因有:SQLserver2000功能强大,能完整实现数据库系统的所有功能。再者,我们选用的系统开发平台是微软公司的.NetFramework平台,它很好的支持了其公司的数据库产品SQLserver2000,而且为了加快数据处理速度,.NETFramework平台中还专门有一个SQLServer数据提供程序(System.Data.SqlClient)。
图书馆管理信息系统使用SQLserver2000数据库管理系统,最后设计的数据库表如下:
数据库名称lib2004
数据表有:
管理员表(manager)
名称
类型
长度
说明
Man_id
nvarchar
50
管理员账号(主键)
Man_pwd
nvarchar
12
管理员密码(notnull)
Man_purview
nvarchar
10
管理员权限(notnull)
图书馆信息表(libInfo)存放图书馆信息,只有一条记录
字段名称
类型
长度
说明
No
Int
4
等于1
Lib_name
nvarchar
50
图书馆名称
Lib_org
nvarchar
50
隶属单位
Lib_tel
nvarchar
50
电话号码
Lib_adr
Nvarchar
100
详细地址
图书表(book)
字段名称
类型
长度
说明
Book_id
Int
4
图书编号(自动增长)unique约束
Book_code
nvarchar
50
条码号(主键)
Book_name
nvarchar
50
图书题名(notnull)
Book_pub
nvarchar
50
出版社
Book_isbn
nvarchar
50
ISBN号
Book_pubdate
smalldatetime
4
出版日期
Book_author
nvarchar
50
图书作者
Book_page
Int
4
图书页数
Book_price
money
8
图书价格
Book_adddate
smalldatetime
4
入馆日期
Book_place
nvarchar
50
存放位置(外部键-place.Book_place)
Book_sort
nvarchar
50
图书分类(外部键-booksort.Book_sort)
Book_remarks
nvarchar
4000
备注
读者表(au)
字段名称
字段类型
长度
说明
Au_serial
int
4
读者序号(自动增长)unique约束
Au_id
nvarchar
50
借书证号(主键)
Au_name
nvarchar
50
读者姓名
Au_sex
nvarchar
2
读者性别(只能为'男'或'女')
Au_sort
nvarchar
50
读者类别(外部键-ausort.Au_sort)
Au_adddate
smalldatetime
4
添加日期
Au_adr
nvarchar
50
读者地址
Au_password
nvarchar
12
读者密码(12位)
Au_email
nvarchar
50
读者email
Au_remarks
nvarchar
4000
读者详细资料
借阅情况表(borrow)
字段名称
字段类型
长度
说明
Number
int
4
编号(自动编号主键)
Au_id
nvarchar
50
读者编号(外部键-au.Au_id)
book_code
nvarchar
50
图书编号(外部键-book.book_code)
Borrow_date
smalldatetime
4
借阅日期(notnull)
Should_date
smalldatetime
4
应归还日期(notnull)
Return_date
smalldatetime
4
归还日期
forfeit
money
4
罚款金额
图书存放位置(place)
字段名称
字段类型
字段长度
说明
Book_place
nvarchar
50
存放位置(主键)
Place_remarks
nvarchar
4000
存放位置具体说明
图书分类(booksort)
字段名称
字段类型
字段长度
说明
Book_sort
nvarchar
50
图书类型(主键)
Sort_remarks
nvarchar
4000
分类具体说明
读者分类(ausort)
字段名称
字段类型
长度
说明
Au_sort
nvarchar
50
读者类型(主键)
Au_borrowdays
Int
4
最长借阅时间
Au_borrowbooks
Int
4
最大借阅图书数
借书证挂失(aulost)
字段名称
字段类型
字段长度
说明
Lost_id
nvarchar
50
挂失的读者编号主键
Lost_date
smalldatetime
4
挂失时间
图书损坏赔偿(booklost)
字段名称
字段类型
字段长度
说明
Number
Int
4
编号(自动增加,主键)
Au_id
nvarchar
50
丢失图书的读者编号
Book_name
nvarchar
50
图书名称
Book_isbn
nvarchar
50
ISBN
Lost_money
Money
8
赔偿金额
数据库表关系如下:
图3-1
以下我们讨论数据库设计方法时均以图书馆管理信息系统数据库(lib2004)为例.
3.1.1数据库设计重点
(1)数据规范化
(2)数据完整性
(3)数据库的保护
3.1.2规范化设计
良好的数据规范可以减少数据冗余和一些插入异常和删除异常。使关系模式尽量满足3NF。规范化设计的内容比较多,在这里就不一一阐述。请详细体会lib2004数据库中每个表的构建。如在这方面想有进一步研究的化,请参阅一些数据库原理与技术方面的书籍。
3.1.3数据库完整性设计
数据库完整性共分三类
(1)实体完整性规则
实体完整性规则是指主关键字的任何部分不能为空值
比如在图书表(book)中
图书表(book)
字段名称
类型
长度
说明
Book_id
Int
4
图书编号(自动增长)unique约束
Book_code
nvarchar
50
条码号(主键)
Book_name
nvarchar
50
图书题名(notnull)
条码号(Book_code)是主关键字,
上一篇:
ASP_net010电子购物商城系统+论文(论文和程序)
下一篇:
数字图像的可逆数字水印研究