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

下載本文檔

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

文檔簡(jiǎn)介

課程設(shè)計(jì)說明書題目系(部)計(jì)算機(jī)科學(xué)與技術(shù)系專業(yè)(班級(jí))姓名學(xué)號(hào)指導(dǎo)教師起止日期課程設(shè)計(jì)任務(wù)書課程名稱:數(shù)據(jù)庫系統(tǒng)原理設(shè)計(jì)題目:數(shù)據(jù)庫系統(tǒng)課程設(shè)計(jì)工廠數(shù)據(jù)庫管理系統(tǒng)1、某工廠需建立一個(gè)管理數(shù)據(jù)庫存儲(chǔ)以下信息:工廠包括廠名和廠長(zhǎng)名。一個(gè)廠內(nèi)有多個(gè)車間,每個(gè)車間有車間號(hào)、車間主任姓名、地址和電話。一個(gè)車間有多個(gè)工人,每個(gè)工人有職工號(hào)、姓名、年齡、性別和工種。一個(gè)車間生產(chǎn)多種產(chǎn)品,產(chǎn)品有產(chǎn)品號(hào)、產(chǎn)品名稱和價(jià)格。一個(gè)車間生產(chǎn)多種零件,一個(gè)零件也可能為多個(gè)車間制造。零件有零件號(hào)、重量和價(jià)格。一個(gè)產(chǎn)品由多種零件組成,一種零件也可裝配出多種產(chǎn)品。產(chǎn)品與零件均存入倉庫中。廠內(nèi)有多個(gè)倉庫,倉庫有倉庫號(hào)、倉庫主任姓名和電話。2、系統(tǒng)功能的基本要求:按照一定條件查詢、統(tǒng)計(jì)工人和產(chǎn)品等基本信息,能模擬工廠生產(chǎn)過程中對(duì)原材料(零件)、產(chǎn)品檢測(cè)、庫存環(huán)節(jié)的管理。各階段具體要求:1、需求分析階段?定義數(shù)據(jù)項(xiàng)的含義和取值?定義目標(biāo)系統(tǒng)的數(shù)據(jù)流2、概念結(jié)構(gòu)設(shè)計(jì)階段?畫出實(shí)體模型E-R圖3、邏輯結(jié)構(gòu)設(shè)計(jì)階段?將實(shí)體模型轉(zhuǎn)化為關(guān)系模型?給出每個(gè)關(guān)系的主關(guān)鍵字和函數(shù)依賴集?分析你所設(shè)計(jì)的關(guān)系數(shù)據(jù)庫模式是否屬于3NF4、物理設(shè)計(jì)階段?確定所有字段的名稱、類型、寬度、小數(shù)位數(shù)及完整性約束?確定數(shù)據(jù)庫及表的名稱及其組成?確定索引文件和索引關(guān)鍵字5、數(shù)據(jù)庫安全及維護(hù)設(shè)計(jì)階段?設(shè)計(jì)一個(gè)適合的數(shù)據(jù)庫安全策略(用戶身份認(rèn)證、訪問權(quán)限、視圖)?為了實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)完整性約束,設(shè)計(jì)適當(dāng)?shù)挠|發(fā)器?設(shè)計(jì)一個(gè)適合的數(shù)據(jù)庫備份策略6、實(shí)施階段要求所有操作必須在查詢分析器中用SQL語句或系統(tǒng)存儲(chǔ)過程完成。設(shè)計(jì)工作量:(1)軟件設(shè)計(jì):完成問題陳述中所提到的所有需求功能。(2)論文:要求撰寫不少于3000個(gè)文字的文檔,詳細(xì)說明各階段具體要求。工作計(jì)劃:安排兩周時(shí)間進(jìn)行課程設(shè)計(jì),軟件開發(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ù)庫安全及維護(hù)設(shè)計(jì)7)數(shù)據(jù)庫上機(jī)實(shí)現(xiàn)8)答辯設(shè)計(jì)工作量:40課時(shí)工作計(jì)劃:見課表指導(dǎo)教師簽名:日期:教研室主任簽名:日期:系主任簽名:日期:

