1高校图书管理系统的设计与实现一、项目功能随着计算机的广泛运用,图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的读者信息、还书信息。因此需要对读者资源、书籍资源、借书信息等进行管理,及时了解各个环节中信息的变更。图书管理系统的主要功能是实现图书管图书借阅和归还的管理的自动化。围绕这一主要功能,本系统涉及到以下核心功能:借书管理、归还管理,还有一些基本的辅助功能:用户管理、图书管理、统计查询。二、需求分析:1.学生的身份信息及借阅情况(1)借阅者(读者)的身份信息:读者号、姓名、性别等。(2)这些信息保存在图书馆读者数据库,读者可以凭借自己的读者号(借书证号)及密码登录图书馆管理系统进行个人资料的修改和借阅情况的查询。一般只能查询本人的信息,在不知道他人读者号及密码的情况下,就能有效保护读者个人隐私。2.图书信息及被借阅情况(1)图书信息包括:书号、书名、作者、出版社等。(2)每本图书信息会汇总在一起,保存在图书馆的图书数据库,2读者可以在登陆图书馆管理系统后根据需要进行图书的搜寻与查询,在得到满意的查询结果后,再去图书馆进行借阅。而对于每本被借出的书,管理系统又会将相应的读者号、借出日期和应还日期保存在数据库中,供读者查询和系统管理。3.图书馆系统管理员身份信息及工作情况(1)图书馆系统管理员身份信息包括:管理员号、姓名、性别等。(2)这些数据保存在图书馆管理员数据库中,图书管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除、修改、图书借阅者的基本信息。具体模块如下:学生模块:学生模块个人信息修改查询图书信息借阅图书3管理员模块:三、数据库设计1、概念结构设计实体“图书”的属性有:书号,书名,出版社,类别,数量实体“学生”的属性有:学号,姓名,性别,班级,密码实体“管理员”的属性有:工作号,姓名,性别,密码E-R如下:“图书”E-R图:管理员模块个人信息修改添加图书信息修改图书信息学生信息管理图书借阅登记4“读者”E-R图:“管理员”E-R图:总E-R图:书号数量出版书名密码姓名性别姓名工作号图书学生学号管理员类别密码性别52、逻辑结构设计图书(书号,书名,出版社,类别,数量)学生(学号,姓名,性别,班级,密码)管理员(工作号,姓名,性别,密码)图书类别(书号,书名,类别)借阅(学号,书号,学生姓名,书名,借书时间,还书时间)学生管理(管理员工作号,学号,学生姓名,学生旧密码,学生新密出版社管理员学生管理图书管理学生图书书号N类别书名N性别姓名工作号性别姓名学号借书时间借阅mm班级NM还书时间旧密码新密码密码密码6码)3、物理结构设计(1)book表(图书信息表)列名数据类型长度约束说明b_idInt10主键notnull书号b_nameVarchar20notnull书名b_pubVarchar20notnull出版社Sort_idInt12外键notnull类别编号b_numberInt5notnull数量(2)student表(学生信息表)列名数据类型长度约束说明S_idInt12主键notnull学号S_nameVarchar20notnull姓名S_sexChar2notnull性别S_classVarchar20notnull班级S_pwdVarchar20notnull密码(3)manager表(管理员信息表)列名数据类型长度约束说明M_idInt12主键notnull工作号M_nameVarchar20notnull姓名M_sexChar2notnull性别M_pwdVarchar20notnull密码(4)Sort(图书类别表)7列名数据类型长度约束说明Sort_idInt12主键notnull类别编号Sort_nameVarcher20notnull类别名称B_idint10Notnull书号(5)borrow(借阅信息表)列名数据类型长度约束说明S_idInt12主键notnull学号B_idInt10主键notnull书号S_nameVarchar20notnull学生姓名B_nameVarchar20notnull书名Borrowtimedatetimenotnull借书时间returntimedatetimenotnull还书时间(6)student_manager(学生管理表)列名数据类型长度约束说明M_idInt12主键notnull管理员工作号S_idInt12主键notnull学生学号S_nameVarchar20notnull学生姓名S_pwd_oldVarchar20notnull学生旧密码S_pwd_newVarchar20Notnull学生新密码四、数据库的实现1、数据库8数据库名对象定义SQL语句说明bookstorecreatedatabaselibrary;创建名为library的数据库2、表表名对象定义SQL语句说明bookcreatetablebook(b_idint(10)notnull,b_namevarchar(20)notnull,b_pubvarchar(20)notnull,sort_idint(12)notnull,b_numberint(5)notnull,primarykey(b_id));altertablebookaddconstraintfk_boforeignkey(sort_id)referencessort(sort_id)onupdatecascadeondeletecascade;1.创建book(图书信息表)2.并添加名为fk_bo的外键约束,b_sort为此表的外键,参照sort表中的sort_id字段studentcreatetablestudent(s_idint(12)notnull,s_namevarchar(20)notnull,s_sexchar(2)notnull,s_classvarchar(20)notnull,s_pwdvarchar(20)notnull,primarykey(s_id));创建student(学生信息表)9managercreatetablemanager(m_idint(12)notnull,m_namevarchar(20)notnull,m_sexchar(2)notnull,m_pwdvarchar(20)notnull,primarykey(m_id));创建manager(管理员信息表)Sortcreatetablesort(sort_idint(12)notnull,sort_namevarchar(20)notnull,b_idint(10)notnull,primarykey(sort_id));创建sort(图书类别表)borrowcreatetableborrow(s_idint(12)notnull,b_idint(10)notnull,s_namevarchar(20)notnull,b_namevarchar(20)notnull,borrow_timedatetimenotnull,return_timedatetimenotnull,primarykey(s_id,b_id));altertableborrowaddconstraintfk_stuforeignkey(s_id)referencesstudent(s_id)onupdatecascadeondeletecascade;altertableborrowaddconstraintfk_bookforeignkey(b_id)referencesbook(b_id)onupdatecascadeondeletecascade;1.创建borrow(借阅信息表)2.并添加名为fk_stu和fk_book的外键约束,其中s_id和b_id作为此表的外键,参照student表中的s_id和book表中的b_id字段10student_managercreatetablestudent_manager(m_idint(12)notnull,s_idint(12)notnull,s_namevarchar(20)notnull,s_pwd_oldvarchar(20)notnull,s_pwd_newvarchar(20)notnull,primarykey(m_id,s_id));altertablestudent_manageraddconstraintfk_stu_manforeignkey(s_id)referencesstudent(s_id)onupdatecascadeondeletecascade;altertablestudent_manageraddconstraintfk_manforeignkey(m_id)referencesmanager(m_id)onupdatecascadeondeletecascade;1.创建Student_manager(学生管理表),当管理员修改学生密码时,将学生的新密码以及旧密码存入此表中2.并添加名为fk_stu_man和fk_man的外键,其中s_id和m_id为此表的外键,参照student表中的s_id和manager表中的m_id字段3、操作表中的数据操作类型数据操作SQL语句说明11插入数据insertintobookvalues('1001','数据库原理','清华大学出版社','01','50');insertintobookvalues('1005','大学语文','北京大学出版社','05','45');insertintobookvalues('1002','巴黎圣母院','译林出版社','02','20');insertintobookvalues('1003','大话物联网','清华大学出版社','01','20');insertintostudentvalues('10001','张三','男','网络工程1班','1234');insertintostudentvalues('10002','章艳','女','网络工程(软件开发)1班','2345');insertintostudentvalues('10003','李四','男','园林1班','2222');insertintomanagervalues('101','张小丽','女','6666');insertintomanagervalues('102','王五','男','7777');insertintomanagervalues('103','杨静','女','2222');insertintosortvalues('01','计算机类','1001');insertintosortvalues('02','外国文学类','1002');insertintosortvalues('05','中文教材类','1005');insertintoborrowvalues('10001','1001','张三','数据库原理','2019-09-1612:03:03','2019-11-1112:11:11');insertintoborrowvalues('10001','1005','张三','大学语文','2019-11-1111:11:11','2019-12-1212:12:12');insertintoborrowvalues('10002','1002','章艳','巴黎圣母院','2019-11-1211:11:11','2019-12-1313:13:13');分别向各个表中插入数据12修改数据updatebooksetb_number='20'whereb_id='1003';updatestudentsets_pwd='11111'wheres_id='10003';updatemanagersetm_pwd='1111'wherem_id='103';1.将book表中书