范文:高校教材管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第1頁
范文:高校教材管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第2頁
范文:高校教材管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第3頁
范文:高校教材管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第4頁
范文:高校教材管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

高校教材管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目:高校教材管理系統(tǒng)課程設(shè)計(jì)任務(wù)書一、課程設(shè)計(jì)題目:高校教材管理系統(tǒng)二、課程設(shè)計(jì)應(yīng)解決的主要問題:(1)實(shí)現(xiàn)出版社、教材類型等的管理(2)實(shí)現(xiàn)教材的訂購(gòu)管理(3)實(shí)現(xiàn)教材的入庫(kù)管理(4)實(shí)現(xiàn)教材的領(lǐng)用管理(5)創(chuàng)建規(guī)則實(shí)現(xiàn)教材的書號(hào)必須滿足意ISBN開頭,后跟10個(gè)數(shù)字的格式,比如:ISBN7302120363(6)創(chuàng)建觸發(fā)器,實(shí)現(xiàn)教材入庫(kù)和出庫(kù)時(shí)自動(dòng)修改庫(kù)存數(shù)量 (7)創(chuàng)建存儲(chǔ)過程統(tǒng)計(jì)各種教材的訂購(gòu)、到貨和發(fā)放數(shù)量;建立數(shù)據(jù)庫(kù)相關(guān)表之間的參照完整性約束目錄1概述 52需求分析 52.1數(shù)據(jù)的分析 52.2數(shù)據(jù)處理的分析 62.3安全性分析 62.4完整性分析 83概念結(jié)構(gòu)設(shè)計(jì) 83.1高校教材系統(tǒng)的數(shù)據(jù)流圖 93.2數(shù)據(jù)字典 93.3E-R圖 104邏輯結(jié)構(gòu)設(shè)計(jì) 134.1實(shí)體間聯(lián)系的不同情況 134.2將E-R圖轉(zhuǎn)換成關(guān)系模式 144.3關(guān)系模式的分析 144.4數(shù)據(jù)庫(kù)關(guān)系圖 145物理結(jié)構(gòu)設(shè)

計(jì) 145.1設(shè)計(jì)存儲(chǔ)過程 145.2設(shè)計(jì)索引 156數(shù)據(jù)庫(kù)實(shí)施 156.1權(quán)限設(shè)置 156.2數(shù)據(jù)輸入 166.2.1創(chuàng)建數(shù)據(jù)庫(kù) 166.2.2創(chuàng)建數(shù)據(jù)表并插入數(shù)據(jù) 176.2.3創(chuàng)建視圖 186.2.4數(shù)據(jù)表的操縱語句 196.3程序設(shè)計(jì)與調(diào)試 196.3.1設(shè)計(jì)索引 196.3.2數(shù)據(jù)查詢操作 206.3.3使用控制流語句編寫程序 226.3.4編寫自定義函數(shù)及調(diào)用 236.3.5編寫存儲(chǔ)過程及調(diào)用 246.3.6編寫觸發(fā)器 256.3.7設(shè)計(jì)游標(biāo)及其使用 267結(jié)束語 278參考文獻(xiàn) 281.概述1.1項(xiàng)目背景在高速發(fā)展的當(dāng)今信息社會(huì),越來越多的工作都已經(jīng)將計(jì)算機(jī)引入了其中,并且成為了其中不可或缺的一個(gè)重要部分。利用計(jì)算機(jī)進(jìn)行各項(xiàng)管理與協(xié)調(diào),將能大大的提高工作的效率,減小工作強(qiáng)度;在相同的工作強(qiáng)度情況下,利用計(jì)算機(jī)進(jìn)行工作,能比原來的老式工作方式提高數(shù)倍乃至數(shù)十倍的工作的效率,可以大大的減少各項(xiàng)人力及物資損耗,從而使得能夠?qū)⒍嘤嗟娜肆巴度氲礁枰牡胤饺ァ8咝9芾懋?dāng)然也不例外,所以教材管理的計(jì)算機(jī)化已刻不容緩。教材管理對(duì)于各個(gè)學(xué)校而言,都是一項(xiàng)很復(fù)雜、煩瑣的工作,是高校教務(wù)管理中的一個(gè)重要環(huán)節(jié),由于大學(xué)專業(yè)設(shè)置門類多,各專業(yè)每期開設(shè)課程的種類多,其業(yè)務(wù)不僅涉及出版部門,而且要面對(duì)全校各系的授課教師,各班級(jí)的學(xué)生,教材科要管理的入出庫(kù)教材種類非常多,涉及到的人員廣,工作量大,再者是近些年來,我國(guó)高等教育規(guī)模不斷擴(kuò)大,學(xué)校學(xué)生人數(shù)迅速增加,

