




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上高校圖書管理系統(tǒng)的設計與實現(xiàn)一、項目功能隨著計算機的廣泛運用,圖書館或者一些企業(yè)內(nèi)部,甚至是書店,在正常運行過程中總是面對大量的讀者信息、還書信息。因此需要對讀者資源、書籍資源、借書信息等進行管理,及時了解各個環(huán)節(jié)中信息的變更。圖書管理系統(tǒng)的主要功能是實現(xiàn)圖書管圖書借閱和歸還的管理的自動化。圍繞這一主要功能,本系統(tǒng)涉及到以下核心功能:借書管理、歸還管理,還有一些基本的輔助功能:用戶管理、圖書管理、統(tǒng)計查詢。二、 需求分析:1. 學生的身份信息及借閱情況(1) 借閱者(讀者)的身份信息:讀者號、姓名、性別等。(2) 這些信息保存在圖書館讀者數(shù)據(jù)庫,讀者可以憑借自己的讀者
2、號(借書證號)及密碼登錄圖書館管理系統(tǒng)進行個人資料的修改和借閱情況的查詢。一般只能查詢本人的信息,在不知道他人讀者號及密碼的情況下,就能有效保護讀者個人隱私。2. 圖書信息及被借閱情況(1)圖書信息包括:書號、書名、作者、出版社等。(2)每本圖書信息會匯總在一起,保存在圖書館的圖書數(shù)據(jù)庫,讀者可以在登陸圖書館管理系統(tǒng)后根據(jù)需要進行圖書的搜尋與查詢,在得到滿意的查詢結(jié)果后,再去圖書館進行借閱。而對于每本被借出的書,管理系統(tǒng)又會將相應的讀者號、借出日期和應還日期保存在數(shù)據(jù)庫中,供讀者查詢和系統(tǒng)管理。3. 圖書館系統(tǒng)管理員身份信息及工作情況(1)圖書館系統(tǒng)管理員身份信息包括:管理員號、姓名、性別等。
3、(2) 這些數(shù)據(jù)保存在圖書館管理員數(shù)據(jù)庫中,圖書管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除、修改、圖書借閱者的基本信息。具體模塊如下:學生模塊:學生模塊個人信息修改查詢圖書信息借閱圖書管理員模塊:管理員模塊個人信息修改添加圖書信息修改圖書信息學生信息管理圖書借閱登記三、數(shù)據(jù)庫設計1、概念結(jié)構(gòu)設計實體“圖書”的屬性有:書號,書名,出版社,類別,數(shù)量實體“學生”的屬性有:學號,姓名,性別,班級,密碼 實體“管理員”的屬性有:工作號,姓名,性別,密碼E-R如下: “圖書”E-R圖:圖書類別書名書號數(shù)量出版社“讀者”E-R圖:學生性別姓名密碼學號“管理員”
4、E-R圖:管理員密碼姓名工作號性別總E-R圖:密碼姓名性別工作號管理員新密碼mm舊密碼學生管理圖書管理班級N借書時間N出版社MN借閱圖書類別書號書名學號學生姓名性別密碼還書時間2、邏輯結(jié)構(gòu)設計圖書(書號,書名,出版社,類別,數(shù)量)學生(學號,姓名,性別,班級,密碼)管理員(工作號,姓名,性別,密碼)圖書類別(書號,書名,類別)借閱(學號,書號,學生姓名,書名,借書時間,還書時間)學生管理(管理員工作號,學號,學生姓名,學生舊密碼,學生新密碼)3、物理結(jié)構(gòu)設計(1)book表(圖書信息表)列名數(shù)據(jù)類型長度約束說明_idInt10主鍵not null書號b_nameVarchar20not nul
5、l書名b_pubVarchar20not null 出版社Sort_idInt12外鍵not null類別編號b_numberInt5not null數(shù)量(2)student表(學生信息表)列名數(shù)據(jù)類型長度約束說明S_idInt12主鍵not null學號S_nameVarchar20not null姓名S_sexChar2not null性別S_classVarchar20not null班級S_pwdVarchar20not null密碼(3)manager表(管理員信息表)列名數(shù)據(jù)類型長度約束說明M_idInt12主鍵not null工作號M_nameVarchar20not null姓
6、名M_sexChar2not null性別M_pwdVarchar20not null密碼(4)Sort(圖書類別表)列名數(shù)據(jù)類型長度約束說明Sort_idInt12主鍵not null類別編號Sort_nameVarcher20not null類別名稱B_idint10Not null書號(5)borrow(借閱信息表)列名數(shù)據(jù)類型長度約束說明S_idInt12主鍵not null學號B_idInt10主鍵not null書號S_nameVarchar20not null學生姓名B_nameVarchar20not null書名Borrowtimedatetimenot null借書時間re
7、turntimedatetimenot null還書時間(6)student_manager(學生管理表)列名數(shù)據(jù)類型長度約束說明M_idInt12主鍵not null管理員工作號S_idInt12主鍵not null學生學號S_nameVarchar20not null學生姓名S_pwd_oldVarchar20not null學生舊密碼S_pwd_newVarchar20Not null學生新密碼四、數(shù)據(jù)庫的實現(xiàn)1、數(shù)據(jù)庫數(shù)據(jù)庫名對象定義SQL語句說明bookstorecreate database library;創(chuàng)建名為library的數(shù)據(jù)庫2、表表名對象定義SQL語句說明bookcr
8、eate table book(b_id int(10) not null,b_name varchar(20) not null,b_pub varchar(20) not null,sort_id int(12) not null,b_number int(5) not null,primary key(b_id);alter table bookadd constraint fk_boforeign key(sort_id ) references sort(sort_id )on update cascadeon delete cascade;1. 創(chuàng)建book(圖書信息表)2. 并添
9、加名為fk_bo的外鍵約束,b_sort為此表的外鍵,參照sort表中的sort_id字段studentcreate table student(s_id int(12) not null,s_name varchar(20) not null,s_sex char(2) not null,s_class varchar(20) not null,s_pwd varchar(20) not null,primary key(s_id);創(chuàng)建student(學生信息表)managercreate table manager(m_id int(12) not null,m_name varchar
10、(20) not null,m_sex char(2) not null,m_pwd varchar(20) not null,primary key(m_id);創(chuàng)建manager(管理員信息表)Sortcreate table sort(sort_id int(12) not null,sort_name varchar(20) not null,b_id int(10) not null,primary key(sort_id);創(chuàng)建sort(圖書類別表)borrowcreate table borrow(s_id int(12) not null,b_id int(10) not nu
11、ll,s_name varchar(20) not null,b_name varchar(20) not null,borrow_time datetime not null,return_time datetime not null,primary key(s_id,b_id);alter table borrowadd constraint fk_stuforeign key(s_id) references student(s_id)on update cascadeon delete cascade;alter table borrowadd constraint fk_bookfo
12、reign key(b_id) references book(b_id)on update cascadeon delete cascade;1. 創(chuàng)建borrow(借閱信息表)2. 并添加名為fk_stu和fk_book的外鍵約束,其中s_id和b_id作為此表的外鍵,參照student表中的s_id和book表中的b_id字段student_managercreate table student_manager(m_id int(12) not null,s_id int(12) not null,s_name varchar(20) not null,s_pwd_old varchar
13、(20) not null,s_pwd_new varchar(20) not null,primary key(m_id,s_id);alter table student_manageradd constraint fk_stu_manforeign key(s_id) references student(s_id)on update cascadeon delete cascade;alter table student_manageradd constraint fk_manforeign key(m_id) references manager(m_id)on update cas
14、cadeon delete cascade;1. 創(chuàng)建Student_manager(學生管理表),當管理員修改學生密碼時,將學生的新密碼以及舊密碼存入此表中2. 并添加名為fk_stu_man和fk_man的外鍵,其中s_id和m_id為此表的外鍵,參照student表中的s_id和manager表中的m_id字段3、操作表中的數(shù)據(jù)操作類型數(shù)據(jù)操作SQL語句說明插入數(shù)據(jù)insert into book values('1001','數(shù)據(jù)庫原理','清華大學出版社','01','50');insert into b
15、ook values('1005','大學語文','北京大學出版社','05','45');insert into book values('1002','巴黎圣母院' ,'譯林出版社','02','20');insert into book values('1003','大話物聯(lián)網(wǎng)','清華大學出版社','01','20'); insert into st
16、udent values('10001','張三','男','網(wǎng)絡工程1班','1234');insert into student values('10002','章艷','女','網(wǎng)絡工程(軟件開發(fā))1班','2345');insert into student values('10003','李四',' 男','園林1班','2222');insert
17、 into manager values('101','張小麗','女','6666');insert into manager values('102','王五','男','7777');insert into manager values('103','楊靜','女','2222');insert into sort values('01','計算機類','10
18、01');insert into sort values('02','外國文學類','1002');insert into sort values('05','中文教材類','1005'); insert into borrow values('10001','1001','張三','數(shù)據(jù)庫原理','2019-09-16 12:03:03','2019-11-11 12:11:11');inser
19、t into borrow values('10001','1005','張三','大學語文','2019-11-11 11:11:11','2019-12-12 12:12:12');insert into borrow values('10002','1002','章艷','巴黎圣母院','2019-11-12 11:11:11','2019-12-13 13:13:13');分別向各個表中插入數(shù)據(jù)修
20、改數(shù)據(jù)update book set b_number='20' where b_id='1003'update student set s_pwd='11111' where s_id='10003'update manager set m_pwd='1111' where m_id='103'1. 將book表中書號為1003的書籍的數(shù)量修改為202. 將student表中學號為10003的學生的密碼修改為111113. 將manager中編號為103的管理員的密碼修改為1111刪除數(shù)據(jù)dele
21、te from book where b_id='1003'delete from manager where m_id='103'1. 刪除book表中書號為1003的書籍信息2. 刪除manager中編號為103 的管理員信息查詢數(shù)據(jù)select * from book;select * from student where s_name='章艷'select * from manager where m_id='101'1. 查詢book表中的所有信息2. 查詢student表中名為章艷的學生信息3. 查詢manager中編
22、號為101的管理員信息4、視圖視圖名對象定義SQL語句說明book_view1create view book_view1 as select * from book;select * from book_view1;1. 在book表上建立一個查詢書籍信息的視圖book_view12. 驗證:查詢視圖Book_view2create view book_view2as select book.b_id,b_name,sort_name,book.sort_idfrom book,sortwhere book.sort_id=sort.sort_id;select * from book_vi
23、ew2;1. 在book表和book_sort表上建立一個名為book_view2的視圖,視圖保留書籍的書號,書名,類別以及類別編號2. 驗證:查看視圖stu_view1create view stu_view1as select s_id,s_sex,s_class from studentwhere s_sex='女'select * from stu_view1;1. 在student表上創(chuàng)建一個名為stu_view1的視圖,視圖 中保留性別為女的學生的學號,性別,班級2. 驗證:查看視圖5、索引索引名對象定義SQL語句說明in_b_namecreate unique i
24、ndex in_b_name on book(b_name);為book表上b_name列建立一個唯一性索引in_b_namein_s_classcreate index in_s_class on student(s_class asc);為student表上s_class列建立一個普通升序索引6、存儲過程存儲過程名對象定義SQL語句說明proc_book1delimiter /create procedure proc_book1()beginselect * from bookwhere b_name like '數(shù)據(jù)庫%' order by b_id;end/delim
25、iter ;call proc_book1();1. 創(chuàng)建存儲過程proc_book1從book表中查詢出名字中含有“數(shù)據(jù)庫”的圖書信息2. 驗證:調(diào)用存儲過程proc_book1()proc_book2delimiter /create procedure proc_book2(in bookid int(10)beginselect * from book where b_id=bookid;end/delimiter ;call proc_book2('1001');1. 創(chuàng)建存儲過程proc_book2,輸入書號后,查詢出此書籍的基本信息2. 驗證:調(diào)用存儲過程proc
26、_book2(1001)7、存儲函數(shù)存儲函數(shù)名對象定義SQL語句說明func_stu1delimiter /create function func_stu1(st_id int(12)returns varchar(20)begin return (select s_name from student where s_id=st_id);end/delimiter ;select func_stu1('10001');1. 創(chuàng)建一個存儲函數(shù)func_stu1,返回表student中指定學號的學生信息2. 驗證:調(diào)用函數(shù)func_stu1(10001)8、觸發(fā)器觸發(fā)器名對象定義
27、SQL語句說明sor_updatedelimiter /create trigger sor_update after updateon sort for each rowbegin update book set sort_id=new.sort_idwhere sort_id=old.sort_id;end/delimiter ;update sort set sort_id='06' where sort_name='中文教材類'select * from book where sort_id='06'1. 創(chuàng)建一個觸發(fā)器,當更改sort表
28、中的某本書的類型編號時,同時對book表的類型編號也進行相應的更改2. 驗證:將sort表中的中文教材類的編號修改為06,并觀察book表是否也做出相應的改變tri_stu1insert into student values('10004','王曉華','女','園林2 班','88888');create table de_stu select s_id,s_name,s_sex from student where 1=0;create trigger tri_stu1 after delete on stu
29、dent for each row insert into de_stu (s_id,s_name,s_sex) values(old.s_id,old.s_name,old.s_sex);delete from student where s_id='10004'select * from de_stu;1. 在student表中插入一條記錄2. 創(chuàng)建一個空表de_stu3. 創(chuàng)建一個觸發(fā)器tri_stu1, 當一個學生的信息被刪除時,將該學生的編號,姓名以及性別添加到表de_stu中4. 驗證:刪除剛插入的學生信息,并查詢de_stu表中是否有該條記錄9、事件事件名對象定義
30、SQL語句說明event1set global.event_scheduler = true;create event event1 on schedule every 1 daydo create table borrow1 as select * from borrow;show tables;select * from borrow1;1. 開啟事件調(diào)度器2. 創(chuàng)建每天執(zhí)行的事件event1,創(chuàng)建一個borrow1表,要求每隔一天將borrow表中的信息存入到borrow1表中3. 驗證:查看所有表,并查看borrow2表中的內(nèi)容event2delimiter /create event
31、 event2 on schedule every 1 weekstarts curdate()+interval 1 weekends '2019-12-31 23:59:59' do begin truncate table borrow1;end/delimiter ;創(chuàng)建事件event2,要求從下周開始,每周都清空borrow1表,并且在2019年12月31日23:59:59結(jié)束10、事務(在存儲過程中使用事務)存儲過程名對象定義SQL語句說明de_man1()insert into manager values('103','楊靜',&
32、#39;女','2222');delimiter /set autocommit=0;create procedure de_man1()beginstart transaction;delete from manager where m_id='103'select * from manager where m_id='103'rollback;select * from manager where m_id='103'end/delimiter ;call de_man1();1. 插入工作號為103的管理員信息2.
33、刪除工作號為103的管理員信息,然后回滾,其中創(chuàng)建de_man1存儲過程3. 驗證:調(diào)用存儲過程de_man1(),查看結(jié)果up_man1()delimiter /create procedure up_man1()beginstart transaction;update manager set m_id='104' where m_name='楊靜'commit;select * from manager where m_name='楊靜'end/delimiter ;call up_man1();1. 將manager表中名為楊靜的管理員的工作號改為104,并提交事務,創(chuàng)建名為up_man1的存儲過程2. 驗證:調(diào)用存儲過程up_man1(),并查看結(jié)果11、數(shù)據(jù)庫用戶及權限分配用戶名定義用戶SQL語句權限分配SQL語句說明manager1create user
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 天氣預報介紹課件
- 2025年鋼鐵板材市場分析報告
- 中國鋰固態(tài)電池行業(yè)市場前景預測及投資價值評估分析報告
- 奶牛酮病研究進展
- 教師志愿者合同協(xié)議書
- 健康搞笑課件
- 創(chuàng)業(yè)計劃書基于人工智能的智能家居解決方案
- 轉(zhuǎn)租協(xié)議書范本合同
- 2025年中國海產(chǎn)干貨制品原料市場分析研究報告
- 新版污水處理站建設項目可行性研究報告
- 2021-2022年北京市大興區(qū)六年級下冊期末數(shù)學試卷及答案(人教版)
- 高考高中物理知識點考點框架圖導圖
- 胃食管反流病指南
- 《假如我是患者》課件
- 第三單元+法律與教化+復習背誦清單 高二上學期歷史統(tǒng)編版(2019)選擇性必修1國家制度與社會治理
- 施工機具安全管理
- 中考數(shù)學函數(shù)一次函數(shù)復習課件
- 全套教學課件《工程倫理學》
- 擔保合同范本
- 水電解制氫設備操作與維護規(guī)程
- 廣東省廣州三校2023-2024學年高二下學期期末考試+政治試卷(含答案)
評論
0/150
提交評論