題目11-某公司的自助餐管理系統(tǒng)_第1頁
題目11-某公司的自助餐管理系統(tǒng)_第2頁
題目11-某公司的自助餐管理系統(tǒng)_第3頁
題目11-某公司的自助餐管理系統(tǒng)_第4頁
題目11-某公司的自助餐管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大型數(shù)據(jù)庫開發(fā)與設(shè)計題 目: 某公司的自助餐管理系統(tǒng) 學(xué) 號: 姓 名: 班 級: 目錄一、引言11.1背景與目的11.2后臺數(shù)據(jù)庫SQL Server 2008簡介1二、系統(tǒng)需求分析12.1系統(tǒng)功能分析22.21子模塊功能分析32.2系統(tǒng)功能模塊設(shè)計42.21系統(tǒng)功能管理模塊42.3數(shù)據(jù)流圖52.3.1交易數(shù)據(jù)流圖62.3.2整體流圖72.4可行性分析82.5數(shù)據(jù)字典8三、概念結(jié)構(gòu)設(shè)計93.1構(gòu)思ERD的四條原則103.2 設(shè)計ER圖103.2.1分ER圖10四、邏輯結(jié)構(gòu)設(shè)計124.1 一般邏輯模型設(shè)計:134.1.1 由ERD導(dǎo)出一般關(guān)系模型的四條原則134.1.2 數(shù)據(jù)庫初步的關(guān)系框架(

2、E-R圖向關(guān)系模型轉(zhuǎn)化)134.1.3數(shù)據(jù)模型優(yōu)化144.2具體邏輯模型設(shè)計144.3設(shè)計用戶子模式18五、物理結(jié)構(gòu)設(shè)計195.1建立索引195.2建立觸發(fā)器20六、數(shù)據(jù)庫結(jié)構(gòu)的實現(xiàn)216.1數(shù)據(jù)定義216.1.1創(chuàng)建表格SQL語句226.1.2創(chuàng)建視圖SQL語句236.1.3創(chuàng)建索引SQL語句246.3數(shù)據(jù)查詢256.4數(shù)據(jù)更新256.4.1數(shù)據(jù)添加256.4.2數(shù)據(jù)修改256.4.3數(shù)據(jù)刪除26七、總結(jié)27某公司的自助餐管理系統(tǒng)一、 引言1.1背景與目的隨著一些公司規(guī)模的不斷擴(kuò)大,公司后勤管理工作也日趨繁雜許多大型公司擁有自己的食堂,這些食堂要實現(xiàn)統(tǒng)一的協(xié)調(diào)管理,就不得不借助現(xiàn)代化的管理模

3、式 網(wǎng)絡(luò)管理模式。由于某公司為了提高職工的福利待遇,規(guī)定每個員工每天可以在職工食堂用餐兩次(每餐3元),可以中午用餐一次,下午用餐一次;也可以集中到中午或下午一次用餐兩次。月底進(jìn)行核算,如果用餐次數(shù)不足,餐費不退還職工。公司根據(jù)實際的用餐次數(shù)支付食堂餐費。根據(jù)題目要求,需要設(shè)計并創(chuàng)建該公司的自助餐管理系統(tǒng),這樣不僅提高了工作效率,也避免了以前手工作業(yè)的麻煩,從而使得管理者能夠準(zhǔn)確,有效的管理餐飲。1.2后臺數(shù)據(jù)庫SQL Server 2008簡介SQL全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language)”,最早的是IBM的圣約瑟研究實驗室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTE

4、M R開發(fā)的一種查詢語言,它的前身是SQUARE語言。SQL語言結(jié)構(gòu)簡潔,功能強大,簡單易學(xué),所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應(yīng)用。SQL是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。SQL不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng)可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操縱對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語言可以嵌套,這使他具有極大的靈活性和強大的功能,在多數(shù)情況下

5、,在其他語言中需要一大段程序?qū)崿F(xiàn)的一個單獨事件只需要一個SQL語句就可以達(dá)到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句。二、 系統(tǒng)需求分析 隨著21世紀(jì)的到來,人們更深切地感受到了計算機(jī)在生活和工作中的作用越來越重要,越來越多職業(yè)需要具有計算機(jī)的應(yīng)用技能。掌握計算機(jī)是職業(yè)的雪要,更是事業(yè)發(fā)展的需要。 信息在社會和經(jīng)濟(jì)的發(fā)展中所起的作用越來越為人們所重視。信息資源的開發(fā)利用水平已成為衡量一個國家綜合國力的重要標(biāo)志之一。在計算機(jī)的三大主要應(yīng)用領(lǐng)域(科學(xué)計算、數(shù)據(jù)處理與過程控制)中,數(shù)據(jù)處理的比重占70%左右。計算機(jī)作為信息處理的工具,為適應(yīng)數(shù)據(jù)處理需求的迅速提高,滿足各類系統(tǒng)對數(shù)據(jù)處理的要

