工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)_第1頁(yè)
工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)_第2頁(yè)
工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)_第3頁(yè)
工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)_第4頁(yè)
工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)說(shuō)明書(shū)題目工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)系(部)計(jì)算機(jī)科學(xué)與技術(shù)系專(zhuān)業(yè)(班級(jí))姓名學(xué)號(hào)指導(dǎo)教師起止日期課程設(shè)計(jì)任務(wù)書(shū)課程名稱(chēng):數(shù)據(jù)庫(kù)系統(tǒng)原理設(shè)計(jì)題目:數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)1、某工廠(chǎng)需建立一個(gè)管理數(shù)據(jù)庫(kù)存儲(chǔ)以下信息:工廠(chǎng)包括廠(chǎng)名和廠(chǎng)長(zhǎng)名。一個(gè)廠(chǎng)內(nèi)有多個(gè)車(chē)間,每個(gè)車(chē)間有車(chē)間號(hào)、車(chē)間主任姓名、地址和。一個(gè)車(chē)間有多個(gè)工人,每個(gè)工人有職工號(hào)、姓名、年齡、性別和工種。一個(gè)車(chē)間生產(chǎn)多種產(chǎn)品,產(chǎn)品有產(chǎn)品號(hào)、產(chǎn)品名稱(chēng)和價(jià)格。一個(gè)車(chē)間生產(chǎn)多種零件,一個(gè)零件也可能為多個(gè)車(chē)間制造。零件有零件號(hào)、重量和價(jià)格。一個(gè)產(chǎn)品由多種零件組成,一種零件也可裝配出多種產(chǎn)品。產(chǎn)品與零件均存入倉(cāng)庫(kù)中。廠(chǎng)內(nèi)有多個(gè)倉(cāng)庫(kù),倉(cāng)庫(kù)有倉(cāng)庫(kù)號(hào)、倉(cāng)庫(kù)主任姓名和。2、系統(tǒng)功能的根本要求:按照一定條件查詢(xún)、統(tǒng)計(jì)工人和產(chǎn)品等根本信息,能模擬工廠(chǎng)生產(chǎn)過(guò)程中對(duì)原材料〔零件〕、產(chǎn)品檢測(cè)、庫(kù)存環(huán)節(jié)的管理。各階段具體要求:1、需求分析階段定義數(shù)據(jù)項(xiàng)的含義和取值定義目標(biāo)系統(tǒng)的數(shù)據(jù)流2、概念結(jié)構(gòu)設(shè)計(jì)階段畫(huà)出實(shí)體模型E-R圖3、邏輯結(jié)構(gòu)設(shè)計(jì)階段將實(shí)體模型轉(zhuǎn)化為關(guān)系模型給出每個(gè)關(guān)系的主關(guān)鍵字和函數(shù)依賴(lài)集分析你所設(shè)計(jì)的關(guān)系數(shù)據(jù)庫(kù)模式是否屬于3NF4、物理設(shè)計(jì)階段確定所有字段的名稱(chēng)、類(lèi)型、寬度、小數(shù)位數(shù)及完整性約束確定數(shù)據(jù)庫(kù)及表的名稱(chēng)及其組成確定索引文件和索引關(guān)鍵字5、數(shù)據(jù)庫(kù)平安及維護(hù)設(shè)計(jì)階段設(shè)計(jì)一個(gè)適合的數(shù)據(jù)庫(kù)平安策略〔用戶(hù)身份認(rèn)證、訪(fǎng)問(wèn)權(quán)限、視圖〕為了實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)完整性約束,設(shè)計(jì)適當(dāng)?shù)挠|發(fā)器設(shè)計(jì)一個(gè)適合的數(shù)據(jù)庫(kù)備份策略6、實(shí)施階段要求所有操作必須在查詢(xún)分析器中用SQL語(yǔ)句或系統(tǒng)存儲(chǔ)過(guò)程完成。設(shè)計(jì)工作量:〔1〕軟件設(shè)計(jì):完成問(wèn)題陳述中所提到的所有需求功能。〔2〕論文:要求撰寫(xiě)不少于3000個(gè)文字的文檔,詳細(xì)說(shuō)明各階段具體要求。工作方案:安排兩周時(shí)間進(jìn)行課程設(shè)計(jì),軟件開(kāi)發(fā)步驟如下,第一周完成1~4,第二周完成5~8,論文同步進(jìn)行;1) 選定題目 2) 需求分析 3) 概念結(jié)構(gòu)設(shè)計(jì) 4) 邏輯結(jié)構(gòu)設(shè)計(jì) 5) 物理設(shè)計(jì) 6) 數(shù)據(jù)庫(kù)平安及維護(hù)設(shè)計(jì) 7) 數(shù)據(jù)庫(kù)上機(jī)實(shí)現(xiàn) 8) 辯論 設(shè)計(jì)工作量:40課時(shí)工作方案:見(jiàn)課表指導(dǎo)教師簽名:日期:教研室主任簽名:日期:系主任簽名:日期:長(zhǎng)沙學(xué)院課程設(shè)計(jì)鑒定表姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)設(shè)計(jì)題目工廠(chǎng)數(shù)據(jù)庫(kù)管理系統(tǒng)指導(dǎo)教師指導(dǎo)教師意見(jiàn):評(píng)定等級(jí):教師簽名:日期:辯論小組意見(jiàn):評(píng)定等級(jí):辯論小組長(zhǎng)簽名:日期:教研室意見(jiàn):教研室主任簽名:日期:系〔部〕意見(jiàn):系主任簽名:日期:說(shuō)明課程設(shè)計(jì)成績(jī)分“優(yōu)秀〞、“良好〞、“及格〞、“不及格〞四類(lèi);摘要根據(jù)而今信息時(shí)代,信息越來(lái)越多,越復(fù)雜,這時(shí)就需要一種管理數(shù)據(jù)的軟件,本次課程設(shè)計(jì)運(yùn)用SQLserver2023來(lái)實(shí)現(xiàn)數(shù)據(jù)的管理,本次試驗(yàn)通過(guò)SQL語(yǔ)句來(lái)實(shí)現(xiàn)工廠(chǎng)的流程,使工廠(chǎng)運(yùn)行效率到達(dá)最大值,需要對(duì)其進(jìn)行分析需求,邏輯設(shè)計(jì),物理設(shè)計(jì),平安性分析,權(quán)限設(shè)置等操作。關(guān)鍵詞:SQL管理數(shù)據(jù)工廠(chǎng)目錄一、引言71.1編寫(xiě)目的71.2參考資料7二、需求規(guī)約82.1業(yè)務(wù)描述82.2需求分析8三、數(shù)據(jù)庫(kù)環(huán)境說(shuō)明9四、數(shù)據(jù)庫(kù)的命名規(guī)那么94.1數(shù)據(jù)庫(kù)對(duì)象命名規(guī)那么94.2數(shù)據(jù)項(xiàng)編碼規(guī)那么9五、邏輯設(shè)計(jì)105.1創(chuàng)立數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型……………11六、物理設(shè)計(jì)126.1表匯總126.2表總匯136.3視圖的設(shè)計(jì)196.4存儲(chǔ)過(guò)程、函數(shù)及觸發(fā)器的設(shè)計(jì)21七、平安性設(shè)計(jì)237.1防止用戶(hù)直接操作數(shù)據(jù)庫(kù)的方法247.2用戶(hù)帳號(hào)密碼的加密方法247.3角色與權(quán)限25八、數(shù)據(jù)庫(kù)管理與維護(hù)說(shuō)明25九、總結(jié)…………………………25十.附錄………………………..26一、引言編寫(xiě)目的本文檔是數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)文檔的組成局部,編寫(xiě)此數(shù)據(jù)庫(kù)設(shè)計(jì)文檔的目的是:根據(jù)工人數(shù)據(jù)庫(kù)管理系統(tǒng)建立一個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)信息,數(shù)據(jù)庫(kù)表名包含工廠(chǎng),車(chē)間,工人,產(chǎn)品,零件,倉(cāng)庫(kù)。其中工廠(chǎng)包括多個(gè)車(chē)間和多個(gè)倉(cāng)庫(kù),車(chē)間有多個(gè)工人,一個(gè)車(chē)間生產(chǎn)多種產(chǎn)品和多種零件,一個(gè)零件也可能為多個(gè)車(chē)間制造,一個(gè)產(chǎn)品由多種零件組成,一種零件也可裝配出多種產(chǎn)品,產(chǎn)品和零件均存入倉(cāng)庫(kù)中等信息,結(jié)合此信息通過(guò)sql語(yǔ)言來(lái)實(shí)現(xiàn)此管理系統(tǒng)的運(yùn)用,模擬工廠(chǎng)生產(chǎn)過(guò)程中隊(duì)原材料〔零件〕、產(chǎn)品檢測(cè)、庫(kù)存環(huán)節(jié)的管理。本文檔遵循《《工人數(shù)據(jù)庫(kù)管理系統(tǒng)和開(kāi)發(fā)標(biāo)準(zhǔn)》》。本文檔的讀者對(duì)象是需求人員,系統(tǒng)設(shè)計(jì)人員,開(kāi)發(fā)人員,測(cè)試人員。參考資料列出有關(guān)資料的名稱(chēng)、作者、文件編號(hào)或版本等。參考資料包括:a.需求說(shuō)明書(shū)、架構(gòu)設(shè)計(jì)說(shuō)明書(shū)等;b.本工程的其他已發(fā)表的文件;c.引用文件、資料、軟件開(kāi)發(fā)標(biāo)準(zhǔn)等。資料名稱(chēng)作者文件編號(hào)、版本《數(shù)據(jù)庫(kù)系統(tǒng)概論》王珊、薩師煊2006年5月第4版《《數(shù)據(jù)庫(kù)系統(tǒng)原理》實(shí)驗(yàn)指導(dǎo)書(shū)徐長(zhǎng)梅、汪祥2023年9月第一版需求規(guī)約2.1業(yè)務(wù)描述〔1〕數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)立的背景運(yùn)用數(shù)據(jù)庫(kù)相關(guān)信息來(lái)實(shí)現(xiàn)工人管理系統(tǒng)的生產(chǎn)和運(yùn)作。〔2〕數(shù)據(jù)庫(kù)系統(tǒng)要完成的業(yè)務(wù)流程及工作內(nèi)容根據(jù)工人管理系統(tǒng)模擬生產(chǎn)過(guò)程,實(shí)現(xiàn)對(duì)原材料、產(chǎn)品檢測(cè)、庫(kù)存的管理〔4〕揭示該數(shù)據(jù)庫(kù)的資源需求和設(shè)計(jì)約束根據(jù)工人的各個(gè)生產(chǎn)所需的階段,來(lái)建立不同的表,并將這些表連接起來(lái),畫(huà)出實(shí)體模型E-R圖,確定所有字段的名稱(chēng)、類(lèi)型、寬度、小數(shù)位數(shù)及完整性約束,并將實(shí)體模型轉(zhuǎn)化為關(guān)系模型,并設(shè)計(jì)關(guān)鍵字,以及設(shè)計(jì)適當(dāng)?shù)挠|發(fā)器2.2需求分析分析該業(yè)務(wù)流程的內(nèi)在聯(lián)系分析業(yè)務(wù)流程后得出:工廠(chǎng)與車(chē)間為一對(duì)多關(guān)系,車(chē)間與工人為一對(duì)多關(guān)系,車(chē)間與產(chǎn)品為一對(duì)多關(guān)系,倉(cāng)庫(kù)與產(chǎn)品為一對(duì)多關(guān)系,倉(cāng)庫(kù)與零件為一對(duì)多關(guān)系,車(chē)間與零件為多對(duì)多關(guān)系,產(chǎn)品和零件為多對(duì)多關(guān)系,工廠(chǎng)與倉(cāng)庫(kù)為一對(duì)多關(guān)系對(duì)象處理如下:對(duì)象處理: 工廠(chǎng)信息:廠(chǎng)名、廠(chǎng)長(zhǎng)名。 車(chē)間信息:車(chē)間號(hào)、車(chē)間主任姓名、地址和。職工信息:職工號(hào)、姓名、年齡、性別和工種。 產(chǎn)品信息:產(chǎn)品號(hào)、產(chǎn)品名稱(chēng)和價(jià)格。 零件信息:零件號(hào)、重量和價(jià)格。倉(cāng)庫(kù)信息:倉(cāng)庫(kù)號(hào)、倉(cāng)庫(kù)主任姓名和。實(shí)現(xiàn)功能與分析如下:實(shí)現(xiàn)功能:實(shí)現(xiàn)功能其中需要注意的是,平安性需要根據(jù)其需要來(lái)給予其一定程度的平安性,再通過(guò)用戶(hù)授權(quán)機(jī)制,通過(guò)用戶(hù)登陸來(lái)識(shí)別用戶(hù)級(jí)別,再根據(jù)這個(gè)級(jí)別來(lái)分配用戶(hù)權(quán)限,從而實(shí)現(xiàn)更高層次的平安保密功能。完整性要求描述各信息間的關(guān)聯(lián)關(guān)系和制約關(guān)系,需要根據(jù)各個(gè)值的實(shí)際情況來(lái)分析數(shù)據(jù)的數(shù)據(jù)范圍及注意其是否為NULL〔空〕,根據(jù)實(shí)際需要來(lái)滿(mǎn)足要求。分析:此系統(tǒng)首先畫(huà)出了其E-R圖,并用word文檔插入表格并寫(xiě)入各個(gè)表的信息,在對(duì)work(工廠(chǎng)信息)進(jìn)行給該和查詢(xún),包括:創(chuàng)立數(shù)據(jù)庫(kù)信息,查詢(xún)各表信息,更改element(零件表)信息,workman(工人表)信息,建立一個(gè)名為manage存儲(chǔ)過(guò)程,實(shí)現(xiàn)修改element(零件表)信息,workman(工人表)信息。對(duì)于平安性操作,建立了一個(gè)名為chenquanyu的登錄名,名為cqy的用戶(hù),并賦予其表element(零件表),product(產(chǎn)品表)和storage(倉(cāng)庫(kù)表)的privilege(所以權(quán)限)操作,對(duì)product〔產(chǎn)品表〕創(chuàng)立一個(gè)名為IS_product的視圖,對(duì)workman(工人信息表)創(chuàng)立一個(gè)名為IS_work的視圖。并對(duì)product(pno)〔產(chǎn)品號(hào)〕和element(eno)創(chuàng)立一個(gè)索引,并刪除其索引。創(chuàng)立一個(gè)名為tri_update_delete_product的觸發(fā)器,來(lái)觸發(fā)更新產(chǎn)品價(jià)格,并觸發(fā)刪除產(chǎn)品號(hào)為3的信息。最后創(chuàng)立一個(gè)磁盤(pán)備份,名字為work_full,地址為'd:beifen\work.bak',并實(shí)現(xiàn)完全備份和日記備份。數(shù)據(jù)庫(kù)環(huán)境說(shuō)明提示:〔1〕說(shuō)明所采用的數(shù)據(jù)庫(kù)系統(tǒng),設(shè)計(jì)工具,編程工具等〔2〕詳細(xì)配置例如:數(shù)據(jù)庫(kù)實(shí)例數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)部署環(huán)境數(shù)據(jù)庫(kù)設(shè)計(jì)工具數(shù)據(jù)庫(kù)存放位置說(shuō)明工人數(shù)據(jù)庫(kù)管理系統(tǒng)SQLserver2023硬件:2GB內(nèi)存,512M以上軟件:windowsxpMicrosoftOfficeVisio2003和SQLserver2023D盤(pán)根目錄查詢(xún)、統(tǒng)計(jì)工人和產(chǎn)品根本信息,模擬工廠(chǎng)生產(chǎn)過(guò)程數(shù)據(jù)庫(kù)的命名規(guī)那么4.1數(shù)據(jù)庫(kù)對(duì)象命名規(guī)那么數(shù)據(jù)庫(kù)對(duì)象命名規(guī)那么備注表功能描述字符串例如:factory工廠(chǎng)表視圖view_功能描述字符串例如:view_factory工廠(chǎng)視圖索引index_功能描述字符串例如:index_factory工廠(chǎng)索引存儲(chǔ)過(guò)程procedure_功能描述字符串例如:procedure_factory工廠(chǎng)存儲(chǔ)過(guò)程觸發(fā)器trigger_功能描述字符串例如:trigger_factory工廠(chǎng)觸發(fā)器4.2數(shù)據(jù)項(xiàng)編碼規(guī)那么數(shù)據(jù)項(xiàng)命名規(guī)那么數(shù)據(jù)類(lèi)型長(zhǎng)度范圍備注車(chē)間號(hào)車(chē)間序號(hào)〔兩位整數(shù)00-99〕定長(zhǎng)字符串10位workshop_no車(chē)間號(hào)職工姓名姓名〔不定長(zhǎng)〕不定長(zhǎng)字符串4位wname職工姓名產(chǎn)品價(jià)格價(jià)格(不定長(zhǎng))浮點(diǎn)型10pprice產(chǎn)品價(jià)格邏輯設(shè)計(jì)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。一個(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í)體的碼。一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)的E-R圖,轉(zhuǎn)化為與選用的 DBMS所支持的數(shù)據(jù)模型相符的邏輯結(jié)構(gòu),形成邏輯模型。給表信息包含如下:工廠(chǎng)(廠(chǎng)名,廠(chǎng)長(zhǎng)名)車(chē)間(車(chē)間號(hào),車(chē)間主任姓名,地址,)工人(職工號(hào),姓名,年齡,性別,工種)產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名稱(chēng),價(jià)格)零件(零件號(hào),重量,價(jià)格)倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)主任姓名,)生產(chǎn)(車(chē)間號(hào),零件號(hào),生產(chǎn)日期)組裝(產(chǎn)品號(hào),零件號(hào),組裝數(shù))存入(倉(cāng)庫(kù)號(hào),產(chǎn)品號(hào),零件號(hào),存儲(chǔ)量)5.1創(chuàng)立數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系模型如下工廠(chǎng)信息表:factory字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束廠(chǎng)名fnovarchar(10)NOTNULLPrimarykey廠(chǎng)長(zhǎng)名fdnamevachar(10)//工廠(chǎng)與車(chē)間一對(duì)多車(chē)間信息表:workshop字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束車(chē)間號(hào)workshop_nochar(10)NOTNULLPrimarykey車(chē)間主任姓名wdnamevarchar(10)地址wAddressvarchar(10)wtelvarchar(20)廠(chǎng)名fnovarchar(10)NOTNULLForeignkey〔外鍵〕//車(chē)間與工人一對(duì)多工人信息表:workman字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束職工號(hào)wnochar(10)NOTNULLPrimarykey姓名wnamevarchar(10)年齡wageint工種wtypevarchar(10)車(chē)間號(hào)workshop_nochar(10)NOTNULLForeignkey〔外鍵〕//車(chē)間與產(chǎn)品一對(duì)多,倉(cāng)庫(kù)與產(chǎn)品一對(duì)多產(chǎn)品信息表:product字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束產(chǎn)品號(hào)pnovarchar(10)NOTNULLPrimarykey名稱(chēng)pnamevarchar(10)價(jià)格ppricefloat車(chē)間號(hào)workshop_nochar(10)NOTNULLForeignkey〔外鍵〕倉(cāng)庫(kù)號(hào)snochar(10)NOTNULLForeignkey〔外鍵〕//倉(cāng)庫(kù)與零件一對(duì)多零件信息表:element字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束零件號(hào)enochar(10)NOTNULLPrimarykey重量eweightfloat價(jià)格epricefloat倉(cāng)庫(kù)號(hào)snochar(10)NOTNULLForeignkey〔外鍵〕//車(chē)間與零件多對(duì)多車(chē)間與零件信息表:workshop_element字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束車(chē)間號(hào)workshop_nochar(10)NOTNULLPrimarykey零件號(hào)enochar(10)NOTNULLPrimarykey//產(chǎn)品和零件多對(duì)多產(chǎn)品與零件信息表:product_element字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束產(chǎn)品號(hào)pnovarchar(10)NOTNULLPrimarykey零件號(hào)enochar(10)NOTNULLPrimarykey//工廠(chǎng)與倉(cāng)庫(kù)一對(duì)多倉(cāng)庫(kù)信息表:storage字段中文名字段名數(shù)據(jù)類(lèi)型是否為空約束倉(cāng)庫(kù)號(hào)snochar(10)NOTNULLPrimarykey倉(cāng)庫(kù)主任姓名sdnamestel廠(chǎng)名fnovarchar(10)NOTNULLForeignkey〔外鍵〕物理設(shè)計(jì)6.1表匯總表名功能說(shuō)明表element查詢(xún),插入,索引,存儲(chǔ)過(guò)程表product查詢(xún),插入,修改,視圖,索引,權(quán)限設(shè)置,創(chuàng)立存儲(chǔ)過(guò)程表storage查詢(xún),更新,刪除,權(quán)限設(shè)置,存儲(chǔ)過(guò)程6.2工廠(chǎng)表如下:1.工廠(chǎng)信息表:factory表名工廠(chǎng)信息表:factory數(shù)據(jù)庫(kù)用戶(hù)work主鍵fno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1fnoVarchar(10)N主鍵2fdnameVarchar(10)sql腳本createtablefactory( fnovarchar(10)NOTNULLprimarykey, fdnamevarchar(10))備注[備注信息]2.車(chē)間信息表:workshop表名車(chē)間信息表:workshop數(shù)據(jù)庫(kù)用戶(hù)work主鍵workshop_no其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1workshop_nochar(10)N主鍵2wdnamevarchar(10)3waddressvarchar(10)fnovarchar(10)NForeignkey〔外鍵〕sql腳本createtableworkshop( workshop_nochar(10)NOTNULLprimarykey, wdnamevarchar(10), waddressvarchar(10), wtelvarchar(20), fnovarchar(10)NOTNULL, foreignkey(fno)referencesfactory(fno))備注工廠(chǎng)與車(chē)間一對(duì)多3.工人信息表:workman表名工人信息表:workman數(shù)據(jù)庫(kù)用戶(hù)work主鍵wno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1wnochar(10)N主鍵2wnamevarchar(10)3wageint4wtypevarchar(10)5workshop_nochar(10)NForeignkey〔外鍵〕sql腳本createtableworkman( wnochar(10)NOTNULLprimarykey, wnamevarchar(10), wageint, wtypevarchar(10), workshop_nochar(10)NOTNULL, foreignkey(workshop_no)referencesworkshop(workshop_no))備注車(chē)間與工人一對(duì)多4.產(chǎn)品信息表:product表名產(chǎn)品信息表:product數(shù)據(jù)庫(kù)用戶(hù)work主鍵pno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1pnovarchar(10)N主鍵2pnamevarchar(10)3ppricefloat4workshop_nochar(10)NForeignkey〔外鍵〕5snochar(10)NForeignkey〔外鍵〕sql腳本createtableproduct( pnovarchar(10)NOTNULLprimarykey, pnamevarchar(10), ppricefloat, workshop_nochar(10)NOTNULL, snochar(10)NOTNULL, foreignkey(workshop_no)referencesworkshop(workshop_no), foreignkey(sno)referencesstorage(sno))備注車(chē)間與產(chǎn)品一對(duì)多,倉(cāng)庫(kù)與產(chǎn)品一對(duì)多5.零件信息表:element表名零件信息表:element數(shù)據(jù)庫(kù)用戶(hù)work主鍵eno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1enochar(10)N主鍵2eweightfloat3epricefloat4snochar(10)NForeignkey〔外鍵〕sql腳本createtableelement( enochar(10)NOTNULLprimarykey, eweightfloat, epricefloat, snochar(10)NOTNULL, foreignkey(sno)referencesstorage(sno))備注倉(cāng)庫(kù)與零件一對(duì)多6.車(chē)間與零件信息表:workshop_element表名車(chē)間與零件信息表:workshop_element數(shù)據(jù)庫(kù)用戶(hù)work主鍵workshop_no,eno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1fnoworkshop_nochar(10)N主鍵2fdnameenochar(10)N主鍵sql腳本createtableworkshop_element( workshop_nochar(10)NOTNULL, enochar(10)NOTNULL, primarykey(workshop_no,eno), foreignkey(workshop_no)referencesworkshop(workshop_no), foreignkey(eno)referenceselement(eno))備注車(chē)間與零件多對(duì)多7.產(chǎn)品與零件信息表:product_element表名產(chǎn)品與零件信息表:product_element數(shù)據(jù)庫(kù)用戶(hù)work主鍵pno,eno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1pnovarchar(10)N主鍵2enochar(10)N主鍵sql腳本createtableproduct_element( pnovarchar(10)NOTNULL, enochar(10)NOTNULL, primarykey(pno,eno), foreignkey(pno)referencesproduct(pno), foreignkey(eno)referenceselement(eno))備注產(chǎn)品和零件多對(duì)多8.倉(cāng)庫(kù)信息表:storage表名倉(cāng)庫(kù)信息表:storage數(shù)據(jù)庫(kù)用戶(hù)work主鍵sno其他排序字段索引字段序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型〔精度范圍〕允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明1snochar(10)N主鍵2sdnamevarchar(10)stelvarchar(20)fnovarchar(10)NForeignkey〔外鍵〕sql腳本createtablestorage( snochar(10)NOTNULLprimarykey, sdnamevarchar(10), stelvarchar(20), fnovarchar(10)NOTNULL, foreignkey(fno)referencesfactory(fno))備注工廠(chǎng)與倉(cāng)庫(kù)一對(duì)多6.3視圖的設(shè)計(jì)各表關(guān)系圖如下:圖創(chuàng)立視圖過(guò)程如下(1)給產(chǎn)品表創(chuàng)立一個(gè)擁有paname(產(chǎn)品名稱(chēng)),price(產(chǎn)品價(jià)格),以及外鍵的sno(倉(cāng)庫(kù)號(hào))的視圖createviewIS_productasselectsno,pname,ppricefromproduct效果圖如下:圖(2)給工人信息表創(chuàng)立一個(gè)包含有workman(生產(chǎn)表)的所有信息的視圖createviewIS_workmanasselect*fromworkman效果圖如下:圖6.4存儲(chǔ)過(guò)程、函數(shù)及觸發(fā)器的設(shè)計(jì)存儲(chǔ)過(guò)程代碼如下:createproceduremanage--創(chuàng)立一個(gè)名字為manage的存儲(chǔ)過(guò)程(@enochar(10),--定義一些參數(shù)@wnamevarchar(10),@sdnamechar(10),@snochar(10))asdeclare@eweight1float=80.4--申明一個(gè)變量@eweight1ifexists(selecteweightfromelementwhereeweight<@eweight1)updateelementseteweight=80.4--將element(零件)表中的eweight都定義為80.4select*fromelementselectepricefromelementwhereeno=@enoupdateworkmansetwage=10wherewname=@wnameselect*fromworkmanupdatestoragesetsdname=@sdnamewheresno=@snoselect*fromstorageprint'修改后的零件表'execmanage@eno='e03',--當(dāng)eno中為e03時(shí),再查詢(xún)此時(shí)此刻的pprice(價(jià)格)@wname='賀江平',@sdname='張攀攀',@sno='B2'首先創(chuàng)立了一個(gè)名字為manage的存儲(chǔ)過(guò)程,定義一些可以用到得相關(guān)參數(shù),如@eno,@wname,@sdname,@sno,通過(guò)這些參數(shù)傳遞確定的數(shù)據(jù),利用SQL語(yǔ)句結(jié)合在存儲(chǔ)過(guò)程從而實(shí)現(xiàn)想要更改,刪除,插入等相關(guān)的操作.存儲(chǔ)過(guò)程執(zhí)行后的效果圖為:圖6.4索引的建立建立索引使查詢(xún)的時(shí)候按順序排列createuniqueindexpropnoonproduct(pno)--為product表的pno(產(chǎn)品號(hào))建立索引createuniqueindexeenoonelement(eno)--為element表的eno(零件號(hào))建立索引觸發(fā)器的建立與實(shí)現(xiàn)操作為product表創(chuàng)立一個(gè)基于update操作和delete操作的復(fù)合型觸發(fā)器,當(dāng)修改了該表的pprice(價(jià)格)或者刪除了pno(產(chǎn)品號(hào))時(shí),觸發(fā)器被激活生效,顯示相關(guān)的操作信息〔1〕創(chuàng)立觸發(fā)器createtriggertri_update_delete_product--創(chuàng)立觸發(fā)器onproductforupdate,deleteasifupdate(pprice)--更新價(jià)格beginselectinserted.pno,deleted.ppriceas原價(jià)格,inserted.ppriceas新價(jià)格fromdeleted,insertedwheredeleted.pno=inserted.pnoendelseifcolumns_updated()=0beginselectdeleted.pnoas被刪除的產(chǎn)品號(hào),deleted.pname,deleted.ppriceas原價(jià)格fromdeletedend〔2〕觸發(fā)觸發(fā)器1.在查詢(xún)命令窗口中輸入以下update語(yǔ)句,修改產(chǎn)品號(hào)為’01’updateproductsetpprice=pprice+1wherepno='01'視圖如下:2.在查詢(xún)命令窗口中輸入以下delete語(yǔ)句,刪除產(chǎn)品為號(hào)為’03’deleteproductwherepno='03'視圖如下:〔3〕刪除新創(chuàng)立的觸發(fā)器droptriggertri_update_delete_product視圖如下:平安性設(shè)計(jì)SQL包括了windows認(rèn)證和sqlserver混合認(rèn)證,其中sqlserver混合認(rèn)證提供了用戶(hù)登錄方式,而用戶(hù)登錄后想更改操作的話(huà),必須分配給用戶(hù)名權(quán)限,才能對(duì)數(shù)據(jù)庫(kù)的表進(jìn)行相關(guān)操作。以下是用SQL語(yǔ)句實(shí)現(xiàn)的用戶(hù)名登錄,和受權(quán)操作:execsp_grantdbaccess'chenquanyu','cqy'//允許新建登錄名和用戶(hù),其中chenquanyu是登錄名,cqy是用戶(hù)execsp_addlogin'chenquanyu','123456','work'//用戶(hù)名登錄,密碼為123456,默認(rèn)數(shù)據(jù)庫(kù)為workexecsp_addsrvrolemember'chenquanyu','sysadmin'//授予用戶(hù)名chenquanyu一些數(shù)據(jù)庫(kù)操作的權(quán)限GRANTALLprivilegesonproducttocqyGRANTALLprivilegesonelementtocqygrantupdateonstoragetocqy//將product產(chǎn)品表和零件表的所有權(quán)限授予給cqy用戶(hù),倉(cāng)庫(kù)信息表的更新權(quán)限授予給cqy用戶(hù)使用查詢(xún)分析器管理備份設(shè)備和備份數(shù)據(jù)庫(kù)//創(chuàng)立一個(gè)磁盤(pán)備份設(shè)備,名字為work_full,地址為'd:beifen\work.bak'execsp_addumpdevice'disk','work_full','d:\beifen\work.bak'backupdatabaseworktowork_fullwithinit--完全備份備份執(zhí)行如下:backuplogworktowork_fullwithnoinit--日記備份,使用備份語(yǔ)句backup來(lái)備份數(shù)據(jù)庫(kù)日記備份執(zhí)行如下:7.1防止用戶(hù)直接操作數(shù)據(jù)庫(kù)的方法不授予用戶(hù)操作的權(quán)限。用戶(hù)只能用帳號(hào)登陸到應(yīng)用軟件,通過(guò)應(yīng)用軟件訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),而沒(méi)有其他途徑操作數(shù)據(jù)庫(kù)。7.2用戶(hù)帳號(hào)密碼的加密方法用戶(hù)賬戶(hù)密碼加密是在程序里實(shí)現(xiàn)的,將用戶(hù)密碼通過(guò)某種算法加密轉(zhuǎn)換后再存入數(shù)據(jù)庫(kù)。對(duì)用戶(hù)帳號(hào)的密碼進(jìn)行加密處理,確保在任何地方都不會(huì)出現(xiàn)密碼的明文。用戶(hù)帳號(hào)采用MD5進(jìn)行數(shù)據(jù)加密后再錄入數(shù)據(jù)庫(kù),以防止任何地方密碼的平安性要求。7.3角色與權(quán)限確定每個(gè)角色對(duì)數(shù)據(jù)庫(kù)表的操作權(quán)限,如創(chuàng)立、檢索、更新、刪除等。每個(gè)角色擁有剛好能夠完成任務(wù)的權(quán)限,不多也不少。在應(yīng)用時(shí)再為用戶(hù)分配角色,那么每個(gè)用戶(hù)的權(quán)限等于他所兼角色的權(quán)限之和。角色可以訪(fǎng)問(wèn)的表與列操作權(quán)限例如:管理員可訪(fǎng)問(wèn)所有表完全控制權(quán)限角色BProduct表可操作此表全部信息element表可操作此表全部信息Storage表只能操作update權(quán)限數(shù)據(jù)庫(kù)管理與維護(hù)說(shuō)明提示:在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,及時(shí)給出管理與維護(hù)本數(shù)據(jù)庫(kù)的方法,有助于將來(lái)撰寫(xiě)出正確完備的用戶(hù)手冊(cè)。在運(yùn)行數(shù)據(jù)庫(kù)的同時(shí)先要在腦海里想好需求分析,然后再根據(jù)要求畫(huà)出E-R圖,然后再根據(jù)邏輯結(jié)構(gòu)在word文檔下根據(jù)表的信息,依次完成各信息表,然后根據(jù)表與表對(duì)應(yīng)的,1:1,1:n或n:m關(guān)系確定好表的主外鍵,注:多對(duì)多的表還要另外創(chuàng)立一表來(lái)表示兩表之間的關(guān)系。完成表的建立后,接下來(lái)的操作就是往各個(gè)表中插入相關(guān)實(shí)際信息,以及利用SQL語(yǔ)句來(lái)實(shí)現(xiàn)表的插入,插入完畢后,可運(yùn)用建立一個(gè)存儲(chǔ)過(guò)程來(lái)完成表的更新,刪除,插入等操作,操作完畢后可,用SQL語(yǔ)句建立視圖,好讓操作員更能體會(huì)表與表之間的關(guān)系,而且看不出關(guān)鍵隱私代碼,這樣就能很好的維護(hù)數(shù)據(jù)庫(kù)的管理和專(zhuān)利。在設(shè)置平安性的時(shí)候,注意用戶(hù)必須要授權(quán)才能對(duì)各表進(jìn)行操作,備份需要用語(yǔ)句實(shí)現(xiàn)??偨Y(jié)本次數(shù)據(jù)庫(kù)課程設(shè)計(jì)讓我深刻體會(huì)到了,書(shū)本前后的銜接性,這次課程設(shè)計(jì)涉及到了書(shū)本幾乎全部知識(shí)點(diǎn),而在本次課程設(shè)計(jì)之前,我一直都沒(méi)搞懂很多知識(shí)點(diǎn),而且運(yùn)用起來(lái)很生疏,盡管剛剛做得時(shí)候困難重重,思路非常不明確。但是經(jīng)過(guò)我請(qǐng)教老師和同學(xué)之后,我從學(xué)習(xí)中逐漸找到了清晰的思路,并把知識(shí)點(diǎn)連接了起來(lái),從自己親自實(shí)踐之后才能發(fā)現(xiàn),只有自己動(dòng)手過(guò)才能深刻理解書(shū)本知識(shí),而不是單獨(dú)的死記硬背。在本次課程設(shè)計(jì)當(dāng)中,我屢次遇到錯(cuò)誤,而每次當(dāng)自己埋頭思考和向同學(xué)老師請(qǐng)教的過(guò)程中,問(wèn)題總能解決,我在學(xué)習(xí)當(dāng)中磨練了自己的獨(dú)立思考能力和動(dòng)手能力,這也是我這次課程設(shè)計(jì)的一個(gè)很大的收獲。我也從本次課程設(shè)計(jì)中深深的體會(huì)到了,學(xué)習(xí)過(guò)程中不能有一點(diǎn)馬虎,每個(gè)完美的課程設(shè)計(jì)都是嚴(yán)謹(jǐn)?shù)淖黠L(fēng)和清晰的思路創(chuàng)造出來(lái)的,所以以后無(wú)論學(xué)什么,態(tài)度是最重要的,態(tài)度端正,學(xué)習(xí)認(rèn)真嚴(yán)謹(jǐn),這樣才能學(xué)好很多東西,以上是我本次課程設(shè)計(jì)的總的收獲附錄createdatabasework//創(chuàng)立work〔工廠(chǎng)〕數(shù)據(jù)庫(kù)1.創(chuàng)立工廠(chǎng)信息表useworkgocreatetablefactory( fnovarchar(10)NOTNULLprimarykey, fdnamevarchar(10))2.車(chē)間信息表useworkgocreatetableworkshop( workshop_nochar(10)NOTNULLprimarykey, wdnamevarchar(10), waddressvarchar(10), wtelvarchar(20), fnovarchar(10)NOTNULL, foreignkey(fno)referencesfactory(fno))3.工人信息表useworkgocreatetableworkman( wnochar(10)NOTNULLprimarykey, wnamevarchar(10), wageint, wtypevarchar(10), workshop_nochar(10)NOTNULL, foreignkey(workshop_no)referencesworkshop(workshop_no))4.產(chǎn)品信息表useworkgocreatetableproduct( pnovarchar(10)NOTNULLprimarykey, pnamevarchar(10), ppricefloat, workshop_nochar(10)NOTNULL, snochar(10)NOTNULL, foreignkey(workshop_no)referencesworkshop(workshop_no), foreignkey(sno)referencesstorage(sno))5.零件信息表useworkgocreatetableelement( enochar(10)NOTNULLprimarykey, eweightfloat, epricefloat, snochar(10)NOTNULL, foreignkey(sno)referencesstorage(sno))6.倉(cāng)庫(kù)信息表useworkgocreatetablestorage( snochar(10)NOTNULLprimarykey, sdnamevarchar(10), stelvarchar(20), fnovarchar(10)NOTNULL, foreignkey(fno)referencesfactory(fno))7.車(chē)間與零件表useworkgocreatetableworkshop_element( workshop_nochar(10)NOTNULL, enochar(10)NOTNULL, primarykey(workshop_no,eno), foreignkey(workshop_no)referencesworkshop(workshop_no), foreignkey(eno)referenceselement(eno))8.產(chǎn)品與零件表useworkgocreatetableproduct_element( pnovarchar(10)NOTNULL, enochar(10)NOTNULL, primarykey(pno,eno), foreignkey(pno)referencesproduct(pno), foreignkey(eno)referenceselement(eno))插入數(shù)據(jù)給各個(gè)表:1.insertintofactoryvalues('法拉利','陳泉宇')select*/*查詢(xún)factory表的所用信息*/fromfactory2.插入數(shù)據(jù)給workshop表insertintoworkshopvalues('A','胡靈敏','無(wú)錫區(qū)','110','法拉利')insertintofactory//插入數(shù)據(jù)給insert表values('法拉利','陳泉宇')3.插入數(shù)據(jù)給workman表insertintoworkmanvalues('A01','賀江平','20','軟件工程師','A')insertintoworkmanvalues('A02','彭成輝','20','勞力活','A')insertintoworkmanvalues('A03','張卉卉','19','參謀','A')insertintoworkmanvalues('A04','尹京偉','20','總經(jīng)理','A')insertintoworkmanvalues('A05','劉清波','20','總監(jiān)','A')4.插入數(shù)據(jù)給product表insertintoproductvalues('01','法拉利A10','100000','A','B')insertintoproductvalues('02','法拉利A20','200000','A','B')insertintoproductvalues('03','法拉利A30','300000','A','B')insertintoproductvalues('04','法拉利A40','400000','A','B')insertintoproductvalues('05','法拉利A40','400000','A','B')5.插入數(shù)據(jù)給element表insertintoelementvalues('e01','80.8','100','B')insertintoelementvalues('e02','80.2','200','B')insertintoelementvalues('e03','80.3','300','B')insertintoelementvalues('e04','80.4','400','B')insertintoelementvalues('e05','80.5','500','B')6.插入數(shù)據(jù)給workshop_element表insertintoworkshop_elementvalues('A','e01')7.插入數(shù)據(jù)給product_element表insertintoproduct_elementvalues('01','e01')8.插入數(shù)據(jù)給storage表insertintostoragevalues('B','張攀','120','法拉利')insertintostoragevalues('B2','張攀2','130','法拉利')//創(chuàng)立存儲(chǔ)過(guò)程manage〔管理〕createproceduremanage--創(chuàng)立一個(gè)名字為manage的存儲(chǔ)過(guò)程(@enochar(10),--定義一些參數(shù)@wnamevarchar(10),@sdnamechar(10),@snochar(10))asdeclare@eweight1float=80.4--申明一個(gè)變量@eweight1ifexists(selecteweightfromelementwhereeweight<@eweight1)updateelementseteweight=80.4--將element(零件)表中的eweight都定義為80.4select*/*查詢(xún)零件表的所有信息*/fromelementselectepricefromelementwhereeno=@enoupdateworkmansetwage=10wherewname=@

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論