使得教材管理工作更加繁重不堪。所以,一套好的高校教材管理軟件,不但能夠大大降低工作人員的勞動(dòng)強(qiáng)度,而且還能提高學(xué)校的管理效率和教學(xué)水平。學(xué)校教材管理主要是由教材計(jì)劃制定、采購(gòu)、入庫(kù)、發(fā)放、記賬、結(jié)算等一系列工作所組成,該工作各院校都有專門機(jī)構(gòu)負(fù)責(zé)該項(xiàng)工作,通常是教材科。由于學(xué)校中專業(yè)設(shè)置門類多,各專業(yè)每期開設(shè)課程種類多,各個(gè)專業(yè)需要訂購(gòu)的課本也不一樣,在每學(xué)期開學(xué)的時(shí)候教材的發(fā)放便成為了一個(gè)繁重的任務(wù)。每期教材科管理的入出庫(kù)教材種類少則幾百多則幾千種,涉及教材冊(cè)數(shù)少則幾千多則幾萬,涉及人員廣,工作量大,再者特別是近年來,我國(guó)高等教育規(guī)模的不斷擴(kuò)大,學(xué)校學(xué)生人數(shù)迅速增加,使教材管理工作更加繁重不堪。據(jù)調(diào)查,到目前為止,我國(guó)還有許多學(xué)校甚至是一些重點(diǎn)院校的教材管理仍為手工管理方式,這種現(xiàn)狀不但與現(xiàn)實(shí)學(xué)校教材管理的業(yè)務(wù)需求不相適應(yīng),并且也與學(xué)校信息化建設(shè)的發(fā)展趨勢(shì)不相適應(yīng),因此,學(xué)校教材管理人員目前迫切需要一套方便、高效的計(jì)算機(jī)化的管理信息系統(tǒng)來代替他們繁瑣、低效的傳統(tǒng)手工管理方式,并最終實(shí)現(xiàn)教材管理的全面自動(dòng)化。因此,教材管理水平的高低直接影響教學(xué)工作的進(jìn)行、教學(xué)質(zhì)量的提高和合格人才的培養(yǎng),開發(fā)和使用高校教材管理信息系統(tǒng)是改善和提高教材管理水平的一個(gè)重要途徑。1.2編寫目的本課題旨在解決我校和其他高校教材管理工作還是依靠教材管理人員的手工管理的現(xiàn)狀,并且在現(xiàn)有基礎(chǔ)上考慮了如何完善和解決現(xiàn)有的兩層結(jié)構(gòu)的C/S(客戶端/服務(wù)器)教材系統(tǒng)本身所固有的缺陷,把兩層結(jié)構(gòu)中服務(wù)器部分和客戶端部分的應(yīng)用單獨(dú)劃分出來,從而滿足大型系統(tǒng)的需求。通過本系統(tǒng)不僅可以方便教材管理人員管理教材,還可以方便教務(wù)部門和廣大師生查詢教材和查看教材管理記錄,使教材信息管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而達(dá)到提高教材管理效率的目的。1.3軟件定義人員訂書、領(lǐng)書、查詢教材資料及其書款情況必須在管理員的設(shè)置條件下進(jìn)行。1.4開發(fā)環(huán)境本系統(tǒng)使用SQLServer2008Express數(shù)據(jù)庫(kù)作為后臺(tái)的數(shù)據(jù)管理系統(tǒng),利用ADO數(shù)據(jù)庫(kù)組件連接后臺(tái)數(shù)據(jù)庫(kù)。開發(fā)采用的是C#,它是由Microsoft公司開發(fā)的Windows程序開發(fā)環(huán)境,是現(xiàn)在最受歡迎的幾種開發(fā)工具之一.2.需求分析2.1數(shù)據(jù)的分析教材管理系統(tǒng)主要提供學(xué)生以班級(jí)為單位能從學(xué)校教材管理中心完成每學(xué)期領(lǐng)到所訂教材的功能,其中包括班級(jí)信息、教材管理員信息、財(cái)務(wù)室

信息、教師信息、教材信息、出版社信息。此系統(tǒng)可以讓教師增加、刪除和修改某一學(xué)期所定的教材信息,教材管理員可以依據(jù)教師提供的應(yīng)訂教材要求和出版社聯(lián)系訂書,還可以讓出版社增加、刪除和修改預(yù)定教材的信息。如果信息無誤,財(cái)務(wù)室根據(jù)學(xué)生交的教材費(fèi)給教材管理員撥款,訂書成功后,開學(xué)初可以將所定教材成功發(fā)放給學(xué)生所在班級(jí)。2.2數(shù)據(jù)處理的分析系統(tǒng)實(shí)現(xiàn)功能描述一一本系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能如下:(1)系統(tǒng)管理模塊:首先是對(duì)本系統(tǒng)的操作用戶設(shè)置權(quán)限以及用戶基本信息的添加、修改、刪除其次是設(shè)置有系統(tǒng)初始化,能夠在系統(tǒng)出現(xiàn)問題或者有大量錯(cuò)誤、冗余數(shù)據(jù)時(shí)進(jìn)行初始化設(shè)置,使系統(tǒng)恢復(fù)期初始狀態(tài);(2) 書費(fèi)管理局模塊:財(cái)務(wù)科根據(jù)學(xué)生訂書情況和教材費(fèi)用收繳學(xué)生訂書費(fèi)用,并記錄相應(yīng)的數(shù)據(jù);(3) 教材出入庫(kù)模塊:教材科根據(jù)學(xué)生訂書數(shù)量和教材基本信息想學(xué)生發(fā)放教材的出庫(kù)管理和向書商下達(dá)供書訂單并打印教材報(bào)表,便于用戶直接查看,實(shí)現(xiàn)出版社、教材類型等的管理并實(shí)現(xiàn)教材的訂購(gòu)、入庫(kù)和領(lǐng)用管理;(4) 綜合查詢模塊:根據(jù)用戶的類型和需求查詢教材的庫(kù)存信息,班級(jí)信息以及費(fèi)用收繳信息,創(chuàng)建規(guī)則實(shí)現(xiàn)教材的書號(hào)必須滿足以ISBN開頭,后跟10個(gè)數(shù)字的格式,比如:ISBN7302120363。創(chuàng)建觸發(fā)器,實(shí)現(xiàn)教材入庫(kù)和出庫(kù)時(shí)自動(dòng)修改庫(kù)存數(shù)量。創(chuàng)建存儲(chǔ)過程統(tǒng)計(jì)各種教材的訂購(gòu)、到貨和發(fā)放數(shù)量;建立數(shù)據(jù)庫(kù)相關(guān)表之間的參照完整性約束;(5) 統(tǒng)計(jì)分析模塊:錄入班級(jí)信息閉和教師單位信息并設(shè)置打印報(bào)表功能供用戶查看然后操作員根據(jù)訂書情況統(tǒng)計(jì)分析學(xué)生買書的人數(shù)比例和學(xué)生不購(gòu)買教材的原因分析,一次給校方提供相應(yīng)的數(shù)據(jù),便于改進(jìn)學(xué)校的教材管理措施,滿足學(xué)生對(duì)教材的需求;(6) 幫助模塊:介紹本系統(tǒng)的相關(guān)信息和操作指南。2.3安全性分析(1)系統(tǒng)能抵御瑞星網(wǎng)上公布的病毒的攻擊而不至于癱瘓。(2)系統(tǒng)能安全的防范對(duì)數(shù)據(jù)庫(kù)內(nèi)容不安全的訪問和操作。(3)系統(tǒng)能在斷電的情況下,依靠UPS電源確保數(shù)據(jù)庫(kù)內(nèi)容的完整性和安全性。(4)數(shù)據(jù)庫(kù)服務(wù)端應(yīng)具備系統(tǒng)使用期間2小時(shí)備份一次數(shù)據(jù)庫(kù)的功能。(5)系統(tǒng)應(yīng)用驗(yàn)證用戶權(quán)限方可使用的功能保障。(6)能完全、直觀的體現(xiàn)系統(tǒng)功能,用戶能方便快捷的執(zhí)行某種教材管理工作,能適應(yīng)屏顯分辨率的調(diào)整,友好、可操作性強(qiáng)。