長(zhǎng)沙學(xué)院課程設(shè)計(jì)鑒定表姓名學(xué)號(hào)專業(yè)班級(jí)設(shè)計(jì)題目工廠數(shù)據(jù)庫管理系統(tǒng)指導(dǎo)教師指導(dǎo)教師意見:評(píng)定等級(jí):教師簽名:日期:答辯小組意見:評(píng)定等級(jí):答辯小組長(zhǎng)簽名:日期:教研室意見:教研室主任簽名:日期:系(部)意見:系主任簽名:日期:說明課程設(shè)計(jì)成績(jī)分“優(yōu)秀”、“良好”、“及格”、“不及格”四類;根據(jù)而今信息時(shí)代,信息越來越多,越復(fù)雜,這時(shí)就需要一種管理數(shù)據(jù)的軟件,本次課程設(shè)計(jì)運(yùn)用SQLserver2008來實(shí)現(xiàn)數(shù)據(jù)的管理,本次試驗(yàn)通過SQL語句來實(shí)現(xiàn)工廠的流程,使工廠運(yùn)行效率達(dá)到最大值,需要對(duì)其進(jìn)行分析需求,邏輯設(shè)計(jì),物理設(shè)計(jì),安全性分析,權(quán)限設(shè)置等操作。關(guān)鍵詞:SQL管理數(shù)據(jù)工廠TOC\o"1-5"\h\z一、引言7\o"CurrentDocument"編寫目的7\o"CurrentDocument"參考資料7二、需求規(guī)約8\o"CurrentDocument"2.1業(yè)務(wù)描述8\o"CurrentDocument"2.2需求分析8三、數(shù)據(jù)庫環(huán)境說明9四、數(shù)據(jù)庫的命名規(guī)則9\o"CurrentDocument"4.1數(shù)據(jù)庫對(duì)象命名規(guī)則9\o"CurrentDocument"4.2數(shù)據(jù)項(xiàng)編碼規(guī)則9\o"CurrentDocument"五、邏輯設(shè)計(jì)105.1創(chuàng)建數(shù)據(jù)庫系統(tǒng)的關(guān)系模型11\o"CurrentDocument"六、物理設(shè)計(jì)12\o"CurrentDocument"表匯總12表總匯13\o"CurrentDocument"視圖的設(shè)計(jì)19\o"CurrentDocument"存儲(chǔ)過程、函數(shù)及觸發(fā)器的設(shè)計(jì)21七、安全性設(shè)計(jì)23\o"CurrentDocument"防止用戶直接操作數(shù)據(jù)庫的方法24\o"CurrentDocument"用戶帳號(hào)密碼的加密方法24\o"CurrentDocument"角色與權(quán)限25八、數(shù)據(jù)庫管理與維護(hù)說明25九、總結(jié)25十.附錄261.1編寫目的本文檔是數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)文檔的組成部分,編寫此數(shù)據(jù)庫設(shè)計(jì)文檔的目的是:根據(jù)工人數(shù)據(jù)庫管理系統(tǒng)建立一個(gè)數(shù)據(jù)庫存儲(chǔ)信息,數(shù)據(jù)庫表名包含工廠,車間,工人,產(chǎn)品,零件,倉庫。其中工廠包括多個(gè)車間和多個(gè)倉庫,車間有多個(gè)工人,一個(gè)車間生產(chǎn)多種產(chǎn)品和多種零件,一個(gè)零件也可能為多個(gè)車間制造,一個(gè)產(chǎn)品由多種零件組成,一種零件也可裝配出多種產(chǎn)品,產(chǎn)品和零件均存入倉庫中等信息,結(jié)合此信息通過sql語言來實(shí)現(xiàn)此管理系統(tǒng)的運(yùn)用,模擬工廠生產(chǎn)過程中隊(duì)原材料(零件X產(chǎn)品檢測(cè)、庫存環(huán)節(jié)的管理。本文檔遵循《《工人數(shù)據(jù)庫管理系統(tǒng)和開發(fā)規(guī)范》》。本文檔的讀者對(duì)象是需求人員,系統(tǒng)設(shè)計(jì)人員,開發(fā)人員,測(cè)試人員。1.2參考資料列出有關(guān)資料的名稱、作者、文件編號(hào)或版本等。參考資料包括:需求說明書、架構(gòu)設(shè)計(jì)說明書等;本項(xiàng)目的其他已發(fā)表的文件;引用文件、資料、軟件開發(fā)標(biāo)準(zhǔn)等。資料名稱作者文件編號(hào)、版本《數(shù)據(jù)庫系統(tǒng)概論》王珊、薩師煊2006年5月第4版《《數(shù)據(jù)庫系統(tǒng)原理》實(shí)驗(yàn)指導(dǎo)書徐長(zhǎng)梅、汪祥2011年9月第一版2.1業(yè)務(wù)描述(1)數(shù)據(jù)庫系統(tǒng)創(chuàng)建的背景運(yùn)用數(shù)據(jù)庫相關(guān)信息來實(shí)現(xiàn)工人管理系統(tǒng)的生產(chǎn)和運(yùn)作。(2)數(shù)據(jù)庫系統(tǒng)要完成的業(yè)務(wù)流程及工作內(nèi)容根據(jù)工人管理系統(tǒng)模擬生產(chǎn)過程,實(shí)現(xiàn)對(duì)原材料、產(chǎn)品檢測(cè)、庫存的管理(4)揭示該數(shù)據(jù)庫的資源需求和設(shè)計(jì)約束根據(jù)工人的各個(gè)生產(chǎn)所需的階段,來建立不同的表,并將這些表連接起來,畫出實(shí)體模型E-R圖,確定所有字段的名稱、類型、寬度、小數(shù)位數(shù)及完整性約束,并將實(shí)體模型轉(zhuǎn)化為關(guān)系模型,并設(shè)計(jì)關(guān)鍵字,以及設(shè)計(jì)適當(dāng)?shù)挠|發(fā)器2.2需求分析(1)分析該業(yè)務(wù)流程的內(nèi)在聯(lián)系分析業(yè)務(wù)流程后得出:工廠與車間為一對(duì)多關(guān)系,車間與工人為一對(duì)多關(guān)系,車間與產(chǎn)品為一對(duì)多關(guān)系,倉庫與產(chǎn)品為一對(duì)多關(guān)系,倉庫與零件為一對(duì)多關(guān)系,車間與零件為多對(duì)多關(guān)系,產(chǎn)品和零件為多對(duì)多關(guān)系,工廠與倉庫為一對(duì)多關(guān)系(2)對(duì)象處理如下:對(duì)象處理:工廠信息:廠名、廠長(zhǎng)名。車間信息:車間號(hào)、車間主任姓名、地址和電話。職工信息:職工號(hào)、姓名、年齡、性別和工種。產(chǎn)品信息:產(chǎn)品號(hào)、產(chǎn)品名稱和價(jià)格。零件信息:零件號(hào)、重量和價(jià)格。倉庫信息:倉庫號(hào)、倉庫主任姓名和電話。(3)實(shí)現(xiàn)功能與分析如下:實(shí)現(xiàn)功能:實(shí)現(xiàn)功能其中需要注意的是,安全性需要根據(jù)其需要來給予其一定程度的安全性,再通過用戶授權(quán)機(jī)制,通過用戶登陸來識(shí)別用戶級(jí)別,再根據(jù)這個(gè)級(jí)別來分配用戶權(quán)限,從而實(shí)現(xiàn)更高層次的安全保密功能。完整性要求描述各信息間的關(guān)聯(lián)關(guān)系和制約關(guān)系,需要根據(jù)各個(gè)值的實(shí)際情況來分析數(shù)據(jù)的數(shù)據(jù)范圍及注意其是否為NULL(空),根據(jù)實(shí)際需要來滿足要求。分析:此系統(tǒng)首先畫出了其E-R圖,并用word文檔插入表格并寫入各個(gè)表的信息,在對(duì)work(X廠信息)進(jìn)行給該和查詢,包括:創(chuàng)建數(shù)據(jù)庫信息,查詢各表信息,更改element(零件表)信息,workman(H人表)信息,建立一個(gè)名為manage存儲(chǔ)過程,實(shí)現(xiàn)修改element(零件表)信息,workman(工人表)信息。對(duì)于安全性操作,建立了一個(gè)名為chenquanyu的登錄名,名為cqy的用戶,并賦予其表element(零件表),product(產(chǎn)品表)和storage(倉庫表)的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ā)器,來觸發(fā)更新產(chǎn)品價(jià)格,并觸發(fā)刪除產(chǎn)品號(hào)為3的信息。最后創(chuàng)建一個(gè)磁盤備份,名字為work_full,地址為'd:beifen\work.bak',并實(shí)現(xiàn)完全備份和日記備份。

