大連交通大學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)校食堂管理系統(tǒng)01號(hào).doc_第1頁(yè)
大連交通大學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)校食堂管理系統(tǒng)01號(hào).doc_第2頁(yè)
大連交通大學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)校食堂管理系統(tǒng)01號(hào).doc_第3頁(yè)
大連交通大學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)校食堂管理系統(tǒng)01號(hào).doc_第4頁(yè)
大連交通大學(xué)數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)校食堂管理系統(tǒng)01號(hào).doc_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘 要當(dāng)人們收集了大量的數(shù)據(jù)后,應(yīng)該把它們保存起來(lái)做進(jìn)一步的處理和信息的抽取。當(dāng)年人們把數(shù)據(jù)存放在文件柜中,可現(xiàn)在隨著社會(huì)的發(fā)展,數(shù)據(jù)量急劇增長(zhǎng),現(xiàn)在人們就借助計(jì)算機(jī)和數(shù)據(jù)庫(kù)技術(shù)來(lái)科學(xué)地保存大量的數(shù)據(jù),以便能更好的利用這些數(shù)據(jù)資源。我選擇食堂管理系統(tǒng)的原因是我們學(xué)校有4個(gè)食堂,但人數(shù)眾多,每天的消費(fèi)量都很大,從學(xué)生的角度來(lái)講,在高峰期存在某些食堂找不到座位的現(xiàn)象比比皆是,從管理員的角度來(lái)講,他們需要知道某些菜的量,這樣才能合理分配菜量,同學(xué)們也可以對(duì)食堂的飯菜及服務(wù)打分,這樣同學(xué)們才能更好地進(jìn)行就餐,食堂管理員才能更好地管理食堂及員工。本課題的目的是為了鞏固數(shù)據(jù)庫(kù)原理與應(yīng)用課程中所學(xué)的知識(shí),體現(xiàn)理論指導(dǎo)實(shí)踐的原則,為食堂管理系統(tǒng)設(shè)計(jì)后臺(tái)數(shù)據(jù)庫(kù),通過(guò)需求分析,概念設(shè)計(jì),邏輯設(shè)計(jì),物理設(shè)計(jì)及數(shù)據(jù)庫(kù)的實(shí)施和運(yùn)行等階段,體現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)的全過(guò)程,并把所學(xué)知識(shí)應(yīng)用到實(shí)際中,培養(yǎng)自己的思維能力。關(guān)鍵詞:SQL SERVER;數(shù)據(jù)庫(kù)設(shè)計(jì);食堂管理系統(tǒng)35 / 37目錄第一章 緒論11.1課題簡(jiǎn)介11.2設(shè)計(jì)目的11.3設(shè)計(jì)內(nèi)容1第二章 需求分析32.1 需求分析的任務(wù)32.2 需求分析的過(guò)程32.3數(shù)據(jù)字典與流程圖4第三章 概念結(jié)構(gòu)設(shè)計(jì)83.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟83.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì)83.3視圖的集成11第四章 邏輯結(jié)構(gòu)設(shè)計(jì)124.1 E-R圖向關(guān)系模型的轉(zhuǎn)換124.2 數(shù)據(jù)庫(kù)關(guān)系圖12第五章 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)165.1數(shù)據(jù)庫(kù)的建立165.2 數(shù)據(jù)庫(kù)基本結(jié)構(gòu)的建立165.3安全性的實(shí)現(xiàn)225.4完整性的實(shí)現(xiàn)235.5恢復(fù)技術(shù)的實(shí)現(xiàn)25第六章 運(yùn)行與結(jié)果266.1簡(jiǎn)單查詢和連接查詢266.2嵌套查詢286.3組合查詢和統(tǒng)計(jì)查詢32第一章 緒論1.1課題簡(jiǎn)介數(shù)據(jù)庫(kù)技術(shù)已成為現(xiàn)代信息技術(shù)的重要組成部分,是現(xiàn)代計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)和核心。數(shù)據(jù)庫(kù)技術(shù)是20世紀(jì)60年代后期產(chǎn)生和發(fā)展起來(lái)的一項(xiàng)計(jì)算機(jī)數(shù)據(jù)管理技術(shù),它的出現(xiàn)使計(jì)算機(jī)應(yīng)用滲透到人類社會(huì)的各個(gè)領(lǐng)域。目前數(shù)據(jù)庫(kù)的建設(shè)規(guī)模和性能、數(shù)據(jù)庫(kù)信息的大小和使用頻度已成為衡量一個(gè)國(guó)家信息化程度的重要標(biāo)志,數(shù)據(jù)庫(kù)技術(shù)也成為計(jì)算機(jī)科學(xué)技術(shù)的一個(gè)重要分支。 我的專業(yè)是計(jì)算機(jī)。經(jīng)過(guò)大學(xué)三年的學(xué)習(xí),我們對(duì)計(jì)算機(jī)方面的知識(shí)有了很大的提升,不但掌握了基本的編程方法,工具和軟件,還能進(jìn)行簡(jiǎn)單的小程序開(kāi)發(fā)。在C語(yǔ)言和JAVA課程設(shè)計(jì)中,我認(rèn)真編寫程序,均取得了很好的成績(jī)。在這次數(shù)據(jù)庫(kù)課程設(shè)計(jì)中,我本著理論聯(lián)系實(shí)際的宗旨,通過(guò)學(xué)校提供的這次課程設(shè)計(jì)實(shí)踐的機(jī)會(huì),在指導(dǎo)教師的幫助和自己的資料查找下,歷經(jīng)兩周時(shí)間,我通過(guò)數(shù)據(jù)庫(kù)設(shè)計(jì)階段的需求分析,概念模型設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì)等步驟,自行設(shè)計(jì)一套學(xué)校食堂管理系統(tǒng),在下面的各章中,我將以這套學(xué)校食堂管理系統(tǒng)為例,談?wù)勂溟_(kāi)發(fā)過(guò)程和所涉及到的問(wèn)題。1.2設(shè)計(jì)目的由于我的專業(yè)是軟件,而數(shù)據(jù)庫(kù)是軟件領(lǐng)域不可或缺的重要組成部分,有句話說(shuō)得好,要想學(xué)好軟件,C語(yǔ)言,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫(kù)是必須要學(xué)好的,而要想學(xué)好數(shù)據(jù)庫(kù),光學(xué)習(xí)理論知識(shí)是不行的,必須要理論結(jié)合實(shí)際,自己通過(guò)構(gòu)思開(kāi)發(fā)出一套數(shù)據(jù)庫(kù)系統(tǒng),只有在實(shí)踐中,我們才能更好地掌握所學(xué)的知識(shí),為將來(lái)的工作打下良好的基礎(chǔ)。我們學(xué)校有4個(gè)食堂,人數(shù)眾多,高峰期有占不上座位的情況,而且食堂的數(shù)據(jù)量非常大,比如客流量,菜的信息,窗口信息,盈利額等,而且有的菜有時(shí)沒(méi)有銷售,而且學(xué)生在就餐時(shí),有的同學(xué)不知道具體的飯菜質(zhì)量怎么樣,在選擇時(shí)產(chǎn)生了疑惑。對(duì)于員工來(lái)說(shuō),他們需要知道食堂,窗口和菜的評(píng)分,對(duì)評(píng)分低的進(jìn)行整改。而且能及時(shí)處理學(xué)生訂的外賣。我設(shè)計(jì)這套食堂管理系統(tǒng)有以下幾個(gè)目的:1學(xué)生在就餐之前可以查找自己想要的各個(gè)食堂人流情況,菜譜,營(yíng)業(yè)的現(xiàn)狀,以及好評(píng)度等,對(duì)客流量大的食堂可以進(jìn)行外賣點(diǎn)餐。也可以對(duì)食堂進(jìn)行評(píng)價(jià)。2讓食堂的員工通過(guò)使用本系統(tǒng)可以及時(shí)掌握學(xué)生需求的動(dòng)態(tài),提高食堂的管理效率。3食堂的管理員根據(jù)學(xué)生的評(píng)價(jià)信息表,可以提高食堂的管理水平。對(duì)評(píng)分低的項(xiàng)目進(jìn)行整改。實(shí)踐和鞏固在課堂教學(xué)中學(xué)習(xí)的關(guān)于關(guān)系數(shù)據(jù)庫(kù)原理的有關(guān)知識(shí)、SQL SERVER的有關(guān)知識(shí)和數(shù)據(jù)庫(kù)系統(tǒng)的建立方法,熟練掌握對(duì)于給定實(shí)際問(wèn)題,為了建立一個(gè)關(guān)系數(shù)據(jù)庫(kù)信息管理系統(tǒng),必須得經(jīng)過(guò)系統(tǒng)調(diào)研、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、系統(tǒng)調(diào)試、維護(hù)以及系統(tǒng)評(píng)價(jià)的一般過(guò)程,為畢業(yè)設(shè)計(jì)打下基礎(chǔ)。1.3設(shè)計(jì)內(nèi)容選擇課題并且對(duì)課題的相關(guān)信息有一定的了解,對(duì)于我選的課題來(lái)說(shuō),我必須了解食堂管理系統(tǒng)的構(gòu)造,有哪些功能,并確定完成這些功能需要的相應(yīng)實(shí)體,屬性及聯(lián)系,將這些信息輸入到數(shù)據(jù)庫(kù)中,使之能夠進(jìn)行查詢、修改、刪除并且與食堂管理系統(tǒng)執(zhí)行相同的操作。在需求分析階段,需要完成食堂管理系統(tǒng)的具體分類和實(shí)施過(guò)程流圖。概念設(shè)計(jì)階段要完成數(shù)據(jù)抽象與局部視圖設(shè)計(jì)以及視圖的集成。邏輯結(jié)構(gòu)設(shè)計(jì)階段要把E-R圖轉(zhuǎn)化為關(guān)系模式。最后是數(shù)據(jù)庫(kù)的實(shí)施和運(yùn)行。第二章 需求分析2.1 需求分析的任務(wù)需求分析階段的任務(wù)是對(duì)系統(tǒng)的整個(gè)應(yīng)用情況做全面的、詳細(xì)的調(diào)查,確定企業(yè)組織的目標(biāo),收集支持系統(tǒng)總的設(shè)計(jì)目標(biāo)和對(duì)這些數(shù)據(jù)的要求,確定用戶的需求,并把這些要求寫成用戶和數(shù)據(jù)庫(kù)設(shè)計(jì)者都能夠接受的文檔。首先,我做的是調(diào)查食堂管理系統(tǒng)應(yīng)用領(lǐng)域涉及的內(nèi)容,對(duì)涉及到領(lǐng)域的各個(gè)應(yīng)用的信息要求和操作要求進(jìn)行詳細(xì)分析,形成需求分析說(shuō)明書。最重要的是調(diào)查、收集信息、分析各個(gè)功能所需要的數(shù)據(jù)及處理流程。處理要求、數(shù)據(jù)的安全性與完整性要求。要求系統(tǒng)能有效、快速、安全、可靠和無(wú)誤的完成上述操作。并要求客戶機(jī)的界面要簡(jiǎn)單明了,易于操作,服務(wù)器程序利于維護(hù)。2.2 需求分析的過(guò)程 1、分析用戶活動(dòng),產(chǎn)生用戶活動(dòng)圖。 2、確定系統(tǒng)范圍,產(chǎn)生系統(tǒng)范圍圖。 3、分析用戶活動(dòng)所涉及的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流圖。 4、分析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典。 通過(guò)我對(duì)學(xué)校食堂的調(diào)查分析,我得出了食堂以下幾點(diǎn)特點(diǎn): 每個(gè)食堂都會(huì)有若干個(gè)窗口,每個(gè)窗口有若干工作人員。工作人員分為食堂管理員,窗口管理員和一般員工,一般員工負(fù)責(zé)送餐。 每位同學(xué)都有唯一的學(xué)號(hào)并被分配到指定的宿舍樓和指定的宿舍,有姓名,年齡,性別和聯(lián)系方式。 學(xué)生在學(xué)校食堂就餐,有菜名和就餐時(shí)間。 每個(gè)員工都有唯一的員工號(hào),還有姓名,性別,年齡,聯(lián)系方式和職位 每個(gè)食堂都有編號(hào),負(fù)責(zé)人的員工號(hào),營(yíng)業(yè)狀況,如果正在營(yíng)業(yè)則會(huì)有客流量,同時(shí)還會(huì)有學(xué)生對(duì)其的評(píng)價(jià)。 每個(gè)窗口都有編號(hào)和所屬食堂編號(hào),并對(duì)在此窗口出售的菜進(jìn)行編號(hào),另外還有此窗口的營(yíng)業(yè)狀況,以及學(xué)生對(duì)其的評(píng)價(jià)。 每道菜有編號(hào),菜名和價(jià)錢,所屬食堂的編號(hào)和窗口編號(hào),同時(shí)有此時(shí)的銷售狀況,以及學(xué)生對(duì)其的評(píng)價(jià)。 每個(gè)學(xué)生可以對(duì)食堂,窗口和菜評(píng)價(jià)打分,同時(shí)每個(gè)學(xué)生對(duì)其評(píng)價(jià)時(shí)都會(huì)自動(dòng)生成一個(gè)編號(hào)。 每個(gè)外賣都有訂單號(hào)以及訂此外賣的學(xué)生的學(xué)號(hào)。 外賣是由食堂的一般工作人員負(fù)責(zé)送的,有員工編號(hào),訂餐編號(hào)和狀態(tài)。若已送,則會(huì)有送餐時(shí)間。 每道菜又有對(duì)應(yīng)的銷售總量以及總價(jià) 總結(jié)了以上食堂的基本特點(diǎn)以后,我再說(shuō)明一下食堂的業(yè)務(wù)流程: 1.學(xué)生根據(jù)食堂的營(yíng)業(yè)狀況,好評(píng)度和客流量,選擇理想的食堂就餐。 2學(xué)生到某個(gè)食堂的某個(gè)窗口去點(diǎn)餐,員工會(huì)點(diǎn)擊學(xué)生點(diǎn)的某些菜,系統(tǒng)會(huì)統(tǒng)計(jì)此菜的編號(hào),從數(shù)據(jù)庫(kù)調(diào)出其價(jià)格,同時(shí)統(tǒng)計(jì)出點(diǎn)餐的合計(jì)金額,同時(shí)記錄并更改菜的銷售數(shù)量。 3.食堂管理員可以根據(jù)數(shù)據(jù)庫(kù)中訂餐表查看同學(xué)們訂的餐以及相關(guān)信息。 4學(xué)生可以查看食堂現(xiàn)狀的基本信息。學(xué)生可以查看所有食堂的人流量,某些食堂某些窗口某些菜是否在出售。 5工作人員可根據(jù)訂外賣的單的住址等信息去送外賣;同時(shí)更改每個(gè)外賣的狀態(tài)和時(shí)間。 以上就是我對(duì)食堂管理系統(tǒng)的需求分析,要求系統(tǒng)能有效、快速、安全、可靠和無(wú)誤的完成上述操作。并要求客戶機(jī)的界面要簡(jiǎn)單明了,易于操作,服務(wù)器程序利于維護(hù)。2.3數(shù)據(jù)字典與流程圖1業(yè)務(wù)流程分析經(jīng)過(guò)可行性分析和初步需求調(diào)查,抽象出該系統(tǒng)業(yè)務(wù)流程圖,結(jié)合該實(shí)例具體情況,給出學(xué)生和食堂工作人員對(duì)食堂相關(guān)信息的具體需求。 圖2.1 學(xué)校食堂管理流程圖 調(diào)查用戶需求 學(xué)生對(duì)食堂的需求l 功能:學(xué)生首先查看食堂的基本信息,比如是否營(yíng)業(yè),客流量,好評(píng)度,哪些窗口和出售的菜名等,然后選擇合適的食堂進(jìn)行就餐。在選擇窗口和菜時(shí),可以根據(jù)自己的喜好來(lái)選擇,也可以根據(jù)好評(píng)度來(lái)選擇。l 同學(xué)可以通過(guò)外賣系統(tǒng)來(lái)訂外賣,訂完時(shí),系統(tǒng)會(huì)生成訂餐信息。l 同學(xué)們也可以對(duì)食堂,窗口和菜的質(zhì)量來(lái)進(jìn)行打分。l 統(tǒng)計(jì)功能:u 按菜編號(hào)統(tǒng)計(jì)食堂所擁有的菜,以及銷售情況。u 可以按照好評(píng)度降序排列來(lái)選擇食堂,窗口和菜。食堂工作人員需求:l 查詢功能:食堂的工作人員能查詢自己工作的食堂和窗口的相關(guān)信息,包括食堂擁有的窗口,該窗口所有菜的信息,正在出售的菜的信息,該窗口的外賣單的信息,銷售狀況,好評(píng)度等,有利于對(duì)食堂和窗口更好地進(jìn)行管理,對(duì)好評(píng)度低的食堂,窗口和菜等進(jìn)行整改。l 更改功能:當(dāng)窗口的菜單的信息發(fā)生變化時(shí),工作人員能對(duì)其進(jìn)行修改。比如,某些菜銷售完畢,在銷售狀況總就應(yīng)該改成F(空);或者某些菜的價(jià)格改變,記錄中價(jià)格的信息也要作相應(yīng)的修改等。l 當(dāng)有學(xué)生在該窗口點(diǎn)餐,工作人員可以去統(tǒng)計(jì)銷售額,合計(jì)總額;l 當(dāng)有同學(xué)訂外賣,可以及時(shí)生成訂單的詳細(xì)信息,確保準(zhǔn)確無(wú)誤地送到指定地點(diǎn)。 就餐信息需求l 基本功能:記錄學(xué)生在食堂的就餐情況l 統(tǒng)計(jì)功能:u 統(tǒng)計(jì)食用某道菜的人數(shù)u 統(tǒng)計(jì)食用某道菜的時(shí)間u 統(tǒng)計(jì)某人食用的菜名l 查詢功能:u 上食堂就餐的同學(xué)信息查詢:就餐同學(xué)姓名就餐同學(xué)住址就餐同學(xué)學(xué)號(hào)就餐同學(xué)性別就餐同學(xué)年齡就餐同學(xué)聯(lián)系方式 外賣信息需求l 查詢功能:u 外賣號(hào)u 訂外賣的同學(xué)相關(guān)信息u 送餐的員工的相關(guān)信息u 是否送餐以及送餐時(shí)間2系統(tǒng)模塊分析在調(diào)查完了用戶需求之后,就要開(kāi)始分析用戶需求。在此,我們采用自頂向下的結(jié)構(gòu)化分析方法(SA方法)。首先,定義全局概念結(jié)構(gòu)的框架,如圖2.2所示。圖2.2食堂管理系統(tǒng)總框架圖3數(shù)據(jù)字典將所有子系統(tǒng)全部細(xì)化。將所有用戶需求分析完畢之后,就要開(kāi)始構(gòu)造數(shù)據(jù)字典了。數(shù)據(jù)字典提供了對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)描述的集中管理,它的功能是存儲(chǔ)和檢索各種數(shù)據(jù)描述,如描述性的數(shù)據(jù)定義等,并且為DBA提供有關(guān)的報(bào)告。經(jīng)分析之后,本系統(tǒng)要用到11個(gè)基本表:食堂信息表,窗口信息表,菜單信息表,學(xué)生信息表,員工信息表,就餐信息表,送餐信息表,收入信息表,外賣信息表,送餐信息表,評(píng)價(jià)信息表。數(shù)據(jù)結(jié)構(gòu)定義如表2.1所示。表2.1 數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)名含義說(shuō)明組成食堂信息定義了食堂的有關(guān)信息食堂編號(hào),營(yíng)業(yè)狀況,好評(píng)度,客流量,員工號(hào)窗口信息定義了窗口的有關(guān)信息窗口編號(hào),食堂號(hào),好評(píng)度,營(yíng)業(yè)狀況,工作人員菜單信息表定義了菜單的有關(guān)信息菜編號(hào),窗口編號(hào),食堂編號(hào),菜名,好評(píng)度,狀況,價(jià)錢評(píng)價(jià)信息定義了某同學(xué)對(duì)食堂,窗口,菜的評(píng)價(jià)的有關(guān)信息評(píng)價(jià)編號(hào),學(xué)號(hào),食堂編號(hào),窗口編號(hào),菜編號(hào),食堂分?jǐn)?shù),窗口分?jǐn)?shù),菜分?jǐn)?shù)學(xué)生信息定義了學(xué)生的有關(guān)信息學(xué)號(hào),姓名,性別,年齡,住址,聯(lián)系方式就餐信息定義了學(xué)生的就餐信息學(xué)號(hào),菜編號(hào),就餐時(shí)間菜收入信息定義了某一種菜收入的有關(guān)信息銷售編號(hào),菜編號(hào),數(shù)量,收入員工信息定義了員工的有關(guān)信息員工號(hào),姓名,性別,年齡,職位,聯(lián)系方式外賣信息定義了外賣的有關(guān)信息學(xué)號(hào),訂餐號(hào)訂餐信息定義了訂餐的有關(guān)信息訂餐號(hào),食堂號(hào),窗口號(hào),菜編號(hào),數(shù)量,總價(jià)送餐信息定義了每一份外賣的送餐人員訂餐號(hào),員工號(hào),狀態(tài),送餐時(shí)間第三章 概念結(jié)構(gòu)設(shè)計(jì)3.1 概念結(jié)構(gòu)設(shè)計(jì)的方法與步驟數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)階段的任務(wù)是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)。概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵階段,其主要任務(wù)是通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模式。 概念設(shè)計(jì)階段我采用自底向上的方法,即自頂向下的進(jìn)行需求分析,然后再自底向上的進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)。對(duì)已經(jīng)細(xì)化到無(wú)法再分的階段逐步集成在一起,最終合成一個(gè)全局概念模式。3.2 數(shù)據(jù)抽象與局部視圖設(shè)計(jì)按照?qǐng)D2.2食堂管理系統(tǒng)總框架圖,設(shè)計(jì)局部E-R圖。圖3.1食堂和窗口信息局部E-R圖 圖3.2窗口和菜信息局部E-R圖 圖3.3銷售收入和菜信息局部E-R圖 圖3.4員工和食堂信息局部E-R圖 圖3.5員工和窗口信息局部E-R圖 圖3.6學(xué)生就餐信息局部E-R圖圖3.7學(xué)生訂餐信息局部E-R圖 圖3.8員工送餐信息局部E-R圖 圖3.9學(xué)生評(píng)價(jià)信息局部E-R圖 3.3視圖的集成 經(jīng)過(guò)逐步細(xì)化再進(jìn)行每?jī)蓚€(gè)一集成初步形成一個(gè)E-R圖,最后得到圖3.10總體概念結(jié)構(gòu)E-R圖。圖3.10系統(tǒng)總體結(jié)構(gòu)E-R圖第四章 邏輯結(jié)構(gòu)設(shè)計(jì)4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換將圖3.10總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型。將轉(zhuǎn)化的關(guān)系模式進(jìn)行優(yōu)化,最終達(dá)到第三范式。 食堂信息表(食堂編號(hào),營(yíng)業(yè)狀況,好評(píng)度,客流量,員工編號(hào))窗口信息表(窗口編號(hào),營(yíng)業(yè)狀況,好評(píng)度,食堂編號(hào),員工編號(hào)) 菜單信息表(菜編號(hào),窗口編號(hào),食堂編號(hào),菜名,狀況,價(jià)錢,好評(píng)度) 同學(xué)評(píng)價(jià)信息單(打分編號(hào),食堂編號(hào),食堂分?jǐn)?shù),窗口編號(hào),窗口分?jǐn)?shù),菜編號(hào),菜分?jǐn)?shù),學(xué)號(hào),時(shí)間)菜收入信息表(銷售編號(hào),菜編號(hào),收入)員工信息表(員工編號(hào),姓名,性別,年齡,職位,聯(lián)系方式)學(xué)生信息表(學(xué)號(hào),姓名,性別,年齡,住址,聯(lián)系方式)就餐信息表(學(xué)號(hào),菜編號(hào),時(shí)間)外賣信息表(學(xué)號(hào),訂餐號(hào))訂餐信息表(訂餐號(hào),食堂號(hào),窗口號(hào),菜編號(hào),數(shù)量,總價(jià))送餐信息表(訂餐號(hào),員工號(hào),狀況,送餐時(shí)間)4.2 基本表結(jié)構(gòu) 根據(jù)各個(gè)實(shí)體以及實(shí)體之間的聯(lián)系,再根據(jù)總體結(jié)構(gòu)圖設(shè)計(jì)各表的結(jié)構(gòu),其相應(yīng)表的定義如下:字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Cnovarchar10否主鍵食堂編號(hào)Cconditionchar1是否營(yíng)業(yè)Cevaluationsmallint好評(píng)度Ccustomersmallint客流量Enovarchar10否外鍵員工號(hào)表4-1食堂信息表的結(jié)構(gòu) 表4-2 窗口信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Wnovarchar10否主鍵窗口編號(hào)Wconditionchar1是否營(yíng)業(yè)Enovarchar10否外鍵員工編號(hào)Cnovarchar10否外鍵食堂編號(hào)Wevaluationsmallint10好評(píng)度 表4-3 菜單信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Dnovarchar10否主鍵菜編號(hào)Wnovarchar10否外鍵窗口編號(hào)Cnovarchar10否外鍵食堂編號(hào)Dnamevarchar30否菜名Dconditionchar1是否供應(yīng)pricefloat價(jià)錢Devaluationsmallint好評(píng)度 表4-4學(xué)生評(píng)價(jià)表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Pno varchar否主鍵評(píng)價(jià)編號(hào)Cnovarchar10外鍵食堂編號(hào)Cpointsmallint食堂分?jǐn)?shù)Wnovarchar10外鍵窗口編號(hào)Wpointsmallint窗口分?jǐn)?shù)Dnovarchar10外鍵菜單編號(hào)Dpointsmallint菜單分?jǐn)?shù)Snovarchar20外鍵學(xué)號(hào) 表4.5 菜收入信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Inovarchar10否主鍵銷售編號(hào)Dnovarchar10否外鍵菜編號(hào)Incomefloat收入 表4.6 員工數(shù)據(jù)信息表的結(jié)構(gòu) 字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Enovarchar10否主鍵員工號(hào)Enamevarchar20否姓名sexchar2性別agesmallint年齡Eposvarchar20職位Ephonevarchar20聯(lián)系方式 表4.7 學(xué)生信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Snovarchar20否主鍵學(xué)號(hào)Snamevarchar20否姓名sexchar2否性別agesmallint否年齡Saddvarchar20否住址Sphonevarchar20否聯(lián)系方式 表4.8 學(xué)生就餐信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Snovarchar20否主鍵外鍵學(xué)號(hào)Dnovarchar10否外鍵菜編號(hào)Sdatedatetime否就餐時(shí)間 表4.9 外賣信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Tnovarchar10否主鍵訂餐號(hào)Snovarchar20否 學(xué)號(hào)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Tnovarchar10否主鍵訂餐號(hào)Cnovarchar10外鍵食堂號(hào)Wnovarchar10外鍵窗口號(hào)Dnovarchar10外鍵菜編號(hào)Tcountsmallint數(shù)量sumfloat總價(jià) 表4.10 訂餐信息表的結(jié)構(gòu)表4.11 送餐信息表的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度是否為空主/外鍵備注Tnovarchar10否主鍵外鍵訂餐號(hào)Enovarchar10否外鍵員工號(hào)Tconditionchar1否狀況第五章 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)5.1數(shù)據(jù)庫(kù)的建立Create database 食堂管理系統(tǒng)on primary (name=食堂管理系統(tǒng),Filename=E:program filesLSL食堂管理系統(tǒng)_data.mdf,Size=4MB,Maxsize=10MB,Filegrowth=1MB)Log on(name=食堂管理系統(tǒng)_log,Filename=E:program filesLSL食堂管理系統(tǒng)_log.ldf,Size=1MB,Maxsize=6MB,Filegrowth=1%)5.2 數(shù)據(jù)庫(kù)基本結(jié)構(gòu)的建立1、基本表的建立學(xué)生信息表的創(chuàng)建Create table student(Sno varchar(20) primary key,Sname varchar(20) not null,Sadd varchar(20),Sphone varchar(20),Sex char(2),Age smallint);員工信息表的創(chuàng)建Create table Employee(Eno varchar(10) primary key,Ename varchar(20) not null,Epos varchar(20),Ephone varchar(20),Sex char(2),Age smallint);食堂表創(chuàng)建Create table cafeteria(Cno varchar(10) primary key,Ccondition char(1),Cevaluation smallint,Ccustomer smallint,Eno varchar(10) not null,Foreign key(Eno) references Employee(Eno);窗口表的創(chuàng)建Create table chuangkou(Wno varchar(10) primary key,Wcondition char(1),Eno varchar(10) not null,Cno varchar(10) not null,Wevaluation smallintForeign key(Cno) references cafeteria(Cno)Foreign key(Eno) references Employee(Eno);菜單信息表的創(chuàng)建Create table cai(Dno varchar(10) primary key,Wno varchar(10) not null,Cno varchar(10) not null,Dname char(30) not null,Dcondition char(1),Price float,Devaluation smallintForeign key (Cno) references cafeteria(Cno)Foreign key (Wno) references cafeteria(Wno);同學(xué)評(píng)價(jià)表的創(chuàng)建Create table pingjia(Pno varchar(10) primary key,Cno varchar(10),Cpoint varchar(10),Wno varchar(10),Wpoint varchar(10),Dno varchar(10),Dpoint varchar(10),Sno varchar(20)Foreign key(Cno) references cafeteria(Cno)Foreign key(Wno) references window(Wno)Foreign key(Sno) references student(Sno)Foreign key(Dno) references dish(Dno);收入表的創(chuàng)建Create table Income(Ino varchar(10) primary key,Dno varchar(10) not null,Income floatForeign key(Dno) references dish(Dno);訂餐信息表的創(chuàng)建Create table dingcan(Tno varchar(10) primary key,Cno varchar(10),Wno varchar(10),Dno varchar(10),Tcount int,Sum float,Foreign key(Dno) references dish(Dno),Foreign key(Cno) references cafeteria(Cno),Foreign key(Wno) references window(Wno);外賣信息表的創(chuàng)建Create table waimai(Tno varchar(10),Sno varchar(10),Wdate datetime,primary key(Tno,Sno);學(xué)生就餐信息表的創(chuàng)建Create table jiucan(Sno varchar(20),Dno varchar(10),Sdate datetime,Primary key(Sno,Dno),Foreign key(Sno) references student(Sno),Foreign key(Dno) references dish(Dno),);送餐信息表的創(chuàng)建Create table songcan(Tno varchar(10),Eno varchar(10),Tcondition char(1) not null,Primary key(Tno,Eno),Foreign key(Tno) references dingcan(Tno),Foreign key(Eno) references Employee(Eno);2、添加數(shù)據(jù)insert into student values(0912310124,原濤,11號(hào) 1506樓24,男);3、視圖的建立Create view view_waimaiAs select sname,Cno,Wno,Dno,Tcount,sumFrom student,waimai,dingcanWhere student.Sno=waimai.Sno and waimai.Tno=dingcan.Tno4、 索引的建立建立窗口評(píng)價(jià)按降序排列的唯一索引create unique index Wpingjia on Window(Wevaluation desc)建立食堂信息表的聚簇索引create clustered index shitanghao on cafeteria(Cno)建立窗口信息表的聚簇索引create clustered index windowhao on window(Wno)建立菜單信息表的聚簇索引create clustered index Dishhao on dish(Dno)建立學(xué)生評(píng)價(jià)信息表的聚簇索引create clustered index pingjiahao on pingjia(Pno)建立菜收入信息表的聚簇索引create clustered index Incomehao on Income(Ino)建立員工信息表的聚簇索引create clustered index Employeehao on Employee(Eno)建立學(xué)生信息表的聚簇索引create clustered index studenthao on student(Sno)建立學(xué)生就餐信息表的聚簇索引create clustered index jiucanhao on jiucan(Sno)建立外賣信息表的聚簇索引create clustered index waimaihao on jwaimai(Tno)建立訂餐信息表的聚簇索引create clustered index dingcanhao on dingcan(Tno)建立送餐信息表的聚簇索引create clustered index songcanhao on songcan(Tno)5、 游標(biāo)的建立建立以下游標(biāo),能實(shí)現(xiàn)對(duì)表student的按行讀取數(shù)據(jù)declare cs_student scroll cursorforselect sno,sname,sadd,sphonefrom studentfor read onlyopen cs_studentfetch from cs_student不斷執(zhí)行fetch from cs_student語(yǔ)句,則能不斷顯示每行數(shù)據(jù)。在菜單表上定義一個(gè)包含Dname,price,Devaluation的游標(biāo),游標(biāo)的名稱為dish_cursor,將游標(biāo)中絕對(duì)位置為2的菜名改為“肉末木耳”,價(jià)錢改為3.2元,好評(píng)度改為87declare dish_cursor scroll cursorforselect Dname,price,Devaluationfrom dishfor update of Dname,price,Devaluationopen dish_cursorfetch absolute 2 from dish_cursorupdate dishset Dname=肉末木耳,price=3.2,Devaluation=87where current of dish_cursorfetch absolute 2 from dish_cursor6、存儲(chǔ)過(guò)程的建立建立名為dish_name的存儲(chǔ)過(guò)程,功能為:顯示每個(gè)訂餐號(hào)對(duì)應(yīng)的基本信息,包括訂餐號(hào),菜編號(hào),菜名,菜所在的食堂號(hào),菜所在的窗口號(hào),菜價(jià)以及好評(píng)度等信息。create procedure dish_nameas select tno,dish.dno,dname,o,dish.wno,price,devaluationfrom dingcan,dishwhere dingcan.dno=dish.dno創(chuàng)建一個(gè)存儲(chǔ)過(guò)程cai_price,功能如下:輸入菜價(jià),如果大于3.5,則輸出菜太貴,并輸出菜價(jià);如果小于3.5,則輸出菜比較便宜,并輸出菜價(jià)create procedure cai_price dprice floatasdeclare ddprice floatselect ddprice=pricefrom dishwhere dish.dno=dpriceif ddprice=3.5print 菜太貴,價(jià)錢為:+convert(char(2),dprice)+元elseprint 菜比較便宜,價(jià)錢為+convert(char(2),dprice)+元5.3安全性的實(shí)現(xiàn)1、利用圖形化工具為了提高安全性,建立系統(tǒng)用戶,SQL SERVER用戶,數(shù)據(jù)庫(kù)用戶。系統(tǒng)用戶名:loginSQL SERVER用戶名:LSL數(shù)據(jù)庫(kù)用戶名:LSL為SQL SERVER用戶,數(shù)據(jù)庫(kù)用戶分配角色,寫出分配的角色名。分配的角色名:role,db_owner2、利用Transact-SQL設(shè)計(jì)一個(gè)SQL server登錄賬戶,并設(shè)置密碼,寫出相應(yīng)的SQL語(yǔ)句。Sp_addlogin LSL,123為登錄帳戶,設(shè)計(jì)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)用戶,寫出相應(yīng)的SQL語(yǔ)句。Sp_grantdbaccess LSL,LSL為數(shù)據(jù)庫(kù)用戶創(chuàng)建數(shù)據(jù)庫(kù)角色,寫出相應(yīng)的SQL語(yǔ)句。sp_addrolemember db_owner,LSLsp_addrole role,LSL5.4完整性的實(shí)現(xiàn)1、UNIQUE約束UNIQUE約束指定一個(gè)或多個(gè)列的組合的值具有唯一性,以防止在列中輸入重復(fù)值。與主鍵約束的區(qū)別是:主鍵約束在每個(gè)表中規(guī)定的主鍵只能有一個(gè),且主鍵不允許有空值。但是在UNIQUE約束中是允許有空值的,并且可以在多個(gè)列上定義。比如創(chuàng)建菜單信息表時(shí),規(guī)定了菜名不能重復(fù)。Create table dish(Dno varchar(10) primary key,Wno varchar(10),Cno varchar(10),Dname char(30) UNIQUE,Dcondition char(1),Price float,Devaluation smallint);2、CHECK約束CHECK約束在SQL Server中被定義在表約束和列約束中。它允許指定包括在列中的值。例如,定義某列的值的范圍,值列表等。在創(chuàng)建菜單信息表時(shí),如指定菜價(jià)在0到10之間,則SQL語(yǔ)句為:Create table cai(Dno varchar(10) primary key,Wno varchar(10),Cno varchar(10),Dname char(30) UNIQUE,Dcondition char(1),Price float check(price between 0 and 10),Devaluation smallint);或者,建好表之后,可以輸入如下語(yǔ)句增加CHECK約束。alter table dishadd constraint check_pricecheck(price=0 and price0再創(chuàng)建一個(gè)規(guī)則,要求使用該規(guī)則的列的取值在0到100之間:Create rule dafenAsvalue between 0 and 100使用系統(tǒng)存儲(chǔ)過(guò)程sp_bindrule將dishname綁定到dish表中的Dname列Use diancaiExec sp_bindrule dishname,dish.dname使用系統(tǒng)存儲(chǔ)過(guò)程sp_bindrule將dafen綁定到dish表中的Devaluation列Use diancaiExec sp_bindrule dafen,dish.devaluation5.5恢復(fù)技術(shù)的實(shí)現(xiàn)完成所有數(shù)據(jù)的設(shè)計(jì)工作后,備份數(shù)據(jù)庫(kù).將食堂管理系統(tǒng)備份到E:LSLshitangguanli.bak在查詢編輯器中輸入如下語(yǔ)句Backup database 食堂管理系統(tǒng)To disk=E:LSLshitangguanli.bakWith format第六章 運(yùn)行與結(jié)果6.1簡(jiǎn)單查詢和連接查詢1、簡(jiǎn)單查詢輸出食堂的基本信息Select *From cafeteria輸出食堂窗口的基本信息Select *From window輸出菜單的基本信息select *from dish查詢數(shù)學(xué)系或計(jì)算機(jī)系姓張的學(xué)生的信息。select * from studentwhere Sdept in (交通系,信息系)and sname like 李% 輸出所有姓”李”的同學(xué)的基本信息select *from studentwhere sname like 李%2、連接查詢輸出訂外賣的學(xué)生的基本信息以及外賣的基本信息select dingcan.Tno as 訂餐編號(hào),Cno as 食堂編號(hào),Wno as 窗口編號(hào),Dno 菜編號(hào),Tcount as 數(shù)量,sum 總價(jià),student.Sno as 學(xué)號(hào),Sname as 姓名,sex as 性別,age as 年齡,Sadd as住址,Sphone as 聯(lián)系方式from waimai,student,dingcanwhere student.sno=waimai.sno and dingcan.tno=waimai.tno輸出食堂的基本信息以及相應(yīng)的管理員的基本信息select *from cafeteria,employeewhere cafeteria.eno=employee.eno輸出學(xué)生的基本信息以及學(xué)生對(duì)食堂,窗口和菜評(píng)價(jià)的基本信息select *from student,pingjiawhere student.sno=pingjia.sno查詢“李詩(shī)林”同學(xué)對(duì)菜的評(píng)價(jià)以及菜的相關(guān)信息select *from pingjia,dishwhere ping

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論