(7)限于網(wǎng)絡(luò)配置和C/S結(jié)構(gòu)程序的網(wǎng)絡(luò)編程實(shí)現(xiàn)問題,部分功能可能實(shí)現(xiàn)不完美,甚至是暫時(shí)無法實(shí)現(xiàn)。以下為數(shù)據(jù)庫(kù)的用戶信息及其權(quán)限?1班級(jí)信息班級(jí)交費(fèi)財(cái)務(wù)管理員修改信息刪除信息登記信息領(lǐng)書班級(jí)信息操作流程圖?2教材管理員信息教材管理員管理教材刪除信息修改信息登記信息發(fā)書教材管理員信息操作流程圖?3財(cái)務(wù)管理員信息財(cái)務(wù)管理員撥款教材管理員登記信息刪除信息修改信息購(gòu)買教材財(cái)務(wù)管理員信息操作流程圖~4教師信息教師選定教材修改人數(shù)刪除人數(shù)統(tǒng)計(jì)人數(shù)預(yù)訂教材教師信息操作流程圖~5教材信息教材分類班級(jí)刪除領(lǐng)取信息修改領(lǐng)取信息登記領(lǐng)取信息被領(lǐng)取教材信息操作流程圖?6出版社信息出版社出版教材整理信息聯(lián)系購(gòu)買商分類被訂購(gòu)出版社信息操作流程圖2.4完整性分析當(dāng)向數(shù)據(jù)庫(kù)中插入、修改時(shí),系統(tǒng)能夠辨別輸入的數(shù)據(jù)是否符合語義,不能的則不能修改成功。概念結(jié)構(gòu)設(shè)計(jì)從課程設(shè)計(jì)選題中可以得知,我們?cè)O(shè)計(jì)的高校教材管理系統(tǒng)數(shù)據(jù)庫(kù)需具備以下功能:1) 實(shí)現(xiàn)出版社、教材類型等的管理;2) 實(shí)現(xiàn)教材的訂購(gòu)管理;3) 實(shí)現(xiàn)教材的入庫(kù)管理;4) 實(shí)現(xiàn)教材的領(lǐng)用管理;5) 可隨時(shí)查詢教材管理系統(tǒng)中的各種信息;6) 創(chuàng)建規(guī)則實(shí)現(xiàn)教材的書號(hào)必須滿足以ISBN開頭,后跟10個(gè)數(shù)字的格式,比如:ISBN7302120363;7) 創(chuàng)建觸發(fā)器,實(shí)現(xiàn)教材入庫(kù)和出庫(kù)時(shí)自動(dòng)修改庫(kù)存數(shù)量;8) 創(chuàng)建存儲(chǔ)過程統(tǒng)計(jì)各種教材的訂購(gòu)、到貨和發(fā)放數(shù)量;建立數(shù)據(jù)庫(kù)相關(guān)表之間的參照完整性約束。3.1高校教材系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)流程圖3.2數(shù)據(jù)字典數(shù)據(jù)字典是指對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說明。是一種用戶可以訪問的記錄數(shù)據(jù)庫(kù)和應(yīng)用程序源數(shù)據(jù)的目錄。數(shù)據(jù)字典最重要的作用是作為分析階段的工具。數(shù)據(jù)字典最重要的用途都是供人查詢對(duì)不了解的條目的解釋,在結(jié)構(gòu)化分析中,數(shù)據(jù)字典的作用是給數(shù)據(jù)流圖上每個(gè)成分加以定義和說明。換句話說,數(shù)據(jù)流圖上所有的成分的定義和解釋的文字集合就是數(shù)據(jù)字典,而且在數(shù)據(jù)字典中建立的一組嚴(yán)密一致的定義很有助于改進(jìn)分