6、求,在文件系統(tǒng)的基礎(chǔ)上發(fā)展起了數(shù)據(jù)庫系統(tǒng)。 隨著計算機(jī)計算機(jī)技術(shù)的飛速發(fā)展,計算機(jī)在企業(yè)管理中應(yīng)用及普及,利用計算機(jī)實現(xiàn)企業(yè)信息管理勢在必行。本課題以企業(yè)食堂為對象,作為要面對大量的課程設(shè)計項目及相關(guān)信息的處理,這就需要一個課程設(shè)計管理系統(tǒng)來提高管理工作的效率。通過本系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計和快速查詢,從而減少管理工作方面的工作量。 數(shù)據(jù)處理技術(shù)已深入到我們工作和生活的方方面面,而數(shù)據(jù)庫技術(shù)是數(shù)據(jù)處理不可缺少的手段。隨著數(shù)據(jù)庫技術(shù)的發(fā)展,面向?qū)ο蟮臄?shù)據(jù)庫、分布式數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、數(shù)據(jù)庫開發(fā)工具的研究方興未艾,這些技術(shù)的發(fā)展使用軟件的開發(fā)速度更快、成本更低、質(zhì)量更好、功能更強。

7、管理信息系統(tǒng)是一門新興的、集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)及計算機(jī)科學(xué)為一體的綜合性學(xué)科,研究的是信息管理活動的全過程,以便有效的管理信息,提供各類管理決策信息,輔助企業(yè)進(jìn)行現(xiàn)代化管理。管理信息系統(tǒng)它具備數(shù)據(jù)處理、計劃、控制、預(yù)測和輔助決策功能,具體作用如下5點內(nèi)容:(1)用統(tǒng)一標(biāo)準(zhǔn)處理和提供信息,排除使用前后矛盾的不完整的數(shù)據(jù)。(2)完整、及時提供在管理及決策中需要的數(shù)據(jù)。(3)利用指定的數(shù)據(jù)關(guān)系分析數(shù)據(jù),客觀預(yù)測未來。(4)向各級管理機(jī)構(gòu)提供不同詳細(xì)程度的報告,縮短分析和解釋的時間。(5)用最低的費用最短的時間提供盡可能精確、可靠的信息,以便使決策者選擇最佳的實施方案,以提高企業(yè)的經(jīng)濟(jì)效益。

8、2.1系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務(wù)是受用計算機(jī)信息管理技術(shù),實現(xiàn)公司的自助餐管理各種信息的系統(tǒng)化,規(guī)范化,自動化,提高公司食堂管理的效率。對應(yīng)用系統(tǒng)項目的開發(fā),首先要對程序要實現(xiàn)的功能和目標(biāo)進(jìn)行整體分析和規(guī)劃,確保在后期開發(fā)中不會出現(xiàn)遺漏或重大缺陷。因此在軟件開發(fā)中,要嚴(yán)格按照軟件工程的流程進(jìn)行系統(tǒng)的分析和設(shè)計系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基本上完成的。主要功能: 1、職工信息管理2、職工食堂信息管理3、成本核算管理其中主要任務(wù)為職工信息管理和成本核算管理??偟墓δ芴攸c:l 完善、全面的綜合查詢l 報表翔實,實用性強2.21子模塊功能分析職工信息管理:對來自客戶端的不同用戶進(jìn)行權(quán)限審查

9、,限定對數(shù)據(jù)庫的訪問級別職工信息管理職工信息添加職工信息修改職工信息查詢職工信息刪除職工用餐信息管理:記錄員工用餐的次數(shù),包括每日用餐次數(shù)和每月的用餐次數(shù);職工用餐信息管理本月用餐次數(shù)每月用餐次數(shù)本日用餐次數(shù)l 本日用餐次數(shù):記錄本日用餐次數(shù),每增加一個便同步使每月用餐次數(shù)也增加一次,每日用餐次數(shù)不大于2次。成本核算管理: 對成本利潤的綜合分析。成本包括公司的本月開銷和之前月份公司開銷的統(tǒng)計記錄;成本核算管理公司每月開銷公司本月開銷公司本月開銷:統(tǒng)計公司本月的開銷,員工本月消費一次則增長3元的開銷。公司每月開銷:記錄之前每月的開銷情況。2.2系統(tǒng)功能模塊設(shè)計對上述各項功能進(jìn)行集中、分塊分析,按

10、照結(jié)構(gòu)化程序設(shè)計的要求,得到如圖所示的這個系統(tǒng)的功能模塊圖2.21系統(tǒng)功能管理模塊公司自助餐管理系統(tǒng)職工信息管理職工用餐信息管理成本核算管理職工信息查詢職工信息修改職工信息添加職工信息刪除本月用餐次數(shù)每月用餐次數(shù)本日用餐次數(shù)公司本月開銷公司每月開銷2.3數(shù)據(jù)流圖【注釋:數(shù)據(jù)流圖,簡稱DFD,是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型】數(shù)據(jù)流程圖是組織中信息運動的抽象,是管理信息系統(tǒng)邏輯模型的主要形式。它可以綜合的反映出信息在系統(tǒng)中的流動、處理和存儲情況,具有良好的抽象性和概括性。它在調(diào)查的