三、數(shù)據(jù)庫環(huán)境說明提示:(1)說明所采用的數(shù)據(jù)庫系統(tǒng),設(shè)計(jì)工具,編程工具等(2)詳細(xì)配置例如:數(shù)據(jù)庫實(shí)例數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫部署環(huán)境數(shù)據(jù)庫設(shè)計(jì)工具數(shù)據(jù)庫存放位置說明工人數(shù)據(jù)庫管理系統(tǒng)SQLserver2008硬件:2GB內(nèi)存,512M以上軟件:windowsxpMicrosoftOfficeVisio2003和SQLserver2008D盤根目錄查詢、統(tǒng)計(jì)工人和產(chǎn)品基本信息,模擬工廠生產(chǎn)過程四、數(shù)據(jù)庫的命名規(guī)則4.1數(shù)據(jù)庫對(duì)象命名規(guī)則數(shù)據(jù)庫對(duì)象命名規(guī)則備注表功能描述字符串例如:factory工廠表視圖view_功能描述字符串例如:view_factory工廠視圖索引index_功能描述字符串例如:index_factory工廠索引存儲(chǔ)過程procedure.功能描述字符串例如:procedure_factory工廠存儲(chǔ)過程觸發(fā)器trigger_功能描述字符串例如:trigger_factory工廠觸發(fā)器4.2數(shù)據(jù)項(xiàng)編碼規(guī)則數(shù)據(jù)項(xiàng)命名規(guī)則數(shù)據(jù)類型長(zhǎng)度范圍備注車間號(hào)車間序號(hào)(兩位整數(shù)00-99)定長(zhǎng)字符串10位workshop_no車間號(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),形成邏輯模型。給表信息包含如下:工廠(匚名,廠長(zhǎng)名)車間(車間號(hào),車間主任姓名,地址,電話)工人(職工號(hào),姓名,年齡,性別,工種)產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名稱,價(jià)格)零件(零件號(hào),重量,價(jià)格)倉庫(倉庫號(hào),倉庫主任姓名,電話)