析員和用戶的通信。數(shù)據(jù)庫(kù)數(shù)據(jù)字典不僅是每個(gè)數(shù)據(jù)庫(kù)的中心,而且對(duì)每個(gè)用戶也是非常重要的信息。用戶可以用SQL語句訪問數(shù)據(jù)庫(kù)數(shù)據(jù)字典。下面是本系統(tǒng)中的數(shù)據(jù)字典。名字:用戶信息描述:使用該軟件的人員信息定義:用戶信息二登陸賬號(hào)+真實(shí)名字+登陸密碼+班級(jí)名字:教材基本信息描述:各種教材的詳細(xì)信息定義:教材信息二教材編號(hào)+教材名稱+教材作者+出版社+教材版本號(hào)名字:入庫(kù)信息描述:每一種教材的入庫(kù)詳細(xì)信息定義:入庫(kù)信息二教材編號(hào)+教材名稱+入庫(kù)單號(hào)+單價(jià)+出版社+數(shù)量+入庫(kù)時(shí)間名字:訂購(gòu)信息描述:每一種教材訂購(gòu)的詳細(xì)信息定義:訂購(gòu)信息二訂購(gòu)單號(hào)+教材編號(hào)+教材名稱+數(shù)量+單價(jià)+供應(yīng)商+訂購(gòu)日期名字:出庫(kù)信息描述:每一種教材的出庫(kù)詳細(xì)信息定義:出庫(kù)信息二教材編號(hào)+教材名稱+數(shù)量+單價(jià)+出版社+班級(jí)名字:管理員信息描述:管理教材的入庫(kù)和出庫(kù)的詳細(xì)信息定義:管理員信息二編號(hào)+姓名+性別+電話名字:供應(yīng)商信息描述:為需求單位提供教材定義:供應(yīng)商信息二編號(hào)+名稱+地址+負(fù)責(zé)人+電話3.3E-R圖下面是各實(shí)體的ER圖:班級(jí):出版社:訂購(gòu)管理:出庫(kù)管理:學(xué)生:入庫(kù)管理:供應(yīng)商管理:高校教材管理系統(tǒng)實(shí)現(xiàn)各種管理工作,根據(jù)使用者學(xué)生與供應(yīng)商、管理員管理、入庫(kù)管理、出庫(kù)的管理、印刷社、教材的關(guān)系,構(gòu)化出本系統(tǒng)整體的ER圖:邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本ER圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。由于目前使用的數(shù)據(jù)庫(kù)基本上都是關(guān)系數(shù)據(jù)庫(kù),因此首先需要將ER圖轉(zhuǎn)換為關(guān)系模型,然后根據(jù)具體DBMS的特點(diǎn)和限制轉(zhuǎn)換為特定的DBMS支持下的數(shù)據(jù)模型,最后進(jìn)行優(yōu)化。在本系統(tǒng)中我們選用的數(shù)據(jù)庫(kù)環(huán)境是SQLsrver2008。4.1實(shí)體型間聯(lián)系的不同情況(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一段對(duì)應(yīng)的關(guān)系模式合并。(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。

(3) 一個(gè)m:n聯(lián)系可以轉(zhuǎn)換成一個(gè)關(guān)系模式。(4) 3個(gè)或3個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。(5) 具有相同碼的關(guān)系模式可以合并。4.2將E-R圖轉(zhuǎn)換成關(guān)系模式教材(教材編號(hào),教材名稱,類型編號(hào),訂書單位,出版社名稱,出版時(shí)間,作者,印張,數(shù)量,字?jǐn)?shù),入庫(kù)時(shí)間)班級(jí)(班級(jí)編號(hào),班級(jí)名稱,人數(shù),班長(zhǎng),班長(zhǎng)號(hào)碼,班主任,班主任號(hào)碼,學(xué)院系,學(xué)校,入學(xué)時(shí)間)學(xué)生(學(xué)號(hào),姓名,學(xué)院系,學(xué)校,班級(jí))出庫(kù)(教材編號(hào),教材名稱,數(shù)量,單價(jià),班級(jí)編號(hào),出版社編號(hào),出版時(shí)間,出庫(kù)時(shí)間,負(fù)責(zé)人)入庫(kù)(教材編號(hào),教材名稱,數(shù)量,單價(jià),出版社,入庫(kù)時(shí)間,作者,負(fù)責(zé)人)管理員(管理員編號(hào),管理員名字,性別,電話)供應(yīng)商(供應(yīng)商編號(hào),供應(yīng)商名稱,供應(yīng)商地址,電話,負(fù)責(zé)人)訂購(gòu)(訂單編號(hào),教材編號(hào),教材名稱,單價(jià),數(shù)量)出版社(出版社編號(hào),出版社名稱,電話,負(fù)責(zé)人,地址)。(橫線化的表示是主鍵)4.3關(guān)系模式的分析學(xué)生(學(xué)號(hào),姓名,學(xué)院系,學(xué)校,班級(jí)),其中,學(xué)號(hào)為主碼,姓名,學(xué)院系,學(xué)校,班級(jí)為非主屬性,因?yàn)樗蟹侵鲗傩远纪耆蕾囉诿總€(gè)候選碼,所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼,但是有屬性完全函數(shù)依賴于非碼的一組屬性,所以該關(guān)系屬于3NF,但不屬于BCNF。管理員(管理員編號(hào),管理員名字,性別,電話),其中,管理員編號(hào)為主碼,管理員名字,性別,電話為非主屬性,因?yàn)樗蟹侵鲗傩远纪耆蕾囉诿總€(gè)候選碼,所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼,沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性,所以該關(guān)系屬于3NF,也屬于BCNF。物理結(jié)構(gòu)設(shè)計(jì)5.1設(shè)計(jì)存儲(chǔ)過程(1)在“教材管理庫(kù)”數(shù)據(jù)庫(kù)創(chuàng)建無參存儲(chǔ)過程,查詢各種教材的訂購(gòu)數(shù)量createprocedurejc_slasselect教材編號(hào),count(數(shù)量)as數(shù)量slfrom訂購(gòu)groupby教材編號(hào)go(2)在“教材管理庫(kù)"數(shù)據(jù)庫(kù)創(chuàng)建帶output參數(shù)的存儲(chǔ)過程,用于計(jì)算指定的教材訂購(gòu)的總訂購(gòu)金額,存儲(chǔ)過程中使用一個(gè)輸入?yún)?shù)(教材名稱)和一個(gè)輸出參數(shù)(總訂購(gòu)金額)createprocedurepname@jcmcvarchar(20),@counintoutputasselect@coun=單價(jià)*數(shù)量from訂購(gòu)where教材名稱=@jcmcgo(3)在“教材管理庫(kù)"數(shù)據(jù)庫(kù)創(chuàng)建帶有參數(shù)和

