《數(shù)據(jù)庫課程設(shè)計(jì)》論文圖書租賃管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
信息工程學(xué)院
《數(shù)據(jù)庫課程設(shè)計(jì)》論文
題 目:圖書租賃管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
學(xué) 號(hào):
專業(yè)班級(jí):
姓 名:
指導(dǎo)老師:
完成日期:
圖書租賃管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
學(xué)生姓名:
摘 要
隨著科學(xué)的發(fā)展,人類知識(shí)的范圍在不斷增長,書籍一直是人們獲取并增長知識(shí)的主要途徑,而各類書店在人們的學(xué)習(xí)生活中也逐漸占據(jù)了重要的位置。擺脫傳統(tǒng)的人工管理方式,實(shí)現(xiàn)科學(xué)、有效地管理書店不僅能提高書店自身的發(fā)展,也能極大的方便各類讀者的需求。因此,開發(fā)一個(gè)完善的圖書租賃管理系統(tǒng)是十分必要的。
本文介紹了在SQL Server2008和ORACLE環(huán)境下,設(shè)計(jì)開發(fā)一個(gè)圖書租賃管理系統(tǒng)的星系過程。本系統(tǒng)采用自頂向下地分析與設(shè)計(jì),自下而上地應(yīng)用開發(fā)的策略,實(shí)現(xiàn)如下功能:對(duì)書籍信息的管理,對(duì)借閱者類別及信息,借書、還書的管理。形成了一個(gè)比較全面系統(tǒng)的管理模式。
關(guān)鍵字:圖書租賃;SQL Sever2008;ORACLE;讀者管理;書籍管理
引言 1
開發(fā)背景 1
開發(fā)目標(biāo)及意義 1
1.需求分析 1
1.1處理對(duì)象及組織 1
1.2信息處理及系統(tǒng)功能 1
1.3數(shù)據(jù)庫系統(tǒng)分析 2
1.3.1數(shù)據(jù)庫性能需求分析 2
1.3.2 數(shù)據(jù)庫系統(tǒng)開發(fā)環(huán)境需求 2
2.?dāng)?shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) 2
2.1 概念設(shè)計(jì) 2
2.1.1 分E-R圖建立 3
2.1.2 全局/整體E-R圖 6
2.2 邏輯設(shè)計(jì) 6
2.2.1 建立關(guān)系模式 7
2.2.2 關(guān)系模式規(guī)范化處理 8
2.2.3 用戶子模式建立 8
2.2.4 關(guān)系模式邏輯結(jié)構(gòu)定義 8
3. 數(shù)據(jù)庫物理設(shè)計(jì) 11
3.1 物理設(shè)計(jì)的內(nèi)容 11
3.2索引的建立 11
4.?dāng)?shù)據(jù)庫實(shí)施與測試 11
4.1 數(shù)據(jù)庫實(shí)施 12
4.1.1 數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象建立 12
4.1.2 數(shù)據(jù)入庫 12
4.2 數(shù)據(jù)庫測試 12
5.總結(jié) 12
6.附錄 13
附錄1 數(shù)據(jù)流程圖 13
附錄2 數(shù)據(jù)字典 17
附錄3 數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象建立 21
3.1 數(shù)據(jù)庫及數(shù)據(jù)表的建立(SQL Server2008) 21
3.2 數(shù)據(jù)庫及數(shù)據(jù)表的建立(Oracle) 23
3.3 數(shù)據(jù)表視圖的建立(SQL Server2008) 25
3.4數(shù)據(jù)表視圖的建立(Oracle) 28
附錄4 觸發(fā)器及存儲(chǔ)過程 30
4.1 存儲(chǔ)過程的定義(SQL Server2008) 30
4.2存儲(chǔ)過程的定義(Oracle) 37
4.3 觸發(fā)器的定義(SQL Server2008) 39
4.4 觸發(fā)器的定義(Oracle) 41
附錄5 數(shù)據(jù)查詢及存儲(chǔ)過程功能驗(yàn)證 43
5.1數(shù)據(jù)查詢及存儲(chǔ)過程運(yùn)行截圖(SQL Server2008) 43
5.2數(shù)據(jù)查詢及存儲(chǔ)過程運(yùn)行截圖(Oracle) 48
參考文獻(xiàn) 52
2009級(jí)信管專業(yè)3班數(shù)據(jù)庫應(yīng)用系統(tǒng)課程設(shè)計(jì)課程論文
引言
開發(fā)背景
隨著科學(xué)的發(fā)展,人類知識(shí)的范圍在不斷增長,書籍一直是人們獲取并增長知識(shí)的主要途徑,而各類書店在人們的學(xué)習(xí)生活中也逐漸占據(jù)了重要的位置。擺脫傳統(tǒng)的人工管理方式,實(shí)現(xiàn)科學(xué)、有效地管理書店不僅能提高書店自身的發(fā)展,也能極大的方便各類讀者的需求。因此,開發(fā)一個(gè)完善的圖書租賃管理系統(tǒng)是十分必要的。
開發(fā)目標(biāo)及意義
該圖書租賃管理系統(tǒng)基于計(jì)算機(jī)技術(shù),實(shí)現(xiàn)查詢、借閱、歸還的操作以及對(duì)收入信息、讀者信息管理和書籍信息管理的功能??梢詽M足中小型書店的租書業(yè)務(wù)的順利有效的進(jìn)行。保證了數(shù)據(jù)的實(shí)時(shí)更新,不僅方便了書店工作人員對(duì)系統(tǒng)的管理,也利于人們更好的借閱書籍,歸還書籍,滿足讀者的不同的需要。
1.需求分析
需求分析就是分析用戶的要求,通過詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改變,不能僅僅按當(dāng)前應(yīng)用需求來設(shè)計(jì)數(shù)據(jù)庫。
1.1處理對(duì)象及組織
系統(tǒng)要處理的對(duì)象包括書籍信息、讀者信息(主要是會(huì)員信息)、借閱信息、歸還信息及收入信息等六個(gè)方面。(各個(gè)對(duì)象包括的詳細(xì)信息見附錄三數(shù)據(jù)字典)
1.2信息處理及系統(tǒng)功能
該圖書租賃管理系統(tǒng)大體上分為四個(gè)部分——書籍信息管理系統(tǒng)、讀者信息管理系統(tǒng),借閱歸還系統(tǒng)和收入管理系統(tǒng)。
書籍信息管理系統(tǒng):實(shí)現(xiàn)書籍信息的更新和查詢;
讀者信息管理系統(tǒng):主要實(shí)現(xiàn)會(huì)員信息的更新,查詢;
借閱歸還系統(tǒng):實(shí)現(xiàn)不同類別讀者的借閱和歸還圖書的管理;
收入管理系統(tǒng):實(shí)現(xiàn)不同情況下書店的收入情況(詳情見附錄一中的數(shù)據(jù)流程圖和數(shù)據(jù)字典)
1.3數(shù)據(jù)庫系統(tǒng)分析
1.3.1數(shù)據(jù)庫性能需求分析
該圖書租賃管理系統(tǒng)可以提供書籍信息的查詢和更新、讀者信息(主要是會(huì)員信息)的查詢和更新、借閱和歸還書籍信息的查詢和更新以及收入情況的查詢和更新。
1.3.2 數(shù)據(jù)庫系統(tǒng)開發(fā)環(huán)境需求
該數(shù)據(jù)庫系統(tǒng)是在SQL Server2008的數(shù)據(jù)庫應(yīng)用軟件環(huán)境下開發(fā)的,用數(shù)據(jù)庫DDL語言定義數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象,用DML語言實(shí)現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)的查詢和更新操作。
2.?dāng)?shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)
主要包括概念設(shè)計(jì)和邏輯設(shè)計(jì)兩個(gè)部分。概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,它通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型;而邏輯結(jié)構(gòu)設(shè)計(jì)是將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。
2.1 概念設(shè)計(jì)
概念設(shè)計(jì)主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型),它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,包括概念模型設(shè)計(jì)和新系統(tǒng)流程兩個(gè)階段。設(shè)計(jì)概念結(jié)構(gòu)通常有四類方法:
自頂向下。即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。
自底向上。即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。
逐步擴(kuò)張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。
混合策略。即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。
2.1.1 分E-R圖建立
根據(jù)某個(gè)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,作為設(shè)計(jì)分E-R圖的出發(fā)點(diǎn),讓這組圖中每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用。先選擇好局部應(yīng)用后,對(duì)每一個(gè)局部應(yīng)用逐一設(shè)計(jì)分E—R圖。將局部應(yīng)用所包含的數(shù)據(jù)從數(shù)據(jù)字典中抽取出來,參照數(shù)據(jù)流圖,標(biāo)定局部應(yīng)用中的實(shí)體、實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼,確定實(shí)體之間的聯(lián)系及其類型。(如圖1到圖3)
圖1 借閱歸還系統(tǒng)分E-R圖
圖2 讀者信息管理系統(tǒng)分E-R圖
圖3書籍信息管理系統(tǒng)分E-R圖
圖4收入信息管理系統(tǒng)分E-R圖
各分E-R圖每個(gè)實(shí)體的屬性如下所示:
收入信息:(Mno,Ddate,Trent,Efine,Bdfine,Lfine,DIncomeSum)
書籍信息:(Bsno,Bname,Bprice,Bwriter,Bsort,Bscount,Bnowcount ,Bnewcount)
系統(tǒng)管理員:( Mno,Mname,Mphno)
會(huì)員信息:( Vno,Vname,Vsex,Vphno ,Vwexpired,Vfee ,Vacount ,Vbcount,Waexit,Vmdate)
2.1.2 全局/整體E-R圖
圖5圖書租賃管理系統(tǒng)總E-R圖
2.2 邏輯設(shè)計(jì)
邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。
邏輯結(jié)構(gòu)設(shè)計(jì)一般要分3步進(jìn)行:
(1) 將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;
(2) 將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定的DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;
(3) 對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。
闡述邏輯設(shè)計(jì)階段目標(biāo)、任務(wù)和方法,重點(diǎn)介紹邏輯設(shè)計(jì)的主要內(nèi)容。
2.2.1 建立關(guān)系模式
將E-R圖向關(guān)系模型的轉(zhuǎn)換一般遵循如下原則:
(1) 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式;
(2) 實(shí)體的屬性就是關(guān)系的屬性;
(3) 實(shí)體的碼就是關(guān)系的碼。
對(duì)于實(shí)體型間的聯(lián)系有以下不同情況:
(1) 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一段對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。
(2) 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并,如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。
(3) 一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成關(guān)系的碼或關(guān)系碼的一部分。
(4) 3各或3個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成關(guān)系的碼或關(guān)系碼的一部分。
(5) 具有下溝通嗎的關(guān)系模式可合并。
關(guān)系模式表示形式為
R(U,F(xiàn))
由E-R圖轉(zhuǎn)換得到的關(guān)系模式如下:
書籍信息(書的店內(nèi)編號(hào),書名,書的定價(jià),書的作者,書的類別,書的總數(shù)量,目前庫存量,新進(jìn)書數(shù)量)
會(huì)員信息(會(huì)員卡編號(hào),會(huì)員姓名, 會(huì)員性別,會(huì)員聯(lián)系電話,會(huì)員費(fèi),會(huì)員允許借書最大量,會(huì)員已借冊(cè)數(shù),會(huì)員到期日期)
會(huì)員借書(書的店內(nèi)編號(hào),會(huì)員卡編號(hào),借出日期, 應(yīng)還日期)
非會(huì)員借書(書的店內(nèi)編號(hào),非會(huì)員聯(lián)系電話,借出日期, 應(yīng)還日期 ,押金)
會(huì)員還書(會(huì)員卡編號(hào),書的店內(nèi)編號(hào),應(yīng)還日期,歸還日期,是否過期, 過期罰款,書受損罰款,書丟失賠償金)
非會(huì)員還書(書的店內(nèi)編號(hào),非會(huì)員聯(lián)系電話,應(yīng)還日期,歸還日期,是否過期,非會(huì)員租金,過期罰款,書受損罰款,書丟失賠償金)
系統(tǒng)管理員(管理員工號(hào),管理員姓名, 管理員聯(lián)系電話)
收入管理(管理員工號(hào),管理日期,非會(huì)員租金,過期罰款,書受損罰款,書丟失賠償金,當(dāng)天收入總計(jì))
2.2.2 關(guān)系模式規(guī)范化處理
根據(jù)關(guān)系規(guī)范化理論,在關(guān)系數(shù)據(jù)庫中,對(duì)關(guān)系模式的基本要求是滿足第一范式。在一范式的基礎(chǔ)上,消除非主屬性對(duì)碼的部分函數(shù)依賴就轉(zhuǎn)換為二范式,在二范式的基礎(chǔ)上再消除非主屬性對(duì)碼的傳遞函數(shù)依賴就轉(zhuǎn)換為三范式。
依次關(guān)系規(guī)范化理論分析,以上由E-R圖轉(zhuǎn)換得到的關(guān)系模式均滿足三范式模式的要求。
2.2.3 用戶子模式建立
根據(jù)需求分析,建立滿足不同需求的用戶子模式,子模式表示形式為如下:
表1 用戶子模式
編號(hào)
視圖名稱
數(shù)據(jù)項(xiàng)
簡介
V-1
Bookinfo
Bname,Bwriter,Bsno,Bnowcount
查詢書籍信息
V-2
VBBinfo
Bsno,Vno,Ldate
查詢非會(huì)員借閱信息
V-3
TRBinfo
Bsno, Tphno,Trent,Tdeposit,Bdfine,Efine
查詢會(huì)員還書信息
V-4
InmanagerInfo
Mname, Mno,Mphno,DIncomeSum,Ddate
查詢進(jìn)行收入管理的系統(tǒng)管理員信息
2.2.4 關(guān)系模式邏輯結(jié)構(gòu)定義
表1 Book
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-1
Bname
書名
varchar
20
DL-2
Bsno
書的店內(nèi)編號(hào)
char
10
000000-111111
DL-3
Bwriter
書的作者
varchar
20
DL-4
Bprice
書的定價(jià)
numeric
10
DL-5
Bsort
書的類別
char
10
DL-6
BScount
書的總數(shù)量
smallint
DL-7
Bnowcount
目前庫存量
smallint
DL-8
Bnewcount
新進(jìn)書的數(shù)量
smallint
表2 Vip
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-10
Vname
會(huì)員姓名
varchar
20
DL-11
Vno
會(huì)員卡編號(hào)
char
10
000-999
DL-12
Vsex
會(huì)員性別
char
10
DL-13
Vphno
會(huì)員聯(lián)系電話
char
15
DL-14
VMdate
會(huì)員到期日期
datetime
DL-15
Vsort
會(huì)員類別
char
10
DL-16
Vwexpired
會(huì)員是否過期
char
2
DL-17
Waexit
是否允許會(huì)員退會(huì)
char
2
DL-18
Vfee
會(huì)員費(fèi)
smallint
DL-19
VBcount
會(huì)員已借冊(cè)數(shù)
smallint
DL-20
VAcount
會(huì)員允許借書最大量
samllint
表3 SystemManager
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-33
Mno
管理員工號(hào)
char
4
DL-35
Mname
管理員姓名
varchar
20
DL-36
Mphno
管理員聯(lián)系電話
char
15
表4 會(huì)員借書
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-2
Bsno
書的店內(nèi)編號(hào)
char
10
000000-111111
DL-11
Vno
會(huì)員卡編號(hào)
char
10
000-999
DL-23
Ldate
借出日期
datetime
DL-25
Rdeadline
應(yīng)還日期
datetime
表5 非會(huì)員借書
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-2
Bsno
書的店內(nèi)編號(hào)
char
10
000000-111111
DL-23
Ldate
借出日期
datetime
DL-25
Rdeadline
應(yīng)還日期
datetime
DL-20
Tphno
非會(huì)員聯(lián)系電話
char
15
DL-21
Tdeposit
非會(huì)員押金
smallint
表6 會(huì)員還書
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-2
Bsno
書的店內(nèi)編號(hào)
char
10
000000-111111
DL-10
Vno
會(huì)員卡編號(hào)
char
10
000-999
DL-19
Wrexpired
是否過期還書
char
2
DL-24
Rdate
歸還日期
datetime
DL-25
Rdeadline
應(yīng)還日期
datetime
DL-26
Efine
過期還書的罰款
numeric
DL-27
Bdfine
由于書籍損壞交的罰款
smallint
DL-28
Lfine
由于丟失而繳納的賠償金
smallint
表7 非會(huì)員還書
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-2
Bsno
書的店內(nèi)編號(hào)
char
10
000000-111111
DL-19
Wrexpired
是否過期還書
char
2
DL-24
Rdate
歸還日期
datetime
DL-25
Rdeadline
應(yīng)還日期
datetime
DL-26
Efine
過期還書的罰款
numeric
DL-27
Bdfine
由于書籍損壞交的罰款
smallint
DL-28
Lfine
由于丟失而繳納的賠償金
smallint
DL-22
Trent
非會(huì)員租金
smallint
表8 收入信息
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-16
Vfee
會(huì)員費(fèi)
smallint
DL-26
Efine
過期還書的罰款
numeric
(10,0)
DL-27
Bdfine
由于書籍損壞交的罰款
smallint
DL-28
Lfine
由于丟失而繳納的賠償金
smallint
DL-22
Trent
非會(huì)員租金
smallint
DL-29
Mno
管理員工號(hào)
char
4
DL-30
Ddate
管理日期
datetime
3. 數(shù)據(jù)庫物理設(shè)計(jì)
數(shù)據(jù)庫在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。
3.1 物理設(shè)計(jì)的內(nèi)容
通常關(guān)系數(shù)據(jù)庫物理設(shè)計(jì)的內(nèi)容主要包括:
1. 為關(guān)系模式選擇存儲(chǔ)方法;
2. 設(shè)計(jì)關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲(chǔ)結(jié)構(gòu)
數(shù)據(jù)庫存儲(chǔ)位置在SQL Server2008默認(rèn)路徑下,采用B+樹索引方法作為數(shù)據(jù)庫的存取方法。
3.2索引的建立
為了提高對(duì)書籍信息的查詢速度,對(duì)書的店內(nèi)編號(hào)建立聚簇索引;對(duì)會(huì)員卡號(hào)建立唯一索引。
4.?dāng)?shù)據(jù)庫實(shí)施與測試
完成數(shù)據(jù)庫的物理設(shè)計(jì)之后,設(shè)計(jì)人員就要用RDBMS提供的數(shù)據(jù)定義語言和其他實(shí)用程序?qū)?shù)據(jù)庫邏輯設(shè)計(jì)和物理設(shè)計(jì)結(jié)果嚴(yán)格描述出來,成為DBMS可以接受的源代碼,再經(jīng)過調(diào)試產(chǎn)生目標(biāo)模式。然后就可以組織數(shù)據(jù)入庫了,這就是數(shù)據(jù)庫實(shí)施階段。該階段主要包括數(shù)據(jù)庫實(shí)施和測試兩個(gè)部分。
4.1 數(shù)據(jù)庫實(shí)施
4.1.1 數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象建立
主要包括:數(shù)據(jù)庫、基本表、視圖、索引、觸發(fā)器以及存儲(chǔ)過程;
對(duì)于具體的DDL語句以及相關(guān)代碼。(詳見附錄3)
4.1.2 數(shù)據(jù)入庫
對(duì)各個(gè)主要數(shù)據(jù)表要錄入20條以上的記錄,方法可用EXCEL批量導(dǎo)入,也可以逐條錄入。
4.2 數(shù)據(jù)庫測試
主要內(nèi)容是對(duì)建立的數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象進(jìn)行測試(詳見附錄5及附錄6)。
5.總結(jié)
在此次數(shù)據(jù)庫實(shí)習(xí)過程中,我開發(fā)的是一個(gè)圖書租賃管理系統(tǒng)。當(dāng)初最終選擇這個(gè)題目的原因是多方面的,主要的有一點(diǎn)就是我以前有過類似的經(jīng)歷,所以覺得可能能設(shè)計(jì)出更合理的同時(shí)又符合設(shè)計(jì)要求的數(shù)據(jù)庫系統(tǒng)。而萬事開頭難,在需求分析環(huán)節(jié)主要考慮了圖書租賃模式中最主要的三個(gè)流水業(yè)務(wù):書籍管理、借閱歸還圖書業(yè)務(wù)和讀者信息管理業(yè)務(wù)。就整個(gè)系統(tǒng)的完成情況來看,在需求分析階段設(shè)計(jì)的各個(gè)查詢和更新操作均已通過存儲(chǔ)過程和觸發(fā)器實(shí)現(xiàn)。對(duì)該系統(tǒng)中的各個(gè)功能實(shí)現(xiàn)分為SQL實(shí)現(xiàn)和Oracle實(shí)現(xiàn),其中,在SQL下,由于對(duì)于環(huán)境和語法結(jié)構(gòu)比較熟悉,因此編寫觸發(fā)器和存儲(chǔ)過程還算比較順利。然而在Oracle下,剛開始簡直寸步難行,Oracle的語法結(jié)構(gòu)和SQL幾乎完全不同,除了數(shù)據(jù)表的建立較為簡單,在Oracle中寫存儲(chǔ)過程和觸發(fā)器給我留下了很深的印象,特別是在調(diào)試的過程中出現(xiàn)了很多讓我匪夷所思的錯(cuò)誤,最后在老師和同學(xué)的幫助下算是基本上解決了。
通過此次數(shù)據(jù)庫實(shí)習(xí),首先使我充分了解了開發(fā)數(shù)據(jù)庫系統(tǒng)的基本流程,在各個(gè)環(huán)節(jié)的基本任務(wù)和基本方法,與此同時(shí),我也體會(huì)到了在開發(fā)數(shù)據(jù)庫系統(tǒng)的過程中,要養(yǎng)成書寫文檔的好習(xí)慣,隨時(shí)記錄項(xiàng)目開發(fā)的進(jìn)度和內(nèi)容,以便督促我們?cè)谝?guī)定的時(shí)間內(nèi)完成規(guī)定的任務(wù)。除此之外,通過在不同的環(huán)境下編寫存儲(chǔ)過程和觸發(fā)器,使我對(duì)這兩者有了更深入的理解,能夠用基本的查詢和判斷來實(shí)現(xiàn)復(fù)雜的功能,特別是SQl和Oracle中內(nèi)置函數(shù)的調(diào)用。但是,在實(shí)習(xí)的過程中,不可避免的出現(xiàn)了很多錯(cuò)誤,特別是需求分析階段所做的數(shù)據(jù)流圖、數(shù)據(jù)字典等,它們既是整個(gè)數(shù)據(jù)庫開發(fā)的基礎(chǔ),也為后面實(shí)施各種結(jié)構(gòu)設(shè)計(jì)提供參考,好多錯(cuò)誤都是在進(jìn)行到后面的結(jié)構(gòu)設(shè)計(jì)時(shí)發(fā)現(xiàn)后又要返回重新定義需求分析。
我覺得這次最大的收獲除了知識(shí)的掌握和能力得到培養(yǎng)鍛煉之外,懂得了一個(gè)道理,凡事細(xì)節(jié)決定了事情的成敗,因?yàn)橐粋€(gè)小小的錯(cuò)誤卻可能導(dǎo)致其他的問題需要重頭來過。還有就是要抱著一顆虛心學(xué)習(xí)的心,對(duì)于不懂的問題要及時(shí)與老師和同學(xué)溝通,才能更好的促進(jìn)學(xué)習(xí)。在這樣學(xué)習(xí)的過程中,老師們總是耐心的為我們答疑解惑,非常感謝老師們。尤其是宋老師,從來都那么有耐心,無論我們的問題在老師看來是多么的簡單,她都從來是耐心的為我們一一解答,謝謝宋老師。
6.附錄
附錄1 數(shù)據(jù)流程圖
圖1 頂層數(shù)據(jù)流程圖
表2 第一層數(shù)據(jù)流程圖
表3 第二層數(shù)據(jù)流程圖——書籍管理
表4 第二層數(shù)據(jù)流程圖——讀者信息管理
表5 第二層數(shù)據(jù)流程圖——圖書借閱
表6 第二層數(shù)據(jù)流程圖——圖書歸還
附錄2 數(shù)據(jù)字典
表1 數(shù)據(jù)項(xiàng)列表
編號(hào)
名稱
含義
類型
長度
取值范圍
DL-1
Bname
書名
varchar
20
DL-2
Bsno
書的店內(nèi)編號(hào)
char
10
000000-111111
DL-3
Bwriter
書的作者
varchar
20
DL-4
Bprice
書的定價(jià)
numeric
10
DL-5
Bsort
書的類別
char
10
DL-6
BScount
書的總數(shù)量
smallint
DL-7
Bnowcount
目前庫存量
smallint
DL-8
Bnewcount
新進(jìn)書的數(shù)量
smallint
DL-9
Vname
會(huì)員姓名
varchar
20
DL-10
Vno
會(huì)員卡編號(hào)
char
10
000-999
DL-11
Vsex
會(huì)員性別
char
10
DL-12
Vphno
會(huì)員聯(lián)系電話
char
15
DL-13
VMdate
會(huì)員到期日期
datetime
DL-14
Vwexpired
會(huì)員是否過期
char
2
DL-15
Waexit
是否允許會(huì)員退會(huì)
char
2
DL-16
Vfee
會(huì)員費(fèi)
smallint
DL-17
VBcount
會(huì)員已借冊(cè)數(shù)
smallint
DL-18
VAcount
會(huì)員允許借書最大量
samllint
DL-19
Wrexpired
是否過期還書
char
2
DL-20
Tphno
非會(huì)員聯(lián)系電話
char
15
DL-21
Tdeposit
非會(huì)員押金
smallint
DL-22
Trent
非會(huì)員租金
smallint
DL-23
Ldate
借出日期
datetime
DL-24
Rdate
歸還日期
datetime
DL-25
Rdeadline
應(yīng)還日期
datetime
DL-26
Efine
過期還書的罰款
numeric
DL-27
Bdfine
由于書籍損壞交的罰款
smallint
DL-28
Lfine
由于丟失而繳納的賠償金
smallint
DL-29
Mno
管理員工號(hào)
char
4
DL-30
Ddate
管理日期
datetime
DL-31
Mname
管理員姓名
varchar
20
DL-32
Mphno
管理員聯(lián)系電話
char
15
表2 數(shù)據(jù)結(jié)構(gòu)列表
編號(hào)
名稱
含義
組成
DS-1
IBookRecord
進(jìn)書記錄
書的店內(nèi)編號(hào),書名,書的作者
DS-2
Reader
讀者
讀者類別,非會(huì)員聯(lián)系電話,會(huì)員聯(lián)系電話,會(huì)員編號(hào)
DS-3
SystemManager
系統(tǒng)管理員
管理員號(hào),值班日期,聯(lián)系電話
表3 處理邏輯的描述
19
編號(hào)
名稱
簡述
輸入的數(shù)據(jù)流
處理
輸出的數(shù)據(jù)流
P1.1
抽取書籍編號(hào)
將外來的書籍進(jìn)行分類,若有店內(nèi)編號(hào)則為還回的書,否則是新進(jìn)書
書號(hào)
在書號(hào)—書的店內(nèi)編號(hào)表中查找所給書號(hào)的店內(nèi)編號(hào)
書的店內(nèi)編號(hào)
P1.2
登記入庫
將還回的書放回書籍流水
找到書的店內(nèi)編號(hào)的書號(hào)
將找到書籍編號(hào)的書的信息放回書庫
書籍信息,S2借閱流水
P1.3
創(chuàng)建店內(nèi)編號(hào)
根據(jù)將要被編號(hào)的書籍的書的編號(hào)和書的類別賦予新的店內(nèi)編號(hào)
沒有找到書的店內(nèi)編號(hào)的書號(hào)
為其創(chuàng)建店內(nèi)編號(hào)
新書的店內(nèi)編號(hào),S2借閱流水,S1書店臺(tái)賬
P2.1
檢查書的狀況
管理員根據(jù)讀者的將還的書的情況,以及是否過期,來決定是否需要罰款,然后進(jìn)行更新借書記錄
讀者即將還書的書的店內(nèi)編號(hào)
檢查是否需要罰款
罰款單,將還書的書目
P2.2
讀者分類
將書籍按照會(huì)員和非會(huì)員所借來卻分,從而進(jìn)行不同的還書操作。
讀者信息
分類
會(huì)員借書記錄,和非會(huì)員借書記錄
P2.3
會(huì)員還書
會(huì)員還書時(shí),只需消除該條借書記錄,同時(shí)更新該書在書庫的信息
會(huì)員所借書的店內(nèi)編號(hào)
消除該條借書記錄,并更新該書的書庫信息
書的信息,S2借閱流水
P2.4
非會(huì)員還書
非會(huì)員還書時(shí),除了消除該書的借閱記錄,還需要收取租金,退回其押金。
非會(huì)員所借書的店內(nèi)編號(hào)
消除該條借書記錄,并更新該書的書庫信息。同時(shí),收取租金,和返回讀者的押金。
書的信息,租金,S2借閱流水
P3.1
分類
根據(jù)系統(tǒng)管理員提供的借書記錄,進(jìn)行分類得到會(huì)員借書登記表和非會(huì)員借書登記表
借書登記
根據(jù)是否有會(huì)員卡編號(hào),將借書記錄分為會(huì)員的和非會(huì)員的
會(huì)員借書記錄,和非會(huì)員借書記錄
P3.2
查詢會(huì)員
根據(jù)得到的會(huì)員借書登記表查詢會(huì)員,從而得到會(huì)員借書信息
會(huì)員借書登記表
根據(jù)會(huì)員卡編號(hào)查詢相應(yīng)的會(huì)員借書信息
某個(gè)會(huì)員的借書信息
P3.3
判斷權(quán)限
根據(jù)某個(gè)會(huì)員的借書信息,根據(jù)會(huì)員類別,已借冊(cè)數(shù)決定是否還有權(quán)限再借,還可再借幾本
某個(gè)會(huì)員借書信息
判斷權(quán)限
還可再借閱的冊(cè)數(shù)
P3.4
允許借書
從上一步完了之后得到的還可再借閱的冊(cè)數(shù)進(jìn)行借書登記
還可再借閱的冊(cè)數(shù),借閱書的店內(nèi)編號(hào)
進(jìn)行借閱登記
會(huì)員借書信息,S2借閱流水,S1書店臺(tái)賬
P3.5
非會(huì)員借書
根據(jù)得到的非會(huì)員借書登記表,對(duì)非會(huì)員借書進(jìn)行登記
非會(huì)員借書登記表
登記非會(huì)員的借書信息
非會(huì)員的借書信息,S2借閱流水,S1書店臺(tái)賬
P3.6
會(huì)員還書
經(jīng)過權(quán)限判斷之后,如果會(huì)員想要再借,需要先將之前借的書還回,所以要進(jìn)行會(huì)員還書的操作
未還回的書目
進(jìn)行還書登記
還回書的信息,S2借閱流水,S1書店臺(tái)賬
P4.1
查找
通過系統(tǒng)管理員提供的讀者信息,查找得到有借閱記錄的讀者信息,從而得到欲借書的非會(huì)員讀者的信息
讀者信息
按照是否有借閱歷史來得到有借閱記錄的讀者信息
有借閱記錄的讀者信息
P4.2
判斷是否是會(huì)員
根據(jù)給出的有借閱記錄的讀者信息中,根據(jù)是否有會(huì)員卡編號(hào)來判斷是否是會(huì)員
有借閱記錄的讀者信息
判斷是否是會(huì)員
會(huì)員信息
P4.3
查看借書記錄
根據(jù)所得的會(huì)員借書記錄,得到所借書目均已還回的會(huì)員的名單,和超出期限的會(huì)員的名單
會(huì)員借書記錄
根據(jù)會(huì)員類別所決定的最大借書量,和已借冊(cè)數(shù)的大小關(guān)系,判斷得到所借書目均已還回的會(huì)員名單;根據(jù)會(huì)員到期日期,得到超出期限的會(huì)員名單
所借書目均已還回的會(huì)員名單,超出期限的會(huì)員名單
P4.4
刪除會(huì)員
將超出期限的會(huì)員和允許退回的會(huì)員的會(huì)員信息從會(huì)員信息表中刪除
超出期限的會(huì)員信息,將要退會(huì)的會(huì)員的會(huì)員信息
將所輸入的可以退出的會(huì)員信息從會(huì)員信息表中刪除
刪除相應(yīng)會(huì)員信息后的會(huì)員信息,S3會(huì)員流水
P4.5
決定是否成為會(huì)員
讀者根據(jù)自己想要借書的情況,比如由于時(shí)間等的考慮,決定是否成為會(huì)員
欲借書的非會(huì)員讀者信息
讀者做選擇
選擇入會(huì)的讀者的信息
P4.6
獲取會(huì)員號(hào)
記錄將入會(huì)的讀者的信息,同時(shí)賦予其 會(huì)員卡編號(hào),同時(shí)選擇會(huì)員類別等
入會(huì)者的信息
賦予其會(huì)員卡編號(hào),選擇會(huì)員類別
新會(huì)員的信息
P4.7
更新會(huì)員信息
將新入會(huì)的讀者的信息作為會(huì)員信息記錄記入會(huì)員信息表中
新會(huì)員的信息
更新會(huì)員信息表
添加會(huì)員后的會(huì)員信息,S3會(huì)員流水
2009級(jí)信管專業(yè)3班數(shù)據(jù)庫應(yīng)用系統(tǒng)課程設(shè)計(jì)課程論文
附錄3 數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象建立
3.1 數(shù)據(jù)庫及數(shù)據(jù)表的建立(SQL Server2008)
create database BBS
create table Book(
Bsno char(15) primary key,
Bname varchar (30)not null,
Bprice numeric (10)not null,
Bwriter varchar (20)unique,
Bsort char (10)not null,
BScount smallint not null,
BNowcount smallint ,
BNewcount smallint)
create table Vip(
Vno char (10) primary key,
Vname varchar (20)unique,
Vsex char (5)check(vsex=男or vsex=女),
Vphno varchar(11)not null,
Vwexpired char (2)check(vwexpired=是or vwexpired=否),
Vfee smallint,
VAcount smallint,
VBcount smallint,
Waexit char (10)check(waexit=允許or waexit=不允許),
VMdate datetime
)
create table VBorrowBook(
Bsno char(15)primary key,
Vno char(10),
Ldate datetime,
Rdeadline datetime,
foreign key(Vno)references Vip(Vno),
foreign key(Bsno)references Book(Bsno))
create table TBorrowBook(
Bsno char(15),
Tphno char(15),
Ldate datetime,
ReadLine datetime,
Tdeposit smallint,
primary key (Bsno,Tphno),
foreign key(Bsno)references Book(Bsno))
create table VReturnBook(
Vno char(10),
Bsno char(15),
Rdeadline datetime,
Rdate datetime,
Wrexpired char(2),
Bdfine smallmoney,
Lfine smallmoney,
Efine smallmoney,
primary key(Bsno,Vno),
foreign key(Vno)references Vip(Vno),
foreign key(Bsno)references Book(Bsno))
create table TReturnBook(
Bsno char(15),
Tphno char(15),
Readline datetime,
Rdate datetime,
Wrexpired char(2),
Trent smallint,
Efine smallint,
Bdfine smallint,
Lfine smallint,
primary key(Bsno,Tphno),
foreign key(Bsno)references Book(Bsno)
)
create table SystemManager(
Mno char(4)primary key,
Mname varchar(20),
Mphno char(15)not null)
create table Income(
Mno char(4) primary key,
Ddate datetime,
Trent smallint,
Efine smallint,
Bdfine smallint,
Lfine smallint,
Vfee smallint,
DIncomeSum smallint,
foreign key(Mno)references SystemManager(Mno))
3.2 數(shù)據(jù)庫及數(shù)據(jù)表的建立(Oracle)
create database BBS
create table Book(
Bsno char(15) primary key,
Bname varchar (30)not null,
Bprice numeric (10)not null,
Bwriter varchar (20)unique,
Bsort char (10)not null,
BScount smallint not null,
BNowcount smallint ,
BNewcount smallint)
create table Vip(
Vno char (10) primary key,
Vname varchar (20)unique,
Vsex varchar (5)check(vsex=男or vsex=女),
Vphno varchar(11)not null,
Vwexpired varchar (2)check(vwexpired=是or vwexpired=否),
Vfee smallint,
VAcount smallint,
VBcount smallint,
Waexit varchar (10)check(waexit=允許or waexit=不允許),
VMdate date )
create table VBorrowBook(
Bsno varchar(15)primary key,
Vno varchar(10),
Ldate date,
Rdeadline date,
foreign key(Vno)references Vip(Vno),
foreign key(Bsno)references Book(Bsno))
create table TBorrowBook(
Bsno varchar(15),
Tphno varchar(15),
Ldate date,
ReadLine date,
Tdeposit smallint,
primary key (Bsno,Tphno),
foreign key(Bsno)references Book(Bsno))
create table VReturnBook(
Vno varchar(10),
Bsno varchar(15),
Rdeadline date,
Rdate date,
Wrexpired varchar(2),
Bdfine number,
Lfine number,
Efine number,
primary key(Bsno,Vno),
foreign key(Vno)references Vip(Vno),
foreign key(Bsno)references Book(Bsno))
create table TReturnBook(
Bsno char(15),
Tphno char(15),
Readline date,
Rdate date,
Wrexpired char(2),
Trent smallint,
Efine smallint,
Bdfine smallint,
Lfine smallint,
primary key(Bsno,Tphno),
foreign key(Bsno)references Book(Bsno))
create table SystemManager(
Mno char(4)primary key,
Mname varchar(20),
Mphno char(15)not null)
create table Income(
Mno char(4) primary key,
Ddate datet,
Trent smallint,
Efine smallint,
Bdfine smallint,
Lfine smallint,
Vfee smallint,
DIncomeSum smallint,
foreign key(Mno)references SystemManager(Mno))
3.3 數(shù)據(jù)表視圖的建立(SQL Server2008)
1. 查詢會(huì)員所借書的信息表
create view VBBinfo
as
select Book.Bsno,Vno,Bwriter,Bname
FROM Book,VBorrowBook
where Book.Bsno=VBorrowBook.Bsno
2.查詢非會(huì)員所借書的信息表
create view TBBinfo
as
select Book.Bsno,Tphno
from Book,TBorrowBook
where Book.Bsno=TBorrowBook.Bsno
3.查詢進(jìn)行收入管理的系統(tǒng)管理員的信息
create view InmanagerInfo
as
select Mname,SystemManager.Mno,Mphno,DIncomeSum,Ddate
from SystemManager,Income
where SystemManager.Mno=Income.Mno
3.4數(shù)據(jù)表視圖的建立(Oracle)
1.查詢會(huì)員所借書的信息表
create view VBBinfo
as
select Book.Bsno,Vno,Bwriter,Bname
FROM Book,VBorrowBook
where Book.Bsno=VBorrowBook.Bsno
2.查詢非會(huì)員所借書的信息表
create view TBBinfo
as
select Book.Bsno,Tphno
from Book,TBorrowBook
where Book.Bsno=TBorrowBook.Bsno
3.查詢進(jìn)行收入管理的系統(tǒng)管理員的信息
create view InmanagerInfo
as
select Mname,SystemManager.Mno,Mphno,DIncomeSum,Ddate
from SystemManager,Income
where SystemManager.Mno=Income.Mno
附錄4 觸發(fā)器及存儲(chǔ)過程
4.1 存儲(chǔ)過程的定義(SQL Server2008)
1.P1_Book_Insert
create procedure P1_Book_Insert
@Bsno char(15) ,
@Bname char (30),
@Bprice numeric (10),
@Bwriter char (20),
@Bsort char (10),
@BScount smallint,
@BNowcount smallint ,
@BNewcount smallint
as
insert into Book
values(@Bsno,@Bname,@Bprice,@Bwriter,
@Bsort,@Bscount,@Bnowcount,@Bnewcount);
2.P2_Vip_Insert
create procedure P2_Vip_Insert
@Vno char (10) ,
@Vname varchar (20),
@Vsex char (5),
@Vphno varchar(11),
@Vwexpired char (2),
@Vfee smallint,
@VAcount smallint,
@VBcount smallint,
@Waexit char (10),
@VMdate datetime
as
insert into Vip
values(@Vno,@Vname,@Vsex,@Vphno,@Vwexpired,@vfee,
@Vacount,@Vbcount,@Waexit,@Vmdate);
3.P3_SystemManager_Insert
create procedure P3_SystemManager_Insert
@Mno char(4),
@Mname varchar(20),
@Mphno char(15)
as
insert into SystemManager
values(@Mno,@Mname,@Mphno)
4.P4_Income_Insert
create procedure P4_Income_Insert
@Mno char(4),
@Ddate datetime,
@Trent smallint,
@Efine smallint,
@Bdfine smallint,
@Lfine smallint,
@Vfee smallint,
@DIncomeSum smallint
as
insert into Income
values(@Mno,@Ddate,@Trent,@Efine,@Bdfine,@Lfine,@Vfee,@DIncomeSum)
5.P5_VBorrowBook_Insert
create procedure P5_VBorrowBook_Insert
@Bsno char(15),
@Vno char(10),
@Ldate datetime,
@Rdeadline datetime
as
insert into VBorrowBook
values(@Bsno,@Vno,@Ldate,@Rdeadline)
6.P6_VReturnBook_Insert
create procedure P6_VReturnBook_Insert
@Vno char(10),
@Bsno char(15),
@Rdeadline datetime,
@Rdate datetime,
@Wrexpired char(2),
@Bdfine smallmoney,
@Lfine smallmoney,
@Efine smallmoney
as
insert into VReturnBook
values(@Vno,@Bsno,@Rdeadline,@Rdate,@Wrexpired,@Efine,@Bdfine,@Lfine)
7.P7_TBorrowBook_Insert
create procedure P7_TBorrowBook_Insert
@Bsno char(15),
@Tphno char(15),
@Ldate datetime,
@ReadLine datetime,
@Tdeposit smallint
as
insert into TBorrowBook
values(@Bsno,@Tphno,@Ldate,@Readline,@Tdeposit)
8.P8_TReturnBook_Insert
create procedure P8_TReturnBook_Insert
@Bsno char(15),
@Tphno char(15),
@Readline datetime,
@Rdate datetime,
@Wrexpired char(2),
@Trent smallint,
@Efine smallint,
@Bdfine smallint,
@Lfine smallint
as
insert into TReturnBook
values(@Bsno,@Tphno,@Readline,@Rdate,@Wrexpired,
@Trent,@Efine,@Bdfine,@Lfine)
9.P9_Book_Delete
create procedure P9_Book_Delete
@Bname char(30)
as
delete
from Book
where Bname=RTRIM(LTRIM(@Bname));
10.P10_SystemManager_Delete
create procedure P10_SystemManager_Delete
@Mno char(4)
as
delete
from SystemManager
where Mno=RTRIM(LTRIM(@Mno));
11.P11_Vip_Delete
create procedure P11_Vip_Delete
@Vno char(10)
as
delete
from Vip
where Vno=RTRIM(LTRIM(@Vno));
12.當(dāng)某本書的信息被刪除時(shí),其對(duì)應(yīng)的借閱信息也刪除
create procedure P1_del_borrow
@Bname char(15)
as
delete from Book
where Bname=@Bname
13.查詢書籍信息,如果書庫中還有該書可借,進(jìn)行借閱,否則,出提示信息。
create procedure book_canborrow
@Bname varchar(30)
as
declare
@Bscount smallint,
@Bnowcount smallint,
@Bprice numeric(10,0),
@Bsno char(15),
@Vno char(10),
@Ldate datetime,
@Readline datetime,
@Tdeposit smallint,
@Tphno char(15)
/*從Book表中選出書的總量*