[工學]圖書管理系統(tǒng)_第1頁
[工學]圖書管理系統(tǒng)_第2頁
[工學]圖書管理系統(tǒng)_第3頁
[工學]圖書管理系統(tǒng)_第4頁
[工學]圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、數(shù)據(jù)庫技術(shù)與應(yīng)用大作業(yè)題目:數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計和實現(xiàn)指導老師: 班級: 姓名: 學號: 中南大學信息科學與工程學院2009年12月 目 錄1.需求說明 22.數(shù)據(jù)庫結(jié)構(gòu)設(shè)計2 2.1 概念結(jié)構(gòu)設(shè)計 .2 2.2 邏輯結(jié)構(gòu)設(shè)計 42.2.1關(guān)系模型 42.2.2系統(tǒng)總體結(jié)構(gòu) .42.2.3 表的建立.52.2.4規(guī)則的建立與綁定.102.2.5默認的建立與綁定102.2.6報表的設(shè)計(視圖的設(shè)計).113.數(shù)據(jù)庫行為功能設(shè)計和delphi對界面的實現(xiàn)153.1安全控制.153.2數(shù)據(jù)操作.163.3存儲過程設(shè)計.223.4觸發(fā)器設(shè)計.24附1 delphi實現(xiàn)相關(guān)功能的代碼.24附2:參考文獻

2、.36圖書管理系統(tǒng)的設(shè)計和實現(xiàn)1 需求說明為滿足圖書管理發(fā)展的需要,提高競爭能力,開發(fā)一個界面友好,易于操作的圖書管理系統(tǒng)進行自動化處理變得十分重要?,F(xiàn)在要求設(shè)計一個圖書管理系統(tǒng)來提高圖書館管理水平和工作效率。根據(jù)圖書館的日常需要,確定系統(tǒng)要實現(xiàn)六個基本功能:圖書資料管理、學生資料管理、新增信息操作、刪除信息操作、修改信息和查詢處理。同時該系統(tǒng)具有強大的查詢功能和可靠性。同時了解到圖書館的使用人員:(1)系統(tǒng)管理員:維護整個系統(tǒng)的正常運行、及時更新系統(tǒng),給每個新用戶建立讀者信息,給每個注銷用戶刪除相應(yīng)的讀者信息;(2)圖書管理員:負責管理圖書和給學生辦理借書、還書;(3)學生:需要借書、還書的

3、一些用戶。該系統(tǒng)的具體要求:(1)一個圖書管理員管理所有圖書和所有學生的業(yè)務(wù);(2)一本圖書可以由多個圖書管理員管理和多個同學借閱;(3)一個學生可以借多本圖書。數(shù)據(jù)庫中要記錄學生的借書情況、圖書的借還的情況以及讀者、圖書管理員、圖書的基本情況。除了對這些數(shù)據(jù)進行正常的維護之外,還需要產(chǎn)生一些報表,如學生借書表,內(nèi)容包括學號、姓名、圖書編號、圖書名。2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計2.1 概念結(jié)構(gòu)設(shè)計對于這個圖書管理系統(tǒng),其核心活動是圖書,學生與圖書之間是通過讀者借書發(fā)生聯(lián)系的,圖書管理員與圖書之間是通過圖書管理員管理圖書發(fā)生聯(lián)系的,因此,此系統(tǒng)所包含的實體有:(1)圖書:用于描述一本圖書的基本信息,用圖書

4、編號來標識此實體;(2)學生:用于描述一個學生的基本信息,由學號來標識;(3)圖書管理員:用于描述一個圖書管理員的基本信息,由管理帳號來標識;其初步e-r圖如下:學生借書管理圖書管理員圖書mnmn實體的屬性比較多,在畫e-r圖時,不一定要把所有的實體屬性都畫在e-r圖上,可以另外用文字說明,如:經(jīng)過初步分析,可知此系統(tǒng)中各實體所包含的基本屬性為:圖書:圖書編號、圖書名、出版社、編者;學生:學號、姓名、性別、系、專業(yè)、班級;圖書管理員:管理帳號、管理員姓名、工作時間。2.2 邏輯結(jié)構(gòu)設(shè)計22.1關(guān)系模型有了基本e-r圖后,就可以進行邏輯結(jié)構(gòu)設(shè)計了,也就是設(shè)計基本的關(guān)系模型。設(shè)計基本關(guān)系模式主要是