默認(rèn)值(通配符)的存儲(chǔ)過程,從學(xué)生表中返回指定的學(xué)生(提供姓名)的信息。該存儲(chǔ)過程對(duì)傳遞的參數(shù)進(jìn)行模式匹配,如果沒有提供參數(shù),則返回所有學(xué)生的信/息createprocedurestudent_name@namevarchar(40)='%'asselect*from學(xué)生where姓名like@namego5.2設(shè)計(jì)索引(1)聚合索引和唯一索引創(chuàng)建學(xué)生表上按學(xué)號(hào)升序排的唯一聚合索引idluse教材管理庫(kù)gocreateuniqueclusteredindexidlon學(xué)生(學(xué)號(hào))(2)非聚合索引創(chuàng)建學(xué)生表上先按學(xué)號(hào)升序排,學(xué)號(hào)一樣的再按書費(fèi)降序排的非聚集索引id2use教材管理庫(kù)gocreateindexid2on學(xué)生(學(xué)號(hào),書費(fèi)desc)6.數(shù)據(jù)庫(kù)實(shí)施6.1權(quán)限設(shè)置設(shè)計(jì)登錄賬戶SQLServer,登錄名gxjc1,gxjc2及密碼createlogingxjclwithpassword='111111',default_database二教材管理庫(kù)createlogingxjc2withpassword='111111',default_database=教材管理庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)用戶系統(tǒng)管理員xtgly,一般用戶ybyhcreateuserxtglyforlogingxjc1createuserybyhforlogingxjc2設(shè)計(jì)架構(gòu)createschemaschema1authorizationxtglygocreateschemaschema2authorizationybyh設(shè)置用戶操作權(quán)限把"學(xué)生"表的全部操作權(quán)限授予用戶xtgly和ybyhgrantallprivilegeson學(xué)生toxtgly,ybyh把對(duì)“教材”表的查詢權(quán)限授予所有用戶grantselecton教材topublic把查詢“學(xué)生"表和修改學(xué)生學(xué)號(hào)的權(quán)限授予用戶ybyhgrantselect,update(學(xué)號(hào))on學(xué)生toybyh把對(duì)訂購(gòu)表的插入權(quán)限授予用戶xtgly,允許xtgly再將此權(quán)限授予其他用戶grantinserton訂購(gòu)toxtglywithgrantoptiongrantinserton訂購(gòu)toybyhwithgrantoption將教材管理庫(kù)數(shù)據(jù)庫(kù)中建表的權(quán)限授予ybyhuse教材管理庫(kù)grantcreatetabletoybyh6.2數(shù)據(jù)輸入6.2.1創(chuàng)建數(shù)據(jù)庫(kù)T-SQL語句為:CREATEDATABASE教材管理庫(kù)ON(NAME二教材管理庫(kù),FILENAME='E:\DATA'教材管理庫(kù).MDF',SIZE=5,MAXSIZE二unlimited,FILEGROWTH=10%),FILEGROUPFG1(NAME二教材庫(kù),FILENAME='E:\DATA'教材管理庫(kù).NDF',SIZE=10,MAXSIZE=100,FILEGROWTH=1)LOGON(NAME二教材庫(kù)LOG1,FILENAME='E:\DATA'教材管理庫(kù)LOG1.LDF',SIZE=5,MAXSIZE=50,FILEGROWTH=1),(NAME二教材庫(kù)LOG2,FILENAME='E:\DATA'教材管理庫(kù)LOG2.LDF',SIZE=5,MAXSIZE=50,FILEGROWTH=1)6.2.2創(chuàng)建數(shù)據(jù)表并插入數(shù)據(jù)幾個(gè)有代表性的數(shù)據(jù)表的創(chuàng)建T-SQL語句為:USE教材管理庫(kù)GOcreatetable班級(jí)(班級(jí)編號(hào)intnotnull,班級(jí)名稱varchar(5)notnull,人數(shù)intnull,班長(zhǎng)char(10)null,班長(zhǎng)電話char(11)null,班主任char(10)null,班主任電話char(11)null,學(xué)院系varchar(10)null,學(xué)校varchar(10)null,入學(xué)時(shí)間datetimenull,constraintPK_班級(jí)primarykey(班級(jí)編號(hào))));createtable出庫(kù)(教材編號(hào)char(14)notnull,班級(jí)編號(hào)char(14)notnull,教材名稱varchar(10)null,數(shù)量intnull,單價(jià)float(5)null,出版社編號(hào)char(14)null,出版時(shí)間datetimenull,負(fù)責(zé)人varchar(4)null,constraintPK_出庫(kù)primarykeyclustered(教材編號(hào),班級(jí)編號(hào)))createtable訂購(gòu)(供應(yīng)商編號(hào)char(14)notnull,教材編號(hào)char(14)notnull,訂單編號(hào)char(14)null,教材名稱varchar(10)null,單價(jià)float(5)null,數(shù)量intnull,constraintPK_訂購(gòu)primarykeyclustered(供應(yīng)商編號(hào),教材編號(hào)));createtable入庫(kù)(管理員編號(hào)char(14)notnull,教材編號(hào)char(14)notnull,教材名稱varchar(10)null,出版社varchar(10)null,數(shù)量intnul],入庫(kù)時(shí)間datetimenull,單價(jià)float(5)nul],作者varchar(4)null,負(fù)責(zé)人varchar(4)null,constraintPK_入庫(kù)primarykeyclustered(管理員編號(hào),教材編號(hào)));createtable學(xué)生(學(xué)號(hào)char(10)notnull,班級(jí)編號(hào)char(10)null,姓名varchar(4)notnull,學(xué)校varchar(10)null,院系varchar(10)null,書費(fèi)char(6)null,constraintPK_學(xué)生primarykey(學(xué)號(hào)));6.2.3創(chuàng)建視圖(1)創(chuàng)建“學(xué)生—班級(jí)”視圖,包括學(xué)生的學(xué)號(hào),班級(jí)編號(hào),姓名,和他們的學(xué)校和書費(fèi)use教材管理庫(kù)gocreateview學(xué)生_班級(jí)asselect學(xué)號(hào),班級(jí).班級(jí)編號(hào),姓名,班級(jí).學(xué)校,書費(fèi)from班級(jí),學(xué)生where班級(jí).班級(jí)編號(hào)二學(xué)生.班級(jí)編號(hào)and班級(jí).學(xué)校二學(xué)生.學(xué)校go(2)創(chuàng)建“訂購(gòu)統(tǒng)計(jì)視圖”,求每種教材的總訂購(gòu)量,要求包括教材編號(hào)和教材名稱use教材管理庫(kù)gocreateview訂購(gòu)統(tǒng)計(jì)視圖asselect訂購(gòu).教材編號(hào),訂購(gòu).教材名稱,SUM(訂購(gòu).數(shù)量)AS總庫(kù)存量from訂購(gòu),教材where訂購(gòu).教材編號(hào)二教材.教材編號(hào)and訂購(gòu).教材名稱二教材.教材名稱and訂購(gòu).數(shù)量二教材.數(shù)量groupby訂購(gòu).教材編號(hào),訂購(gòu).教材名稱go(3)創(chuàng)建視圖來查看出庫(kù)和入庫(kù)中的教材數(shù)量的信息use教材管理庫(kù)gocreateviewv_example(教材編號(hào),出庫(kù)數(shù)量,入庫(kù)數(shù)量)Asselect教材.教材編號(hào),出庫(kù).數(shù)量,入庫(kù).數(shù)量from教材,出庫(kù),入庫(kù)where教材.教材編號(hào)二出庫(kù).教材編號(hào)and教材.教材編號(hào)二入庫(kù).教材編號(hào)6.2.4數(shù)據(jù)表的操縱語句在“學(xué)生”表中插入一行數(shù)據(jù)(學(xué)號(hào)、班級(jí)編號(hào)、姓名、書費(fèi))為('120506'、'6'、'張三'、'500')USE教材管理庫(kù)GOINSERTint。學(xué)生(學(xué)號(hào),班級(jí)編號(hào),姓名,書費(fèi))VALUES('120506','快樂分享知識(shí)無限!6','張三','500')在“管理員”表中的“性別”字段的值為“男”USE教材管理庫(kù)GOUPDATE管理員SET性別二'男'在“學(xué)生”表中,將學(xué)號(hào)為120501的學(xué)生姓名改為王武USE教材管理庫(kù)GOUPDATE學(xué)生SET姓名二'王武'WHERE學(xué)號(hào)二'120501'在“學(xué)生"表中添加一字段“備注"varchar(20),“備注"字段信息為“已畢業(yè),,use教材管理庫(kù)GOALTERTABLE學(xué)生ADD備注varchar(20)(2)UPDATE學(xué)生SET備注='已畢業(yè)'刪除“學(xué)生”表中120501號(hào)學(xué)生的記錄USE教材管理庫(kù)GODELETE學(xué)生WHERE學(xué)號(hào)二'120501'6.3程序設(shè)計(jì)與調(diào)試6.3.1設(shè)計(jì)索引(1)聚合索引和唯一索引創(chuàng)建學(xué)生表上按學(xué)號(hào)升序排的唯一聚合索引id1use教材管理庫(kù)gocreateuniqueclusteredindexid1on學(xué)生(學(xué)號(hào))(2)非聚合索引創(chuàng)建學(xué)生表上先按學(xué)號(hào)升序排,學(xué)號(hào)一樣的再按書費(fèi)降序排的非聚集索引id2use教材管理庫(kù)gocreateindexid2on學(xué)生(學(xué)號(hào),書費(fèi)desc)6.3.2數(shù)據(jù)查詢操作(1)確定集合查詢查詢供應(yīng)商表的所有記錄use教材管理庫(kù)goselect*from班級(jí)(2)字符匹配查詢查詢?nèi)霂?kù)表中所有姓“張”的作者的信息select*from入庫(kù)where作者like'張%'(3)聚合函數(shù)等統(tǒng)計(jì)數(shù)據(jù)的查詢統(tǒng)計(jì)查詢學(xué)生表中學(xué)生的總?cè)藬?shù)selectcount(*)from學(xué)生查詢信息學(xué)院學(xué)生的最高書費(fèi),最低書費(fèi)和平均書費(fèi)selectmax(書費(fèi))as'最高書費(fèi)',min(書費(fèi))as'最低書費(fèi)'from學(xué)生where院系二'信息學(xué)院'查詢出庫(kù)表中教材數(shù)量的平均值,平均值顯示列標(biāo)題為“平均數(shù)量"selectAVG(數(shù)量)as平均數(shù)量from出庫(kù)(4)分組查詢查詢“教材管理庫(kù)"中男生和女生的人數(shù)select性別,COUNT(性別)from管理員groupby性別(5)連接查詢內(nèi)連接:在“教材管理庫(kù)”中查詢每個(gè)學(xué)生的學(xué)號(hào),姓名和班級(jí)名稱select學(xué)生.學(xué)號(hào),學(xué)生.姓名,班級(jí).班級(jí)名稱from學(xué)生innerjoin班級(jí)on學(xué)生.班級(jí)編號(hào)二班級(jí).班級(jí)編號(hào)外連接:在“教材管理庫(kù)”中查詢每個(gè)學(xué)生及其班級(jí)的人數(shù)情況select學(xué)生.*,班級(jí).人數(shù),班級(jí).班級(jí)名稱from學(xué)生leftjoin班級(jí)on學(xué)生.班級(jí)編號(hào)二班級(jí).班級(jí)編號(hào)(6)嵌套查詢無關(guān)子查詢:在“教材管理庫(kù)”中查詢與“0001”在同一班級(jí)學(xué)習(xí)的學(xué)生的學(xué)校和班級(jí)名稱select學(xué)校,班級(jí)名稱from班級(jí)where班級(jí)名稱=(select班級(jí)名稱from班級(jí)where班級(jí)編號(hào)二0001)查詢“教材管理庫(kù)”中網(wǎng)絡(luò)班級(jí)人數(shù)最多的班級(jí)人數(shù),編號(hào)和學(xué)校select學(xué)校,人數(shù),班級(jí)編號(hào)from班級(jí)where人數(shù)二all(select人數(shù)from班級(jí)where班級(jí)名稱二網(wǎng)絡(luò))and班級(jí)名稱二'網(wǎng)絡(luò)(7)帶有EXISTS或NOTEXISTS謂詞查詢?cè)凇敖滩墓芾韼?kù)”中查詢所有軟件班級(jí)學(xué)生的學(xué)校select學(xué)校from學(xué)生whereexists(select*from班級(jí)where班級(jí)名稱二'軟件'and班級(jí)編號(hào)二學(xué)生.班級(jí)編號(hào))6.3.3使用控制流語

