




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精品大型數(shù)據(jù)庫課程設(shè)計(jì)設(shè)計(jì)報(bào)告題 目: 圖書借閱管理系統(tǒng) 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 提交時(shí)間: 2014-11-22 感謝下載載目錄1. 需求分析.21.1需求調(diào)查.21.2系統(tǒng)功能分析.22. 概念結(jié)構(gòu)設(shè)計(jì).32.1概念設(shè)計(jì).32.2E-R圖建立.33. 邏輯結(jié)構(gòu)設(shè)計(jì).83.1E-R圖向關(guān)系模式轉(zhuǎn)換.83.2建立關(guān)系模式.83.3關(guān)系模式規(guī)范化處理.83.4用戶子模式建立.83.5關(guān)系模式邏輯結(jié)構(gòu)定義.104. 物理結(jié)構(gòu)設(shè)計(jì).115. 數(shù)據(jù)庫實(shí)施與測試.125.1數(shù)據(jù)庫實(shí)施.125.1.1數(shù)據(jù)庫及數(shù)據(jù)庫對象建立.125.1.2數(shù)據(jù)存入數(shù)據(jù)庫.135.1.3函數(shù)設(shè)計(jì).135.2數(shù)據(jù)庫測
2、試.146. 數(shù)據(jù)庫完整型設(shè)計(jì).166.1主鍵及唯一性索引.166.2參照完整型.166.3Check約束.166.4觸發(fā)器設(shè)計(jì).176.5規(guī)則.177. 數(shù)據(jù)庫視圖設(shè)計(jì).188. 數(shù)據(jù)庫存儲(chǔ)過程設(shè)計(jì).199. 總結(jié).2710. 參考文獻(xiàn).27某書店圖書借閱管理系統(tǒng)第1章需求分析1.1需求調(diào)查通過對各個(gè)書店的市場調(diào)查,該圖書借閱管理系統(tǒng)的需求如下:1) 系統(tǒng)管理:實(shí)現(xiàn)系統(tǒng)管理人員對系統(tǒng)的管理,包括添加刪除用戶, 數(shù)據(jù)備份,數(shù)據(jù)還原,注銷等功能。2) 讀者信息管理:添加讀者信息,根據(jù)借書證編號查看讀者信息,根據(jù)讀者ID刪除讀者,借閱證到期的讀者更改借閱證辦證時(shí)間。3) 書籍信息管理:添加一條書籍
3、信息,刪除一條書籍信息,查看一條圖書信息,根據(jù)圖書名查看圖書信息,根據(jù)圖書類別查看圖書信息,根據(jù)作者查看圖書信息,根據(jù)出版社產(chǎn)看圖書信息,根據(jù)ISBN查看圖書庫存,根據(jù)書籍名查看庫存。4) 借閱管理:借書管理,還書管理,續(xù)借管理,查看所有借閱信息,根據(jù)讀者ID查看借閱信息,根據(jù)讀者ID查看借書記錄,根據(jù)讀者ID查看借書記錄,根據(jù)讀者ID查看罰款信息。圖書借閱管理系統(tǒng)書籍信息管理系統(tǒng)管理讀者信息管理借書管理還書管理罰款管理續(xù)借管理1.2 系統(tǒng)功能分析圖1-2 系統(tǒng)功能分析圖第2章概念結(jié)構(gòu)設(shè)計(jì) 2.1 概念設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)階段的目標(biāo)是通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的
4、概念模型。即通過對數(shù)據(jù)流程圖的分析歸納和總結(jié),建立E-R圖。概念結(jié)構(gòu)的設(shè)計(jì)方法有兩種:(1)集中式模式設(shè)計(jì)法:這種方法是根據(jù)需求由一個(gè)統(tǒng)一機(jī)構(gòu)或人員設(shè)計(jì)一個(gè)綜合的全局模式。這種方法簡單方便,適用于小型或不復(fù)雜的系統(tǒng)設(shè)計(jì),由于該方法很難描述復(fù)雜的語義關(guān)聯(lián),而不適于大型的或復(fù)雜的系統(tǒng)設(shè)計(jì)。 (2)視圖集成設(shè)計(jì)法:這種方法是將一個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng),首先對每一個(gè)子系統(tǒng)進(jìn)行模式設(shè)計(jì),建立各個(gè)局部視圖,然后將這些局部視圖進(jìn)行集成,最終形成整個(gè)系統(tǒng)的全局模式。2.2 E-R圖建立局部E-R圖1. 對讀者建立E-R圖,其中讀者ID為主鍵讀者聯(lián)系方式辦證時(shí)間讀者ID密碼讀者姓名讀者性別讀者單位讀者類別圖2
5、-1 讀者E-R圖2. 對書籍建立E-R圖,其中圖書ID為主鍵書籍圖書ID書籍名稱書籍類別書籍作者出版社登記日期狀態(tài)定價(jià)出版日期ISBN圖2-2 書籍E-R圖3. 對讀者類別建立E-R圖,其中讀者類別編號為主鍵讀者類別編號借閱證期限讀者類別名讀者類別持有圖書最長期限允許借閱圖書最大數(shù)圖2-3 讀者類別E-R圖4、 對借閱建立E-R圖借閱讀者借書時(shí)間讀者ID圖書ID讀者姓名圖書名ISBN圖2-4 借閱圖5、 對還書建立E-R圖還書時(shí)間還書圖書ID讀者ID圖書名讀者姓名ISBN圖還書圖6、 對罰款建立E-R圖罰款處理狀態(tài)讀者ID讀者姓名圖書ID應(yīng)還日期歸還日期借閱日期罰款類別編號 書籍名ISBN圖
6、罰款圖7、 對罰款類別建立E-R圖罰款類別罰款類別編號罰款名稱罰款金額罰款原因圖罰款類別圖全局E-R圖讀者實(shí)體讀者類別實(shí)體罰款類別實(shí)體罰款借閱登記登記罰款實(shí)體借閱信息實(shí)體書籍實(shí)體還書實(shí)體歸還第3章邏輯結(jié)構(gòu)設(shè)計(jì)3.1E-R圖向關(guān)系模式轉(zhuǎn)換數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本 E 一 R 圖轉(zhuǎn)換為與選用的 DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。邏輯結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的,在實(shí)際應(yīng)用中,一般所用的數(shù)據(jù)庫環(huán)境已經(jīng)給定(如SQL Server或Oracel或MySql)。由于目前使用的數(shù)據(jù)庫基本上都是關(guān)系數(shù)據(jù)庫,因此首先需要將E-R圖轉(zhuǎn)換為關(guān)系模型,然后根據(jù)具體DBMS
7、的特點(diǎn)和限制轉(zhuǎn)換為特定的DBMS支持下的數(shù)據(jù)模型,最后進(jìn)行優(yōu)化。3.2 建立關(guān)系模式讀者信息: 讀者ID,密碼,讀者姓名,讀者性別,讀者類別,讀者單位,辦證時(shí)間,聯(lián) 系方式;讀者類別信息:讀者類別編號,讀者類別名,允許借閱圖書最大數(shù) ,持有圖書最長期 限,借閱證期限;書籍信息:圖書ID,ISBN,書籍名稱,書籍類別,書籍作者,出版社,定價(jià),出版日期, 登記日期 ,狀態(tài);借書信息:借書證編號,讀者姓名,書籍編號,ISBN,書籍名,讀者借書時(shí)間;還書信息:借書證編號,書籍編號,ISBN,圖書名,讀者姓名,還書時(shí)間;罰款信息:借書證編號,讀者姓名,書籍編號,ISBN,書籍名,借閱日期,歸還日期,應(yīng)
8、還日期,罰款類別編號,處理狀態(tài);罰款類別:罰款類別編號,類別名,罰款原因,罰款金額3.3 關(guān)系模式規(guī)范化處理根據(jù)F,分析每一個(gè)關(guān)系模式是否滿足3NF,對不滿足3NF的關(guān)系模式要進(jìn)行規(guī)范化處理。 優(yōu)化處理,消除不必要的數(shù)據(jù)冗余3.4 用戶子模式建立根據(jù)需求分析,研究建立滿足不同需求的用戶子模式,子模式表示形式為: 子模式名(屬性列表)3.5 關(guān)系模式邏輯結(jié)構(gòu)定義1.讀者詳細(xì)信息字段名數(shù)據(jù)類型長度約束讀者IDChar 10主鍵,Not null密碼char20Not null姓名char15Not null性別char2男/女,not null類別編號char2外鍵,not null單位char3
9、0null辦證日期dateNot null聯(lián)系方式char20Null 表3-12、 讀者類別詳細(xì)信息字段名數(shù)據(jù)類型長度約束讀者類別編號char2主鍵,01/02讀者類別名char15普通讀者/高級讀者可借閱最大數(shù)目smallint3/6持有最長期限smallint30/60借閱證期限smallint1 表3-23、書籍詳細(xì)信息字段名數(shù)據(jù)類型長度約束圖書IDchar10主鍵ISBNchar20Not null書籍名char30Not null書籍類別Char 10Not null作者char15Not null出版社char30Not null定價(jià)moneyNot null出版日期dateNo
10、t null登記日期dateNot null狀態(tài)bitNot null 表3-34、罰款類別詳細(xì)信息字段名數(shù)據(jù)類型長度約束罰款類別編號char5主鍵罰款類別名char15Not null罰款原因char30Not null罰款金額moneynull 表3-45、借閱詳細(xì)信息字段名數(shù)據(jù)類型長度約束IDint主鍵,自增圖書IDchar10Not null讀者IDchar10Not nullISBNchar20Not null借走日期dateNot null歸還日期datenull應(yīng)還日期dateNot null罰款類別編號char5null處理狀態(tài)bitnull 表3-5第4章 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計(jì)
11、數(shù)據(jù)庫物理設(shè)計(jì):設(shè)計(jì)數(shù)據(jù)庫的物理結(jié)構(gòu),根據(jù)數(shù)據(jù)庫的邏輯結(jié)構(gòu)來選定RDBMS(如Oracle、Sybase等),并設(shè)計(jì)和實(shí)施數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)、存取方式等。數(shù)據(jù)庫物理設(shè)計(jì)是后半段。將一個(gè)給定邏輯結(jié)構(gòu)實(shí)施到具體的環(huán)境中時(shí),邏輯數(shù)據(jù)模型要選取一個(gè)具體的工作環(huán)境,這個(gè)工作環(huán)境提供了數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與存取方法,這個(gè)過程就是數(shù)據(jù)庫的物理設(shè)計(jì)。物理結(jié)構(gòu)依賴于給定的DBMS和和硬件系統(tǒng),因此設(shè)計(jì)人員必須充分了解所用RDBMS的內(nèi)部特征、存儲(chǔ)結(jié)構(gòu)、存取方法。數(shù)據(jù)庫的物理設(shè)計(jì)通常分為兩步,第一,確定數(shù)據(jù)庫的物理結(jié)構(gòu),第二,評價(jià)實(shí)施空間效率和時(shí)間效率確定數(shù)據(jù)庫的物理結(jié)構(gòu)包含下面四方面的內(nèi)容:1、確定數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)2、設(shè)計(jì)
12、數(shù)據(jù)的存取路徑3、確定數(shù)據(jù)的存放位置4、確定系統(tǒng)配置數(shù)據(jù)庫物理設(shè)計(jì)過程中需要對時(shí)間效率、空間效率、維護(hù)代價(jià)和各種用戶要求進(jìn)行權(quán)衡,選擇一個(gè)優(yōu)化方案作為數(shù)據(jù)庫物理結(jié)構(gòu)。在數(shù)據(jù)庫物理設(shè)計(jì)中,最有效的方式是集中地存儲(chǔ)和檢索對象。第5章 數(shù)據(jù)庫實(shí)施與測試5.1 數(shù)據(jù)庫實(shí)施5.1.1數(shù)據(jù)庫及數(shù)據(jù)庫對象建立(1) -建立讀者類別表 create table 讀者類別( 讀者類別編號 char(2) primary key not null check(讀者類別編號 in(01,02), 讀者類別名 char(15) not null check(讀者類別名 in(普通讀者,高級讀者), 可借閱最大數(shù)目 s
13、mallint not null check(可借閱最大數(shù)目 in(3,6), 持有最長期限 smallint not null check(持有最長期限 in(30,60), 借閱證期限 smallint not null check(借閱證期限 in(1)(2) -建立讀者表create table 讀者( 讀者ID char(10) not null primary key, 密碼 char(20) not null, 姓名 char(15) not null, 性別 char(2) not null check(性別 in(男,女), 類別編號 char(2) not null for
14、eign key(類別編號)references 讀者類別(讀者類別編號), 單位 char(30) null, 辦證日期 date not null, 聯(lián)系方式 char(20) null)(3) -建立書籍表create table 書籍( 圖書ID char(10) not null primary key, ISBN char(20) not null, 書籍名 char(30) not null, 書籍類別 char(10) not null, 作者 char(15) not null, 出版社 char(30) not null, 定價(jià) money not null, 出版日期 d
15、ate not null, 登記日期 date not null, 狀態(tài) bit not null)(4) -建立罰款類別表create table 罰款類別( 罰款類別編號 char(5) not null primary key, 罰款類別名 char(15)not null, 罰款原因 char(30)not null, 罰款金額 money null)(5) -建立借閱信息表create table 借閱信息( id int primary key identity(1,1), -id 自增 圖書ID char(10) not null, 讀者ID char(10) not null,
16、 ISBN char(20) not null, 借走日期 date not null, 歸還日期 date null, 應(yīng)還日期 date not null, 罰款類別編號 char(5) null, 處理狀態(tài) bit null foreign key(圖書ID) references 書籍(圖書ID), foreign key(讀者ID) references 讀者(讀者ID), foreign key(罰款類別編號) references 罰款類別(罰款類別編號)5.1.2數(shù)據(jù)存入數(shù)據(jù)庫 讀者信息由存儲(chǔ)過程隨機(jī)產(chǎn)生100條數(shù)據(jù),代碼略 書籍信息由存儲(chǔ)過程隨機(jī)產(chǎn)生100條數(shù)據(jù),代碼略5.1
17、.3自定義函數(shù)-根據(jù)讀者ID判斷讀者證是否過期,判斷依據(jù):將讀者辦證日期加上一年,再和當(dāng)前系統(tǒng)時(shí)間比較alter function check_reader_date(reader_id char(10) returns bitas begin declare reader_register_date date,result bit set reader_register_date=(select 辦證日期 from 讀者 where 讀者ID=reader_id) if(Dateadd(year,1,reader_register_date)CAST(GETDATE() as date) -
18、如果過期,返回bit=0 set result=0 else set result=1 return result end -測試check_reader_date() declare result bit set result=dbo.check_reader_date(1000002) if(result=1) print 沒過期 else print 過期 -判斷讀者已借的書籍?dāng)?shù)量是否超出限制 create function check_reader_books(reader_id char(10) returns bit as begin declare result bit -記錄返
19、回值 declare up_book_num smallint -記錄讀者最高可借的書籍?dāng)?shù)量 declare borrow_num smallint -記錄讀者已借的書籍?dāng)?shù)量 set up_book_num=(select 可借閱最大數(shù)目 from dbo.讀者類別 where 讀者類別編號=(select 類別編號 from dbo.讀者 where 讀者ID=reader_id ) ) set borrow_num=(select count(*) from dbo.借閱信息 where 讀者ID=reader_id and 處理狀態(tài)=0) if(borrow_num0 -如果上面一條語句
20、出錯(cuò),則回滾事物,并返回 begin rollback tran print 執(zhí)行過程中遇到錯(cuò)誤 return 0 end select * from 讀者 where 讀者ID=n -print 增加成功 end-管理員根據(jù)借書證編號查看讀者信息的存儲(chǔ)過程create procedure reader_info reader_no char(10)as begin if(select COUNT(*) from 讀者 where 讀者ID=reader_no)=1) select * from 讀者 where 讀者ID=reader_no else print 沒有該讀者 end-根據(jù)讀者
21、ID刪除讀者的存儲(chǔ)過程create procedure delete_reader reader_no char(10)as begin if(select COUNT(*) from 讀者 where 讀者ID=reader_no)=1) begin delete from 讀者 where 讀者ID=reader_no print 刪除成功 end else print 沒有該讀者 end-管理員刪除讀者證到期的讀者的信息create procedure delet_reader_by_dateas begin declare now_date date set now_date=GETD
22、ATE() delete from 讀者 where Dateadd(year,1,辦證日期)CAST(GETDATE() as date) end-管理員借閱證到期的讀者延長借閱證時(shí)間create procedure alter_reader_register_date reader_id char(10)as begin update 讀者 set 辦證日期=cast(GETDATE() as DATE) where 讀者ID=reader_id print 修改成功 end-書籍信息管理-存儲(chǔ)過程添加一條書籍信息alter procedure add_book ISBN char(20)
23、,book_name char(30),book_kinds char(10), book_author char(15),book_publish char(30),book_price smallint, book_publish_date dateas begin -產(chǎn)生編號 declare book_id char(10),m int,n int set m=(select count(*)from 書籍) set n=100000000+m set book_id=cast(n as char(10) -產(chǎn)生登記日期 declare book_rigste_date date set
24、 book_rigste_date=GETDATE() -產(chǎn)生書籍狀態(tài) declare book_state bit set book_state=1 insert into 書籍 values(book_id,ISBN,book_name,book_kinds,book_author,book_publish,book_price,book_publish_date,book_rigste_date,book_state) select * from 書籍 where 圖書ID=book_id print 插入成功 end -根據(jù)圖示ID刪除一條書籍信息create procedure de
25、lete_book book_id char(10)as begin delete from 書籍 where 圖書ID=book_id end-根據(jù)圖書ISBN查看一條圖書信息create procedure find_book_by_id book_id char(10)as begin select * from 書籍 where 圖書ID=book_id end-根據(jù)圖書名查看圖書信息create procedure find_book_by_name book_name char(30)as begin select * from 書籍 where 書籍名=book_name end
26、-根據(jù)圖書類別查看圖書信息create procedure find_book_by_kinds book_kinds char(10)as begin select * from 書籍 where 書籍類別=book_kinds end-根據(jù)作者查看圖書信息create procedure find_book_by_author book_author char(15)as begin select * from 書籍 where 作者=book_author end-根據(jù)出版社產(chǎn)看圖書信息create procedure find_book_by_publishment book_publ
27、ishment char(30)as begin select * from 書籍 where 出版社=book_publishment end-根據(jù)ISBN查看圖書庫存create procedure find_book_stock_by_ISBN ISBN char(20)as begin select * from dbo.book_stock where ISBN=ISBN end -根據(jù)書籍名查看庫存create procedure find_book_stock_by_name book_name char(30)as begin select * from dbo.book_stock where 書籍名=book_name End-書籍借閱管理-借書管理alter procedure reader_borrow_book reader_id char(10),book_id char(10)as begin declare state bit set s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客服話務(wù)知識(shí)培訓(xùn)課件
- 供貨合同補(bǔ)充協(xié)議
- 交通運(yùn)輸行業(yè)智能化交通規(guī)劃與建設(shè)方案
- 湖北省武漢市2024-2025學(xué)年高一上學(xué)期1月期末地理試題 含解析
- 云南省昭通市昭通一中教研聯(lián)盟2024-2025學(xué)年高一上學(xué)期期中質(zhì)量檢測生物學(xué)B試題(含答案)
- 吉林省長春市榆樹市2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試題(含答案)
- 小學(xué)低年級數(shù)學(xué)故事讀后感
- 會(huì)議記錄表格:會(huì)議記錄臺(tái)賬分類
- 季度采購管理計(jì)劃與工作推進(jìn)安排
- 辦公用品采購與供應(yīng)鏈管理協(xié)議
- 新能源概論新能源及其材料課件
- 化學(xué)化工專業(yè)英語1課件
- 裝配式建筑裝配率計(jì)算評分表
- 1.1北京市基本概況與主要文旅資源《地方導(dǎo)游基礎(chǔ)知識(shí)》(第四版)PPT
- 綜述的寫作方法與技巧課件
- 零售藥店實(shí)施GSP情況的內(nèi)審報(bào)告
- 機(jī)械設(shè)計(jì)基礎(chǔ)網(wǎng)考題庫答案 吉林大學(xué)
- 新蘇教版科學(xué)六年級下冊全冊教案(含反思)
- 觸電事故應(yīng)急處置卡
- 國際貿(mào)易運(yùn)輸方式課件
- 南陽理工學(xué)院畢業(yè)論文格式規(guī)范
評論
0/150
提交評論