工廠數(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頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論