圖書管理系統數據庫設計實驗報告
更新日志
2020.7.11 修改了表的結構,表之間增加了外鍵聯系,更加完整且符合第三范式。
數據庫設計實驗報告
1.概述
疫情期間,大家都只能夠在家里,不能去到學校,此時需要在圖書館借書,就是只能通過網絡來操作了。因此,網上圖書館就此誕生了,有了網上圖書館,學生通過網絡來訂閱圖書是一件非常輕松的事情,只要在網上申請了書籍的借閱,管理員則可以通過快遞把書籍寄給學生,並且學生在規定時間內再通過快遞把書籍送還給學校圖書館。
本系統是一個針對學校的網上圖書館借還系統,通過網絡,學生可以很輕松的查詢某些書籍是否可以借到,並且還可以通過網絡續借書籍。管理員可以通過該系統很容易的將書籍信息存儲到數據庫和查詢學生的借還情況,並且通知那些逾期的學生盡快歸還或者續借。超級管理員則對學生和管理員的信息進行修改,或者增加用戶。用戶必修用戶名和密碼相互匹配正確后才能登陸成功,然后在進行相應的操作。對於非法操作,該系統有識別作用。
2.需求分析
2.1需要實現的功能
-
登陸功能:登陸系統為身份驗證登陸。分為學生登陸,管理員登陸,超級管理員登陸。不具備注冊功能。
-
學生登陸后:顯示該用戶的基本信息。可以修改密碼,修改密保問題,查看書籍並且預約書籍,查看已經借到的書籍的情況,還書的情況。
-
管理員登陸后:顯示該用戶的基本信息。可以修改密碼,修改密保問題,查看書籍信息並且修改數據信息,添加書籍。查看學生的借還情況。
-
超級管理員登陸后:顯示該用戶的基本信息。可以修改密碼,修改密保問題,查看,修改管理員的信息,添加新的管理員。添加用戶學生,查看學生的情況。
-
修改密碼:通過匹配密保問題的答案進行修改密碼。
-
修改密保問題:通過匹配原密碼進行修改密保問題。
-
預約書籍:查看書籍的具體信息后,可以對該書籍進行預約,預約到期時間1天后,如果一天后還沒有借到該書籍,則自動取消預約。
-
查看借書情況:查看書籍的具體信息后,可以對該書籍進行續借,續借的有效時間是30天,只可以對同一書籍續借1次。
-
查看還書情況:查看書籍的具體信息后,可以對該書籍進行預約,預約和預約書籍功能一樣。
-
修改書籍信息:查看書籍的具體信息后,可以對該書籍的信息進行修改。
-
增加書籍:增加書籍。
-
查看學生借還情況:查看學生的借還詳細信息。
-
權限移交:只有超級管理員才有的功能。刪除該管理員,新增加一個超級管理員。
-
增加管理員:增加一個新的管理員。
-
查看管理員信息:查看信息后,可以進行信息修改
-
查看學生信息:只能查看學生的信息,而不能進行修改
2.2業務流程圖
2.2.1學生流程圖
2.2.2管理員流程圖
2.2.3超級管理員流程圖
未命名文件 (2)
2.3功能需求分析
系統主要結構功能如下:
3.數據字典
名字:書籍信息表
描述:數據庫中書籍信息表各字段的集合,包含編號,書名,作者,譯者,出版社,庫存,進貨時間
名字:學生信息表
描述:數據庫中學生信息表各字段的集合,包括學號,姓名,學院編號,性別,出生日期,身份證號碼,手機號碼
名字:學生賬號信息
描述:數據庫中學生賬號信息表各字段的集合,包括學號,密碼,密保問題,密保答案,剩余可以借次數
名字:學生預約
描述:數據庫中學生預約表各字段的集合,包括學號,書籍編號,預約時間,到期時間
名字:學生借書
描述:數據庫中學生借書表各字段的集合,包括學號,書籍編號,借書時間,到期時間
名字:學生還書
描述:數據庫中學生還書表各字段的集合,包括學號,書籍編號,還書時間
名字:管理員信息
描述:數據庫中管理員信息表各字段的集合,包括工號,名稱,性別,手機號碼,email,身份證號碼
名字:管理員賬號信息
描述:數據庫中管理員賬號信息表各字段的集合,包括工號,密碼,密保問題,密保答案
名字:超級管理員信息
描述:數據庫中超級管理員信息表各字段的集合,包括工號,姓名,性別,手機號碼,身份證號碼,email
名字:超級管理員賬號信息
描述:數據庫中超級管理員賬號信息信息表各字段的集合,包括工號,密碼,密保問題,密保答案
名字:用戶信息
描述:數據庫中賬戶信息以及賬戶類型,包括工號/學號,用戶類型。
數據庫關系圖
4.概念模型
經過上述系統功能分析和需求總結,設計如下面所示的數據項和數據結構。
書籍表:存放書籍記錄。包括編號,書名,作者,譯者,出版社,庫存,進貨時間,分類
學生信息:存放學生信息。包括學號,姓名,班級編號,性別,出生日期,身份證號碼,手機號碼
學生賬號信息:存放學生賬號信息。包括學號,密碼,密保問題,密保答案,剩余可以借的次數。
學生預約情況:學號,書籍編號,預約時間,預約到期時間
學生借書情況:學號,書籍編號,借書時間,借書到期時間
學生還書情況:學號,書籍編號,還書時間
管理員信息:存放管理員信息。包括工號,姓名,性別,手機號碼,身份證號碼,email。
管理員賬號信息:工號,密碼,密保問題,密保答案
超級管理員信息:工號,姓名,性別,手機號碼,身份證號碼,email
超級管理員賬號信息:工號,密碼,密保問題,密保答案
職工信息:工號/學號,職位
- R圖:
書籍實體:
學生信息實體:
學生賬號實體:
學生預約實體:
學生借書實體:
學生還書實體:
管理員信息實體:
管理員賬號實體:
超級管理員信息實體:
超級管理員賬號實體:
職工信息:
所有實體的聯系:
5.數據模型
將E-R圖轉換成的關系模式如下:
書籍信息(編號,書名,作者,譯者,出版社,庫存,進貨時間,分類)
學生信息(學號,姓名,校區編號,性別,出生日期,身份證號碼,手機號碼)
學生賬號信息(學號,密碼,密保問題,密保答案,剩余可以借次數)
學生預約(學號,書籍編號,預約時間,到期時間)
學生借書(學號,書籍編號,借書時間,到期時間)
學生還書(學號,書籍編號,還書時間)
管理員信息(工號,名稱,性別,手機號碼,email,身份證號碼)
管理員賬號信息(工號,密碼,密保問題,密保答案)
超級管理員信息(工號,姓名,性別,手機號碼,身份證號碼,email)
超級管理員賬號(工號,密碼,密保問題,密保答案)
職工信息(工號/學號,職位)
6.建表代碼與界面展示
6.1表創建:
(書籍表)
create table book ( Bno smallint primary key not null, Bname varchar(50) not null, Bauthor varchar(50) not null, Btranslator varchar(50), Bpublish varchar(50) not null, Bsort varchar(50) not null, BinTime date not null, Bstock smallint not null, Bacount int not null ) (學生信息表) create table studentimfornation ( Sno varchar(20) primary key not null, Sname varchar(20) not null, no smallint not null, Ssex nchar(1) not null, Sbirthday date , Sid varchar(20) not null, Sphone varchar(13), Sno foreign key references studentsacount(sno) ) (學生賬號表) create table studentaccount ( sno varchar(20) primary key not null, Spassword varchar(18) not null, Squestion varchar(50) , Sanswer varchar(20), Sstats smallint not null, ) (學生預定表) create table studentorder ( sno varchar(20) primary key not null, bno smallint not null, sorder date not null, soverdue date not null, Bno foreign key references book(Bno) Sno foreign key references studentacount(sno) ) (學生借書表) create table studentborrow ( sno varchar(20) primary key not null, Bno smallint not null, Sborrow date not null, soverdue date not null Bno foreign key references book(Bno) Sno foreign key references studentacount(sno) ) (學生還書表) create table studentreturn ( sno varchar(20) primary key not null, bno smallint not null, sreturn date not null, Bno foreign key references book(Bno) Sno foreign key references studentacount(sno) ) (管理員信息表) create table admitinformation ( ano varchar(20) primary