ASP.NET图书馆管理信息系统

1 系统设计过程及原理阐述

管理信息系统(以下简称MIS)服务于现代化的企事业管理,是提供企事业工作效率和经济效益的计算机网络系统。

管理信息系统涉及的因素非常多、非常复杂,开发起来具有一定的难度。如果掌握了一套行之有效的开发方法,以及把握好MIS开发中的重点,开发中就可以大量的解约人力、财力等。

我个人经过大量的研究、实践。认为在MIS开发中,首先数据库技术是MIS开发中的重要技术。数据库开发成败直接影响到整个MIS的开发。所以,构架一个优秀的MIS一定要有好的数据库设计。本文讨论的重点就是数据库设计理论。主要是两方面,一是基本的数据库理论;二是.NET平台上的ADO.NET数据访问技术。

其次,在MIS开发过程中,所使用的开发工具和应开发应用程序的种类也很重要。这里就不能不提到Microsoft公司的.NET Framework平台。.NET Framework 是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。它提供一个一致的面向对象的编程环境、提供一个将软件部署和版本控制冲突最小化的代码执行环境等等非常优秀的特点。在以后介绍开发过程中将简单阐述。

再次,界面的设计也是MIS的一个重点。界面一定要具有易学性及易使用性。在当今流行的程序设计中,设计包含用户界面的应用程序时有两种选择:Windows 窗体和 Web 窗体。两者在开发环境中都具有完全的设计时支持,并且可以提供丰富的用户界面和高级应用程序功能以解决业务问题。要根据应用程序的具体功能来选择到底开发何种应用程序。我所开发的这个图书馆管理信息系统是这两者的结合。在管理功能方面,我使用了传统的WinForms技术。而在读者使用方面的功能模块,是用webForms开发的。

3.1 数据库设计

数据库技术是20世纪60年代后期产生何发展起来的一项计算机数据管理技术,现广泛运用与各种信息处理以及科学研究上。数据库技术已经成为当今时代非常重要的技术。

当今流行的数据库系统主要是以关系数据库为代表的第二代数据库系统。

当今流行的大型数据库管理系统主要有SQL Server、Oracle、Sybase等。

图书馆管理信息系统选用的是SQLserver2000数据库管理系统。

选择它的原因有:SQLserver2000功能强大,能完整实现数据库系统的所有功能。再者,我们选用的系统开发平台是微软公司的.Net Framework平台,它很好的支持了其公司的数据库产品SQLserver2000,而且为了加快数据处理速度,.NET Framework平台中还专门有一个SQL Server数据提供程序(System.Data.SqlClient)。

图书馆管理信息系统使用SQLserver2000数据库管理系统,最后设计的数据库表如下:

数据库名称lib2004

数据表有:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

以下我们讨论数据库设计方法时均以图书馆管理信息系统数据库(lib2004)为例.

3.1.1数据库设计重点

(1) 数据规范化

(2) 数据完整性

(3) 数据库的保护

3.1.2规范化设计

良好的数据规范可以减少数据冗余和一些插入异常和删除异常。使关系模式尽量满足3NF。规范化设计的内容比较多,在这里就不一一阐述。请详细体会lib2004数据库中每个表的构建。如在这方面想有进一步研究的化,请参阅一些数据库原理与技术方面的书籍。

3.1.3数据库完整性设计

数据库完整性共分三类

(1) 实体完整性规则

实体完整性规则是指主关键字的任何部分不能为空值

比如在图书表(book)中

添加图片注释,不超过 140 字(可选)

条码号(Book_code)是主关键字,其值就不能够为空。

主关键字不一定由一个字段组成,可以是多个字段的组合。

(2)引用完整性,又称参照完整性,主要是描述存在关系间引用时,不能引用不存在的元组.

添加图片注释,不超过 140 字(可选)

比如在图书分类表(booksort)与图书表(book)之间的关系(如图3-2),这是一个典型的一对多关系。关系的主键方是booksort表中的Book_sort(图书类别)字段,关系的外键方是book表中的Book_code(图书类别)字段。