11、基礎(chǔ)上,從系統(tǒng)的科學(xué)性、管理的合理性、實際運行的可行性角度出發(fā),將信息處理功能和彼此之間的聯(lián)系自頂向下、逐層分解,從邏輯上精確地描述系統(tǒng)應(yīng)具有的數(shù)據(jù)加工、數(shù)據(jù)輸入、數(shù)據(jù)輸出、數(shù)據(jù)存儲及數(shù)據(jù)來源和去向(外部實體)等項目。數(shù)據(jù)流程圖和系統(tǒng)的物理描述無關(guān),它所描述的內(nèi)容不涉及技術(shù)細(xì)節(jié),而是面向用戶的,即使完全不懂信息技術(shù)的用戶也容易理解。因此,數(shù)據(jù)流程圖成為系統(tǒng)分析員與用戶進(jìn)行交流的有效手段,同時也成為系統(tǒng)設(shè)計的主要依據(jù)之一。用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢等方面,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為

12、數(shù)據(jù)庫的具體設(shè)計打下基礎(chǔ)。數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理之間的關(guān)系。數(shù)據(jù)流圖是有層次之分的,越高層次的數(shù)據(jù)流圖表現(xiàn)的業(yè)務(wù)邏輯越抽象,越底層次的數(shù)據(jù)流圖表現(xiàn)得業(yè)務(wù)邏輯越具體。在仔細(xì)的分析調(diào)查有關(guān)食堂管理信息需求的基礎(chǔ)上,得到如下圖所示的這個系統(tǒng)所處理的數(shù)據(jù)流程。根據(jù)以上的分析,我們可以先畫出分流程圖,然后可以綜合分流程圖,畫出整個系統(tǒng)操作的業(yè)務(wù)流程圖2.3.1交易數(shù)據(jù)流圖職工辦卡基本信息輸入職工信息管理職工交易成本結(jié)算管理結(jié)算信息輸入2.3.2整體流圖整體流圖簡圖:成本結(jié)算管理消費者信息管理庫存管理結(jié)算信息收款管理預(yù)訂信息管理2.4可行性分析可行性分析是系統(tǒng)分析階段的重要活動,是對系統(tǒng)進(jìn)行全面、概要的

13、分析。它的任務(wù)是確定項目開發(fā)是否必要和可行。它的主要目標(biāo)是:進(jìn)一步明確系統(tǒng)的目標(biāo)、規(guī)模和功能,對系統(tǒng)開發(fā)背景、必要性和意義進(jìn)行調(diào)查分析,并根據(jù)需要和可能提出擬開發(fā)系統(tǒng)的初步方案和計劃,明確問題,對所提供系統(tǒng)大致規(guī)模和目標(biāo)的幾個有關(guān)約束條件進(jìn)行論證,并且提出系統(tǒng)的邏輯模型和各種可能的方案,從而為系統(tǒng)開發(fā)項目的決策提供科學(xué)依據(jù)。其主要從三個方面進(jìn)行研究:(1)技術(shù)可行性:對現(xiàn)有技術(shù)進(jìn)行評價,以明確能否利用現(xiàn)有技術(shù)進(jìn)行系統(tǒng)開發(fā)及系統(tǒng)實施。計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展和計算機(jī)硬件性價比的不斷提升,使計算機(jī)全面應(yīng)用于醫(yī)院管理的各個環(huán)節(jié)成為可能。C/S開發(fā)模式、COM、DCOM技術(shù)在國內(nèi)各行各業(yè)的信息管理系統(tǒng)開發(fā)

14、中已經(jīng)被廣泛采用,實踐證明這些技術(shù)都非常適合食堂管理系統(tǒng)的開發(fā)。(2)經(jīng)濟(jì)可行性:對組織的經(jīng)濟(jì)狀況和投資能力進(jìn)行分析,對系統(tǒng)建設(shè)、運行和維護(hù)費用進(jìn)行評估,對系統(tǒng)建成后可能取得的社會及經(jīng)濟(jì)效益進(jìn)行估計。連鎖餐飲企業(yè)整體規(guī)模龐大,個體規(guī)模小而營管理相對簡單統(tǒng)一,開發(fā)成本不高,一旦開發(fā)成功,即能直接應(yīng)用在所有同種食堂。(3)營運可行性:指系統(tǒng)對組織機(jī)構(gòu)的影響,對現(xiàn)有人員和機(jī)構(gòu)、設(shè)施、環(huán)境等的適應(yīng)性以及進(jìn)行人員培訓(xùn)補充計劃的可行性。連鎖餐飲企業(yè)整體規(guī)模龐大,個體規(guī)模小而營管理相對簡單統(tǒng)一。所以食堂系統(tǒng)的計算機(jī)信息管理人才、計算機(jī)硬件設(shè)備、操作員的計算機(jī)應(yīng)用能力都為系統(tǒng)的運行過程提供了可靠保證。2.5數(shù)