句編寫程序(1)IF???ELSE語句如果訂購(gòu)數(shù)學(xué)教材的數(shù)量大于1500,則顯示“銷售不錯(cuò)”,否則顯示“銷售一般”if(select數(shù)量from訂購(gòu)where教材名稱二,數(shù)學(xué),)1500print,銷售不錯(cuò)'elseprint,銷售一般'(2)CASE語句以簡(jiǎn)單CASE格式查詢所有學(xué)生的學(xué)校情況,包括學(xué)號(hào),姓名和學(xué)校的英文名select學(xué)號(hào),姓名,case學(xué)校when'西財(cái)'then'xicai'when,理H"hen'ligong'when'郵電'then'youdian'when'麻省'then'masheng'when'哈佛'then'hafo'endas學(xué)校from學(xué)生(3)GOTO語句輸出英語教材的總訂購(gòu)金額,若沒有此教材則顯示相應(yīng)的提示信息,用GOTO語句實(shí)現(xiàn)declare@afloatif(selectCOUNT(*)from訂購(gòu)where教材名稱二,英語。=0gotolable1beginselect@a二單價(jià)*數(shù)量from訂購(gòu)where教材名稱二'英語,print,英語教材的總訂購(gòu)金額:,+cast(@aasvarchar)returnendlable1:print'沒有英語教材'6.3.4編寫自定義函數(shù)及調(diào)用(1)標(biāo)量函數(shù)的創(chuàng)建與調(diào)用求訂購(gòu)表中某門教材總訂購(gòu)金額createfunctioncoun(@cochar(6))returnsfloatasbegindeclare@cunfloatselect@cun=(select單價(jià)*數(shù)量from訂購(gòu)where教材名稱=@co)return@cunend求物理教材的總訂購(gòu)金額declare@couse1char(6)set@couse1='物理'selectdbo.coun(@couse1)as'物理教材的總訂購(gòu)金額'(2)內(nèi)嵌表值函數(shù)的創(chuàng)建與調(diào)用查詢某個(gè)學(xué)校所有學(xué)生的班級(jí)編號(hào),學(xué)號(hào),姓名和班級(jí)名稱createfunctionxx_func(@xuexiaovarchar(10))returnstableasreturn(select班級(jí).班級(jí)編號(hào),班級(jí)名稱,學(xué)號(hào),姓名from班級(jí),學(xué)生where學(xué)生.學(xué)校=@xuexiaoand班級(jí).班級(jí)編號(hào)二學(xué)生.班級(jí)編號(hào))查詢西財(cái)所有學(xué)生的班級(jí)編號(hào),學(xué)號(hào),姓名和班級(jí)名稱select*fromxx_func('西財(cái)')(3)多語句表值函數(shù)的創(chuàng)建與調(diào)用創(chuàng)建多語句表值函數(shù),通過“班級(jí)編號(hào)”作為實(shí)參調(diào)用該函數(shù),可顯示該學(xué)生的班級(jí)名稱及學(xué)號(hào)createfunctionbj_班級(jí)(@bhchar(7))returns@班級(jí)table(班級(jí)編號(hào)char(7),班級(jí)名稱char(6),學(xué)號(hào)char(10))asbegininsertinto@班級(jí)select班級(jí).班級(jí)編號(hào),班級(jí)名稱,學(xué)號(hào)from班級(jí),學(xué)生where班級(jí).班級(jí)編號(hào)二學(xué)生.班級(jí)編號(hào)and班級(jí).班級(jí)編號(hào)二@bhreturnend查詢“0005”班學(xué)生的班級(jí)名稱及學(xué)號(hào)select*frombj_班級(jí)('0005')6.3.5編寫存儲(chǔ)過程及調(diào)用(1)在“教材管理庫(kù)”數(shù)據(jù)庫(kù)創(chuàng)建無參存儲(chǔ)過程,查詢各種教材的訂購(gòu)數(shù)量并調(diào)用createprocedurejc_slasselect教材編號(hào),count(數(shù)量)as數(shù)量slfrom訂購(gòu)groupby教材編號(hào)goexecutejc_sl(2)在“教材管理庫(kù)"數(shù)據(jù)庫(kù)創(chuàng)建帶output參數(shù)的存儲(chǔ)過程,用于計(jì)算指定的教材訂購(gòu)的總訂購(gòu)金額,存儲(chǔ)過程中使用一個(gè)輸入?yún)?shù)(教材名稱)和一個(gè)輸出參數(shù)(總訂購(gòu)金額)createprocedurepname@jcmcvarchar(20),@counintoutputasselect@coun=單價(jià)*數(shù)量from訂購(gòu)where教材名稱=@jcmcgo執(zhí)行存儲(chǔ)過程pname,查詢‘c語言’的總訂購(gòu)金額declare@counintexecutepname'c語言',@counoutputprint'c語言的總訂購(gòu)金額L+str(@coun)(3)在“教材管理庫(kù)”數(shù)據(jù)庫(kù)創(chuàng)建帶有參數(shù)和默認(rèn)值(通配符)的存儲(chǔ)過程,從學(xué)生表中返回指定的學(xué)生(提供姓名)的信息。該存儲(chǔ)過程對(duì)傳遞的參數(shù)進(jìn)行模式匹配,如果沒有提供參數(shù),則返回所有學(xué)生的信息createprocedurestudent_name@namevarchar(40)='%'asselect*from學(xué)生where姓名like@namego執(zhí)行存儲(chǔ)過程student_name,顯示所有學(xué)生的信息executestudent_name(4)創(chuàng)建存儲(chǔ)過程統(tǒng)計(jì)各種教材的訂購(gòu)、到貨和發(fā)放數(shù)量并調(diào)用createProcQuery_tongji(@dinggou_bhchar(14)output,@ruku_shlintoutput,@chuku_shlintoutput)asselect@dinggou_bh=訂購(gòu).教材編號(hào),@ruku_shl二入庫(kù).數(shù)量,@chuku_shl二出庫(kù).數(shù)量from訂購(gòu),出庫(kù),入庫(kù)執(zhí)行存儲(chǔ)過程,輸出出庫(kù)中某一個(gè)教材的出庫(kù)數(shù)量DECLARE@ck_shlintExecQuery_tongji@dinggou_bh='ISBN1205290105',@ruku_shl=1005,@chuku_shl=@ck_shloutputselect@ck_shl輸出入庫(kù)中某一個(gè)教材的出庫(kù)數(shù)量DECLARE@rk_shlintExecQuery_tongji@dinggou_bh='ISBN1205290105',@chuku_shl=38,@ruku_shl=@rk_shloutputselect@rk_shl6.3.6編寫觸發(fā)器創(chuàng)建觸發(fā)器,實(shí)現(xiàn)教材入庫(kù)和出庫(kù)時(shí)自動(dòng)修改庫(kù)存數(shù)量(1)入庫(kù)與庫(kù)存的關(guān)系教材入庫(kù)時(shí),可以通過觸發(fā)程序利用教材編碼相同來檢索庫(kù)存里是否有該書的庫(kù)存記錄,如果存在該書的記錄,則在原有的記錄上增加;如果庫(kù)存里沒有該書的庫(kù)存記錄,則新增加該書的庫(kù)存記錄。完成對(duì)庫(kù)存表的更新,減少了重復(fù)輸入的麻煩createtriggerupdata_kucunon入庫(kù)forinsertasdeclare@shlint,@bhchar(10)select@bh二教材編號(hào),@shl二數(shù)量frominsertedifexists(select*fromkucunwhere教材編號(hào)二@bh)updatekucunset數(shù)量二數(shù)量+@shlwhere教材編號(hào)二@bhelseifexists(select*fromkucunwhere教材編號(hào)@bh)begininsertintokucun(教材編號(hào),數(shù)量)values(@bh,@shl)endbeginRaiserror(,入庫(kù)量等于庫(kù)存量',16,2)rollbacktransactionend測(cè)試觸發(fā)器updatekucunset數(shù)量二數(shù)量快樂分享知識(shí)無限!+2000where教材編號(hào)二'ISBN1205290102'(2)出庫(kù)與庫(kù)存的關(guān)系管理人員將教材出庫(kù)時(shí),通過觸發(fā)程序利用教材編碼相同來檢索該教材是否存在于庫(kù)存中,如果存在且出庫(kù)數(shù)量不大于庫(kù)存數(shù)量,則在庫(kù)存數(shù)量上減少相應(yīng)的數(shù)量,如果不存在,則說明,輸入的教材編碼有誤,系統(tǒng)提示錯(cuò)誤信息,同時(shí),如果該教材存在,但出庫(kù)的數(shù)量大于庫(kù)存的數(shù)量,則系統(tǒng)提示錯(cuò)誤信息,并重新輸入createtriggerupdate_kucunon出庫(kù)forinsertasdeclare@shlint,@bhchar(10),@shjdatetimeselect@bh二教材編號(hào),@shl二數(shù)量frominsertedifexists(select*fromkucunwhere教材編號(hào)=@bhand@shl二數(shù)量)updatekucunsetkucun.數(shù)量二kucun.數(shù)量-@shlwhere教材編號(hào)=@bhelsebeginRaiserror(,出入量大于庫(kù)存量',16,2)rollbacktransactionRaiserror(,入庫(kù)量等于庫(kù)存量',16,2)rollbacktransactionend測(cè)試觸發(fā)器updatekucunsetkucun.數(shù)量二kucun.數(shù)量-44where教材編號(hào)二'ISBN1205290102'為學(xué)生表創(chuàng)建一個(gè)dml觸發(fā)器,在插入和修改數(shù)據(jù)時(shí),都會(huì)自動(dòng)顯示所有學(xué)生的信息createtriggerpr

溫馨提示

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

評(píng)論

0/150

提交評(píng)論