其引用完整性就是book表中的每一本书的图书类别Book_sort或者为空值,或等于图书分类表(booksort)中某行的Book_sort值。

通俗的说法就是图书不能属于一个没有定义的类别。

(3)用户自定义完整性

这是一种比较有针对性的完整性,由具体环境决定。例如:在读者表(au)中,读者的性别字段(Au_sex)的值必须为‘男’或‘女’。这就是一条用户自定义完整性规则。

这类完整性在SQLserver2000中的实现就是对相关表建一个check约束即可。比如在au表中建立一个CK_au约束,其约束表达式为([Au_sex] = '男' or [Au_sex] = '女'),就实现了值必须为‘男’或‘女’的用户自定义完整规则。

3.1.4数据库的保护

数据库的保护主要内容是数据库的备份恢复、数据的事务性、以及如何进行并发控制。其中备份和恢复容易理解,这里主要阐述其它两项。

(1) 事务是一组操作序列.但是从用户的角度看来,事务是一个不可分割的操作序列。事务中的操作要么都做,要么都不做.事务不应该丢失,不应该被分割完成。

举个例子,从某个银行帐户向另一个帐户转入资金。这个过程分两步,首先将资金从一个帐户扣除,然后转入另一帐户。这个过程中,如果资金扣除以后由于一些因素导致失败。则资金就从一个帐户上扣除但没有转到另一个帐户上,就导致了两个用户都失去了这笔资金。如果将这两步组成一个事务,充分利用事务的共进共退性就可以避免这一点。

SQLserver2000事务语句主要包括BEGIN TRANSACTION(开始一个事务),COMMIT TRANSACTION(提交事务),ROLLBACK TRANSACTION(回滚事务)。

(2) 数据库并发控制:在图书馆管理信息系统中,同时可能有多个客户端在进行数据操作。当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响。处理这种情况的系统叫做“并发控制”。处理并发的技术主要是封锁。ADO.NET数据结构基于断开的数据,使用开放式并发。

3.2 使用存储过程

在使用 SQL Server 2000 创建应用程序时,T-SQL 编程语言是应用程序和 SQL Server 数据库之间的主要编程接口。使用 T-SQL 程序时,可用两种方法存储和执行程序。可以在本地存储程序,并创建向 SQL Server 发送命令并处理结果的应用程序;也可以将程序在 SQL Server 中存储为存储过程,并创建执行存储过程并处理结果的应用程序。

SQL Server 中的存储过程与其它编程语言中的过程类似,原因是存储过程可以:

  • 接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。

  • 包含执行数据库操作(包括调用其它过程)的编程语句。

  • 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。

使用 SQLServer 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优点有:

  • 允许模块化程序设计。

只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。

  • 允许更快执行。

如果某操作需要大量 T-SQL 代码或需重复执行,存储过程将比 T-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 T-SQL 语句时,都要从客户端重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化。

  • 减少网络流量。

一个需要数百行 T-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。

  • 可作为安全机制使用。

即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。

此外在web编程方面,存储过程在安全问题上还可以防止动态SQL漏洞攻击,笔者经过一些调查,发现现在很多网站都有动态sql漏洞。只需要将密码字段的值设定为(' or '1'='1)即可使用该网站的管理功能。

我所开发的图书馆管理信息系统,无论在windows窗体编程和asp.net Web编程上都使用存储过程与数据库交互。