15、據(jù)字典由于數(shù)據(jù)流程圖只是對數(shù)據(jù)處理及彼此之間的聯(lián)系進(jìn)行說明,未對數(shù)據(jù)的詳細(xì)內(nèi)容及數(shù)據(jù)的加工過程進(jìn)行說明,而這正是數(shù)據(jù)字典所要表達(dá)的。數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集合,也就是對數(shù)據(jù)流程圖中包含的所有元素的定義的集合。它能將數(shù)據(jù)流程圖中全部數(shù)據(jù)流及其組成部分的數(shù)據(jù)元素、數(shù)據(jù)存儲、數(shù)據(jù)加工等描述清楚,便于后續(xù)工作系統(tǒng)設(shè)計的進(jìn)行。數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要成果。數(shù)據(jù)字典通常包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存諸和處理過程5個部分。其中數(shù)據(jù)項是最小組成單位,若干數(shù)據(jù)項組成一個數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲和邏輯內(nèi)容。針

16、對一般食堂管理信息系統(tǒng)的需求,通過對食堂管理工作過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計如下所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu):l 數(shù)據(jù)結(jié)構(gòu)名稱:職工用餐卡信息 含義說明:這里指的是職工用來使用付款的工具卡的一系列信息,它記錄了包括它本身以及持卡者的一些信息包括的數(shù)據(jù)項有:1) 卡號(消費者使用的用來付款的卡的編號,與消費者辦卡的先后順序有關(guān)別名Card_number 字符型 長度6)2) 余額(今日剩余用餐量)(消費者卡中所剩的金錢數(shù)量,別名Balance 字符型長度 6)3) 辦卡日期(消費者辦卡的日期,別名Card_date 日期型 長度 8)4) 持卡者姓名(擁有信息卡的消費者的名稱,別名 Person_n

17、ame 字符型 長度 10)5) 花費(用餐次數(shù)統(tǒng)計)(消費者所消費的金錢數(shù)量 別名Consume 字符型 長度 20)l 數(shù)據(jù)結(jié)構(gòu)名稱:員工信息含義說明:消費者群體之一,可以自由選擇消費方式,辦過卡用卡交易或者用現(xiàn)金交易包括的數(shù)據(jù)項有:1) 工號(職工在公司所編的號碼 別名 S_number 字符型 長度 6)2) 部門(職工所在的部門的名稱 別名 S_system 字符型 長度 16)3) 職位(職工所擔(dān)任的職位 別名 S_class 字符型 長度 20)4) 姓名(職工的姓名 別名 S_name 字符型 長度 10)5) 性別 (職工的性別 別名 S_sex 字符型 長度 4)6) 地址

18、(職工的所在地址 別名 S_adress 字符型 長度 20)7) 聯(lián)系方式(職工的手機(jī)號碼 別名 S_tel 字符型 長度 20)三、概念結(jié)構(gòu)設(shè)計這一設(shè)計階段是在需求分析的基礎(chǔ)上,設(shè)計出能滿足用戶需求的各種實體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型的過程就是概念結(jié)構(gòu)設(shè)計。它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵。概念結(jié)構(gòu)設(shè)計的特點是能真實、充分的反映現(xiàn)實世界,包括事物和事物的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是對現(xiàn)實世界的一個真實的模型。易于理解,從而可以用它和不熟悉計算機(jī)的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫設(shè)計成功的關(guān)鍵。易于改正,當(dāng)應(yīng)用環(huán)境

19、和應(yīng)用要求改變時,易于對概念模型修改和擴(kuò)充。易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨立于機(jī)器、更抽象,從而更加穩(wěn)定。概念結(jié)構(gòu)是對現(xiàn)實世界的一種抽象。所謂抽象是對實際的人、物、事和概念進(jìn)行人為處理,抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念準(zhǔn)確的加以描述。概念結(jié)構(gòu)設(shè)計通常分為四種方法:自頂向下,即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。自底向上,即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu)。逐步擴(kuò)張,首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)張?;旌喜呗裕醋皂斚蛳潞妥缘紫蛏辖Y(jié)合,用自頂向下策略設(shè)計一

20、個全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計的各局部概念結(jié)構(gòu)。通常分為兩步,第一步是抽象數(shù)據(jù)并設(shè)計局部視圖,第二步是集成局部視圖,得到全局視圖。下面首先對實體和其屬性加以描述,再寫出系統(tǒng)的分E-R圖,進(jìn)而合并成為整體的E-R圖。3.1構(gòu)思ERD的四條原則原則1:能獨立存在的事物,例如人、物、事、地、團(tuán)體、機(jī)構(gòu)、活動、事項等等,在其有多個由基本項描述的特性需要關(guān)注時,就應(yīng)把它作為實體。原則2:兩個或多個實體間的關(guān)聯(lián)與結(jié)合,如主管、從屬、組成、占有、作用、配合、協(xié)同等等,當(dāng)需要予以關(guān)注時,應(yīng)作為聯(lián)系。聯(lián)系通常是某類行為動作,ERD中關(guān)注的是其狀態(tài)與結(jié)果而非其過程。原則3:實體的屬性是實

