




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\h\u摘要 .ⅠABSTRACT Ⅱ第一章绪论 11.1课题背景 11.2课题目标 11.3开发环境 21.4课题相关知识简介 2数据库相关技术简介 2ASP.NET概述 4WEB站点开发基础 5IIS简介 6第二章系统概要设计 92.1需求分析 92.2系统总体业务流程设计 92.3数据库设计 102.4公共类设计 17第三章系统各模块详细设计与实现 203.1网站首页设计 20网站首页概述 20网站首页技术分析 20网站首页的实现 213.2管理员设置模块 23管理员设置模块概述 23管理员设置模块技术分析 24查看管理员信息页的实现 25管理员权限设置页的实现过程 273.3图书档案管理模块设计 27图书档案管理模块概述 27图书档案管理模块技术分析 29查看图书详细信息页面的实现 31添加和修改图书信息页面的实现 323.4图书借还模块设计 34图书借还模块概述 34图书借还模块技术分析 36图书借阅页面的实现 37图书续借的实现 37图书归还页面的实现 383.5图书信息检索模块设计 38图书档案检索 38图书借阅信息检索 40图书信息检索的实现 413.6系统文件清单 423.7水晶报表 43第四章IIS的配置 44第五章总结 47结束语 48参考文献 49摘要随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件。日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现查询。WEB网站加上数据库技术的运用,大大简化了WEB设计管理人员的维护工作量,使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。运用ASP技术和网络数据库原理,基于B/S模式开发了一个图书馆管理系统。在此系统中,读者可以很方便的对图书进行浏览检索,读者在检索时,可以通过输入图书条形码、书名关键字、图书类别、出版社名称、作者名字来查看图书的详细资料,然后根据各人的喜好借阅心仪的图书。系统管理员则可以对现有的图书和书架信息进行添加和编辑,审查用户的借阅情况并对用户信息进行管理。其中图书条形码是根据图书编辑入库时间随机生成的,读者条形码也是根据读者借阅图书的时间随机生成。关键词:数据库,图书管理,IIS服务器,浏览器/服务器模式ABSTRACTWiththecontinuingpopularityoftheInternet,thedemandofpeopleforInternettechnologyisnotjustaboutbrowsingthewebpage,sendingandreceivinge-mail.IncreasinglybusypeoplebegantopursuetousetheInternetwhichisastrongplatformtoachievetheseinquirieswithoutleavinghome.WEBsitewiththeuseofdatabasetechnology,greatlysimplifiesthemaintenanceworkloadoftheWEBdesignmanagers.Theuseofdatabasecanbringmanybenefits:Suchasthereduceddataredundancy,whichgreatlysavesthedatastoragespace;Toachievefullsharingofthedataresourcesandsoon.Inaddition,Thedatabasetechnologyalsooffersusersaveryeasytooltoallowuserstowritethedatabaseapplicationseasily.UsingtheASPtechnologyandthePrinciplesofnetworkdatabase,basedontheB/SmodelIdevelopedaLibraryManagementSystem.Inthissystem,readerscaneasilybrowseandsearchforthebooks,whenreaderssearchforthebooks,theycanentertheLibraryBarCode、thekeywordsofBooksName、theBookCategory、thenameofPublishingHouseandtheauthornametoviewthebookdetails,thenborrowthefavoritebooksaccordingtotheirpreferences.Systemadministratorscanaddandedittotheexistingbooksandshelvesinformation,reviewtheusers’loansituationandmanagetheusers’information.TheLibrarybarcodeisgeneratedrandomlybasedonthestoragetimeofbooksandthereadersbarcodeisalsogeneratedrandomlybasedonthereaders’borrowtime.KEYWORDS:database,Librarymanagement,IISServer,Browser/ServerMode第一章绪论1.1课题背景一直以来人们使用传统的人工方式管理图书馆的日常工作,在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。随着计算机的广泛应用,则需要利用计算机管理图书馆的日常工作。
由于各图书馆的图书的数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系是非常困难的。因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一个管理人员来说是一件比较复杂的事情,存储,查询,借阅都是必不可少的业务。图书馆管理系统的流通部分是所有图书馆系统中最重要的部分。流通系统将读者与图书,读者与管理员,读者与读者相互间联系起来,而且流通系统处理的数据类型多,数量大,精细且频繁。为了能让管理员从繁重的工作中解脱出来,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。因此开发一个切实有效的图书馆管理系统使其高质量,高效率地管理系统流通部门的全部功能是非常必要的,也是本论文选题的重要意义和研究宗旨。随着计算机的迅速发展,国内外已经存在许多功能相似的图书管理系统。目前,国际上大多数发达国家的图书馆基本上实现了电脑管理,尤其是那些较大型的图书馆还采用了大型数据库开发的软件,部分大型图书馆也使用Foxpro、SQLServer等。而基于Access数据库的多数是中小型图书馆。但在大多数不发达国家,基于SQLServer数据库的图书馆管理信息系统应用得很广泛。而在中国,许多中小型图书馆用的还是手工图书管理,大多数图书馆对计算机管理信息还没有一定的认识,而SQLServer数据库具有使用方便、学习简单、易学易用的特点,所以基于SQLServer数据库在非发达国家有着很广阔的发展前景。但由于信息量的迅速增加,就要求对图书管理更智能化、系统化、信息化。1.2课题目标根据图书馆日常管理工作的需求和图书借阅的管理流程,该系统实施后,应该达到以下目标。界面设计友好、美观,数据存储安全、可靠。基本信息设置保证图书信息和读者信息的分类管理。强大的查询功能,保证数据查询的灵活性。实现对图书借阅、续借、归还过程的全程数据信息跟踪。设置读者借阅和图书借阅排行榜,为图书馆提供真实的数据信息。提供借阅到期提醒功能,使管理者可以及时了解已经到期的图书借阅信息。提供管理员修改自己密码的功能,保证系统的安全性。提供灵活、方便的权限设置功能,使整个系统的管理分工明确。系统最大限度地实现了易维护性和易操作性。1.3开发环境1.网站开发环境网站开发环境:MicrosoftVisualStutio2005网站开发语言:ASP.NET+C#网站后台数据库:SQLServer2000开发环境运行平台:WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)服务器端操作系统:WindowsServer2003(SP1)。Web服务器:Internet信息服务管理器。数据库服务器:SQLServer2000。浏览器:IE6.0。网站服务器运行环境:Microsoft.NETFrameworkSDKv2.0。3.客户端浏览器:InternetExplorer6.0。分辨率:最佳效果1024*768像素。1.4课题相关知识简介1.4.1数据库相关技术简介数据库编程主要包括与Access和SQLServer2000这些常用数据库的链接。1.Access数据库是目前应用十分广泛的桌面型数据库,它主要应用于各种小型的管理信息系统中。除了能够作为各种编程语言的后台数据库之外,Access本身也是一种好的数据库开发工具。Access数据库是Microsoft的Office办公套件的重要组成部分,其特点如下:(1)提供了数据库中最常用的功能,使用便捷。(2)系统资源占用低,不需要数据库服务器的支持。(3)与Office办公组件紧密集成,交换数据非常方便。(4)与SQLServer无缝集成,便于将数据库迁移到SQLServer上。其缺点是无法支持较大的数据量,并且不支持数据库的高级特性(并发访问和事务处理等)。但由于其快速、小巧且灵活,所以被小型信息管理系统将其作为后台数据库。2.SQLServer是一个后台数据库管理系统,其功能强大、操作简便,深得广大数据库用户的喜爱。目前,越来越多的开发工具提供了与SQLServer的接口。了解和掌握SQLServer的功能,对于一个数据库开发人员来说是非常必要的。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本,该版本不但继承了SQLServer7.0版本的优点,而且增加了许多更先进的功能。具有使用方便、可伸缩性好并与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型计算机到运行MicrosoftWindows2000的大型多处理的服务器等多种平台。数据库是数据管理技术,信息资源已成为各个部门的重要资源。数据库系统指在计算机系统中引入数据库后的系统,一般是由数据库、数据库管理系统、应用程序、数据库管理员,以及终端用户组成。在一般情况下也可以将数据库系统称为“数据库”。数据库有很多种分类,目前使用的数据库主要以关系数据库为主。关系数据库的主要特点之一就是用表组织数据,表是最基本的数据库对象,是SQL语言存放数据、查找数据,以及更新数据的基本数据结构。在SQL语言中,表示一种二维数据对象,由行和列组成,用于存储关系数据库中的数据,每个表存储有关由数据库建模的对象的信息。表中,列由同类的信息组成,称为“一个字段”,每列的标题称为“字段名”。一行称为“一条记录”,一个数据库表由若干条记录组成。表中每一个属性组可以惟一确定一条记录,称之为“主键”。视图是建立在表基础上的数据库对象,为了用户查询方便或根据数据库安全需要建立的虚拟表。它同样具有字段与数据项,外表与表一样。视图中的数据可以来源或多个表,视图中任何的操作都不会影响到基本表。存储过程是为了完成特定的功能而聚集在一起的一组SQL语言,这些语句可以高效率的完成指定的数据库操作。数据库中的索引与书籍中的索引类似,在一本书中,利用索引可以快速查找所需信息。在数据库中,索引使数据库程序无需扫描整个表,即可在其中找到所需数据。数据库中的索引是一个表中所包含的列表,其中注明了表中包含各个值的行所在的存储位置。在数据库的管理和维护过程中,保证数据库的完整性是至关重要的,触发器是一种实施复杂的完整性约束的特殊存储过程。当使用INSERT,DELETE,UPDATE命令对触发器所保护的数据进行修改时,它能被系统自动激活,用来防止对数据进行不正确、未授权或不一致的修改。触发器不同于一般的存储过程,它不可以使用EXECUTE语句来执行。在数据库的实际应用中,为了保证数据的安全性,防止数据库中的数据意外丢失,需要经常对数据库进行备份。这样一旦出现问题,就可以使用备份来进行恢复。SQLServer2000提供了备份和还原数据库组件,备份就是对SQLServer数据库或事务日志进行备份。数据备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库招到破坏时能够及时的将其进行恢复。系统在恢复数据库的过程中,自动执行安全性检查、重建数据库结构以及完整的数据库内容【8】。1.4.2ASP.NET概述在最新的VisualStudio2005中,使用MicrosoftASP.NET2.0开发Web应用程序。ASP.NET是一个统一的Web开发平台,它提供了开发Web网站所必需的服务。ASP.NET是.NET框架的一部分,因此可以使用.NET框架中的所有类型和服务。通过ASP.NET,用户可以使用面向对象和事件驱动的方式来开发Web网站。ASP.NET是创建动态网页的新技术,它继承了Microsoft公司的两项主要技术,即ASP和.NET。ASP.NET不仅可以动态生成Web页面,而且提供了大量易用并可复用的预定义控件,使开发变得更便捷。ASP.NET是在ASP的基础上而来的,具有与ASP相似的语法。ASP是一个统一的Web开发平台,它提供了开发Web网站所必需的服务。ASP.NET是一个基于.NET的编译化开发环境,与一般的Web开发技术相比,具有以下优点。(1)优良的性能:ASP.NET在服务器上运行经过编译的代码,与ASP及其他技术相比,ASP.NET利用二次编译、代码优化以及缓冲服务大大地提高了程序的性能。(2)丰富的工具支持,在新的VisualStudio开发环境中有许多简单易用的控件,可以通过拖放来直接使用这些控件,使开发更加快捷。(3)强大的功能:ASP.NET可以使用.NET框架中功能强大的基础类库。(4)程序与页面结构的分离:ASP.NET实现的动态页面允许把代码和页面结构分离,使逻辑更加清晰,也使程序更加安全。(5)良好的可移植性和适用性:ASP.NET使用基于文本格式的存储方式,在开发完成后只需要将页面和代码文件拷贝到服务器上即可使用,环境配置将不需要任何工具的帮助。(6)超强的扩展性:ASP.NET允许开发人员开发自己的组件,并使用自己的组件构建系统。ASP.NET2.0在ASP.NET的基础上做出了重大改革,ASP.NET2.0开发小组考察了大量的网页、站点和场景,在此基础上创建了一组站点所有者的常见目标。其中包含了大概20个目标,包括读取数据、统一登录和身份验证的过程、一致的站点外观,以及不同浏览器平台页面的定制。现在开发人员只需要简单地将Microsoft在ASP.NET2.0中开发的组件装配在一起,即可迅速地组建出一个复杂的站点,而且相对容易维护。这些控件将为页面产生一些代码,服务器将使用这些代码创建页面HTML代码,并随后将这些代码发送到浏览器。由于发送的是HTML代码,因此除了能显示HTML和执行一些简单的JavaScript脚本之外,不需要浏览器有其他特殊功能【9】。1.4.3WEB站点开发基础在VisualStudio2005中共支持4种用来创建及开发WebSite站点的方式。.文件系统。使用VisualStudio2005内置的网站服务器。以往使用VisualStidio2003开发网页一定要配合IIS(InternetInformationService)环境,VisualStudio2005已内置网站服务器,可以将网站创建在文件系统的任何地方,而开发网站完全不需要IIS。用户只要在个人计算机上安装VisualStudio2005,即可设计、运行网页。.本地IIS。当然也可以使用本地的IIS当作网站服务器。.FTP站点。在实际应用上,通常有正式的网站服务器,这台服务器可能放在机房。在VisualStudio2005中,可通过FTPSites直接远程创建网站,修改存储代码、运行网页。.Remote站点。与FTP站点类似,可远程修改网站服务器代码并对其运行、存储,但必须通过FrontPageExtension验证。在一个ASP.NET应用程序中,有两个特殊的文件:web.config和Global.asax。ASP.NET应用程序配置信息的存储是由web.config文件完成的,而Global.asax文件则用于实现对ASP.NET应用程序的消息响应(如Application_Start、Session_Start等)。web.config文件时Web应用程序的配置文件,通过配置web.config文件,可以使Web应用程序实现很多功能,如:处理特定类型的请求;设置会话声明,判断会话状态是在进程中还是进程外;设置浏览能力,自定义由HttpBrowserCapabilities类在遇到指定浏览器时返回的属性;设置安全性,对某些特定的文件加以严格的安全限制;设置编译条件,决定编译ASP.NET应用程序的设置,包括哪些外部程序集应包含在应用程序的编译中等。1.4.4IIS简介IIS的基本概念IIS(Inter-ICSoundbus)又称I2S,是菲利浦公司提出的串行数字音频总线协议。目前很多音频芯片和MCU都提供了对IIS的支持。IIS总线只处理声音数据。其他信号(如控制信号)必须单独传输。为了使芯片的引出管脚尽可能少,IIS只使用了三根串行总线。这三根线分别是:提供分时复用功能的数据线、字段选择线(声道选择)、时钟信号线。IIS是InternetInformationServices的缩写,是一个WorldWideWebserver。Gopherserver和FTPserver全部包容在里面。IIS意味着你能发布网页,并且有ASP(ActiveServerPages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,象有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEXSERVER)、有多媒体功能的(NETSHOW)其次,IIS是随WindowsNTServer4.0一起提供的文件和应用程序服务器,是在WindowsNTServer上建立Internet服务器的基本组件。它与WindowsNTServer完全集成,允许使用WindowsNTServer内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。IIS(InternetInformationServer,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。2.IIS的作用在同一时间内允许打开的网站页面数,打开一个页面占一个iis,打开一个站内框架页面占2到3个iis;若图片等被盗链,在其它网站打开本站图片同样占一个iis。假若设置参数为50个iis,则这个站允许同时有50个页面被打开。但要在同一时间(极短的时间)有50个页面被打开,需要50个人同时操作,这个概率还是比较低的。所以,100个iis支持日ip1000(同时访问网站人数必定远低于1000人)以上都不是很大问题,除非网站被盗链或框架引发其它消耗。IIS的各种版本IIS版本Windows版本备注IIS1.0WindowsNT3.51ServicePack3s@bkIIS2.0WindowsNT4.0s@bkIIS3.0WindowsNT4.0ServicePack3开始支持ASP的运行环境IIS4.0WindowsNT4.0OptionPack支持ASP3.0IIS5.0Windows2000在安装相关版本的.NetFrameWork的RunTime之后,可支持ASP.NET1.0/1.1/2.0的运行环境IIS6.0WindowsServer2003WindowsVistaHomePremiumWindowsXPProfessionalx64Editions@bkIIS7.0WindowsVistaWindowsServer2008s@bkIIS3.IIS的重要特性IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。
IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,它能够提供快速且集成了现有产品,同时可扩展的Internet服务器。
IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与WindowsNTServer网络操作系统紧密的集成在一起,另外,IIS还使用与WindowsNTServer相同的SAM(SecurityAccountsManager,安全性账号管理器),对于管理员来说,IIS使用诸如PerformanceMonitor和SNMP(SimpleNerworkManagementProtocol,简单网络管理协议)之类的NT已有管理工具。
IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(MultipurposeInternetMailExtensions,多用于Internet邮件扩展),它可以为Internet应用程序的访问提供一个简单的注册项。4.IIS的安装、管理及安全性(1)IIS的安装IIS可以在WindowsNT安装时安装,也可以安装完Windowsserver后用“控制面板”中的“添加/删除程序”安装,安装路径为光盘中的:i386\inetsrv\inetstp.exe。安装过程中要求添加相应的ODBC驱动程序。(2)IIS的管理IIS通过ISM(InternetServiceManager)进行管理,ISM有两个版本,一个以普通应用程序的方式运行,一个在Web浏览器中运行,二者的差别在于后者不能启动和停止Internet服务。ISM(应用程序方式)管理界面:在“查看”菜单中选择“查看报告”、“服务器查看”、“服务查看”可以得到三种视图:报告视图缺省的视图,按字母顺序依次显示所选择的计算机及其上安装的服务。通过该视图可以:连到服务器并显示其属性对话框;启动、停止或暂停服务;可选择显示哪些服务(FTP、WWW、GOPHER)。服务器视图显示网络上运行Internet服务的计算机名。打开该计算机可以看到正在运行的Internet服务。双击服务器名可以显示其属性对话框。服务视图列出所有的Internet服务。打开服务可以看到哪些计算机运行该服务。双击服务下的计算机名,可以打开该计算机上的服务属性对话框。(3)IIS的安全性IIS的安全性核心依赖于WindowsServer内置的安全机制,IIS自身也内置了安全机制。包括加密、验证以及IIS扩展等。1)WindowsServer安全性:WindowsNT提供用户账户安全性、NTFS安全性。①用户账户安全性:WindowsServer要求用户提供有效账户以及口令才能访问WindowsServer。IIS安装时创建InternetGuest账户,缺省情况下,所有IIS用户都使用这个账户登录到服务器,这个账户只允许本地登录,没有其他权利。假如允许远程用户用登录InternetGuest账户登录就不必给远程用户用户名及口令,WindowsNT以InternetGuest账户对待。②NTFS文件安全性:NTFS提供安全性,可以控制对数据文件的访问,应当将数据文件放在NTFS分区。NTFS可以精确控制哪些用户和组以什么权限访问文件和目录。2)IIS的安全性:除了WindowsNT的安全措施外,IIS本身也有安全控制能力。通过账户名及口令控制访问:可以配置WWW服务要求用户连入服务器之前提供一个合法的用户名及口令【10】。第二章系统概要设计2.1需求分析图书馆是收藏图书、刊物以及各类音像和文字资料,并供读者借阅的单位。其主要业务包括图书的采购、编目、入库、流通(借阅、归还),读者管理,以及阅览室管理等。长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。在借书时,读者首先将要借的书和借阅证交给工作人员,工作人员然后将每本书的信息卡片和读者的借阅证放在一个小格栏里,然后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员然后根据图书信息找到相应的书卡和借阅证,并填写相应的还书信息。从上述描述中可以发现,传统的手工流程存在种种不足。首先处理借书、还书业务的效率很低;其次处理能力比较低,一段时间内,所能服务的读者人数只能是有限的。为此图书信息管理系统需要为企业解决上述问题,提供快速的图书信息检索功能及快捷的图书借阅、归还流程。根据图书馆理系统的特点,可以将其分为系统设置、读者管理、图书管理、图书归还、系统查询等5个部分,其中各个部分及其包括的具体功能如图2.1所示。图2.1系统功能结构图2.2系统总体业务流程设计图书馆管理系统的系统设计流程图如图2.2所示。图2.2系统流程图2.3数据库设计本系统采用SQLServer2000数据库,名称为db_tsrj,其中包含9张表。1.数据库概要说明本系统用户表共包含9张表,分别是:管理员权限设置表、图书借阅表、书架信息表、图书信息表、图书类型信息表、图书馆信息表、读者信息表、读者类型信息表、管理员信息表。具体表如图2.3所示。图2.3数据库表结构2.数据库概念设计通过对本系统进行的需求分析、系统流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下。只有系统分配的用户才可以操作图书馆管理系统,而用户的权限又各自不同。当管理员登录图书馆管理系统时,需要登录窗口验证成功后才能进入系统主页。管理员信息实体,用于存储管理员的登录名称和登录密码。管理员权限设置与管理员信息实体的E-R图如图2.4所示。图2.4管理员权限设置与管理员信息实体的E-R图图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅情况。不同的书,会有不同的图书信息。对这些图书信息进行详细的记录,方便了图书的分类和查询。图书信息实体,用于存储所有图书的相关信息。图书借阅信息与图书信息的实体E-R图如图2.5所示。图2.5图书借阅信息与图书信息的实体E-R图图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅情况。当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询。读者信息实体,用于存储所有借阅图书的读者信息。图书借阅信息与读者信息的实体E-R图如图2.6所示。图2.6图书借阅信息与读者信息的实体E-R图不同的书,会有不同的图书信息。对这些图书信息进行详细的记录,方便了图书的分类和查询。图书信息实体,用于存储所有图书的相关信息。图书馆中会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。图书信息与图书类型的实体E-R图如图2.7所示。图2.7图书信息与图书类型的实体E-R图不同的书,会有不同的图书信息。对这些图书信息进行详细的记录,方便了图书的分类和查询。图书信息实体,用于存储所有图书的相关信息。图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。书架信息实体用于存储图书馆中所有的书架信息。图书信息与书架信息的实体E-R图如图2.8所示。图2.8图书信息与书架信息的实体E-R图当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询。读者信息实体,用于存储所有借阅图书的读者信息。在读者群体中,会有不同的分类,例如借阅图书的读者可能是教师、学生和市民等,所以对读者人群进行有效的分类是至关重要的。读者类型信息实体,用于存储读者的类型信息。读者信息与读者类型信息实体的E-R图如图2.9所示。图2.9读者信息与读者类型信息的实体E-R图3.数据库逻辑结构设计在设计完整数据库E-R图后,需要根据E-R图设计数据表结构。下面给出主要的数据表的数据结构和用途。(1)tb_admSet(管理员权限设置表)表tb_admSet用于保存与管理员权限设置相关的信息,该表的结构如表2.1所示。表2.1管理员权限设置表字段名数据类型长度主键否描述usernamevarchar80是管理员名称systemSetbit1否系统设置readerManagebit1否读者管理bookManagebit1否图书管理bookBorrowbit1否图书借还systemSearchbit1否系统查询(2)tb_bookBorrow(图书借阅表)表tb_bookBorrow用于保存所有已借阅图书的信息,该表的结构如表2.2所示。表2.2图书借阅表bookBarcodevarchar50是图书条形码bookNamebit20否图书名称borrowTimebit8否借阅日期returnTimebit8否应还日期readerBarCodebit50否读者条形码readerNamebit20否读者姓名isReturnbit1否是否归还(3)tb_bookcase(书架信息表)表tb_bookcase用于保存书架的详细信息,该表的结构如表2.3所示。表2.3书架信息表字段名数据类型长度主键否描述bookcaseIDInt4是书架编号bookcaseNamevarchar80否书架名称(4)tb_bookInfo(图书信息表)表tb_bookInfo用于保存与图书相关的所有信息,该表的结构如表2.4所示。表2.4图书信息表字段名数据类型长度主键否描述bookBarcodevarchar100是图书条形码bookNamevarchar100否图书名称bookTypeint4否图书类型bookcaseint4否书架类别bookConcernint100否出版社名称authorint80否作者名称priceint8否图书价格borrowSumint4否借阅次数(5)tb_bookType(图书类型信息表)表tb_bookType用于保存图书类型信息,该表的结构如表2.5所示。表2.5图书类型信息表字段名数据类型长度主键否描述typeIDInt4是图书类型编号typeNameVarchar50否类型名称borrowDayInt4否可借天数(6)tb_library(图书管信息表)表tb_library用于保存与图书馆相关的信息,该表的结构如表2.6所示。表2.6图书馆信息表字段名数据类型长度主键否描述libraryNamevarchar80是图书馆名称curatorvarchar80否馆长名称telvarchar100否联系电话addressivarchar200否联系地址emailvarchar100否电子邮件netvarchar200否网址upbuildTimedatetime8否建馆时间remarkvarchar500否备注(7)tb_readerInfo(读者信息表)表tb_readerInfo用于保存所有读者信息,该表的结构如表2.7所示。表2.7读者信息表字段名数据类型长度主键否描述readerBarCodevarchar50是读者条形码readerNamevarchar50否读者名称sexchar10否读者性别readerTypevarchar50否读者类型certificateTypevarchar50否证件类型certificatevarchar50否证件号码telvarchar50否联系电话emailvarchar50否电子邮件remarkvarchar500否备注(8)tb_readerType(读者类型信息表)表tb_readerType用于保存所有读者类型信息,该表的结构如表2.8所示。表2.8读者类型信息表字段名数据类型长度主键否描述idint4是类型编号typevarchar50否类型名称numvarchar50否可借数量(9)tb_user(管理员信息表)表tb_user用于保存所有管理员信息,该表的结构如表2.9所示。表2.9管理员信息表字段数据类长度主键描述userIDint4是管理员编号userNamevarchar50否管理员名称userPwdvarchar50否管理员密码2.4公共类设计在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、字符串处理的类,因此,在开发系统前首先需要设计这些公共模块。下面列出图书馆管理系统中所需要的数据库操作类。数据库操作类用来完成数据库的连接操作,以及数据库的查询、添加、删除和修改操作。将这几种操作编写到一个公共类里,在dataOperate类中一共定义了5个方法,分别如下:(1)createCon方法createCon()方法用来连接数据库,此方法返回的类型为SqlConnection。代码如下:publicstaticSqlConnectioncreateCon(){//生成SqlConnection的一个对象用于连接数据库con=newSqlConnection("server=.;database=db_tsrj;uid=sa;pwd=;");returncon;}(2)execSQL方法execSQL(stringsql)方法用来查找数据是否存在。此方法返回一个布尔型值,用来表示添加、插入和删除数据是否成功,执行成功返回true,否则返回false。调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。代码如下:publicstaticboolexecSQL(stringsql){//创建连接对象SqlConnectioncon=createCon();con.Open();SqlCommandcom=newSqlCommand(sql,con);try{//执行SQL语句com.ExecuteNonQuery();//关闭连接对象con.Close();}catch(Exceptione){con.Close();//执行失败返回falsereturnfalse;}//执行成功返回truereturntrue;}(3)seleSQL方法seleSQL(stringsql)方法用来查找数据是否存在。此方法返回一个布尔型值,用来表示是否查找到数据,如查找到数据则返回true,否则返回false。调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。代码如下:publicstaticintseleSQL(stringsql){SqlConnectioncon=createCon();//创建连接对象con.Open();SqlCommandcom=newSqlCommand(sql,con);try{//执行SQL语句后返回第一行第一列值returnConvert.ToInt32(com.ExecuteScalar());con.Close();//关闭连接}catch(Exceptione){con.Close();return0;}}(4)getDataset方法getData(stringsqlstringtable)方法用来查找并返回多行数据。此方法返回一个DataSet数据集。在调用此方法时应传入两个string类型的参数,第一个参数表示要执行的SQL语句,第二个参数表示表名。代码如下:publicstaticDataSetgetDataset(stringsql,stringtable){SqlConnectioncon=createCon();//创建数据连接对象con.Open();//打开连接DataSetds;SqlDataAdaptersda=newSqlDataAdapter(sql,con);//执行SQL语句ds=newDataSet();//创建数据集sda.Fill(ds,table);//填充数据集returnds;//返回数据集}(5)getRow方法GetRow(stringsql)方法用来查找并返回一行数据。此方法返回一个SqlCommand对象。在调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。代码如下:publicstaticSqlDataReadergetRow(stringsql){SqlConnectioncon=createCon();con.Open();SqlCommandcom=newSqlCommand(sql,con);returncom.ExecuteReader();}第三章系统各模块详细设计与实现3.1网站首页设计3.1.1网站首页概述管理员通过“系统登录”模块的验证后,可以登录到图书馆管理系统的主页。系统主页主要包括Banner信息栏、导航栏、借阅排行榜和版权信息等4部分。网站首页运行效果如图3.1所示。图3.1图书馆管理系统首页3.1.2网站首页技术分析在图书馆管理系统的首页开发过程中,使用GridView控件显示信息,为其添加一个自动编号列,就可以实现按照借阅次数的多少进行排名的功能。网站首页中主要通过设置GridView控件中第一列的值为当前项目的索引值累加来实现GridView控件的自动编号功能。在实现自动编号功能时,主要触发了GridView控件的RowDataBound事件,该事件详细说明如下。RowDataBound事件:呈现GridView控件之前,该控件中的每一行都必须绑定到数据源中的一条记录。将某个数据行绑定到GridView控件中的数据以后,将引发RowDataBound事件。网站首页在实现自动编号功能时,主要通过在GridView控件的RowDataBound事件中动态修改GridView控件中第一列的值实现的。GridView控件的RowDataBound事件中实现的代码如下:if(e.Row.RowIndex!=-1)//判断GridView控件中是否有值{intid=e.Row.RowIndex+1;//将当前行的索引加上一赋值给变量ide.Row.Cells[0].Text=id.ToString();//将变量id的值传给GridView控件的每一行的单元格中}3.1.3网站首页的实现首先导入必要的命名空间。在page_load单击事件中,利用Session对象判断用户登录的状态,如果Session中存在的变量为空,说明用户未登录,页面将跳转到登录页面;如用户已登录,则调用bindBookInfo自定义的方法。流程图如图3.2所示:图3.2网站首页流程图实现方法的代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(Session["userName"]!=null)//判断用户是否登录{bindBookInfo();//调用自定义方法用来绑定图书借阅排行}elseResponse.Redirect("entry.aspx");//跳转到登录页面}BindBookInfo自定义方法用来显示图书借阅排行榜,在此方法中使用数据库操作类中的getDataset方法,查找出借阅率高的图书信息绑定到GridView控件上。实现代码如下:protectedvoidbindBookInfo(){stringsql="selecttop10*fromtb_bookInfoorderbyborrowSumdesc";//设置SQL语句gvBookTaxis.DataSource=dataOperate.getDataset(sql,"tb_bookInfo");//获取图书信息数据源gvBookTaxis.DataBind();//绑定GridView控件}在图书信息表中,图书类型存储的是类型的编号,为了查看方便将图书类型的编号转换为类型名称。此功能在GridView控件的RowDataBound事件中实现,再此事件中先获取图书类型的编号,通过编号在图书类型表中获取类型名称,将类型名称绑定到图书类型列中。实现代码如下:protectedvoidgvBookTaxis_RowDataBound(objectsender,GridViewRowEventArgse){!=-1)//判断GridView控件中是否有值{intid=e.Row.RowIndex+1;//将当前行的索引加上一赋值给变量ide.Row.Cells[0].Text=id.ToString();}if(e.Row.RowType==DataControlRowType.DataRow){//绑定图书类型stringbookType=e.Row.Cells[3].Text.ToString();//获取图书类型编号stringtypeSql="select*fromtb_bookTypewhereTypeID="+bookType;SqlDataReadertypeSdr=dataOperate.getRow(typeSql);typeSdr.Read();//读取一条数据e.Row.Cells[3].Text=typeSdr["typeName"].ToString();//设置图书类型//绑定书架stringbookcase=e.Row.Cells[4].Text.ToString();//获取书架编号stringcaseSql="select*fromtb_bookcasewherebookcaseID="+bookcase;SqlDataReadercaseSdr=dataOperate.getRow(caseSql);caseSdr.Read();e.Row.Cells[4].Text=caseSdr["bookcaseName"].ToString();//设置书架//设置鼠标悬停行的颜色e.Row.Attributes.Add("onMouseOver","Color=this.style.backgroundColor;this.style.backgroundColor='lightBlue'");e.Row.Attributes.Add("onMouseOut","this.style.backgroundColor=Color;");}}3.2管理员设置模块3.2.1管理员设置模块概述管理员设置模块主要包括查看管理员列表、添加管理员、管理员权限设置和删除管理员4个功能。选择“系统设置”/“管理员设置”命令,进入到管理员设置页面。在此页面中将显示所有管理员的名称和管理员所拥有的权限。管理员设置页面如图3.3所示。图3.3管理员设置页面单击“添加管理员”链接按钮将弹出添加管理员网页对话框,在此对话框中可以添加新的管理员,新添加的管理员默认拥有图书借还权限和系统查询权限,如图3.4所示。图3.4添加管理员单击“权限设置”链接按钮将弹出管理员权限网页对话框,在此对话框中可以设置某一个管理员所拥有的权限。如图3.5所示。图3.5设置管理员权限3.2.2管理员设置模块技术分析在添加新的管理员时,在管理员权限设置表中也应该将新管理员添加到其中。此功能主要利用触发器来实现。触发器在应用程序中可以代替繁琐的程序代码,完成相应的功能。由于触发器可以查询其他表,而且可以包含复杂的Transact-SQL语句,所以可以实现强制性的、复杂的业务规则或要求。触发器实质是一种特殊的存储过程,但是它与表却是紧密联系的,离开了表它将不复存在(这点与约束十分相似)。触发器又不像存储过程那样需要调用才能执行,而是在对表中数据进行增、删、改(INSERT、DELETE、UPDATE)操作时被触发而执行。触发器可以包含复杂的Transact-SQL语句。在触发器内设置回滚,可以检测到错误时可以回滚事务以撤销错误。在MicrosoftSQLServer中使用触发器的优点可概括如下:(1)触发器可以实现外键约束的功能,实现对表的级联修改。(2)触发器可以实现核查约束的功能,而且其功能更为强大。(3)如果对表中数据进行了增、删、改的操作,使用触发器可以根据修改前后的差异,采取对应的对策。(4)允许在一个表中针对不同的增、删、改操作设置多个触发器,以完成各类不同任务。触发器在SQLServer中的基本应用可大体概括为Insert型触发器、Update型触发器、Delete型触发器、嵌套型触发器和递归型触发器。添加管理员模块使用的是Insert型触发器。创建Insert触发器:需要用到两个表,一个表为管理员信息表tb_user,用来存储新添加的管理员信息;另一个为管理员权限设置表tb_admSet,用来存储每个管理员的管理权限。在管理员信息表中添加一个新的管理员信息的同时,也应将新添加的管理员名称添加到管理员权限设置表中。在查询分析器里建立Insert触发器的语法如下:userdb_tsrj/*判断表中是否存在名为addUser的触发器*/IFEXISTS(SELECTnameFROMsysobjectsWHEREname=’addUser’ANDtype=’P’)DROPPROCEDUREaddUser/*删除名为addUser的触发器*/GOcreatetriggeraddUserontb_user/*创建名为addUser的触发器*/forinsertasinsertintotb_admSet(userName)selectinserted.userNamefrominserted3.2.3查看管理员信息页的实现在页面的加载事件中,首先判断用户是否登录,如果用户已登录,则判断此用户是否拥有管理此页面的权限,拥有此权限将调用bindUserManage自定义方法显示所有管理员信息。实现的流程图如图3.6所示:图3.6查看管理员信息页的流程图实现代码如下:protectedvoidPage_Load(objectsender,EventArgse){if(Session["userName"]!=null)//判断管理员是否登录{if(getSet())//判断是否拥有权限{bindUerManage();}elseResponse.Write("<script>alert('您没有此权限');location='index.aspx';</script>");}else{Response.Redirect("entry.aspx");//返回到登录页面}}在bindUserManage自定义方法中,调用数据库操作类中的getDataset方法获取所有管理员信息。getSet自定义方法用来判断此用户是否拥有管理此页面的权限,此方法返回一个布尔类型的值。当此值为True时表示用户拥有管理此页面的权限,为False时则没有管理此页面的权限。实现代码如下:publicboolgetSet(){stringuserName=Session["userName"].ToString();//获取管理员登录名stringsql="select*fromtb_admSetwhereuserName='"+userName+"'";SqlDataReadersdr=dataOperate.getRow(sql);sdr.Read();//读取一条记录returnConvert.ToBoolean(sdr["systemSet"]);//返回是否拥有权限}删除管理员功能通过GridView控件中的RowDeleting事件来实现,在此事件中获取该管理员的登录名,通过登录名使用数据库操作类中的execSQL方法将此管理员删除,最后需要重新绑定管理员信息。实现代码如下:protectedvoidgvAdmSet_RowDeleting(objectsender,GridViewDeleteEventArgse){stringuserName=this.gvAdmSet.DataKeys[e.RowIndex].Value.ToString();//获取主键字段stringsql="deletefromtb_admSetwhereuserName='"+userName+"'";dataOperate.execSQL(sql);//删除管理员信息bindUerManage();//重新绑定管理员信息}3.2.4管理员权限设置页的实现过程在页面加载事件中判断页面是否是首次加载,如果页面是首次加载,则调用bindUser自定义方法显示当前用户拥有的权限。在bindUser自定义方法中通过查看管理页面传入管理员的登录名,在数据库中读取此管理员当前拥有的权限并将权限信息显示出来。当修改完当前管理员的权限后将管理员权限信息更新到管理员权限设置表中,此操作是在“保存”按钮的Click事件中实现的。在此事件中获取当前设置的管理员权限信息,使用数据库操作类中的execSQL方法将数据库中的权限信息更新。3.3图书档案管理模块设计3.3.1图书档案管理模块概述图书档案管理模块主要包括查看图书详细信息、添加图书信息、修改图书信息、删除图书信息和打印图书信息5个功能。选择“图书管理”/“图书档案管理”命令,进入图书档案管理页面。页面运行效果如图3.7所示。图3.7添加或修改图书信息对话框单击“添加图书信息”或“修改图书信息”链接按钮,将弹出添加或修改图书信息的网页对话框。如图3.8所示。图3.8添加或修改图书信息对话框3.3.2图书档案管理模块技术分析在打印图书详细信息时用到了SQLServer2000的视图功能。视图是一种常用的数据库对象,它将查询的结果以虚拟表形式存储在数据库中。视图并不在数据库中以存储数据集的形式存在。视图的结构和内容是建立在对表的查询基础之上的,和表一样包括行和列。视图中的内容是由查询定义来的,并且视图和查询都是通过SQL语句定义的,它们有着许多相同之处,但又存在很多不同之处。存储:视图存储为数据库设计的一部分,而查询则不是。视图可以禁止所有用户访问数据库中的基表,而要求用户只能通过视图操作数据。这种方法可以保护用户和应用程序不受某些数据库修改的影响,同样也可以保护数据表的安全性。排序:可以排序任何查询结果,但是只有当视图包括TOP子句时才能排序视图。加密:可以加密视图,但不能加密查询。视图可以使用Transact-SQL创建,使用的是CREATEVIEW语句。语法如下:CREATEVIEWview_name[(column[,...n])][WITH<view_attribute>[,...n]]ASselect_statement[WITHCHECKOPTION]其中参数介绍如下:view_name:视图的名称。column:定义视图中的字段名。如果没有指定,则视图字段将获得与SELECT语句中的字段相同的名称。但对于以下情况则必须指定字段名:eq\o\ac(○,1)视图是从多个表中产生的,对于表中有数据列重名时。eq\o\ac(○,2)当列是从算术表达式、函数或常量派生得到的。eq\o\ac(○,3)当视图中的某列不同于源表中列的名称时。WITH<view_attribute>:其中<view_attribute>有以下3种参数。eq\o\ac(○,1)ENCRYPTION:表示对视图文本进行加密。eq\o\ac(○,2)SCHEMABINDING:将视图绑定到架构上。指定SCHEMABINDING时,select_statement必须包含所引用的表、视图或用户定义函数的两部分名称(owner.object)。eq\o\ac(○,3)VIEW_METADATA:表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQLServer将向DBLIB和OLBDBAPIS返回视图的元数据信息,而不是一个基表或表。AS:视图要执行的操作。select_statement:定义视图的查询语句。该语句可以引用多个表或其他视图。在CREATEVIEW语句中,对于查询语句有以下限制。eq\o\ac(○,1)不能包含COMPUTE或COMPUTEBY子句。eq\o\ac(○,2)不能包含ORDERBY子句,除非在SELECT语句的选择列表中也有一个TOP子句。eq\o\ac(○,3)不能包含INTO关键字。eq\o\ac(○,4)不能引用临时表或变量。WITHCHECKOPTION:规定在视图上执行的所有数据修改语句都必须符合由select_statement设置的准则。通过视图修改记录,WITHCHECKOPTION可确保提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报书多少字合适呢
- 课题申报书文献引用格式
- 课程衔接课题申报书
- 高中课题研究申报书
- 小学语课题申报书怎么写
- 咨询个人合同范本
- Unit 3 Keep Fit section B 同步课时讲练(含答案)七年级英语下册(人教版2024)
- bt模式合同范例
- 制式房屋购买合同范本
- 出售工地叉车合同范本
- 日内交易策略(TBQ版)
- 家校共育之道
- 部编版九年级道德与法治上册《第二课创新驱动发展》同步测试题(附答案)
- DeepSeek入门宝典培训课件
- 充电桩投放合同范本
- 西安2025年陕西西安音乐学院专职辅导员招聘2人笔试历年参考题库附带答案详解
- 《作文中间技巧》课件
- 人教鄂教版六年级下册科学全册知识点
- 2024年湖南生物机电职业技术学院单招职业技能测试题库及答案解析
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 双胎妊娠 PPT课件
评论
0/150
提交评论