生產(chǎn)(車間號(hào).零件號(hào).生產(chǎn)日期)組裝(產(chǎn)品號(hào),零件號(hào).組裝數(shù))存入(倉庫號(hào),產(chǎn)品號(hào)■,零件號(hào)■.存儲(chǔ)量)5?1創(chuàng)建數(shù)據(jù)庫系統(tǒng)的關(guān)系模型如下工廠信息表:factory字段中文名字段名數(shù)據(jù)類型是否為空約束廠名fnovarchar(10)NOTNULLPrimarykey廠長(zhǎng)名fdnamevachar(10)//工廠與車間一對(duì)多車間信息表:workshop字段中文名字段名數(shù)據(jù)類型是否為空約束車間號(hào)workshop_nochar(10)NOTNULLPrimarykey車間主任姓名wdnamevarchar(10)地址wAddressvarchar(10)電話wtelvarchar(20)廠名fnovarchar(10)NOTNULLForeignkey(外鍵)〃車間與工人一對(duì)多工人信息表:workman字段中文名字段名數(shù)據(jù)類型是否為空約束職工號(hào)wnochar(10)NOTNULLPrimarykey姓名wnamevarchar(10)年齡wageint工種wtypevarchar(10)車間號(hào)workshop_nochar(10)NOTNULLForeignkey(外鍵)〃車間與產(chǎn)品一對(duì)多,倉庫與產(chǎn)品一對(duì)多產(chǎn)品信息表:product字段中文名字段名數(shù)據(jù)類型是否為空約束產(chǎn)品號(hào)pnovarchar(10)NOTNULLPrimarykey名稱pnamevarchar(10)價(jià)格ppricefloat車間號(hào)workshop_nochar(10)NOTNULLForeignkey(外鍵)倉庫號(hào)snochar(10)NOTNULLForeignkey(外鍵)

〃倉庫與零件一對(duì)多零件信息表:element字段中文名字段名數(shù)據(jù)類型是否為空約束零件號(hào)enochar(10)NOTNULLPrimarykey重量eweightfloat價(jià)格epricefloat倉庫號(hào)snochar(10)NOTNULLForeignkey(外鍵)〃車間與零件多對(duì)多車間與零件信息表:worksho]p_element字段中文名字段名數(shù)據(jù)類型是否為空約束車間號(hào)workshop_nochar(10)NOTNULLPrimarykey零件號(hào)enochar(10)NOTNULLPrimarykey〃產(chǎn)品和零件多對(duì)多產(chǎn)品與零件信息表:product_element字段中文名字段名數(shù)據(jù)類型是否為空約束產(chǎn)品號(hào)pnovarchar(10)NOTNULLPrimarykey零件號(hào)enochar(10)NOTNULLPrimarykey//工廠與倉庫一對(duì)多倉庫信息表:storage字段中文名字段名數(shù)據(jù)類型是否為空約束倉庫號(hào)snochar(10)NOTNULLPrimarykey倉庫主任姓名sdname電話stel廠名fnovarchar(10)NOTNULLForeignkey(外鍵)六、物理設(shè)計(jì)6.1表匯總表名功能說明表element查詢,插入,索引,存儲(chǔ)過程表product查詢,插入,修改,視圖,索引,權(quán)限設(shè)置,創(chuàng)建存儲(chǔ)過程表storage查詢,更新,刪除,權(quán)限設(shè)置,存儲(chǔ)過程6.2工廠表如下:1.工廠信息表:factory表名工廠信息表:factory數(shù)據(jù)庫用戶work主鍵fno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1fnoVarchar(10)N主鍵2fdnameVarchar(10)sql腳本createtablefactory(fnovarchar(10)NOTNULLprimarykey,fdnamevarchar'10))備注[備注信息、]2.車間信息表:workshop表名車間信息表:workshop數(shù)據(jù)庫用戶work主鍵workshop_no其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1workshop_nochar(10)N主鍵2wdnamevarchar(10)3waddressvarchar(10)fnovarchar(10)NForeignkey(外鍵)sql腳本createtableworkshop(workshop_nochar(10NOTNULLprimarykey,wdnamevarchar10),waddressvarchar(10,wtelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))備注工廠與車間一對(duì)多

