1、数据库原理与应用课程设计报告之图书管理系统计算机与信息工程学院目录设计目的3需求分析3数据库概念结构设计5数据库逻辑结构设计7数据流图及程序结构框图 11程序原代码及其实现 14视图及存储过程的代码与实现 26总结 31 设计目的图书馆作为大学中同学们主要利用的场所,必定会是最繁忙的地方。当图书档案由人工看管,登记,修改,增删,查询时,效率低而且容易出错,数据不安全,并且时间很久之后数据量增加会导致数据检索困难等诸多问题。当图书馆发展后,过多的数据使图书馆管理问题凸显。 本次课程设计以开发北京工商大学高校图书馆管理系统为主题,充分利用现代科技来提高图书管理的效率,将一些可以用计算机来管理的日常
2、事务都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更高。我们将做好的数据库系统用于图书馆信息管理、图书借阅、图书登记、用户登记、新增和删减图书等服务项目,利用这些技术可以提高图书馆工作效率,使图书馆给同学们提供更好的服务是系统开发的主要目的。图书管理系统是一种基于数据库数据管理模式,在对图书、读者的管理其实是对图书、读者数据的管理,我们将图书和读者的数据录入数据库并且储存这些信息,然后利用已知信息的更改来对图书和读者进行管理需求分析基本需求图书馆管理系统的管理层次可划分为了五个部分:图书信息维护,读者信息管理,图书借阅管理,信息查询,管理员信息管理。能够实现以下功能: 进行新书入库
3、的信息录入及现有图书信息增加、修改以及删除; 能够实现对读者基本信息的查询和编辑管理; 能够进行读者借阅图书的信息管理功能; 能够进行借阅信息的查询功能;系统功能系统的功能分析: 图书管理涉及图书信息、读者信息、图书借阅等多种数据管理。从管理的角度可将图书管理系统分为三类:图书信息管理、系统用户管理、读者数据管理。1、图书信息管理包括新购图书、借还、查询信息等操作;2、系统用户管理包括系统用户类别和用户数据管理;3、读者数据管理包括读者类别管理和个人数据的录入、查询、修改和删除。具体功能如下:1.对所有用户开放的图书查询2.查询及编辑借阅者个人部分信息3.借阅者查看个人借阅情况信息4.根据借阅
4、情况对数据库进行操作并生成报表5.根据还书情况对数据库进行操作并生成报表6.查询及统计各种信息7.维护图书信息8.维护工作人员和管理员信息系统功能模块划分:图书管理系统需要实现的功能主要有四大模块:分别为日常工作管理、基本资料维护管理、查询管理、和系统管理。其中日常工作管理和基本资料维护是整个系统的核心。1日常工作管理:包括借书管理、还书管理、缴纳罚金(1) 借阅管理:主要功能是记录读者号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者ID、图书编号、图书ISBN、借阅日期、应还日期等。(2) 还书管理:主要功能是输入借阅读者号、图书编号,在借阅登记表中找到相应的记录,将该
5、记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录中。(3) 缴纳罚金:输入读者ID,显示该读者的姓名、图书编号、罚款金额。如果读者交纳了罚金,则将借阅登记表的允许借阅标志置为“Y”。删除罚款记录表中该读者对应的记录,将这一条记录同时插入到罚款历史记录表中。2基本资料维护管理:包括图书资料维护、读者资料维护(1) 图书资料维护:包括新书的入库新书的数据录入以及现有书籍资料的修改和删除。(2) 读者资料维护:包括新读者的资料入库以及现有读者资料的查询、修改和删除3查询管理:包括图书资料查询、读者资料查询、借阅历史记录查询、罚款历史记录查询(1) 图书资料查询:根据相应的图书
6、信息对所有书籍进行所需查询。此查询包括:图书编号、图书ISBN、图书名称、作者、出版社、单价、是否借出等。(2) 读者资料查询:根据相应的读者资料进行所需查询。读者号、读者姓名等相关信息。(3) 借阅历史记录查询:根据相应的借阅信息进行所需查询。此查询包括:读者号、图书编号、图书ISBN、图书名称、借阅日期、实际还书日期。(4) 罚款历史记录查询:根据相应的罚款信息进行所需查询。此查询包括:读者编号、图书编号、借阅日期、应还日期、实际还书日期、所罚金额。4系统管理:员工管理、权限管理、标准数据管理(1)员工管理:包括新管理员信息的录入、密码的修改以及已有管理员信息的编辑。(2)权限管理:用于设
7、定不同人员的权限(3)标准数据管理:用于常用数据的系统维护安全性和完整性要求1) 安全性要求 系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。2) 完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束或者通过使用触发器和级联更新。系统要求:(1)系统安全、可靠;(2)功能齐全
8、;(3)操作方便、界面友好;(4)易于维护和扩充。减少人力与管理费用;提高信息准确度;改进管理和服务;建立高效的信息传输和服务平台,提高信息处理速度和利用率; 系统设计优良,界面设计精美、友好、快捷,人性化设计,后台管理功能强大、效率高; 更简便、信息化程度更高的图书管理流程。 数据库概念结构设计系统开发的总体目标是实现图书馆管理的系统化和自动化,缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书管理效率的目的。主要任务是对读者信息、管理员信息、图书资料信息、借阅信息、归还图书信息、罚款信息的基本信息的操作及外理。概
9、念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。任务与目标(1)选择中层数据流为切入点,通常选择实际系统中的子系统; (2)设计分E-R图,即各子模块的E-R图; (3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一; (4)生成全局E-R图,通过消除冲突等方面。阶段结果(1)根据不同的对象,从第3层数据流程图入手,分别画出各分ER图(为了简化ER图,其中各个实体的属性未在ER上标出):(a)读者与图书之间的关系ER图读者属于读者类别1mmm查询借阅图书nn(b)读者与管理员之间的关系ER图罚款n管理员m读者m管理n(c
10、)图书与管理员的关系ER图管理图书管理员mn(2)合并各分图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本全局E-R图如下所示:维护属于罚款金额读者nn是否已交罚款借阅日期1n归还日期借阅m读者类别管理员实际归还日期mm管理图书n(3)各ER图各实体的属性如下所示: 图书:图书编号,ISBN,名称,作者,价格,出版日期,是否可借,所在馆室 读者:读者编号,姓名,性别,院系,年级 管理员:管理员编号,姓名,性别,口令密码,联系电话 读者类别:类别编号,类别名称,允许可借最大图书数,允许最长借阅时间数据库逻辑结构设计逻辑设计的任务和目标以上的概念设计阶
11、段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。数据组织将E-R图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系
12、可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 具有相同码的关系模式可合并。由于读者类别与读者联系方式是1:n(一对多),可以将其之间的联系与n端实体读者、图书合并,管理员与图书之间的管理联系也是1:n(一对多),同样也将其之间的联
13、系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是n:m(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:读者类别:类别编号,类别名称,允许借阅图书最大数,允许借阅最长时间 图书:图书编号,ISBN,名称,作者,价格,出版日期,是否可借,所在馆室 读者:读者编号,读者类别编号,姓名,性别,院系,年级 管理员:管理员编号,姓名,性别,口令密码,联系电话 借阅信息:图书编号,读者编号,图书名,作者,借阅日期,归还日期,实际归还日期 维护信息:管理员编号,读者编号,图书
14、名称,借阅日期,归还日期,实际归还日期,罚款金额,是否已交罚款状态 图书管理:管理员编号,图书编号/借阅信息1,借阅历史,罚款信息可建立视图在SQL中的表示:图书:Book(BookNo,ISBN, BookName, BookWriter, Publishtime, BookPrice,BookState,BookRNo)读者:Reader(ReaNo, LBID,ReaName,ReaSex , ReaDep, ReaGrade)管理员: Manager (MID,MName,MSex,Mpwd ,MTeleph)读者类别:ReaderTpye(LBID, LBName,LBNum,LBT
15、ime) /包括学生和教师借阅信息:Borrow(BookID,ReaderID,BookName,BookWriter, Outdate,Indate,Actdate)维护信息:Fine (BookID,ReaderID,BookName,Outdate,Indate,Actdate,Fine,State)图书管理:MngBook(MID,BookNo)模型优化关系模式Book,Reader, ReaderType ,Maneger, MngBook不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是借阅关系模式Borrow,维护信息FIne中存在着一些数据冗余
16、,现消除冗余,优化为:借阅信息: Borrow(BookID,ReaderID, Outdate,Indate,Actdate)维护信息:Fine (BookID,ReaderID,Fine,State)在SQL中的表示:图书:Book(BookNo,ISBN, BookName, BookWriter, Publishtime, BookPrice,BookState,BookRNo)读者:Reader(ReaNo, LBID,ReaName,ReaSex , ReaDep, ReaGrade)管理员: Manager (MID,MName,MSex,Mpwd ,MTeleph)读者类别:R
17、eaderTpye(LBID, LBName,LBNum,LBTime) /包括学生和教师借阅信息:Borrow(BookID,ReaderID, Outdate,Indate,Actdate)维护信息:Fine (BookID,ReaderID,Fine,State)图书管理:MngBook(MID,BookNo)数据库模式定义图书信息表列名数据类型可否为空说明BookNoCharnot null图书编号BookNoCharnot null图书的索书号BookNameCharnot null图书的书名BookWriterCharnot null图书作者PulishtimeCharnot nu
18、ll图书出版日期BookPriceChar图书的单价BookStateCharnot null图书是否可借BookRNoCharnot null图书所在馆室号读者信息表列名数据类型可否为空说明ReaNoCharnot null读者编号ReaNameCharnot null读者姓名ReaSexCharnot null读者性别ReaLBIDCharnot null读者类别编号ReaDepChar读者所在学院ReaGradeChar读者的年级管理员信息表列名数据类型可否为空说明MIDCharnot null管理员编号MNameCharnot null管理员姓名MSexChar管理员性别MpswCha
19、rnot null管理员密码MTelephChar管理员电话读者类别信息表列名数据类型可否为空说明LBIDCharnot null读者类别编号LBNameCharnot null读者类别名LBnumCharnot null允许借阅图书最大数LBqxCharnot null借阅证期限 借阅信息表列名数据类型可否为空说明ReaNoCharnot null读者编号BookNoCharnot null图书编号OutdateDatenot null借阅时间IndateDatenot null归还时间ActdateDatenot null应还时间维护信息表列名数据类型可否为空说明BookNoCharnot
20、 null图书编号ReaderNoCharnot null读者编号FineDatenot null罚款金额StateDatenot null是否还款图书管理信息表列名数据类型可否为空说明MIDCharnot null管理员编号BookNoCharnot null图书编号数据流图及程序结构框图图书管理系统业务流程图图 2顶层数据流数据流图顶层数据流图:第2层数据流图:(读者借阅,读者还书,读者查询,管理员查询,管理员修改)第3层数据流图:(读者借阅)第3层数据流图:(读者还书)第3层数据流图:(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息)第3层数据流图:(管理员添加、删除、修改图书信
21、息)第3层数据流图:(管理员添加、删除、修改读者信息)第3层数据流图:(管理员添加、删除、修改系统用户信息)程序原代码及其实现(含截图)create table ReaderType(LBID char(20) primary key,LBName char(20) not null,LBNum char(20),LBTime char(20)create table Manager(MID char(10) primary key,MName char(20) not null,MSex char(2),Mpwd char(8) not null,MTeleph char(15)Create
22、 table Book( BookNo char(20) primary key, ISBN char(50), BookName char(50) , BookPrice char(7), BookWriter char(50) , Publishtime Datetime , BookState char(10), BookRNo char(20)create table Reader(ReaNo char(20) primary key,ReaName char(10) not null,ReaSex char(2) not null,LBID char(20) not null,Rea
23、Dep char(20),ReaGrade char(5),foreign key(LBID) references ReaderType(LBID)Create table Borrow(BookNo char(20),ReaNo char(20),BookName char(50),Outdate Datetime not null,Actdate Datetime,Indate Datetime,primary key(BookNo,ReaNo),foreign key(BookNo) references Book(BookNo),foreign key(ReaNo) referenc
24、es Reader(ReaNo)create table Fine(BookNo char(20),ReaNo char(20),Fine char(20),State char(20),primary key(BookNo,ReaNo),foreign key(BookNo) references Book(BookNo),foreign key(ReaNo) references Reader(ReaNo)Create table MngBook(MID char(10),BookNo char(20),primary key(MID,BookNo)insert into ReaderTy
25、pe values(a,大学专科, 5, 一个月)insert into ReaderType values(b,大学本科 ,5, 一个月)insert into ReaderType values(c,研究生,5, 一个月)insert into ReaderType values(d,教师,10, 一个月)select*from ReaderTypeinsert into Manager values(001, ,男,1,18810578093)insert into Manager values(002, ,男,2,18810482056)insert into Manager valu
26、es(003, ,女,3,18810345634)insert into Manager values(004, ,男,4,18823568876)insert into Manager values(005, ,男,5,1834754456)insert into Manager values(006,张三,男,6,110)insert into Manager values(007,李四,男,7,120)insert into Manager values(008,王五,男,8,119)select*from managerinsert into Book values(000001,97
27、87302220428,人工智能及其应用(第版),39,蔡自兴、徐光祐,2010-5-1, 可借,阅览室一)insert into Book values(000002,9787302219446,电机设计,48,戴文进、张景明、杨莉、肖倩华等,2010-6-1, 可借,阅览室一)insert into Book values(000003,9787302185741,DSP控制器原理及应用,53,张小鸣,2009-2-1, 可借,阅览室一)insert into Book values(000004,9787302215394,FPGA现代数字系统设计,43,马建国、孟宪元,2010-3-1
28、, 可借,阅览室一)insert into Book values(000005,9787302216858,Matlab Simulink通信系统建模,19.5,邵玉斌,2010-3-1, 可借,阅览室一)insert into Book values(000006,9787302171324,MATLAB/SIMULINK通信系统仿真实例分析,39,邵玉斌,2008-6-1, 可借,阅览室一)insert into Book values(000007,9787302185758,Matlab和LabVIEW仿真技术及应用实例,21,聂春燕、张猛、张万里等,2008-11-1, 可借,阅览
29、室一)insert into Book values(000008,9787302183228,Multisim 9在电工电子技术中的应用,25,董玉冰,2008-11-1, 可借,阅览室一)insert into Book values(000009,9787302193418,TMS 320 F281xDSP原理及应用技术,35,韩丰田、王芃,2009-4-1, 可借,阅览室一)insert into Book values(000010,9787302216223,TMS320C54x系列DSP指令和编程指南,49.5,杨占昕、邓纶晖、余心乐,2010-4-1, 可借,阅览室一)inse
30、rt into Book values(000011,9787302154266,TMS320C6000系列DSP的CPU与外设,56,卞红雨等,2007-12-1, 可借,阅览室一)insert into Book values(000012,9787302193067,WCDMA系统原理与无线网络优化,35,窦中兆,2009-5-1, 可借,阅览室一)insert into Book values(000013,9787302185123,半导体集成电路(第版),49.8,朱正涌、张海洋、朱元红,2009-2-1, 可借,阅览室一)insert into Book values(00001
31、4,9787302178903,成像光学导论, 32,廖延彪,2008-11-1, 不可借,阅览室一)insert into Book values(000015,9787302182191,传感器与现代检测技术,39.5,陶红艳、余成波,2009-3-1, 可借,阅览室一)insert into Book values(000016,9787302218593,单片机实用技术与应用,39.5,余成波,2010-7-1, 可借,阅览室一)insert into Book values(000017,9787302231226,单片机原理及应用,20,杨天怡等,2010-8-1, 可借,阅览室一
32、)insert into Book values(000018,9787302222248,导波光学,19,王健,2010-6-1, 可借,阅览室一)insert into Book values(000019,9787302183259,导波原理与方法,29,张雪霞,2008-12-1, 可借,阅览室二)insert into Book values(000020,9787302161066,电磁场与电磁波,25,袁国良,2008-1-1, 可借,阅览室二)insert into Book values(000021,9787302170648,电磁场与电磁波,35,邹澎,2008-6-1,
33、 可借,阅览室二)insert into Book values(000022,9787302190776,电磁场与电磁波教学指导,25,邹澎、周晓萍、刘黎刚等,2009-3-1, 可借,阅览室二)insert into Book values(000023,9787302148883,电磁兼容原理、技术和应用,35,邹澎,2007-8-1, 可借,阅览室二)insert into Book values(000024,9787302200611,电工电子技术,35,林红、周鑫霞,2010-1-1, 可借,阅览室二)insert into Book values(000025,97873021
34、27086,电工电子技术基础教程,39,陈新龙,2006-7-1, 可借,阅览室二)insert into Book values(000026,9787302193012,电工电子技术基础教程全程辅导,29.5,陈新龙,2009-5-1, 可借,阅览室二)insert into Book values(000027,9787302235668,电工电子实验教程,21,董毅、张文、张立君,2010-9-1, 可借,阅览室二)insert into Book values(000028,9787302133605,电机与拖动,39,刘锦波等,2006-9-1, 不可借,阅览室二)insert i
35、nto Book values(000029,9787302177302,电机原理及驱动电机学基础(第版),59,满永奎,2008-7-1, 可借,阅览室二)insert into Book values(000030,9787302162681,电力电子技术基础,29.8,洪乃刚,2008-2-1, 不可借,阅览室二)insert into Book values(000031,9787302187059,电路分析基础,45,陈洪亮等,2009-1-1, 不可借,阅览室二)insert into Book values(000032,9787302169444,电路分析基础教程与实验,26,
36、赵桂钦,2008-5-1, 可借,阅览室三)insert into Book values(000033,9787302218715,电路分析基础教学指导书, 25,陈洪亮、田社平、吴雪,2010-5-1, 可借,阅览室三)insert into Book values(000034,9787302208150,电路基础,19,李京清、王雪明、刘海成,2009-8-1, 可借,阅览室三)insert into Book values(000035,9787302175223,电路基础(第版)(英文改编版),49.8,高歌,2008-9-1, 可借,阅览室三)insert into Book v
37、alues(000036,9787302209829,电路基础学习辅导与习题解析,28,刘景夏、孙建红、胡冰新、聂典等,2009-10-1, 可借,阅览室三)insert into Book values(000037,9787302185109,电路学习指导与习题精解(第版),39.5,邢丽冬、潘双来,2009-1-1, 可借,阅览室一)insert into Book values(000038,9787302142621,电路原理(第二版),45,江缉光等,2007-3-1, 不可借,阅览室一)insert into Book values(000039,9787302150039,电子
38、电路的计算机辅助分析与设计方法(第版),29,杨华中、汪蕙等,2008-3-1, 可借,阅览室一)insert into Book values(000040,9787302173533,电子电路实验,38,高文焕等,2008-7-1, 不可借,阅览室一)insert into Book values(000041,9787302198017,电子电路实验与课程设计,29.5,朱定华,2009-9-1, 可借,阅览室二)insert into Book values(000042,9787302156758,电子技术工艺基础,25,朱定华,2007-9-1, 可借,阅览室二)insert in
39、to Book values(000043,9787302171300,电子技术实验教程,24,汤琳宝、何平、丁晓青,2008-7-1, 可借,阅览室二)insert into Book values(000044,9787302220343,电子技术实验与课程设计(第二版),33.5,赵淑范、董鹏中、张化勋、马玉静,2010-5-1, 不可借,阅览室二)insert into Book values(000045,9787302209744,电子技术学习指南与习题解答,24,高宁,2009-12-1, 可借,阅览室一)insert into Book values(000046,978730
40、2181002,电子设计自动化Multisim在电子电路与单片机中的应用,39,从宏寿、李绍铭,2008-11-1, 不可借,阅览室一)insert into Book values(000047,9787302172536,电子设计自动化技术及应用实验,15,李方明、陈哲、于洋等,2008-6-1, 可借,阅览室一)insert into Book values(000048,9787302183181,电子线路基础,49,王成华、王友仁、胡志忠,2008-11-1, 不可借,阅览室四)insert into Book values(000049,9787302159407,电子线路实验模拟
41、电路实验,39,沈小丰,2008-1-1, 可借,阅览室四)insert into Book values(000050,9787302170655,电子信息工程专业英语导论,25,瞿少成等,2008-4-1, 不可借,阅览室四)insert into Book values(000051,9787302193036,非线性系统理论,22,方勇纯,2009-5-1, 可借,阅览室四)insert into Book values(000052,9787302203995,分数阶傅里叶变换及其应用,59,陶然、邓兵、王越,2009-9-1, 可借,阅览室四)insert into Book values(000053,9787302168171,复杂系统仿真及应用,25,宣慧玉张发,2008-4-1, 不可借,阅览室四)insert into Book values(000054,9787302186182,高等应用数学问题的MATLAB求解,45,薛定宇、陈阳泉,2008-10-1, 可借,阅览室四)insert into Book values(000055,9787302197539,高速DSP原理、应用与实验教程,32,李海森、李思纯、周天,