5、從e-r圖出發(fā),將其直接轉(zhuǎn)換為關(guān)系模式。根據(jù)轉(zhuǎn)換規(guī)則,這個e-r圖轉(zhuǎn)換的關(guān)系模式為:圖書(圖書編號、圖書名、出版社、編者、是否在館),主碼為圖書編號;學生(學號、姓名、性別、年齡、系、專業(yè)、班級),主碼為學號;圖書管理員(管理帳號、管理員姓名、工作時間),主碼為管理帳號;借書(學號、姓名、圖書編號、圖書名、借書時間、還書時間、是否歸還),主碼為(學號、圖書編號);管理(圖書編號 、圖書名、管理帳號、管理員姓名),主碼為(圖書編號、管理帳號)。2.2.2系統(tǒng)總體結(jié)構(gòu) 2.2.3 表的建立在設(shè)計好了關(guān)系模式并確定好了每個關(guān)系模式的主碼后,再看一下這些關(guān)系模式之間的關(guān)聯(lián)關(guān)系,即確定關(guān)系模式的外碼,可

6、通過e-r圖中聯(lián)系實體發(fā)現(xiàn):借書關(guān)系中,學號和圖書編號是外碼,分別引用學生關(guān)系中的學號和課程關(guān)系中的圖書編號;管理關(guān)系中,管理帳號、圖書編號是外碼,分別引用圖書管理員關(guān)系中的管理帳號和圖書關(guān)系中的圖書編號;最后,確定表中各屬性的詳細信息,包括數(shù)據(jù)類型和長度等,代碼如下:(1) 圖書表:create table 圖書表( 圖書編號 char(20) not null primary key, 圖書名 char(20), 編者 char(9),出版社 char(20),是否在館 char(2)(2) 學生表: create table 學生表( 學號 int not null primary ke

7、y, 姓名 char(9), 性別 char(2) default 男, 年齡 int, 系 char(20), 專業(yè) char(20), 班級 char(10)(3) 圖書管理員表:create table 圖書管理員表( 管理帳號 int not null primary key, 管理員姓名 char(9),工作時間 char(10)(4) 借書表:create table 借書表( 學號 int not null, 姓名 char(9), 圖書編號 char(20) not null, 圖書名 char(20), 借書時間 char(10), 還書時間 char(10),是否歸還 ch

8、ar(2)(5) 管理表:create table 管理表( 圖書編號 char(20) not null, 圖書名 char(20),管理帳號 int not null,管理員姓名 char(9) ) 為表添加記錄(1)圖書表:insert 圖書表 (圖書編號,圖書名,出版社,編者,是否在館)values (tp311.56,delphi促銷存程序設(shè)計,清華大學出版社,陳惟彬,是)insert 圖書表 (圖書編號,圖書名,出版社,編者,是否在館)values (73.964,delphi程序設(shè)計入門,人民郵電出版社,devra hall,是)insert 圖書表 (圖書編號,圖書名,出版社,

9、編者,是否在館)values (i211.56,朝花夕拾,人民文學出版社,魯迅,否)insert 圖書表 (圖書編號,圖書名,出版社,編者,是否在館)values (i211.34,圍城,人民文學出版社,錢鐘書,是)insert 圖書表 (圖書編號,圖書名,出版社,編者,是否在館)values (i213.12,夢里花落知多少,作家出版社,三毛,是)insert 圖書表 (圖書編號,圖書名,出版社,編者,是否在館)values (i213.13,雨季不再來,作家出版社,三毛,是)insert 圖書表(圖書編號,圖書名,出版社,編者,是否在館)values (i213.14,撒哈拉的故事,作家出

10、版社,三毛,否)insert 圖書表(圖書編號,圖書名,出版社,編者,是否在館)values (tp311.56dbj2,delphi編程技巧,中國電力出版社,裴紅義,是)insert 圖書表(圖書編號,圖書名,出版社,編者,是否在館)values (tp311.13,數(shù)據(jù)庫技術(shù),清華大學出版社,岳昆,是)insert 圖書表(圖書編號,圖書名,出版社,編者,是否在館)values (v205.16,山水課徒稿,人民藝術(shù)出版社,王慶淮,是)(2)學生表:insert 學生表(學號,姓名,性別,年齡,系,專業(yè),班級)values(090908332,王若瑤,女,19,信息科學與工程學院,控制類,

11、0833)insert 學生表(學號,姓名,性別,年齡,系,專業(yè),班級)values(200107305,李天奇, 男,21,計算機科學與技術(shù)系,計算機應(yīng)用技術(shù),0701)insert 學生表(學號,姓名,性別,年齡,系,專業(yè),班級)values(200205064,姚冰冰, 女,20,工商管理學院,會計學,0812)insert 學生表(學號,姓名,性別,年齡,系,專業(yè),班級)values(200303102,劉進, 男,18,化學科學與工程學院,環(huán)境工程,0923)(3)圖書管理員表:insert 圖書管理員表(管理帳號,管理員姓名,工作時間)values(135894,劉惟一,周一至周三

12、)insert 圖書管理員表(管理帳號,管理員姓名,工作時間)values(135763,王冰飛,周四至周天)(4)借書表:insert 借書表(學號,姓名,圖書編號,圖書名,借書時間,還書時間,是否歸還)values(090908332,王若瑤,tp311.56,delphi促銷存程序設(shè)計,2009-09-03,2009-12-03,是)insert 借書表(學號,姓名,圖書編號,圖書名,借書時間,還書時間,是否歸還)values(200107305,李天奇,73.964,delphi程序設(shè)計入門,2009-09-16,2009-12-16,是)insert 借書表(學號,姓名,圖書編號,圖

13、書名,借書時間,還書時間,是否歸還)values(090908332,王若瑤, v205.16,山水課徒稿,2009-09-03,2009-12-03,是)insert 借書表(學號,姓名,圖書編號,圖書名,借書時間,還書時間,是否歸還)values(200205064,姚冰冰,i211.56,朝花夕拾,2009-11-03,2010-02-03,否)insert 借書表(學號,姓名,圖書編號,圖書名,借書時間,還書時間,是否歸還)values(200303102,劉進,i213.14,撒哈拉的故事,2009-12-23,2008-03-23,否)(5)管理表:insert 管理表(圖書編號,

14、圖書名,管理帳號,管理員姓名)values(tp311.56,delphi促銷存程序設(shè)計,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values(73.964,delphi程序設(shè)計入門,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i211.56,朝花夕拾,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i211.34,圍城,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i213.12,夢里花落

15、知多少,135894,劉惟一) insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i213.13,雨季不再來,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i213.14,撒哈拉的故事,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (tp311.56dbj2,delphi編程技巧,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (tp311.13,數(shù)據(jù)庫技術(shù),135894,劉惟一)insert 管理表(圖書編號,

16、圖書名,管理帳號,管理員姓名)values (v205.16,山水課徒稿,135894,劉惟一)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values(tp311.56,delphi促銷存程序設(shè)計,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values(73.964,delphi程序設(shè)計入門,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i211.56,朝花夕拾,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i211.34,圍

17、城,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i213.12,夢里花落知多少,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i213.13,雨季不再來,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (i213.14,撒哈拉的故事,135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (tp311.56dbj2,delphi編程技巧,135763,王冰飛)insert 管理表(圖書編號,圖書

18、名,管理帳號,管理員姓名)values (tp311.13,數(shù)據(jù)庫技術(shù),135763,王冰飛)insert 管理表(圖書編號,圖書名,管理帳號,管理員姓名)values (v205.16,山水課徒稿,135763,王冰飛)在sql server2000中建立上述表。將上述代碼復制,在查詢分析器中粘貼,點擊運行,即可生成所需的表。表和表之間的約束關(guān)系,見代碼中主碼、外碼的確立。2.2.4規(guī)則的建立與綁定規(guī)則:規(guī)則的綁定:2.2.5默認的建立與綁定默認:默認的綁定:2.2.6報表的設(shè)計(視圖的設(shè)計)有了數(shù)據(jù)庫的基本表之后,應(yīng)該看一下這些基本表能否滿足產(chǎn)生報表的需求。如:圖書管理表管理(圖書編號 、

19、圖書名、管理帳號、管理員姓名)圖書編號和圖書名,可由圖書表得到;管理帳號和管理員姓名可由圖書管理員表得到,因此,可以滿足圖書管理表的要求,可以通過定義視圖實現(xiàn)。使用sql語句創(chuàng)建視圖,代碼:create view view1 as select 學生表.學號,學生表.姓名,借書表.圖書編號,借書表.學號 from 學生表,借書表 where 學生表.學號=借書表.學號視圖的實現(xiàn)快速創(chuàng)建報表(1)在delphi中選擇“file”“new” “other”選項,從中彈出的new items對話框中選擇business頁面,然后選擇ruicklreport wizard,如圖1所示。(2)在圖2中單

20、擊“ok”,彈出圖3,單擊“start wizard”按鈕將左邊的選項都添加到右邊去,點擊“finish”按鈕。(3)然后在表彈出的表中右擊運行,即可生成報表。 圖1 圖2 圖3 圖43 數(shù)據(jù)庫行為功能設(shè)計和delphi對界面的實現(xiàn)3.1 安全控制任何數(shù)據(jù)庫應(yīng)用系統(tǒng)都需要安全控制功能,圖書管理系統(tǒng)用戶分為如下幾類:(1)系統(tǒng)管理員:有系統(tǒng)的全部權(quán)限,可以新增、刪除、修改等權(quán)限。(2)圖書管理員:具有對學生的借書情況的維護權(quán),對圖書的管理權(quán);(3)讀者:具有對個人信息和借書情況的查詢權(quán)。下圖為系統(tǒng)的基本邏輯:現(xiàn)在來簡單介紹一下此圖書管理系統(tǒng)form1是歡迎界面form2是登錄界面,在次界面讀者,

21、圖書管理員和系統(tǒng)管理員分別進入自己的界面,行使各自的權(quán)限。3.2 數(shù)據(jù)操作數(shù)據(jù)操作功能包括對這些數(shù)據(jù)進行錄入、刪除、修改功能。(1)數(shù)據(jù)查詢只有具有相應(yīng)權(quán)限的用戶才能查詢相應(yīng)表中的數(shù)據(jù)。次系統(tǒng)中讀者、圖書管理員和系統(tǒng)管理員都有查詢功能,但相應(yīng)的查詢信息還是有權(quán)限的。讀者進入系統(tǒng)后,只能查詢信息,可以查詢個人信息也可以查詢自己借書的情況。如下圖借書情況的查詢(2)數(shù)據(jù)刪除只有具有相應(yīng)權(quán)限的用戶才能刪除相應(yīng)表中的數(shù)據(jù)。圖書管理員可以對圖書管理,進行查詢、刪除、圖書錄入的功能。如圖圖書查詢時,可以分圖書編號、圖書名和出版社來查圖書信息,如圖(3)數(shù)據(jù)新增圖書管理員新增圖書(4)數(shù)據(jù)修改只有具有相應(yīng)權(quán)

22、限的用戶才能修改相應(yīng)表中的數(shù)據(jù)。只有系統(tǒng)管理員才能新增讀者的相關(guān)信息,對整個系統(tǒng)進行維護。如圖新增信息后查詢系統(tǒng)管理員可以刪除學生的信息修改讀者的信息修改成功系統(tǒng)管理員可以新增、修改和刪除圖書管理員和圖書的信息,對系統(tǒng)進行維護,這兒就不在列舉了。3.3存儲過程設(shè)計存儲過程的代碼:create procedure add_return 學號 char(9) asdeclare total_num int,圖書編號 char(20) select total_num = count(*) from 學生表 where 學號 = 學號if (total_num = 0) print該學生不存在!el

23、se begin declare tushu_cursor cursor for select 圖書編號 from 圖書表 open tushu_cursor fetch next from tushu_cursor into 圖書編號 while fetch_status = 0 begin select total_num = count(*) from 借書表 where 學號=學號 and 圖書編號=圖書編號 if (total_num 0) begin fetch next from tushu_cursor into 圖書編號 continue end else begin ins

24、ert into 借書表(學號,圖書編號,是否歸還) values (學號,圖書編號,1*rand() fetch next from tushu_cursor into 圖書編號 end end close tushu_cursor deallocate tushu_cursor endgo3.4 觸發(fā)器設(shè)計 觸發(fā)器的代碼: create trigger trig_sample on 學生表 for insert as select * from 學生表附1:delphi實現(xiàn)相關(guān)功能的代碼form1的代碼:var form1: tform1;implementation uses unit2

25、;$r *.dfmprocedure tform1.button1click(sender: tobject);begin form1.hide; form2.show; /界面與界面之間聯(lián)系起來end;end.form2的代碼:var form2: tform2;implementation uses unit1,unit3,unit4,unit5;$r *.dfmprocedure tform2.btn1click(sender: tobject);begin if edt2.text=edt1.text then begin form3.show; form2.hide; end els

26、e showmessage(用戶名或密碼錯誤) /讀者界面登錄end;procedure tform2.btn2click(sender: tobject);begin if edt3.text=edt4.text then begin form4.show; form2.hide; end else showmessage(用戶名或密碼錯誤) /圖書館里員界面end;procedure tform2.btn3click(sender: tobject);begin if edt5.text=edt6.text then begin form5.show; form2.hide; end el

27、se showmessage(用戶名或密碼錯誤) /系統(tǒng)管理員界面end;procedure tform2.btn4click(sender: tobject);begin form1.show; form2.close;end;end.form3的代碼:var form3: tform3;implementation uses unit2;$r *.dfmprocedure tform3.button1click(sender: tobject);var str:string;begin str:=form2.edt1.text; with adoquery1 do begin close;

28、 sql.clear; sql.add( select * from 學生表 where 學號=+str); open; end; /學生個人信息 查詢end;procedure tform3.button2click(sender: tobject);var str1:string;begin str1:=form2.edt1.text; with adoquery1 do begin close; sql.clear; sql.add( select * from 借書表 where 學號=+str1); open; end; /學生借書查詢end;procedure tform3.but

29、ton3click(sender: tobject);begin form3.close; form2.show;end; /退出end.form7的代碼:var form7: tform7;implementation uses unit6;$r *.dfmprocedure tform7.button1click(sender: tobject);begin with adoquery1 do begin close; sql.clear; sql.add(select * from 圖書表 where +combobox1.itemscombobox1.itemindex+=+edit1

30、.text+); open; end;end;procedure tform7.button2click(sender: tobject);begin form7.close;form6.show;end;end.form8的代碼:var form8: tform8;implementation uses unit6;$r *.dfmprocedure tform8.button1click(sender: tobject);begin with adoquery1 do begin close; sql.clear; sql.add(insert into 圖書表 values(:圖書編號,

31、:圖書名,:編者,:出版社,:是否在館); parameters.parambyname(圖書編號).value:=trim(edit1.text); parameters.parambyname(圖書名).value:=trim(edit2.text);parameters.parambyname(編者).value:=trim(edit3.text);parameters.parambyname(出版社).value:=trim(edit4.text);parameters.parambyname(是否在館).value:=trim(edit5.text); execsql; showme

32、ssage(插入成功); 新增 end;end;procedure tform8.button2click(sender: tobject);var str:string;begin str:=edit2.text; with adoquery1 do begin close; sql.clear; sql.add( select * from 圖書表 where 圖書名=+str); open; end;end;procedure tform8.button3click(sender: tobject);begin form8.close;form6.show;end;end. form12

33、的代碼var form12: tform12;implementation uses unit10;$r *.dfmprocedure tform12.button1click(sender: tobject); var str,str1:string;begin str:=edit1.text; str1:=edit2.text; with adoquery1 do begin close; sql.clear; sql.add(update 學生表 set +combobox1.itemscombobox1.itemindex+=+str1+ where 學號=+str); execsql; showmessage(修改成功); 修改 end;end;procedure tform12.button2click(sender: tobject);begin form12.close; form10.show;end;end.form14的代碼:var form14: tform14;implementation uses unit5,unit15;$r *.dfmprocedure tform14.button1click(sender: tobject);be

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論