3.工人信息表:workman表名工人信息表:workman數(shù)據(jù)庫用戶work主鍵wno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1wnochar(10)N主鍵2wnamevarchar(10)3wageint4wtypevarchar(10)5workshop_nochar(10)NForeignkey(外鍵)sql腳本createtableworkman(wnochar10)NOTNULLprimarykey,wnamevarchar(10),wageint,wtypevarchar(10),workshop_nochar(10NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no))備注車間與工人一對(duì)多

4,產(chǎn)品信息表:product表名產(chǎn)品信息表:product數(shù)據(jù)庫用戶work主鍵pno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1pnovarchar(10)N主鍵2pnamevarchar(10)3ppricefloat4workshop_nochar(10)NForeignkey(外鍵)5snochar(10)NForeignkey(外鍵)sql腳本createtableproduct(pnovarchar(10)NOTNULLprimarykey,pnamevarchar(10),ppricefloat,workshop_nochar(10NOTNULL,snochar10)NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(sno)referencesstorage(sno))備注車間與產(chǎn)品一對(duì)多,倉庫與產(chǎn)品一對(duì)多

5.零件信息表:element表名零件信息表:element數(shù)據(jù)庫用戶work主鍵eno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1enochar(10)N主鍵2eweightfloat3epricefloat4snochar(10)NForeignkey(外鍵)sql腳本createtableelement(enochar10)NOTNULLprimarykey,eweightfloat,epricefloat,snochar10)NOTNULL,foreignkey(sno)referencesstorage(sno))備注倉庫與零件一對(duì)多6.車間與零件信息表:workshop_element表名車間與零件信息表:workshop_element數(shù)據(jù)庫用戶work主鍵workshop_no,eno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1fnoworkshop_nochar(10)N主鍵2fdnameenochar(10)N主鍵sql腳本createtableworkshop_element(workshop_nochar(10NOTNULL,enochar10)NOTNULL,primarykey(workshop_no,eno),foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(eno)referenceselement(eno))備注車間與零件多對(duì)多