21、體的本質(zhì)特征。實體應(yīng)有標(biāo)識屬性(能把不同個體區(qū)分開來的屬性組),并指定其中一個作為主標(biāo)識。聯(lián)系的屬性是聯(lián)系的結(jié)果或狀態(tài)。屬性具有如下幾個特點:a.非多值性;b.非復(fù)合性;c.非導(dǎo)出性。而實體的屬性還應(yīng)有非關(guān)聯(lián)性。原則4(一事一地原則):所有基本項在同一E-R圖中作為屬性要在僅在一個地方出現(xiàn)3.2 設(shè)計ER圖根據(jù)上面的設(shè)計規(guī)劃出的實體有:卡信息實體、學(xué)生信息實體、教師信息實體、消費者實體、包房信息實體、訂餐信息實體、消費情況實體、管理員信息實體。各個實體具體的描述E-R圖及其之間的關(guān)系描述如下。3.2.1分ER圖圖3-1 為卡信息實體E-R圖卡信息卡號余額持卡者姓名辦卡日期花費圖3-2 為職工信

22、息實體E-R圖職工信息職工號部門職位姓名地址聯(lián)系方式性別圖3-3 為消費情況實體E-R圖消費情況本日已經(jīng)消費本日剩余消費本月已經(jīng)消費本月剩余消費每月消費統(tǒng)計圖3-4 為卡信息實體、職工信息實體、消費者實體關(guān)系E-R圖職工信息卡信息屬于持有卡號余額辦卡日期持卡人姓名聯(lián)系方式職位員工號姓名部門地址花費消費者消費類別消費者類別姓名消費序號性別性別 N 1 1 1四、邏輯結(jié)構(gòu)設(shè)計現(xiàn)在需要把上面設(shè)計好的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為SQL Server2008數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)庫模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。此部分使用PowerDesigner進(jìn)行數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,最終導(dǎo)出物理結(jié)構(gòu)模型和邏輯結(jié)構(gòu)模型,并生成

23、SQL Server 2008數(shù)據(jù)庫文件。4.1 一般邏輯模型設(shè)計:4.1.1 由ERD導(dǎo)出一般關(guān)系模型的四條原則原則1:E-R圖中的每一個獨立實體變換為一個關(guān)系,其屬性變?yōu)殛P(guān)系的屬性,其主標(biāo)識變?yōu)殛P(guān)系的主碼。原則2:E-R圖中的從實體及相應(yīng)的“的”聯(lián)系變換為一個關(guān)系,從實體的屬性加上主體關(guān)系的主碼構(gòu)成這個關(guān)系的屬性。如果“的”聯(lián)系是1:1的,則以主實體關(guān)系的主碼(作為外來碼)為這個關(guān)系的主碼;如果“的”聯(lián)系是1:M的,則以主實體關(guān)系的主碼加上同一主實體個體聯(lián)系的不同從屬實體個體賴以相互區(qū)分的屬性組,組成該關(guān)系的主碼。原則3:1:M聯(lián)系通過在“多”實體關(guān)系中增加相聯(lián)系的“1”實體關(guān)系的主碼及聯(lián)

24、系本身的屬性來表達(dá)。其中“1”實體主碼為外來碼。原則4:M:M聯(lián)系轉(zhuǎn)換成一個獨立的關(guān)系,被聯(lián)系實體關(guān)系的主碼(作為外來碼)和聯(lián)系本身的屬性作為該關(guān)系的屬性,被聯(lián)系實體關(guān)系的主碼組成其復(fù)合主碼。4.1.2 數(shù)據(jù)庫初步的關(guān)系框架(E-R圖向關(guān)系模型轉(zhuǎn)化)關(guān)系模型轉(zhuǎn)化消費情況(日期 用餐次數(shù) 剩余次數(shù) )消費(日期 消費序號)消費者(消費序號 姓名 性別 消費類別 消費者類別)屬于(員工號 消費序號)員工信息(員工號 部門 職位 姓名 性別 地址 聯(lián)系方式)使用(卡號 員工號)卡信息(卡號 余額 辦卡日期 持卡者姓名 花費)持有(卡號 員工號)4.1.3數(shù)據(jù)模型優(yōu)化數(shù)據(jù)庫邏輯設(shè)計的結(jié)果不是唯一的,為

25、了進(jìn)一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,還應(yīng)該根據(jù)應(yīng)用需要適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化。關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo),方法為:1、確定數(shù)據(jù)依賴2、對于各個關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)為的完整性,給數(shù)據(jù)庫維護(hù)增加困難,應(yīng)當(dāng)予以消除。經(jīng)過規(guī)范化理論得出,原關(guān)系模式之間的數(shù)據(jù)依賴已經(jīng)達(dá)到極小化,沒有冗余的聯(lián)系,消除冗余的E-R圖稱為基本E-R圖3、按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進(jìn)行分析,考察是否存在部分函數(shù)依賴,傳遞函數(shù)依賴,多值依賴等,確定各關(guān)系模式分別屬于第幾范式。4、按照需求分析階段得到的處理要求,分析對于這

