




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、南昌大學軟件學院數據庫實訓大作業(yè)課程名稱:數據庫實訓院(系):軟件學院專業(yè):軟件工程班級:Java146姓名:歐陽天雄、黎子楊、劉濤學號:800011420、8000114213、 8000114211題目:圖書館管理系統(tǒng)數據庫設計指導老師:王卓完成日期:2016/12/15目錄一、系統(tǒng)概述3二、功能需求分析31、功能概述32、系統(tǒng)角色4三、數據流設計52、數據流圖5四、系統(tǒng)結構設計91、數據字典92、ER圖123、概念模型164、邏輯模型175、物理模型18五、表空間設計18六、安全管理20七、表、約束、索引、視圖管理23八、PL/SQL語句38九、總結40十、參考文獻41一、系統(tǒng)概述圖書館
2、管理系統(tǒng)是一類比較典型的系統(tǒng)開發(fā)系統(tǒng)。它總的設計目標是實現圖書管理的系統(tǒng)化、規(guī)范化和自動化,實現對圖書資料的集中統(tǒng)一的管理。 本系統(tǒng)主要實現對圖書館信息的管理,主要功能為管理有關讀者、圖書、借閱、查詢、和刪除管理員的信息等??梢詭椭鷪D書館管理員和讀者更加方便地管理圖書和借閱圖書。二、功能需求分析1、功能概述:本圖書館管理系統(tǒng)適用于校園等小型的圖書館使用,它的主要任務是建立詳細的可借閱讀者的信息(可表現為一張借閱卡,或者校園卡)以及圖書館內所有的圖書種類以及對應書籍的記錄。并可以對借閱者和所借書籍進行登記,方便圖書管理員能及時查看館內書刊信息以及對借書以及還書做出操作。對此,本系統(tǒng)應該具有的功能
3、應該有1、 管理員信息管理:管理員是本系統(tǒng)的管理者,具有最高權限,對圖書和讀者有添加,修改和刪除等功能。但管理員只能修改自己的信息,不能添加或刪除自己的信息。要想添加和刪除管理員必須到數據庫中去操作表結構。2、 借閱者信息管理:由系統(tǒng)管理員,給每個借閱者創(chuàng)建一個賬戶,賬戶應具有借閱者的詳細信息,并且借閱者的信息在借閱者的身份信息改變后可以修改或注銷。3、 書庫管理:當有新的圖書種類或者新書入庫時候,要對書庫記錄進行添加記錄,當有舊的書種或書被下架時,也要對書庫進行刪除記錄。當讀者或者管理員要對某種書刊進行查詢時,也可以通過本系統(tǒng)進行查詢4、 書籍出借管理:圖書館代理借閱者進行借書或者還書等各項
4、義務。在借閱書刊時,只要輸入要借閱的書刊編號然后輸入借閱者的ID,即可提交借書操作。若書刊編號存在,且借閱卡號存在,且借閱卡的信息與借閱者本人的信息吻合,收取一定押金后即可完成借書操作。完成借書操作后,數據庫內書庫記錄該書刊的記錄從在庫狀態(tài)改為借出狀態(tài)。則操作成功,系統(tǒng)會把該本書的加入借閱記錄中去。5、 書籍歸還管理:管理員可以根據借閱者的關鍵信息,查詢到該借閱者所有的借閱信息,借閱日期等,從中選擇要歸還的圖書,顯示有關本圖書的所有借閱信息,方便讓管理員判斷出是否過期,是否對讀者進行罰款,退還押金后并對數據庫記錄做出改變,并把該本圖書狀態(tài)信息改為在庫。6、 借閱書籍管理:圖書管理員要能夠對所有
5、被借出的書進行查詢,了解哪些人借了哪些書,以及借閱書籍的日期,方便當一本書借出太久后管理員可以對該借書的人進行通知。2、系統(tǒng)角色本項目的主要用戶包括以下兩類。(1) 圖書管理員圖書管理員負責管理書籍的維護,讀者的管理,以及借閱歸還業(yè)務的辦理。是服務的提供者。(2) 借閱者借閱者主要是書籍的借閱和歸還。三、數據流設計1、數據流分析:(1)系統(tǒng)為圖書管理員建立檔案,管理員進入系統(tǒng)前需要進行身份驗證,用戶名,密碼輸入正確方可進入系統(tǒng)。(2)系統(tǒng)預設一些借閱者,并為他們建立檔案信息。(3)在系統(tǒng)中,圖書管理員可以新建新的借閱者信息,修改已有的借閱者信息,注銷已經把書還清的借閱者信息。(4)在系統(tǒng)中,圖
6、書管理員可以對擁有借閱卡的用戶辦理借書,還書業(yè)務。(5)在系統(tǒng)中,圖書管理員可以對還書違規(guī)的借閱者做出處罰金的處罰。(6)在系統(tǒng)中,圖書管理員可以修改庫存信息,增加新書刊或新書種,刪除書種或書刊。(7)在系統(tǒng)中,借閱者可以自助查詢書庫信息,和自己的借閱記錄。(8)在系統(tǒng)中,圖書管理員可以查看所有被借出書的信息。2、數據流圖:1、頂層數據流圖2、借書管理的二層數據流圖3、還書管理的二層數據流圖書庫管理的二層數據流圖4、讀者管理的二層數據流圖罰款管理的二層流圖四、系統(tǒng)結構設計1、數據字典:由需求分析和數據流圖中我們可以提取到幾個不同的元素:管理員,借閱者,書籍,借閱記錄表1-1圖書包含的數據項的數
7、據字典數據項名數據項含義別名數據類型取值范圍BookID唯一標識每本書籍圖書編號Char(10)BookName圖書名稱Varchar2(30)class圖書類別Char(20)publishDate出版日期DateAuthor作者Char(30)Publisher出版社Varchar(20)ISBNISBN號Varchar2(20)price價格Numeric(5,2)Bookstate表示圖書在庫還是借出圖書狀態(tài)Char(5)表1-2管理員包含的數據項的數據字典數據項名數據項含義別名數據類型取值范圍ID唯一標識管理員管理員編號Char(4)Name管理員名字Char(10)tel管理員電話
8、Char(11)Pwd登陸密碼Char(16)Sex管理員性別Char(1)“男”或“女”Phone管理員照片Image一寸證件照表1-3借閱者包含的數據項的數據字典數據項名數據項含義別名數據類型取值范圍ReaderID唯一標識每一位借閱者借閱者編號Char(10)ReaderName借閱者姓名Char(15)ReaderSex借閱者性別Char(1)“男”或“女”ReaderPhone用以借還書確認身份借閱者照片Image證件照ReaderPhone用以管理員聯系借閱者電話Char(11)MaxDay最大借閱天數Number(2)>0BookBorrowed已借圖書Number(2)&
9、gt;=0表1-4 管理員操作的數據字典處理名說明流入的數據流流出的數據流處理借書操作對借閱者的借書申請作出處理書籍信息,借閱者信息借閱單根據借閱者挑選的書籍,查看借閱者是否滿足借閱條件,如果滿足條件,則收取一定的押金并保存記錄到借閱記錄表產生借閱單還書操作對借閱者的還書申請作出處理書籍信息 讀者信息退款根據借閱者所持的借閱單和書籍借閱卡,查看借閱者的本次借閱記錄,是否有違規(guī)使用的情況,若有則相應處以罰金,或退還押金,刪除借閱記錄。添加借閱者對申請借書的潛在客戶的申請作出處理客戶信息借閱卡根據客戶的準確身份信息,核對信息是否有效,若有效則給客戶辦借閱卡。修改借閱者信息對借閱者的信息進行更改客戶
10、信息借閱卡根據客戶的修改請求,核對修改的信息,若有效,則給客戶更新借閱卡。2、ER圖:1. 實體:管理員:管理員密碼身份證號姓名工作證號讀者:圖書:罰款:2.管理員圖書讀者之間的聯系:3、概念模型4、邏輯模型在得出概念結構設計的E-R圖后,下一步的任務就是吧概念結構設計中的E-R模型轉換為具體的數據庫管理系統(tǒng)支持的組織層數據模型,也就是導出特定的數據庫管理系統(tǒng)可以處理的數據庫邏輯結構,由于在概念結構設計中我們就得出了若干個關系模式,因此在邏輯結構設計要做的就是把各個關系模式做一遍規(guī)范化處理,以減少冗余。以下關系模式均已規(guī)范化到第三范式。圖書表(圖書編號,圖書類別編號,書名,出版日期,作者,出版
11、社,ISBN號,價格)圖書類別表(類別編號,類別名稱,類別解釋)借閱者表(借閱者編號,借閱等級,姓名,性別,照片,電話,已借圖書)借閱者類別表(借閱等級,等級名稱,最大可借圖書數,最長借閱期限)管理員表(管理員編號,姓名,性別,登陸密碼,電話,照片)罰金表(罰金級別,罰金名稱,罰款說,罰金數量)借書記錄表(借閱者編號,圖書編號,借書時間,還書期限,押金)還書記錄表(借閱者編號,圖書編號,還書時間,退款)罰款表(借閱者編號,罰款類別,已繳罰款,罰款原因)5、物理模型五、表空間設計通過之前的概念結構設計,邏輯結構設計,物理結構設計得出來的模型可以知道,本圖書管理系統(tǒng)大概有十張表,這些表從業(yè)務角度來
12、分,主要有以下三類:(1) 與書庫相關的表。包括圖書表(2) 與系統(tǒng)角色相關的表,包括借閱者表,管理員表(3) 與案例業(yè)務相關的表,借書表,還書表。除了這些表外,其他都是些參數類型的表。在我們的案例中,本系統(tǒng)是面向小型圖書館的。下面我們以一個借閱人數為500,藏書量為10000本的圖書館為例。有五百個借閱者需要建立借閱信息,10000本圖書需要建立圖書信息。預設10位管理員。粗略估算一下數據表空間為2G,索引表也設為2G,臨時表空間設為500M。由于本系統(tǒng)大多數操作都是通過管理員進行的,并發(fā)性不高,所以回退表空間不需要很大,回退表空間就設為500M。綜上所述,本案例需要創(chuàng)建一個數據表空間,一個
13、索引表空間,一個臨時表空間并將回退表空間擴充,為其增加一個數據文件。表空間名稱分別libsys_data,libsys_idx,libsys_temp。采用小文件類型的額數據文件。每個數據文件的大小不超過1G.因此數據文件分別是libsys_data01.dbf,libsys_data02.dbf,libsys_idx01.dbf,libsys_idx02.dbf,libsys_temp01.dbf,libsys_undo01.dbf。創(chuàng)建圖書管理系統(tǒng)數據庫:LIBSYS建立表空間:創(chuàng)建的數據庫文件:六、安全管理6.1用戶通過前面的需求分析可以知道,系統(tǒng)主要有兩個系統(tǒng)角色,分別是管理員和借閱者
14、,管理員有很多種權限,可以對除管理員表外的所有表進行增刪改查的操作,而借閱者的權限比較低,只能進行一些針對特殊表的查找操作,例如,當借閱者想查詢圖書館有沒有自己想要的書可以對書庫表進行查詢,想知道自己的借閱記錄可以查詢借閱記錄表。因此本例中我們新建兩個角色,管理員和用戶(operator和reader)創(chuàng)建operator用戶創(chuàng)建reader用戶6.2、權限、角色管理Operator用戶是本系統(tǒng)的主用戶,本案例數據庫模型的數據庫對象全部建立在此方案中,而reader用戶只需要給他連接數據庫的權限,然后由operator將部分數據庫對象的查詢權限授予他就行。如上所述,暫給connect,reso
15、urce權限給Operator用戶,讓operator用戶可以建表等等:而Reader用戶先授予它連接數據庫的權限,由于Reader用戶,前面說了可以查詢書庫和某些記錄的權限。因此我們自定義一個角色,具有選擇任何表的權限,然后把這個角色授予Reader。到目前為止,我們創(chuàng)建了兩個用戶Operator和ReaderOperator具有創(chuàng)建數據庫對象的權利,而Reader只有查詢的權限??梢酝ㄟ^sql語句查詢各個用戶的權限Operator用戶的角色信息和使用空間表的配額信息Reader用戶的角色信息和權限信息七、表、約束、索引、視圖管理7.1、表管理表是ORACLE數據庫中的主要對象,是數據庫中的
16、數據存儲的基本單位,存儲著與應用程序相關的一些信息。其他許多數據庫對象如索引、視圖都以表為基礎。下面我們將以前面概念模型設計通過正向工程生成的物理數據模型進一步生成的數據庫創(chuàng)建的SQL腳本來建表。具體的建表過程如下。7.2、約束完整性約束是一種規(guī)則,它不占任何數據空間完整性約束存在數據字典中,在執(zhí)行SQL或PL/SQL期間使用。用戶可以指明約束是啟用的還是禁用的,當約束啟用時,他增強了數據的完整性,否則,則反之,但約束始終存在于數據字典中。約束大致分為唯一性和主鍵約束、外鍵約束、檢查約束、空值約束、默認值約束,等,對于本例來說,主要是應該添加外鍵約束,檢查約束,和默認值約束。例如,管理員表和借
17、閱者表的性別字段應該添加檢查約束,還有一些表與表之間的引用應該添加外鍵約束。下面我們將進行添加約束工作。對于表Manager只用添加一些檢查約束和空值約束就行了對于表Reader因為存在引用,所以除了檢查約束和空值約束還得添加外鍵約束對于Book表只需添加外鍵約束對于Borrow表因為和很多實體存在聯系,所以得添加幾個外鍵約束給Returnbook表添加外鍵約束給punishpay表添加外鍵約束7.3索引管理雖然關系數據庫中的數據行的物理位置無關緊要,但在本案例中,管理員和用戶用Book,Borrow,ReturnBook三個表的查詢是非常集中的,所以為了加快用戶查找的速度有必要設置索引。索引
18、就是一種可以提高查詢性能的數據結構。在Book表中,用戶查詢一本書通常會按書名和書的類別進行查找,因此可以在書名和圖書類別這兩列設置非唯一索引在borrow表中,通常會按書編號或借閱者id來查找一條借閱記錄。因此可在書編號和借閱者ID上建立索引同理給還書記錄表設置索引給罰款記錄表設置索引7.4、視圖管理視圖是從一個表或多個表中通過查詢二導出數據的虛表,建立視圖并不占據空間。在本案例中在Reader表中有個已借圖書數量borrowed,和readerclass,而在Readerclass表中規(guī)定了一個等級的用戶可以借多少書,因此我們可以通過它來創(chuàng)建一個視圖從而顯示出用戶還能借多少本圖書。步驟如下
19、:創(chuàng)建視圖從視圖中選擇數據就這樣管理員就可以方便地判斷是否可以將書籍出借給借閱者了?;蛘哌€可以對視圖進行修改,7.5、基本對象的信息查詢及管理在本案例中Book,Manager,Reader,Punish,ReaderClass,classIDTable這六個表的查詢及管理是最簡單的。而后面借書還書罰款三個表的查詢及管理則稍微復雜一點。因為這些聯系涉及到多張表,插入,修改,刪除會引起其他表記錄的改變,因此我們將通過定義觸發(fā)器或存儲過程的方法來實現。對Book表的基本管理為book表新增一個bookState字段 類型為char(5),表示圖書室在庫還是借出狀態(tài)對Reader表的基本管理對Manager表的基本管理對classidtable表的基本管理對punish表的基本管理對readerclass表的基本查詢對punishpay表的查詢對borrow表的基本管理在borrow表創(chuàng)建三個觸發(fā)器對borrow表執(zhí)行插入語句查詢borrow表插入了數據后,book,reader,borrow表的記錄情況;可以看到這樣理想的一次借書就完成了但是當要對borrow修改時,現在只考慮,修改借閱者id,創(chuàng)建觸發(fā)器同樣的,當借閱者要求還書
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報書課題進度表格
- 課題的項目申報書
- 翻譯課題項目申報書范文
- 腫瘤護理課題申報書
- 出租噴涂車間合同范本
- 變更土地合同范本
- 紅色文化產業(yè)課題申報書
- 內墻膩子合同范本
- 醫(yī)學課題申報書意見
- 合同范本 工商
- 冬小麥種植技術及病蟲害防治課件
- 金庸群俠傳x最完整攻略(實用排版)
- 污水處理廠設備的維修與保養(yǎng)方案
- 專題13《竹里館》課件(共28張ppt)
- 小城鎮(zhèn)建設形考作業(yè)1-4
- GB/T 9846.4-2004膠合板第4部分:普通膠合板外觀分等技術條件
- GB/T 17836-1999通用航空機場設備設施
- GB/T 13012-2008軟磁材料直流磁性能的測量方法
- GB/T 12807-2021實驗室玻璃儀器分度吸量管
- 2023年全國高中生物聯賽競賽試題和答案
- 男襯衫縫制工藝課件
評論
0/150
提交評論