7.產(chǎn)品與零件信息表:product_element表名產(chǎn)品與零件信息表:product_element數(shù)據(jù)庫用戶work主鍵pno,eno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1pnovarchar(10)N主鍵2enochar(10)N主鍵sql腳本createtableproduct_element(pnovarchar(10)NOTNULL,enochar10)NOTNULL,primarykey(pno,eno),foreignkey(pno)referencesproduct(pno),foreignkey(eno)referenceselement(eno))備注產(chǎn)品和零件多對(duì)多8.倉庫信息表:storage表名倉庫信息表:storage數(shù)據(jù)庫用戶work主鍵sno其他排序字段索引字段序號(hào)字段名稱數(shù)據(jù)類型(精度范圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說明1snochar(10)N主鍵2sdnamevarchar(10)stelvarchar(20)fnovarchar(10)NForeignkey(外鍵)sql腳本createtablestorage(snochar10)NOTNULLprimarykey,sdnamevarchar10),stelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))備注工廠與倉庫一對(duì)多6.3視圖的設(shè)計(jì)各表關(guān)系圖如下:workshop'A'urkshcip-nowdnamewaddresswtelfriQworkman■ATIU■ATiarriewagewtype'A'urkshcip-noelementworkshop_eIement電叫口山5卜||叩|_「|匚|修eno圖6.3.1創(chuàng)建視圖過程如下(1)給產(chǎn)品表創(chuàng)建一個(gè)擁有paname(產(chǎn)品名稱),price(產(chǎn)品價(jià)格),以及外鍵的sno(倉庫號(hào))的視圖createviewIS_productasselectsno,pname,ppricefromproduct效果圖如下:圈product平(所有列)Lpno〔TABLE:prpnamepprice'.■vorkshop^iusno列別名表輸出snoproduct0pnameproduct0ppriceproduct0圖6.3.1(2)給工人信息表創(chuàng)建一個(gè)包含有workman(生產(chǎn)表)的所有信息的視圖createviewISworkmanasselect*fromworkman效果圖如下:|gvork>an□平(所有列)wno■ATiame'A'dge叵wtypework5hop_no列別名表輸出?wnoworkman0'■■■■.TiarriBworkman0wageworkman0wtypeworkman0work5hop_noworkman0圖6.3.26.4存儲(chǔ)過程、函數(shù)及觸發(fā)器的設(shè)計(jì)6.4.1存儲(chǔ)過程代碼如下:createproceduremanage--創(chuàng)建一個(gè)名字為manage的存儲(chǔ)過程(@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í),再查詢此時(shí)此刻的pprice(價(jià)格)@wname='賀江平',@sdname='張攀攀',@sno='B2'首先創(chuàng)建了一個(gè)名字為manage的存儲(chǔ)過程,定義一些可以用到得相關(guān)參數(shù),如@eno,@wname,@sdname,@sno,通過這些參數(shù)傳遞確定的數(shù)據(jù),利用SQL語句結(jié)合在存儲(chǔ)過程從而實(shí)現(xiàn)想要更改,刪除,插入等相關(guān)的操作.存儲(chǔ)過程執(zhí)行后的效果圖為:J結(jié)果消息Iepricersb■,jwnownamewagewtypeworkshop_no1[AOl'l賀江平10軟件工程師ATOC\o"1-5"\h\z'A02…彭成輝20勞力活A(yù)A03張卉卉19顧問AA04尹京偉20總經(jīng)理AA05劉清波20總監(jiān)Asnosdnamestelfno1|B■“)張擎壑120法拉利2'■孩…張擎攀1130法拉利圖6.4.16.4.2索引的建立建立索引使查詢的時(shí)候按順序排列createuniqueindexpropnoonproduct(pno)--為product表的pno(產(chǎn)品號(hào))建立索引createuniqueindexeenoonelement(eno)--為element表的eno(零件號(hào))建立索引6.4.3觸發(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ā)器在查詢命令窗口中輸入以下update語句,修改產(chǎn)品號(hào)為’01’的價(jià)格,激發(fā)觸發(fā)器updateproductsetpprice=pprice+1wherepno='01'視圖如下:J結(jié)果消息pno原價(jià)格新價(jià)格J_01100000100001I2.在查詢命令窗口中輸入以下delete語句,刪除產(chǎn)品為號(hào)為’03’的記錄,激發(fā)觸發(fā)器deleteproductwherepno='03'視圖如下:被刪除的產(chǎn)品號(hào)pname原價(jià)格103法拉利A如300000刪除新創(chuàng)建的觸發(fā)器droptriggertri_update_delete_product視圖如下:-droptriggertriupdatedeleteproduct_J]消息命令已成功完成七、安全性設(shè)計(jì)SQL包括了windows認(rèn)證和sqlserver混合認(rèn)證,其中sqlserver混合認(rèn)證提供了用戶登錄方式,而用戶登錄后想更改操作的話,必須分配給用戶名權(quán)限,才能對(duì)數(shù)據(jù)庫的表進(jìn)行相關(guān)操作。以下是用SQL語句實(shí)現(xiàn)的用戶名登錄,和受權(quán)操作:execsp_grantdbaccess'chenquanyu','cqy'//允許新建登錄名和用戶,其中chenquanyu是登錄名,cqy是用戶execsp_addlogin'chenquanyu','123456','work'//用戶名登錄,密碼為123456,默認(rèn)數(shù)據(jù)庫為workexecsp_addsrvrolemember'chenquanyu','sysadmin'//授予用戶名chenquanyu一些數(shù)據(jù)庫操作的權(quán)限GRANTALLprivilegesonproducttocqyGRANTALLprivilegesonelementtocqygrantupdateonstoragetocqy//將product產(chǎn)品表和零件表的所有權(quán)限授予給cqy用戶,倉庫信息表的更新權(quán)限授予給cqy用戶使用查詢分析器管理備份設(shè)備和備份數(shù)據(jù)庫//創(chuàng)建一個(gè)磁盤備份設(shè)備,名字為work_full,地址為'd:beifen\work.bak'execsp_addumpdevice'disk',,work_full,,,d:\beifen\work.bak,backupdatabaseworktowork_fullwithinit--完全備份備份執(zhí)行如下:_J]消息已為數(shù)據(jù)庫'work1,文件'work1(位于文件1上)處理了Z16頁。已為數(shù)據(jù)庫EZ,文件《位于文件1上)處理了Z頁。BACKUPDATABASE成功處理了Z1S頁,花賽0.Z13秒(7.963ME/■秒"backuplogworktowork_fullwithnoinit--日記備份,使用備份語句backup來備份數(shù)據(jù)庫日記備份執(zhí)行如下:r國(guó)消息已為數(shù)據(jù)庫'work',文件'work-log1(位于文件Z上)處理了Z頁口BACKUPLOG成功處理了Z頁,花費(fèi)0.0Z4秒(0.SZSME/■秒"7.1防止用戶直接操作數(shù)據(jù)庫的方法不授予用戶操作的權(quán)限。用戶只能用帳號(hào)登陸到應(yīng)用軟件,通過應(yīng)用軟件訪問數(shù)據(jù)庫,而沒有其他途徑操作數(shù)據(jù)庫。7.2用戶帳號(hào)密碼的加密方法用戶賬戶密碼加密是在程序里實(shí)現(xiàn)的,將用戶密碼通過某種算法加密轉(zhuǎn)換后再存入數(shù)據(jù)庫。對(duì)用戶帳號(hào)的密碼進(jìn)行加密處理,確保在任何地方都不會(huì)出現(xiàn)密碼的明文。用戶帳號(hào)采用MD5進(jìn)行數(shù)據(jù)加密后再錄入數(shù)據(jù)庫,以防止任何地方密碼的安全性要求。7.3角色與權(quán)限確定每個(gè)角色對(duì)數(shù)據(jù)庫表的操作權(quán)限,如創(chuàng)建、檢索、更新、刪除等。每個(gè)角色擁有剛好能夠完成任務(wù)的權(quán)限,不多也不少。在應(yīng)用時(shí)再為用戶分配角色,則每個(gè)用戶的權(quán)限等于他所兼角色的權(quán)限之和。角色可以訪問的表與列操作權(quán)限例如:管理員可訪問所有表完全控制權(quán)限角色BProduct表可操作此表全部信息element表可操作此表全部信息Storage表只能操作update權(quán)限八、數(shù)據(jù)庫管理與維護(hù)說明提示:在設(shè)計(jì)數(shù)據(jù)庫的時(shí)候,及時(shí)給出管理與維護(hù)本數(shù)據(jù)庫的方法,有助于將來撰寫出正確完備的用戶手冊(cè)。在運(yùn)行數(shù)據(jù)庫的同時(shí)先要在腦海里想好需求分析,然后再根據(jù)要求畫出E-R圖,然后再根據(jù)邏輯結(jié)構(gòu)在word文檔下根據(jù)表的信息,依次完成各信息表,然后根據(jù)表與表對(duì)應(yīng)的1:1,1:n或n:m關(guān)系確定好表的主外鍵,注:多對(duì)多的表還要另外創(chuàng)建一表來表示兩表之間的關(guān)系。完成表的建立后,接下來的操作就是往各個(gè)表中插入相關(guān)實(shí)際信息,以及利用SQL語句來實(shí)現(xiàn)表的插入,插入完畢后,可運(yùn)用建立一個(gè)存儲(chǔ)過程來完成表的更新,刪除,插入等操作,操作完畢后可,用SQL語句建立視圖,好讓操作員更能體會(huì)表與表之間的關(guān)系,而且看不出關(guān)鍵隱私代碼,這樣就能很好的維護(hù)數(shù)據(jù)庫的管理和專利。在設(shè)置安全性的時(shí)候,注意用戶必須要授權(quán)才能對(duì)各表進(jìn)行操作,備份需要用語句實(shí)現(xiàn)。九、總結(jié)本次數(shù)據(jù)庫課程設(shè)計(jì)讓我深刻體會(huì)到了,書本前后的銜接性,這次課程設(shè)計(jì)涉及到了書本幾乎全部知識(shí)點(diǎn),而在本次課程設(shè)計(jì)之前,我一直都沒搞懂很多知識(shí)點(diǎn),而且運(yùn)用起來很生疏,盡管剛剛做得時(shí)候困難重重,思路非常不明確。但是經(jīng)過我請(qǐng)教老師和同學(xué)之后,我從學(xué)習(xí)中逐漸找到了清晰的思路,并把知識(shí)點(diǎn)連接了起來,從自己親自實(shí)踐之后才能發(fā)現(xiàn),只有自己動(dòng)手過才能深刻理解書本知識(shí),而不是單獨(dú)的死記硬背。在本次課程設(shè)計(jì)當(dāng)中,我多次遇到錯(cuò)誤,而每次當(dāng)自己埋頭思考和向同學(xué)老師請(qǐng)教的過程中,問題總能解決,我在學(xué)習(xí)當(dāng)中磨練了自己的獨(dú)立思考能力和動(dòng)手能力,這也是我這次課程設(shè)計(jì)的一個(gè)很大的收獲。我也從本次課程設(shè)計(jì)中深深的體會(huì)到了,學(xué)習(xí)過程中不能有一點(diǎn)馬虎,每個(gè)完美的課程設(shè)計(jì)都是嚴(yán)謹(jǐn)?shù)淖黠L(fēng)和清晰的思路創(chuàng)造出來的,所以以后無論學(xué)什么,態(tài)度是最重要的,態(tài)度端正,學(xué)習(xí)認(rèn)真嚴(yán)謹(jǐn),這樣才能學(xué)好很多東西,以上是我本次課程設(shè)計(jì)的總的收獲十、附錄createdatabasework//創(chuàng)建work(工廠)數(shù)據(jù)庫創(chuàng)建工廠信息表useworkgocreatetablefactory(fnovarchar(10)NOTNULLprimarykey,fdnamevarchar(10))車間信息表useworkgocreatetableworkshop(workshop_nochar(10)NOTNULLprimarykey,wdnamevarchar(10),waddressvarchar(10),wtelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))工人信息表useworkgocreatetableworkman(wnochar(10)NOTNULLprimarykey,wnamevarchar(10),wageint,wtypevarchar(10),workshop_nochar(10)NOTNULL,foreignkey(workshop_no)referencesworkshop(workshop_no))產(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))零件信息表useworkgocreatetableelement(enochar(10)NOTNULLprimarykey,eweightfloat,epricefloat,snochar(10)NOTNULL,foreignkey(sno)referencesstorage(sno))倉庫信息表useworkgocreatetablestorage(snochar(10)NOTNULLprimarykey,sdnamevarchar(10),stelvarchar(20),fnovarchar(10)NOTNULL,foreignkey(fno)referencesfactory(fno))車間與零件表useworkgocreatetableworkshop_element(workshop_nochar(10)NOTNULL,enochar(10)NOTNULL,primarykey(workshop_no,eno),foreignkey(workshop_no)referencesworkshop(workshop_no),foreignkey(eno)referenceselement(eno))產(chǎn)品與零件表useworkgocreatetableproduct_element(pnovarchar(10)NOTNULL,enochar(10)NOTNULL,primarykey(pno,eno),foreignkey(pno)referencesproduct(pno),foreignkey(eno)referenceselement(eno))插入數(shù)據(jù)給各個(gè)表:insertintofactoryvalues('法拉利','陳泉宇')select*/*查詢factory表的所用信息*/fromfactory插入數(shù)據(jù)給workshop表insertintoworkshopvalues('A','胡靈敏','無錫區(qū)','110','法拉利')insertintofactory//插入數(shù)據(jù)給insert表values('法拉利','陳泉宇')插入數(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')插入數(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')插入數(shù)據(jù)給element表insertintoelementvalues('e01','80.8',T00','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')插入數(shù)據(jù)給workshop_element表insertintoworkshop_elementvalues('A','e01')插入數(shù)據(jù)給product_element表insertintoproduct_elementvalues('01','e01')插入數(shù)據(jù)給storage表insertintostoragevalues('B','張攀','120','法拉利')insertintostoragevalues('B2','張攀2','130','法拉利')//創(chuàng)建存儲(chǔ)過程manage(管理)createproceduremanage--創(chuàng)建一個(gè)名字為manage的存儲(chǔ)過程(@enochar(10),--定義一些參數(shù)@wnamevarchar(10),@sdnamechar(10),@snochar(10))asdeclare@eweight1float=80.4--申明一個(gè)變量@eweight1ifexists(selecteweightfromelementwhereeweight<@eweight1)updateelements

溫馨提示

  • 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. 人人文庫網(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)論