26、樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對某些模式進(jìn)行合并或分解。5、對關(guān)系模式進(jìn)行必要的分解,提高數(shù)據(jù)操作的效率和存儲空間的利用率。根據(jù)需求分析階段系統(tǒng)的功能分析,這樣的應(yīng)用環(huán)境,這些模式可以完成包括消費者信息管理,預(yù)訂信息管理,成本核算管理,審查工作,庫存管理這些模塊的要求,分析結(jié)果中可在設(shè)計用戶子模式中對不同級別的用戶定義不同的view。優(yōu)化后的關(guān)系模式:消費情況(日期 員工用餐次數(shù) 消費序號)消費者(消費序號 姓名 性別 消費類別 消費者類別)屬于(員工號 消費序號)組成(員工號 消費序號)員工信息(學(xué)號 部門 職位 姓名 性別 地址 聯(lián)系方式)使用(卡號 員工號)卡信息(卡號 余額

27、辦卡日期 持卡者姓名 花費)持有(卡號 員工號)4.2具體邏輯模型設(shè)計在上面的實體以及實體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫中的表格以及各個表格之間的關(guān)系。公司自助餐管理系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如下面的幾個表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表4-1為創(chuàng)建消費情況表ConsumeSituation創(chuàng)建消費情況表ConsumeSituation列名數(shù)據(jù)類型可否為空說明聲明DatedatetimeNOT NULL日期主鍵建立唯一索引TotalLong intNULL一天消費總額建立聚簇索引Consumer_numbernumber(12)NOT NULL消費序號 外鍵表4-2為創(chuàng)建消費者表C

28、onsumer創(chuàng)建消費者表Consumer列名數(shù)據(jù)類型可否為空說明聲明Consumer_numbervarchar(6)NOT NULL消費序號主鍵Consumer_namevarchar(10)NOT NULL姓名Consumer_sexVarchar(4)NULL性別Consume_sortvarchar(10)NULL消費類別Consumer_sortvarchar(10)NULL消費者類別表4-3為創(chuàng)建員工信息表Worker創(chuàng)建員工信息表Worker列名數(shù)據(jù)類型可否為空說明聲明S_numberintNOT NULL員工號主鍵S_namevarchar(10)NOT NULL姓名建立聚簇

29、索引S_sexvarchar(4)NULL性別classvarchar(20)NULL職位S_systemvarchar(16)NULL部門S_dormvarchar(20)NULL地址S_telnumber(15)NULL聯(lián)系方式表4-4為創(chuàng)建消費卡信息表Card創(chuàng)建消費卡信息表Card列名數(shù)據(jù)類型可否為空說明聲明Card_numbernumber(10)NOT NULL卡號主鍵建立唯一索引BalanceintNOT NULL余額建立聚簇索引Card_datedatetime(8)NULL辦卡日期Person_namevarchar(10)NULL持卡者姓名Consumevarchar(20

30、)NULL花費建立聚簇索引表4-5 為創(chuàng)建管理查詢表Manage創(chuàng)建管理查詢表Manage列名數(shù)據(jù)類型可否為空說明Manager_numbervarchar(6)NOT NULL管理員編號DatedatetimeNOT NULL日期表 4-6 為創(chuàng)建屬于表Attribute創(chuàng)建屬于表Attribute列名數(shù)據(jù)類型可否為空說明S_numbervarchar(6)NOT NULL員工號Consumer_numbervarchar(6)NOT NULL消費序號表 4.13 為創(chuàng)建使用表Use創(chuàng)建使用表Use列名數(shù)據(jù)類型可否為空說明S_numbervarchar(8)NOT NULL員工號Card_n

31、umbervarchar(6)NOT NULL卡號表 4.14為創(chuàng)建持有表Hold創(chuàng)建持有表Hold列名數(shù)據(jù)類型可否為空說明Card_numbervarchar(6)NOT NULL卡號T_numbervarchar(6)NOT NULL員工號4.3設(shè)計用戶子模式將概念模型轉(zhuǎn)換為全局邏輯模型后,還應(yīng)該根據(jù)局部應(yīng)用需求,結(jié)合具體DBMS的特點,設(shè)計用戶的外模式。目前關(guān)系數(shù)據(jù)庫管理系統(tǒng)一般都提供了視圖(View)概念,可以利用這一功能設(shè)計更符合局部用戶需要的用戶外模式。定義數(shù)據(jù)庫全局模式主要是從系統(tǒng)的時間效率、空間效率、易維護(hù)等角度出發(fā)。由于用戶外模式與模式是相對獨立的,因此在定義用戶外模式時可以

32、注重考慮用戶的習(xí)慣與方便。包括:1) 使用更符合用戶習(xí)慣的別名。在合并各分ER圖時,曾做了消除命名沖突的工作,以使數(shù)據(jù)庫系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計數(shù)據(jù)庫整體結(jié)構(gòu)時是非常必要的。用View機(jī)制可以在設(shè)計用戶View時重新定義某些屬性名,使其與用戶一致,以方便使用。2) 可以對不同級別的用戶定義不同的View,以保證系統(tǒng)的安全性。 3) 簡化用戶對系統(tǒng)的使用。如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖,用戶每次只對定義好的視圖進(jìn)行查詢,大大簡化了用戶的使用l 消費者查詢信息所建立的視圖1) 員工查詢自己卡中余額 員工查詢視圖S_Bal

