数据库系统实验报告-图书管理系统-php实现(共27页).docx
精选优质文档-倾情为你奉上第一章 需求分析1.1 系统需求分析通过计算机对图书进行管理,不仅为图书馆的管理注入了新的生机,而且在运行过程中节省了大量的人力、物力、财力和时间,可以提高图书馆的效率,还为图书馆在读者群中树立了一个全新的形象,并为图书馆日后发展奠定一个良好的基础。1.1信息要求:管理员先在图书馆管理系统中建立管理员的账号、密码和权限;管理员添加和修改新书信息,包括图书编号、书名、作者、出版社、出版日期、价格、备注、索书号;当用户借书和还书的时候,可在数据库中获得用户名、图书编号和借书(还书)日期等;1.2处理要求:管理员才可以在图书馆管理系统中添加、修改和删除新书的信息、新用户、借书和还书的用户信息。1. 3安全性和完整性要求:新建管理员主要主管理员添加,需要密码,有助于增强系统的安全性。对所有可能出现的输入数据的响应予以定义,对合法和非合法的输入值的响应做出错误的提示。第二章 系统设计系统概要设计是系统实现一个重要的前期工作。本章节将结合功能设计、模块划分和子模块功能设计及流程三个方面对该系统的概要设计做详细的说明。2.1功能设计本系统功能主要包括登录,系统设置,读者管理,图书管理,图书借还,系统查询等。本系统设计实现了用户登录、系统设置、读者管理、图书管理、图书借还、系统查询等模块。系统模块结构参考图2-1。图2-1图书管理系统模块图书管理系统读者管理模块用户登录模块系统设置模块更改口令模块图书借还模块图书管理模块系统查询模块 2.2模块具体划分系统主要划分为四大模块,分别是用户登录模块、系统设置模块、读者管理模块、图书管理模块和图书借还等模块。其模块具体划分参考图2-2。图书馆管理系统系统设置读者管理图书借还图书管理图书馆信息管理员设置读者类型管理读者档案管理图书类型管理图书档案管理图书借阅图书归还系统查询参数设置书架设置图书续借图书档案查询图书借阅查询借阅到期提醒更改口令退出系统图2-22.3 子模块功能设计及流程为了能更好地完成系统实现,本文对系统各子模块功能设计以及流程做了详细的说明。2.3.1 登录模块用户输入用户密码,系统验证,失败时返回登录页面,成功时进入主界面。登陆成功,将用户信息保存Session里,便于用户信息提取。设计流程图参考图2-4-1。 图2-4-1 登录模块程序流程 用户登录访问login.jsp 信息录入错误提示登录验证 error successUser>Session 进入main.jsp2.3.2 系统设置模块主要操作:对管理员、书架等的增加、修改、删除、查询。基本操作流程参考图2-4-2-a。操作说明:增加验证录入信息是否正确,确认正确,成功后显示信息列表。修改验证修改信息是否正确,确认修改,成功后显示信息列表。删除选择删除项,确认删除后,删除选择数据,成功后显示回信息列表。查询查询所有的管理员、书架等信息。查询流程参考图2-4-2-b。图2-4-2-a 系统设置基本操作系统设置信息输入查询数据录入数据修改、删除数据 图2-4-2-b基本操作的程序流程基本操作删除增加、修改选择数据录入信息信息判断错误提示删除判断错误提示 N N Y Y信息列表信息列表2.3.3 读者管理模块主要操作:对读者信息的维护,包括增、删、查、改等。程序流程参考图2-4-2-a和图2-4-2-b。2.3.4 图书管理模块主要操作:对图书信息的维护,包括增、删、查、改等。程序流程参考图2-4-2-a和图2-4-2-b。2.3.5 图书借还模块主要操作:对图书的管理,包括图书借阅、图书续借、图书归还等。程序流程参考图2-4-5-a、图2-4-5-b和图2-4-5-c。图2-4-5-a图书借阅的程序流程录入读者条形码选择图书输入图书的条形码或书名完成图书借阅显示读者信息 确认确认图2-4-5-b图书续借的程序流程显示该读者所借的所有书籍录入读者条形码选择续借图书显示读者信息 完成图书续借图2-4-5-c图书续借的程序流程显示该读者所借的所有书籍录入读者条形码选择归还图书显示读者信息 完成图书归还2.3.6 系统查询模块主要操作:对图书的相关查询,包括图书档案查询、图书借阅查询、借阅到期提醒等。程序流程参考图2-4-6。图2-4-6 查询操作流程图信息查询模糊查询等值查询选择条件选择条件录入部分信息录入完整信息错误提示查询判断查询判断错误提示 N N Y Y 查询查询结果信息列表结果信息列表第三章 数据库设计3.1数据字典有了系统的数据流图后,还有相当多的数据信息如图书、借阅、归还等信息需要进一步描述,这就是需要定义数据字典,才能把现有的系统描述清楚。列出系统的主要数据字典。名称:管理员描述:记录管理员信息定义:管理员信息=管理员ID+管理员密码输入数据:管理员信息输出数据:管理员信息名称:图书信息表结构描述:记录所有图书的基本情况定义:图书信息=图书编号+ISBN号+索引号+图书类别+图书名称+语种+原名+页码+作者+价格+出版社+出版时间+登记日期+备注输入数据:图书信息输出数据:图书信息名称:读者信息表结构描述:记录所有读者的基本情况定义:读者信息=读者编号+性别+姓名+类别+身份证号+办证日期+证有效期+工作单位+E-mail+联系电话输入数据:读者信息输出数据:读者信息名称:借书登记表结构描述:记录所有图书的借阅情况定义:借书信息=读者编号+读者编号+读者类别+图书编号+图书类别+图书名称+原名+作者+出版社+借出日期+应还日期输入数据:借书信息输出数据:借书信息名称:记录归还登记表结构描述:记录所有图书的归还情况定义:归还信息=读者编号+读者编号+读者类别+图书编号+图书类别+图书名称+原名+作者+出版社+借出日期+应还日期+实还日期+罚款输入数据:归还信息输出数据:归还信息3.2数据库的逻辑设计在需求分析阶段已完成该系统所有的数据分析。根据该阶段所建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。下面给出概念结构设计得E-R图。1:管理员实体E-R图:图3.1 管理员实体E-R图 管理员密码用户ID2:会员信息实体E-R图:图3.2 读者实体E-R图编号电话读者 姓名条形码类型电子邮件职业 3:图书信息实体E-R图: 图3.3 图书实体E-R图出版日期 条形码 图书 登记日期编号出版社名称类别 数量 价格作者 4:借书信息实体E-R图:图3.4 借书实体E-R图出版 读者编号 借书 读者姓名书籍类别书籍编号应还日期 借出日期书籍名称书籍作者读者类别 6:还书信息实体E-R图:图3.5还书实体E-R图实还日期 读者编号 还书操作员 读者姓名书籍类别书籍编号应还日期书籍名称 借出日期读者类别 书籍作者 7:表示系统E-R图(图4.6): 图4.6 系统E-R图读者管理管理员图书管理读者图书归还借阅 1 1 N N M M N N 3.3 数据库表管理员信息表:tb_manager 管理员信息表主要用来保存管理员信息。表tb_manager的结构如表3-4-1所示。 表3-4-1字段名称数据类型是否为空是否主键默认值描述idIntNOYESID自动编号mnameVarchar(30)YESNULL管理员名称pwdVarchar(30)YESNULL密码 权限表:tb_purview权限表主要用来保存管理员的权限信息,该表中的id字段与管理员信息表(tb_ purview)中的id字段关联。表tb_ purview的结构如表3-4-2所示。 表3-4-2字段名称数据类型是否为空是否主键默认值描述idIntNOYES0管理员ID号syssetTinyintYES0系统设置readersetTinyintYES0读者管理booksetTinyinYES0图书管理borrowbackTinyintYES0图书借还sysqueryTinyintYES0系统查询参数设置表:tb_parameter参数设置表主要用来保存办证费及书证的有效期限等信息。表tb_parameter的结构如表3-4-3所示表3-4-3字段名称数据类型是否为空是否主键默认值描述idIntNOYESID(自动编号)costVarchar(30)YESNULL办证费validityIntYESNULL有限期限图书类型表:tb_booktype主要用来保存图书类型信息。表tb_booktype的结构如表3-4-4所示。表3-4-4字段名称数据类型是否为空是否主键默认值描述idIntNOYESID(自动编号)typenameVarchar(30)YESNULL类型名称daysIntYESNULL可借天数书架信息表:tb_bookcase书架信息表主要用来保存书架信息。表tb_bookcase的结构如表3-4-5所示。表3-4-5字段名称数据类型是否为空是否主键默认值描述idIntNOYESID(自动编号)nameVarchar(30)YESNULL书架名称图书信息表:tb_bookinfo.该表用于保存图书信息。表tb_bookinfo的结构如表3-4-6所示。表3-4-6字段名称数据类型是否为空是否主键默认值描述barcodevarchar(30)YESNULL条形码booknamevarchar(70)YESNULL书名typeidintYESNULL类型authorvarchar(30)YESNULL作者translatorvarchar(30)YESNULL译者ISBNvarchar(20)YESNULL出版社pricemoneyYESNULL价格pageintYESNULL页码bookcaseintYESNULL书架intTimedatetimeYESNULL录入时间operatorvarchar(30)YESNULL操作员deltinyintYES0是否删除idintNOYESID(自动编号)图书借阅信息表:tb_borrow用于保存图书信息。表tb_borrow如表3-4-7所示。表3-4-7字段名称数据类型是否为空是否主键默认值描述idintNOYESID(自动编号)readeridintYESNULL读者编号bookidintYESNULL图书编号borrowtimedatetimeYESNULL借书编号backtimedatetimeYESNULL应还时间operatorvarchar(30)YESNULL操作员ifbacktinyintYES0是否归还图书归还信息表:tb_giveback图书归还信息表主要用来保存图书归还信息。表tb_giveback的结构如表3-4-8所示。表3-4-8字段名称数据类型是否为空是否主键默认值描述idintNOYESID(自动编号)readeridintYESNULL读者编号bookidintYESNULL图书编号backtimedatetimeYESNULL归还时间operatorvarchar(30)YESNULL操作员出版社信息表:tb_publishing出版社信息表主要用来保存出版社信息。表tb_publishing的结构如表3-4-9所示。表3-4-9字段名称数据类型是否为空是否主键默认值描述ISBNvarchar(30)YESYESNULLISBN号pubnamevarchar(30)YESNULL出版社名称读者类型信息表:tb_readertype读者类型信息表主要用来保存读者类型信息。表tb_readertype的结构如表3-4-11所示。表3-4-10字段名称数据类型是否为空是否主键默认值描述idintNOYESID(自动编号)rtnamevarchar(50)YESNULL名称numberintYESNULL可借数量读者信息表:tb_reader读者信息表主要用来保存读者信息。表tb_reader的结构如表3-4-10所示。表3-4-11字段名称数据类型是否为空是否主键默认值描述idintNOYESID(自动编号)readernamevarchar(20)YESNULL姓名sexvarchar(4)YESNULL性别barcodevarchar(30)YESNULL条形码vocationvarchar(50)YESNULL职业birthdaydatetimeYESNULL出生日期paperTypevarchar(10)YESNULL有效证件paperNOvarchar(20)YESNULL证件号码telvarchar(20)YESNULL电话emailvarchar(100)YESNULL电子邮件createDatedatetimeYESNULL登记日期operatorvarchar(30)YESNULL操作员remarktextYESNULL备注typeidintYESNULL类型图书馆信息表:tb_library图书馆信息表主要用来保存图书馆的基本信息。表tb_library的结构如表3-4-12所示。表3-4-12字段名称数据类型是否为空是否主键默认值描述idintNOYESID(自动编号)librarynamevarchar(50)YESNULL馆名curatorvarchar(10)YESNULL馆长telvarchar(20)YESNULL联系电话addressvarchar(100)YESNULL联系地址emailvarchar(100)YESNULLEmailurlvarchar(100)YESNULL网址creatDatedatetimeYESNULL建馆日期introducetextYESNULL简介第四章 实施与维护 系统给图书馆提供了系统设置、读者管理、图书管理、图书借还、系统查询等功能。本章节详细地介绍了每个子模块实现的过程,同时也列出了部分主要的源代码以供参考。4.1 登录模块实现过程:登录界面(login.php文件),输入用户名和密码,通过调用(chklogin.php文件)的checkinput()方法进行验证用户登陆。运行页面效果如下图4-1:图4-1 登录页面4.2 管理员设置增加系统管理员,可以增加、修改、删除系统管理员用户。如下图4-2所示图4-2 管理员设置页面4.3添加图书信息身份验证通过以后,点击可以使用系统的基本信息管理界面,这是管理员主要的输入信息部分,它即可以对数据进行输入。填写好各项信息后,单击保存按钮,系统将对这些信息进行处理。界面见下图4-3所示:图4-3 添加图书信息页面4.4图书借阅管理可以实时显示借阅状态,并可进行还书和修改操作,如下图4-4所示:4.5读者信息管理分为读者档案管理和读者类型管理,如下图4-5-1和4-5-2所示:图4-5-1 读者类型管理页面图4-5-2 读者档案管理页面4.5系统查询分为图书档案查询、图书借阅查询和图书借阅到期提醒,如下图4-5-1和4-5-2和4-5-3所示:图4-5-1 图书档案查询页面图4-5-2 图书借阅查询页面图4-5-3图书借阅到期提醒页面 4.6更改口令用于更改用户的密码信息,如下图4-6所示:图4-6 更改用户口令页面4.7 数据库连接本系统数据库连接采用了MySQL数据库连接方式实现。数据库的连接实现在conn包中的conn.php文件,其主要代码为:<?php $conn=mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error(); mysql_select_db("db_library",$conn) or die("数据库访问错误".mysql_error(); mysql_query("set names gb2312");?>第五章 结束语本系统的设计与实现,是根据图书馆现状分析下完成的。本系统相比其他类似系统有着如下优点:1、功能齐全,有用户权限设置、图书借阅、图书续借等功能模块信息管理;2、界面友好,操作简捷;3、系统使用MySQL数据库,响应时间短、经济实惠;4、使用范围广,适合各种规模图书馆运营使用。由于能力有限,加上时间仓促,本系统仍然存在一些不足之处,如:系统代码较为冗余、出版社管理功能未实现、系统业务逻辑不清晰等,这些将会在后期逐步改进完善。数据库代码USE masterIF EXISTS(SELECT * FROM sysdatabases WHERE name='library')DROP DATABASE library;CREATE DATABASE libraryON (NAME = library数据,FILENAME = 'G:SQL Datalibrary.MDF',-特别说明,调试的时候要现在G盘创建一个“SQL Data”文件夹SIZE = 10MB,MAXSIZE = 50MB,FILEGROWTH = 5MB )LOG ON (NAME = library日志,FILENAME = 'G:SQL Datalibrary.LDF',SIZE = 10MB,MAXSIZE = 20MB,FILEGROWTH = 5MB )USE library-建表的SQL代码:-管理员信息表 create table tb_manager( id int primary key ,-ID自动编号 mname varchar(30) ,-管理员名称 pwd varchar(30),-密码 );-权限表 create table tb_purview( id int default'0' primary key, sysset tinyint default'0', readerset tinyint default'0', bookset tinyint default'0', borrowback tinyint default'0', sysquery tinyint default'0', foreign key(id) references tb_manager(id) ); -参数设置表 create table tb_parameter( id int primary key, cost varchar(30), validity int , ); -图书类型表 create table tb_booktype( id int primary key, typename varchar(30), days int, ); -书架信息表 create table tb_bookcase( id int primary key, name varchar(30), );-图书信息表 create table tb_bookinfo( barcode varchar(30), bookname varchar(70), typeid int, author varchar(30), translator varchar(30), ISBN varchar(20), price money, page int, bookcase int, intTime datetime, operator varchar(30), del tinyint default'0', id int primary key, );-图书借阅信息表 create table tb_borrow( id int primary key, readerid int, bookid int, borrowtime datetime, backtime datetime, operator varchar(30), ifback tinyint default'0', );-图书归还信息表 create table tb_giveback( id int primary key, readerid int, bookid int, backtime datetime, operator varchar(30), );-出版社信息表 create table tb_publishing( ISBN varchar(30) primary key, pubname varchar(30), );-读者类型信息表 create table tb_readertype( id int primary key, rtname varchar(50), number int, );-读者信息表 create table tb_reader( id int primary key, readername varchar(20), sex varchar(4), barcode varchar(30), vocation varchar(50), birthday datetime, paperType varchar(10), paperNO varchar(20), tel varchar(20), email varchar(100), createDate datetime, operator varchar(30), remark text, typeid int ); -图书馆信息表 create table tb_library( id int primary key, libraryname varchar(50), curator varchar(10), tel varchar(20), address varchar(100), email varchar(100), url varchar(100), creatDate datetime, introduce text, );专心-专注-专业