《对象编程与Oracle数据库技术-4.ppt》由会员分享,可在线阅读,更多相关《对象编程与Oracle数据库技术-4.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1对象编程与对象编程与Oracle数据库技术数据库技术2第四部分第四部分 实例实例图书馆管理系统图书馆管理系统 进入知识经济和信息时代,图书馆的数字信息化管理是现代图书情报事业发展的必然之路,也是现代图书情报机构的不可缺少的重要组成部分。从某种程度上说,图书馆的数字信息化程度反映着一个国家、一个地区知识经济和信息产业的发展水平。跨入21世纪后,我国图书馆的数字信息化建设研究与实践探索呈现出方兴未艾的蓬勃趋势,各级图书情报单位都在积极开发图书馆的信息管理系统。31系统概述系统概述 本实例将介绍如何结合VisualBasic2005技术和Oracle9i数据库技术,创建一个基于本地数据库的图书馆管
2、理系统。该系统主要面向图书馆的单机服务实体对象开发,适合中小型图书馆使用。所开发的“图书馆管理系统”项目的界面如图4.1所示。主界面采用了多文档窗口,这样可以在窗口内打开多个子窗口,同时进行多种操作。主界面中通过菜单实现不同模块的功能,包括系统管理员、书籍信息管理、读者信息管理、报表和窗口功能。管理员可以根据自己的权限,对相应的模块进行操作。图4.1图书馆管理系统主界面42系统设计系统设计 本实例的目是将传统的图书馆转换为数字信息化的图书馆,并对图书实现自动化的管理。在进行具体的设计工作之前需要进行系统功能模块的分析和系统代码架构的分析。通过这两方面分析,能为实际的开发提供一个指导思想。52.
3、1 系统功能模块分析系统功能模块分析 利用本实例的图书馆管理系统,可以大大减轻图书馆管理员的工作负担,同时能够极大地利用图书资源,为用户提供及时快捷的图书信息。图书馆管理系统的管理员权限分为3级:系统管理员、图书管理员和一般管理员。他们具有不同模块的管理权限。图书馆管理系统的主要实体是书籍和读者。通过不同的功能模块可以有效地对这两个实体进行管理。这些模块的功能需求简单表述如下:系统管理员:只有系统管理员才具有该模块的权限。该模块需要实现书籍参数和用户信息管理,另外,通过该模块还可以解冻被冻结的用户和修改密码。书籍参数具体包括索书号、书籍类型和费用类型3个方面的信息。用户信息管理包括添加、编辑和
4、删除用户信息。62.1 系统功能模块分析系统功能模块分析书籍信息管理:系统管理员和图书管理员具有该模块的权限。该模块是系统核心的功能模块,要求实现添加书籍信息、查找书籍信息、编辑书籍信息、删除书籍信息、今日借阅查询和归还书籍功能。读者信息管理:所有的管理员都具有该模块的权限。该模块要求实现添加读者信息、编辑读者信息和删除读者信息的功能。报表:所有的管理员都具有该模块的权限。该模块要求实现书籍类型报表、用户报表和索书号报表。所有的报表要求通过VisualBasic2005的水晶报表实现。对上述各项功能进行集中、分块和结构化,得到如图4.2所示的系统功能模块图。72.1 系统功能模块分析系统功能模
5、块分析图4.2系统功能模块图图书馆管理系统系统管理员书籍信息管理读者信息管理报表添加书籍参数用户信息管理解冻用户修改密码添加书籍信息查找书籍信息编辑书籍信息删除书籍信息今日借阅查询归还书籍添加读者信息编辑读者信息删除读者信息书籍类型报表用户报表索书号报表82.2 系统代码架构分析系统代码架构分析 由于本实例的图书馆管理系统应用于中小型图书馆,属于小型的项目,因此,系统相对简单。为了提高系统的开发速度,这里采用了两层的代码架构,如图4.3所示。系统的架构包括用户界面和数据库两个层次。用户界面由系统管理员界面、书籍信息管理界面、读者信息管理界面和报表界面组成。用户界面一般面向用户,与用户发生交互,
6、另一方面面向底层的数据库。开发过程中有关数据库操作的代码穿插在界面代码中。用户用户界面系统管理员界面书籍信息管理界面读者信息管理界面报表数据库图4.3系统代码架构93 数据库设计数据库设计 本实例的图书馆管理系统是基于Oracle9i数据库进行开发的一个项目。数据库设计是信息管理系统中的一个基础工作,其目的是提供高的数据存储效率,保证数据库的完整性和一致性,在整个开发工作中占有相当重要的份量。一般在项目完成后,如果有新的修改或变化,尽可能只修改界面的代码。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有系统的需求以及将来可能增加的需求。103.1 数据库的需求分析数据库的需求分析
7、用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理的流程,组成一分详尽的数据字典,为后面的具体设计打下基础。在走访、调查和讨论具体客户对图书馆管理系统的需求后,经过仔细分析,图书管理一般的业务流程可以简单归纳如下:113.1 数据库的需求分析数据库的需求分析 首先是管理员登录图书馆管理系统,如果当前管理员是超级管理员,则可以添加、编辑和修改其他一般管理员的信息。如果系统是一个刚刚投入使用的系统,则应该先建立书籍参数,包括书籍类型、索书号和费用类型信息。并且需要建立读者的信息,可以进行添加、编辑和删除读者操作
8、。对于书籍类型、索书号和用户信息,可以输出相应的报表。打印为纸质文件,作为长期的保存。如果有新的书籍上架,可以进行添加书籍信息操作,对于已经添加的书籍信息可以进行查找、编辑和删除操作。对于读者借书还书,可以通过借阅书籍和归还书籍功能进行操作。在每日下班前,可以查询当日的借阅情况。123.1 数据库的需求分析数据库的需求分析 针对图书馆管理系统的需求,通过对图书馆管理系统业务流程和数据流程的分析,需要设计如下7个数据表和相应的数据字段。(1)用户信息表,即系统管理员信息表。包括的字段有:用户账号、用户姓名、密码、状态、地址、电话、手机、E-mail地址、系统管理员权限、图书管理员权限和一般管理员
9、权限。(2)书籍类型信息表,包括的字段有:书籍类型和描述信息。(3)索书号信息表,包括的字段有:索书号和描述信息。(4)费用类型信息表:包括的字段有:费用编号、费用和描述信息。133.1 数据库的需求分析数据库的需求分析(5)书籍信息表,包括的字段有:书籍编号、ISBN号、书籍名称、索书号、书籍类型、书籍描述、作者姓名、出版日期、版本、书籍状态、图片路径和添加日期。这里的图片以图片的所在路径表示。(6)读者信息表,包括的字段有:读者编号、读者姓名、地址、电话、手机号码、E-mail地址、最大借书量、已借书。(7)借阅信息表,包括的字段有:借阅号、书籍编号、读者编号、借阅日期、过期日期和费用类型
10、。143.2 数据库逻辑结构设计数据库逻辑结构设计 现在需要将上面的数据库概念结构转化为Oracle9i数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。根据数据库的需求分析和概念结构设计,设计了名称为Library的数据库,数据库由下面多个表组成,各个表的设计结果如表格4.14.7所示。153.2 数据库逻辑结构设计数据库逻辑结构设计表4.1用户信息表,即系统管理员信息表(SystemUsers)字段名字段名意义意义字段类型字段类型字段大小字段大小关键字关键字UserID用户账号char10是UserName用户姓名varchar220Password密码char10Status状态c
11、har4Address地址varchar250Phone电话varchar220CellPhone手机char20EmailE-mail地址varchar230AdminRights系统管理员权限char2LibRights图书管理员权限char2ReaderRights一般管理员权限char2163.2 数据库逻辑结构设计数据库逻辑结构设计SQLcreatetableSystemUsers(UserIDchar(10)primarykey,UserNamevarchar2(20),Passwordchar(10),Statuschar(4),Addressvarchar2(50),Phone
12、varchar2(20),CellPhonechar(20),Emailvarchar2(30),AdminRightschar(2),LibRightschar(2),ReaderRightschar(2)173.2 数据库逻辑结构设计数据库逻辑结构设计为了在程序中检验数据库设计得是否合理,以及测试程序的效果,可以先在数据库中输入一些数据,如图4.4所示。图4.4用户信息表SQLinsertintoSystemUsers2values(Admin,李强,admin,正常,北京朝阳区,010114,13013000001,是,是,是);SQLinsertintoSystemUsers2valu
13、es(ASP,王海,999,正常,北京中关村,010114,13800138000,否,是,是);183.2 数据库逻辑结构设计数据库逻辑结构设计表4.2书籍类型信息表(BookType)。字段名字段名意义意义字段类型字段类型字段大小字段大小关键字关键字Type书籍类型char10是description描述varchar250SQLcreatetableBookType2(Typechar(10)primarykey,3descriptionvarchar2(50);193.2 数据库逻辑结构设计数据库逻辑结构设计为了在程序中检验数据库设计得是否合理,以及测试程序的效果,可以先在数据库中输入
14、一些数据,如图4.5所示。图4.5书籍类型信息表SQLinsertintoBookType2values(COM-002,计算机类书);SQLinsertintoBookType2values(Novel-001,写实小说);SQLinsertintoBookType2values(Novel-002,科幻小说);SQLinsertintoBookType2values(Tool-001,工具书);203.2 数据库逻辑结构设计数据库逻辑结构设计表4.3索书号信息表(BookCode)。字段名字段名意义意义字段类型字段类型字段大小字段大小关键字关键字Code索书号char10是descript
15、ion描述varchar250SQLcreatetableBookCode2(Codechar(10)primarykey,3descriptionvarchar2(50);213.2 数据库逻辑结构设计数据库逻辑结构设计为了在程序中检验数据库设计得是否合理,以及测试程序的效果,可以先在数据库中输入一些数据,如图4.6所示。图4.6索书号信息表SQLinsertintoBookCode2values(TD035C,电脑类图书);SQLinsertintoBookCode2values(TE134F,建筑类图书);SQLinsertintoBookCode2values(TK117B,能源动力类
16、图书);SQLinsertintoBookCode2values(TP217A,计算机类图书);223.2 数据库逻辑结构设计数据库逻辑结构设计表4.4费用类型信息表(Charges)。字段名字段名意义意义字段类型字段类型字段大小字段大小关键字关键字ChargeNo费用编号char10是description描述varchar250Amount费用number10,0SQLcreatetableCharges2(ChargeNochar(10)primarykey,3Descriptionvarchar2(50),4Amountnumber(10,0);233.2 数据库逻辑结构设计数据库逻辑
17、结构设计表4.5书籍信息表(BookDetails)。字段名字段名意义意义字段类型字段类型字段大小字段大小关键字关键字SN书籍编号char10是ISBNISBN号char20BookName书籍名称varchar250BookCode索书号char10BookType书籍类型char10BookDes书籍描述varchar250AuthorName作者姓名varchar220PublishDate出版日期dateEdition版本char10BookStatus书籍状态char4Picture图片路径varchar260LibDate添加日期date243.2 数据库逻辑结构设计数据库逻辑结构
18、设计SQLcreatetableBookDetails2(SNchar(10)primarykey,3ISBNchar(20),4BookNamevarchar2(50),5BookCodechar(10),6BookTypechar(10),7BookDesvarchar2(50),8AuthorNamevarchar2(20),9PublishDatedate,10Editionchar(10),11BookStatuschar(4),12Picturevarchar2(60),13LibDatedate);253.2 数据库逻辑结构设计数据库逻辑结构设计为了在程序中检验数据库设计得是否合
19、理,以及测试程序的效果,可以先在数据库中输入一些数据,如图4.7所示。图4.7书籍信息表SQLinsertintoBookDetails2values(C1185,4-568-9996-6,平凡的世界,TE134F,Novel-001,长篇小说,路遥,08-6月-2001,第二版,被借,null,08-5月-2002);SQLinsertintoBookDetails2values(B1185,4-568-9996-6,VB2005入门到提高,TP217A,COM-002,用于初级读者的书,张无忌,08-6月-2006,第一版,正常,null,08-8月-2006);263.2 数据库逻辑结构
20、设计数据库逻辑结构设计表4.6读者信息表(ReaderDetails)。字段名字段名意义意义字段类型字段类型字段大小字段大小关键字关键字ReaderNo读者编号char10是ReaderName读者姓名varchar220Address地址varchar250ReaderPhone电话varchar220ReaderCell手机号码varchar220ReaderEmailE-mail地址varchar250IssueTag最大借书量numberIssueTagUsed已借书number273.2 数据库逻辑结构设计数据库逻辑结构设计SQLcreatetableReaderDetails2(R
21、eaderNochar(10)primarykey,3ReaderNamevarchar2(20),4Addressvarchar2(50),5ReaderPhonevarchar2(20),6ReaderCellvarchar2(20),7ReaderEmailvarchar2(50),8IssueTagnumber,9IssueTagUsednumber);283.2 数据库逻辑结构设计数据库逻辑结构设计为了在程序中检验数据库设计得是否合理,以及测试程序的效果,可以先在数据库中输入一些数据,如图4.8所示。图4.8读者信息表293.2 数据库逻辑结构设计数据库逻辑结构设计SQLinsert
22、intoReaderDetails2values(J4567,张三峰,北京中关村,09221-5844125,13800138000,2,1);SQLinsertintoReaderDetails2values(J7788,李平,北京市昌平,010800800800,13800138000,3,0);SQLinsertintoReaderDetails2values(X1234,李四,北京朝阳区,010-2323333,13013013013,1,2);303.2 数据库逻辑结构设计数据库逻辑结构设计表4.7借阅信息表(IssueBook)。字段名字段名意义意义字段类型字段类型字段大小字段大小
23、关键字关键字IssueNo借阅号char10是SN书籍编号char10ReaderNo读者编号char10idate借阅日期dateddate过期日期dateitype费用类型char10313.2 数据库逻辑结构设计数据库逻辑结构设计SQLcreatetableIssueBook2(IssueNochar(10)primarykey,3SNchar(10),4ReaderNochar(10),5idatedate,6ddatedate,7itypechar(10);324 创建系统主窗体创建系统主窗体 多文档窗体界面在很多的数据库信息管理程序中常见。在MDI子窗体中可以进行数据的传递,对MD
24、I子窗体进行多种方式排列,动态增加或删除菜单。335 系统管理员功能模块系统管理员功能模块 系统管理员功能模块主要包括3大部分:添加书籍参数、安全和用户管理。其中添加书籍参数包括书籍类型参数、索书号信息和费用信息。安全功能包括解冻用户和修改管理员密码的功能。345.1 添加书籍参数添加书籍参数355.2 用户信息管理用户信息管理 用户信息管理功能包括添加、编辑和删除用户的功能。首先介绍添加用户的功能。创建好的“添加用户信息”的界面如图所示。在界面中需要输入用户的基本信息,其中包括设置用户的权限。这里权限包括3级,不同级别管理的模块功能范围不同。一般管理员只具有读者信息管理模块的权限。图书管理员
25、具有读者信息管理模块和书籍信息管理模块的权限。系统管理员具有最高的选择,具有系统的功能。365.3 登录功能登录功能 创建好的登录界面如图所示,这里用户输入账号和密码后,单击“登录”按钮,如果通过认证,则用户可以登录系统。375.4 解冻用户解冻用户用户在进行非法操作后将被冻结,并被添加到冻结用户列表中。创建好的“解冻用户”的界面如图所示。选择列表中的用户,单击“解冻”按钮即可以解冻用户。385.5 修改密码修改密码 创建好的“修改密码”界面如图所示。这里用户需要输入用户编号和原来的密码,为了防止发生输入错误需要重复输入新的密码。单击“修改”按钮,即可更新用户的密码。396 书籍信息管理功能模
26、块书籍信息管理功能模块书籍信息管理是图书馆管理系统的核心功能,包括添加、查找、编辑、删除书籍信息,今日借阅查询,借阅书籍和归还书籍功能。6.1 添加添加书籍信息籍信息创建好的“添加书籍信息”窗体界面如图所示。在窗体的左边可以添加书籍的基本信息,在窗体的右边可以添加书籍的图片。设置好书籍信息后,单击“添加”按钮即可添加书籍信息。406 书籍信息管理功能模块书籍信息管理功能模块6.2 查找找书籍信息籍信息创建好的“查找书籍信息”窗体界面如图所示。这里提供3种查找方式:通过书籍名称、通过ISBN号码和通过作者。输入相应的查找条件,单击“查找”按钮对书籍信息进行搜集,查找的结果将显示在界面的DataG
27、rid控件中。416 书籍信息管理功能模块书籍信息管理功能模块6.3 编辑书籍信息籍信息创建好的“编辑书籍信息”窗体界面如图所示。在这里用户首先输入“书籍编号”信息,然后单击“读取”按钮,相应的书籍将被书籍信息被读取到界面的文本框中。在此基础上,用户可以对书籍信息进行编辑。426 书籍信息管理功能模块书籍信息管理功能模块6.4 今日借今日借阅查询如果想知道当天借阅的信息,可以通过“今日借阅查询”功能查看借阅信息。创建好的“今日借阅查询”界面如图所示。这里提供了3种查询条件:借阅号、书籍名称和读者姓名,用户可以任意选择其中一种方式。436 书籍信息管理功能模块书籍信息管理功能模块6.5 借借阅书
28、籍籍创建好的“借阅书籍”界面如图所示。在这个界面中,管理员要输入书籍信息、读者信息和借阅信息,最好还可以打印借阅条。446 书籍信息管理功能模块书籍信息管理功能模块6.6 归还书籍籍创建好的“归还书籍”窗体界面如图所示。在该界面中首先输入借阅号,按回车键,相应的借阅信息会显示在界面上。单击“归还”按钮,即可完成归还书籍操作。457 读者信息管理功能模块读者信息管理功能模块读者和书籍是图书馆管理系统中两个重要的实体对象。读者信息管理功能包括添加、编辑和删除读者的功能。创建好的“添加读者信息”窗体如图所示。在这里输入读者相关的信息后,单击“添加”按钮,即可注册新的读者。468 报表功能模块报表功能
29、模块 报表功能模块包括输入索书号报表,用户报表和书籍类型报表。如图所示为借阅信息的报表,这里将借阅信息列入一个报表中,并且提供了打印的方式。478 报表功能模块报表功能模块这些报表创建的方式或过程是类似的,它们都是通过VB2005中的水晶报表组件生成的。水晶报表(CrystalReports)是一个优秀的报表开发工具,其特点是简单、易用和功能强大。水晶报表用于处理数据库,帮助用户分析和解释重要信息。使用CrystalReports可以方便地创建简单报表,同时它也提供了创建复杂或专用的报表所需的整套工具。水晶报表几乎可以从任何数据源生成所需要的报表。内置报表专家在生成报表和完成一般任务的过程中,
30、会一步一步地指导用户进行操作。报表专家通过公式、交叉表、子报表和设置条件格式帮助实现数据的实际意义,揭示可能被隐藏掉的重要关系。488 报表功能模块报表功能模块水晶报表的灵活性并未停留在创建报表这一功能上,可以利用各种各样的格式发布报表,包括用word和Excel发布,通过电子邮件甚至Web发布。高级的Web报表功能允许工作组中的其他成员在他们自己的Web浏览器中查看或更新共享报表。通过将水晶报表的报表处理功能整合到自己的数据库应用程序中,应用程序和Web开发人员可以节省开发时间并满足用户的需求。水晶报表支持大多数流行的开发语言,可以方便地在任何应用程序中添加报表。不论是IT行业的站点管理员,
31、还是营销推广经理,也无论是金融业的数据库管理员还是企业的总裁,水晶报表都堪称是一个功能强大的工具,它可以帮助每一个人分析、解释重要信息。8.1 创建建报表表8.2 设计报表表8.3 引用引用报表表499 窗口功能模块窗口功能模块 表4.8MDILayout枚举成员名称说明ArrangeIcons所有MDI子图标均排列在多文档界面父窗体的工作区内Cascade所有MDI子窗口均层叠在多文档界面父窗体的工作区内TileHorizontal所有MDI子窗口均水平平铺在多文档界面父窗体的工作区内TileVertical所有MDI子窗口均垂直平铺在多文档界面父窗体的工作区内5010 系统的实现系统的实现
32、 5111 小结小结 本实例介绍了目前图书馆管理系统的一般特性和处理书籍的一般方法,介绍了在图书馆借阅书籍时所要考虑的各种数据之间的联系和依存关系。在开发技术上采用先进的ADO.NET数据库访问对象模型技术开发了基于Oracle9i数据库的图书馆管理系统。以模块化的方式划分系统的体系结构。以简单的两层结构方式设计系统的代码,采用多文档界面,重点分析了书籍信息管理模块中的数据流程和操作,使读者了解一般的图书馆中的图书流通的基本情况。另外还介绍了如何开发水晶报表。水晶报表是一个功能强大的工具,几乎可以从任何数据源生成所需要的报表,它可以帮助每一个人分析、解释重要信息。本系统的不足之处在于没有预约服务和馆际互借功能。在网络功能上没有提供很好的接口和支持,基本处于单机版状态。