33、ance2)管理員查詢消費者信息查詢員工的信息 五、物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫物理的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個給定的邏輯數(shù)據(jù)模型選取最適合應(yīng)用要求的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計。數(shù)據(jù)庫的物理設(shè)計通常分為兩步:1) 確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取方法和存儲結(jié)構(gòu);2) 對物理結(jié)構(gòu)進(jìn)行評價,評價的重點是時間和空間效率。如果評價結(jié)果滿足原設(shè)計要求,則可進(jìn)入到物理實施階段,否則,就需要重新設(shè)計或修改物理結(jié)構(gòu),有時甚至要返回邏輯設(shè)計階段修改數(shù)據(jù)模型。5.1建立索引建立索引是加快查詢速度的有效手段。用戶可以根據(jù)應(yīng)用環(huán)境的需要,在基

34、本表上建立一個或多個索引,以提供多種存取路徑,加快查找速度。一般來說,建立與刪除索引由數(shù)據(jù)庫管理員DBA或表的屬主(owner),即建立表的人,負(fù)責(zé)完成。系統(tǒng)在存取數(shù)據(jù)時會自動選擇合適的索引作為存取路徑,用戶不必也不能顯示地選擇索引。索引的選擇方法,一般來說:1. 如果一個(或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則考慮在這個(或這組)屬性上建立索引(或組合索引);2. 如果一個屬性經(jīng)常作為最大值或最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引;由上所述建立以下索引u 為庫存信息表Stock建立索引1) 按Trade_name,stock_number,建立聚簇索引,2) 按entertime升

35、序,建立唯一索引u 為消費情況表ConsumeSituation建立索引1) 按Total建立聚簇索引2) 按Date升序,建立唯一索引u 為訂餐信息表book_eat建立索引1) 按Consumer_name,Booktime建立聚簇索引2) 按Consumer_number升序,建立唯一索引u 為卡信息表Card建立索引1) 按Balance ,Consume建立聚簇索引2) 按Card_number升序,建立唯一索引u 為學(xué)生信息表Student建立索引1) 按S_name建立聚簇索引u 為學(xué)生信息表Teacher建立索引1) 按T_name建立聚簇索引5.2建立觸發(fā)器觸發(fā)器(Trigg

36、er)是用戶定義在表上的一類由事件驅(qū)動的特殊過程。一旦定義,任何用戶對表的增、刪、改操作均由服務(wù)器自動激活相應(yīng)得觸發(fā)器,在DBMS核心層進(jìn)行集中的完整性控制。觸發(fā)器類似于約束,但是比約束更加靈活,可以實施比FOREIGN KEY約束,CHECK約束更為復(fù)雜的檢查和操作,具有更精細(xì)和更強大的數(shù)據(jù)控制能力。觸發(fā)器的執(zhí)行,是由觸發(fā)事件激活的,并由數(shù)據(jù)庫服務(wù)器自動執(zhí)行的。一個數(shù)據(jù)表上可能定義了多個觸發(fā)器,比如BEFORE觸發(fā)器,多個AFTER觸發(fā)器等。同一個表上的多個觸發(fā)器激活時遵循如下執(zhí)行順序:(1) 執(zhí)行該表上的BEFORE觸發(fā)器;(2) 激活觸發(fā)器的SQL語句;(3) 執(zhí)行該表上的AFTER觸發(fā)

37、器。 對于同一個表上的多個BEFORE(AFTER)觸發(fā)器,遵循“誰先創(chuàng)建誰先執(zhí)行”的原則,即按照觸發(fā)器創(chuàng)建的先后順序執(zhí)行。有些RDBMS是按照觸發(fā)器的名稱的字母排序順序執(zhí)行觸發(fā)器。l 定義AFTER行級觸發(fā)器,當(dāng)管理員表Manager的工資發(fā)生變化后就自動在工資變化表Inc_log中增加一條相應(yīng)的記錄首先建立工資變化表Inc_logCREATE TABLE Inc_log(Manager_number varchar(6) REFERENCES Manager(Manager_number), Income int,Manager_name varchar(6),Date TIMESTAMP

38、);接著建立觸發(fā)器 Insert_IncCREATE TRIGGER Insert_IncAFTER INSERT ON ManagerFOR EACH ROWAS BEGIN INSERT INTO Inc_log VALUES(NEW. Manager_number,NEW.Income,CURRENT_USER,CURRENT_TIMESTAMP);END;CREATE TRIGGER Update_IncAFTER UPDATE ON ManagerFOR EACH ROWAS BEGIN IF(NEW.IncomeOLD.Income)THEN INSERT INTO Inc_log

39、 VALUES(NEW. Manager_number,NEW. Income,CURRENT_USER,CURRENT_TIMESTAMP);END IF;END;六、數(shù)據(jù)庫結(jié)構(gòu)的實現(xiàn)經(jīng)過前面的系統(tǒng)需求分析和概念結(jié)構(gòu)設(shè)計以后,得到數(shù)據(jù)庫邏輯結(jié)構(gòu),數(shù)據(jù)庫物理結(jié)構(gòu)?,F(xiàn)在就可以在SQL Server2008數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)上面設(shè)計的數(shù)據(jù)庫結(jié)構(gòu)。這一步是利用SQL Server 2008數(shù)據(jù)庫系統(tǒng)中的SQL查詢分析器實現(xiàn)的。6.1數(shù)據(jù)定義關(guān)系數(shù)據(jù)庫系統(tǒng)支持三級模式結(jié)構(gòu),其模式、外模式和內(nèi)模式中的基本對象有表、視圖和索引。因此SQL的數(shù)據(jù)定義功能包括模式定義、表定義、視圖和索引的定義,如下表所示。表