链接:https://pan.baidu.com/s/1Xwd0U_KktL0hRFPaggIOGQ?pwd=6688 
提取码:6688 

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现了图书管理系统,功能主要分为三部分:书目检索、读者管理、图书管理;书目检索包括普通检索和高级检索;读者管理包括读者登录、读者信息、读者借阅历史、读者当前借阅、读者借阅过期催还、管理员登录等功能;图书管理包括图书借阅、图书归还、添加图书、图书维护、添加用户、用户维护、密码修改。 \MyLibrary\App_Code\BusinessLogicLayer 图书管理业务逻辑层,包括以下文件: \Book.cs 图书信息类 \Borrow.cs 借阅类 \User.cs 用户类 \MyLibrary\App_Code\DataAccessHelper 图书管理数据访问接口层,包括文件: \SQLString.cs 构造SQL语句的通用类 \GetSafeData.cs 安全获取数据类 \MyLibrary\App_Code\DataAccessLayer 图书管理数据访问层,包括文件: \DataBase.cs 数据访问类 \MyLibrary\Controls 图书管理用户控件,包括文件: \AdminLeft.ascx 管理员左侧菜单控件 \ReaderLogin.ascx 用户登录后菜单控件 \ReaderTop.ascx 用户不登录菜单控件 \MyLibrary\DB \MyLibrary.sql 图书管理数据库创建脚本 \MyLibrary\DB \MyLibrary.bak 图书管理数据库备份 \MyLibrary\Images\ 图书管理系统图片文件夹 \MyLibrary\UsersManage 图书管理用户管理,包括文件: \UserAdd.aspx 添加用户页面 \UserLists.aspx 用户维护页面 \UserDetails.aspx 用户详细页面 \MyLibrary\BookManage 图书管理图书管理,包括文件: \BookAdd.aspx 添加图书页面 \BookLists.aspx 图书维护页面 \BookDetails.aspx 图书详细页面 \BookSearch.aspx 图书搜索页面 \BookSearchResult.aspx 搜索结果页面 \ReaderBookAdvancedSearch.aspx 用户高级搜索页面 \AdminBookAdvancedSearch.aspx 管理员高级搜索页面 \MyLibrary\Reader 图书管理读者信息管理,包括文件: \ReaderLogin.aspx 读者登录页面 \ReaderLoginMain.aspx 读者登录后主页面 \ReaderNotLogin.aspx 读者未登录页面 \ReaderBorrowHistory.aspx 借阅历史页面 \ReaderCurrentBorrow.aspx 当前借阅页面 \ReaderExpireCuiHuan.aspx 过期催还页面 \ReaderInformation.aspx 读者信息页面 \MyLibrary\Borrow 图书管理借阅管理,包括文件: \BorrowBook.aspx 借阅图书页面 \ReturnBook.aspx 归还图书页面
系统名称:双鱼林asp.net图书信息管理系统学习版 系统功能: (1)系统分两种身份:管理员和读者,读者可以分为不同的类型,每种类型借书天数和续借天数都不一样! (2)图书管理:添加图书类别,维护图书类别,登记图书信息,维护图书信息 (3)读者管理:添加读者类别,维护读者类别,登记读者信息,维护读者信息 (4)借阅管理:读者借书登记,读者还书登记,借书超期信息查看! (5)系统管理:管理员和读者登陆系统后可以修改自己的登陆密码,读者可以修改自己的个人信息。 系统特点: (1)根据不同的身份友好显示不同的功能菜单。 (2)程序使用三层架构思想,采用完全面向对象的思想方法设计。 @更多@ http://cleopard.download.csdn.net/ 福利: http://xuemeilaile.com 13份WPF经典开发教程 http://download.csdn.net/album/detail/1115 C#资料合辑二[C#桌面编程入门篇] http://download.csdn.net/album/detail/957 C#资料合辑一[C#入门篇] http://download.csdn.net/album/detail/669 [Csharp高级编程(第6版)](共8压缩卷) http://download.csdn.net/album/detail/667 10个[精品资源]Java学习资料合辑[一] http://download.csdn.net/album/detail/663 10个C#Socket编程代码示例 http://download.csdn.net/album/detail/631 6份GDI+程序设计资源整合[全零分] http://download.csdn.net/album/detail/625 2014年移动游戏行业数据分析 http://download.csdn.net/detail/cleopard/8340331 一文读懂2014年全球互联网广告新生态 http://download.csdn.net/detail/cleopard/8340303

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值