40、6.1 SQL的數(shù)據(jù)定義語句操作對象操作方式創(chuàng)建刪除修改表CREATE TABLEDROP TABLE視圖CREATE VIEWDROP VIEWALTER TABLE索引CREATE INDEXDROP INDEX6.1.1創(chuàng)建表格SQL語句下面給出創(chuàng)建這些表格的SQL語句:1) 為創(chuàng)建消費情況表ConsumeSituationCREATE TABLE ConsumeSituation(Date datetime PRIMARY KEY, Total bigint NOT NULL, Consumer_number varchar(6) NOT NULL, FOREIGN KEY (Cons

41、umer_number) REFERENCES Consumer(Consumer_number),);2) 為創(chuàng)建員工表ConsumerCREATE TABLE Consumer(Consumer_number varchar(6) PRIMARY KEY, Consumer_name varchar(10) NOT NULL, Consumer_sex varchar(4), Consume_sort varchar(10), Consumer_sort varchar(10),);3) 為創(chuàng)建員工卡信息表CardCREATE TABLE Card(Card_number varchar(

42、6) PRIMARY KEY, Balance varchar(6) NOT NULL, Card_date datetime, Person_name varchar(10), Consume varchar(20), );4) 為創(chuàng)建管理查詢表ManageCREATE TABLE Manage(Manager_number varchar(6) NOT NULL, Date datetime NOT NULL, PRIMARY KEY (Manager_number, Date), Foreign key (Manager_number) references Manager(Manage

43、r_number), foreign key (Date) references ConsumeSituation(Date) );5) 為創(chuàng)建屬于表Attribute CREATE TABLE Attribute(S_number varchar(8) NOT NULL, Consumer_number varchar(6) NOT NULL, PRIMARY KEY (S_number), FOREIGN KEY (Consumer_number) REFERENCES Consumer(Consumer_number) );6) 為創(chuàng)建組成表Compose CREATE TABLE Co

44、mpose(T_number varchar(6) NOT NULL, Consumer_number varchar(6) NOT NULL, PRIMARY KEY (T_number), FOREIGN KEY (Consumer_number) REFERENCES Consumer(Consumer_number) );7) 為創(chuàng)建使用表Using CREATE TABLE Using( S_number varchar(8) NOT NULL, Card_number varchar(6) NOT NULL, PRIMARY KEY (Card_number), FOREIGN K

45、EY (S_number) REFERENCES Student(S_number) );8) 為創(chuàng)建持有表Hold CREATE TABLE Hold(Card_number varchar(6) NOT NULL, T_number varchar(6) NOT NULL, PRIMARY KEY (Card_number), FOREIGN KEY (T_number) REFERENCES Teacher(T_number) );6.1.2創(chuàng)建視圖SQL語句視圖是從一個或幾個基本表(或視圖)導(dǎo)出的的表。它與基本表不同,是一個虛表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)

46、據(jù)仍存放在原來的基本表中。所以基本表中數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也就隨之改變了。從這個意義上講,視圖就像一個窗口,透過它可以看到數(shù)據(jù)庫中自己感興趣的數(shù)據(jù)及其變化。視圖還擁有以下優(yōu)點:1) 視圖能夠簡化用戶的操作2) 視圖使用戶能以多種角度看待同一數(shù)據(jù)3) 視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性4) 視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)5) 適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢l 消費者查詢信息所建立的視圖1) 員工查詢自己卡中余額(剩余用餐次數(shù)) 員工查詢視圖S_Balance CREATE VIEW S_Balance(sno,sname,cno,balance)ASSELECT S_n

47、umber,S_name,Card_number,BalanceFROM Student,Cardl 管理員查詢信息所建立的視圖 1) 食堂總支出 CREATE VIEW Trade_money(Trademoney,entertime,outtime)AS SELECT Price*(Enter_number-stock_number),entertime,outtimeFROM Stock2) 管理員查詢消費者信息查詢員工的信息CREATE VIEW Select_studentAS SELECT Consumer_number, Consume_sort,S_number,S_name,

48、S_sex,class,S_system, S_dorm, S_telFROM Consumer, StudentWHERE Consumer_sort=員工 6.1.3創(chuàng)建索引SQL語句u 為消費情況表ConsumeSituation建立索引1) 按Total建立聚簇索引CREATE CLUSTER INDEX Cosi_total ON ConsumeSituation (Total)2) 按Date升序,建立唯一索引 CREATE UNIQUE INDEX Cosi_date ON ConsumeSituation (Date)u 為卡信息表Card建立索引1) 按Balance ,Consume建立聚簇索引 CREATE CLUSTER INDEX card_bal ON Card (Balance)CR

溫馨提示

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

評論

0/150

提交評論