版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1.1編寫目的 11.2參考資料 1 2.1業(yè)務(wù)描述 22.2需求分析 2 3 44.1數(shù)據(jù)庫對象命名規(guī)則 44.2數(shù)據(jù)項編碼規(guī)則 4 5.2關(guān)系模型 5 [1]:[SUPPLIERS表](供應(yīng)商表) 66.3表[2]:[PRODUCT表](產(chǎn)品表) 76.4表[3]:[SP表](供應(yīng)商產(chǎn)品供應(yīng)表) 76.5表[4]:[ORDERS表](訂單表) 86.6表[5]:[PO表](產(chǎn)品訂購表) 96.7表[6]:[EMPLOYEE表](雇員表) 106.8表[7]:[CUSTOMER表](客戶表) 11 6.12函數(shù)的設(shè)計 30 7.1防止用戶直接操作數(shù)據(jù)庫的方法 317.2用戶帳號密碼的加密方法 31 32 1.1編寫目的庫的表名、字段名等數(shù)據(jù)信息,用來指導(dǎo)后期的數(shù)據(jù)庫腳本的開發(fā),本文檔遵循《SQLSERVER2008該數(shù)據(jù)庫的目的是為了能夠模擬完成一次訂單銷售流程。1.2參考資料《數(shù)據(jù)庫系統(tǒng)概論》《數(shù)據(jù)庫設(shè)計入門《數(shù)據(jù)庫原理》明務(wù)描述銷售訂單數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)訂單的下發(fā),數(shù)據(jù)的查詢刪除和修改。求分析程??蛻舻墓δ?。例如當(dāng)在訂單的中只要知道訂單的編號,就可以知道訂單的產(chǎn)品的名字,產(chǎn)品的數(shù)量(產(chǎn)的信息,客戶的信息。在訂購的表中知道訂單號就可以知道訂單中產(chǎn)品的數(shù)量??梢孕薷臄?shù)據(jù)庫里面的數(shù)據(jù),例如條件知道供應(yīng)商編號就可以對供應(yīng)商的信息(編號,姓名,x,地址等)進行修改,還可以對該供應(yīng)商進行刪除。知道客戶的編號就可以對客戶的數(shù)據(jù)(編號,信息姓名,x等)進行修改,還可以對該用戶進行刪除。能更加完善,能夠滿足更高的要求。明表例統(tǒng)計放位置SqlServerWindows7存放位置,絕路徑管理對象命名規(guī)則對象則表view能描述字符串insert_功能描述字符串例如:insert_PO更改庫存觸發(fā)器程Procedure述字符串編碼規(guī)則則型供應(yīng)商兩位整數(shù)序號 (00~1000)無兩位整數(shù)序號 (00~1000)無兩位整數(shù)序號 (00~1000)無兩位整數(shù)序號 (00~1000)無兩位整數(shù)序號 (00~1000)無存價格字姓名地址供應(yīng)n1產(chǎn)品m號數(shù)量nn管理111存價格字姓名地址供應(yīng)n1產(chǎn)品m號數(shù)量nn管理111雇員姓名地址工資姓名5.1ER圖話應(yīng)商n下下戶號明表,存儲供應(yīng)商的編號等信息表product品的編號、數(shù)量等信息品供應(yīng)表,存儲供應(yīng)商所供應(yīng)的產(chǎn)品對應(yīng)信息號、日期等信息儲產(chǎn)品訂購的對應(yīng)信息,存儲雇員的編號等信息戶的編號等信息Suppliers表](供應(yīng)商表)Suppliers(供應(yīng)商表)用戶段無無數(shù)據(jù)類型(精度范圍)YN1rNY高無主鍵/供應(yīng)商編號2rNN中無名稱3rNN中無供應(yīng)商地址4rNN高無電話createtableSuppliers(mbercharnotnullprimarykeySnamecharnotnullsscharnotnullubcharnotnullproduct表](產(chǎn)品表)Product(產(chǎn)品表)用戶umber段無無數(shù)據(jù)類型(精度范圍)YNYN1umberrNY高無2merNY高無3iceYN中無4priceYN中無5ventoryYN中無createtableproduct(p_numberchar(32)primarykeynotnull,p_namechar(32)notnull,p_priceint,--原價p_expriceint,--售價p_inventoryint,--庫存[sp表](供應(yīng)商產(chǎn)品供應(yīng)表sp(供應(yīng)商產(chǎn)品供應(yīng)表)用戶umber段無無數(shù)據(jù)類型(精度范圍)YNYN1rNY高無2umberrNY高無供應(yīng)表reatetablesup(ercharnotnullp_numberchar(32)notnull,primarykey(S_number,p_number),oreignkeySnumberreferencesSuppliersSnumberetecascadeatecascadeoreignkeypnumberreferencesproductpnumberetecascadetecascadeorders表](訂單表)orders(訂單表)用戶er段無無數(shù)據(jù)類型(精度范圍)YNYN1errNY高無2esNN低無3rrYN中無4errNN高無5pnYN中無createtableorders(onumbercharnotnullprimarykey,emplnumbercharnotnull,cnumbercharnotnull,timesdatepnint,--產(chǎn)品總數(shù)oreignkeycnumberreferencescustomercnumberdeletecascadeupdatecascadeoreignkeyemplnumberreferencesemployeeemplnumberetecascadetecascadepo表](產(chǎn)品訂購表)po(產(chǎn)品訂購表)用戶p_numbero_number段無無數(shù)據(jù)類型(精度范圍)YNYN1p_numberrNY高無2errNY高無3NN低無reatetablepo(p_numberchar(32),numbercharquantint,primarykey(p_number,o_number),oreignkeypnumberreferencesproductpnumberetecascadeatecascadeoreignkeyonumberreferencesordersonumberetecascadeatecascadeemployee表](雇員表)employee(雇員表)用戶r段無無數(shù)據(jù)類型(精度范圍)YNYN1rrNY高無2rYN中無稱3rYY高無話4ealYN低無資5rYN中無雇員的地址reatetableemployee(mplnamecharemplnumbercharprimarykey,mpladdrescharmpltelnumbcharmplrealintcustomer表](客戶表)customer(客戶表)用戶er段無無數(shù)據(jù)類型(精度范圍)YNYN1errNY高無2rYN中無3ssrYN中無客戶地址4rYY高無reatetablecustomer(cnumbercharprimarykey,cnamecharcadresscharctelnubchar設(shè)計功能:能夠向管理員提供簡明,直接的客戶信息展示。意義:有利于數(shù)據(jù)庫安全的維護,防止任意修改數(shù)據(jù)庫中的雇員信息。eateviewvcoustomnamenumbercnamecnumbertomer訂單數(shù)和用來查找下訂單數(shù)最多的客戶。功能:能夠向管理員提供簡明,直接客戶下訂單的信息展示。意義:有利于數(shù)據(jù)的檢索。teviewviewordersselectcnumbercountonumberersupbycnumber的設(shè)計查詢訂單的數(shù)量同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureSearchOrdersNum訂單的存儲過程selectCOUNT--查詢訂單數(shù)量ders查詢訂單信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureselectorders訂單信息xonumberchar32)texists(select*erswhereo_number=xo_number)print'該訂單不存在'electordersonumbertimespncnameemplnamerderscustomeremployeewherecustomerc_number=orders.c_numberandordersemplnumberemployeeemplnumberandorders.o_number=xo_number查詢訂單最多的客戶信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟ateviewvieworderselectcnumbercountonumberersupbycnumberpviewvieworderscreateprocedureprocedureselectmaxoders查詢訂單數(shù)最多的客戶select*tomerwherec_numberin(umberfromvieworderswhere總數(shù)in()selectMAX(總數(shù))eworders查詢客戶信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureselectcoustom詢客戶信息xnamechar2)ifnotexists(select*tomerwherecname=xname)print'該客戶不存在'select*tomerwherecname=xname;查詢雇員信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureselectempl詢雇員信息xnamechar2)ifnotexists(select*oyeewhereempl_name=xname)print'該客戶不存在'select*oyeewhereemplname=xname;更新客戶信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureupdatecoustome更新客戶信息xnumberchar2),xtellchar2),xaddresschar32)ifnotexists(select*tomerwherec_number=xnumber)print'你輸入的客戶不存在'updatecustomerdressxaddressctelnubxtellwherec_number=xnumber;查詢產(chǎn)品信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureselecprodutxpnumberchar2)--產(chǎn)品的查詢select*ductwherepnumber=xpnumber;插入供應(yīng)商信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureinsersuply應(yīng)商xSnumberchar2),xSnamechar2),xSadresschar2),xStelnubchar2)ifexistsselectfromSupplierswhereS_number=xSnumber)ertppliersluesxSnumberxSname,xSadress,xStelnub);插入訂單信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureinsertorders訂單信息xonumberchar32),xemplnumberchar32),xcnumberchar32),xtimedatexpnintists(select*erswhereo_number=xo_number)print'該訂單已經(jīng)存在,不需重復(fù)下訂單'derslueserxemplnumbercnumberxtime,en插入產(chǎn)品訂購信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedure_oeder_pro--插入訂單產(chǎn)品texists(select*ductwherep_number=xpnumber)print'倉庫里沒有該產(chǎn)品,不予訂購'texists(select*erswhereo_number=xonumber)print'你輸入的訂單號不對'ifexists(select*wherep_number=xpnumberando_number=xonumber)print'該產(chǎn)品已經(jīng)在訂單中'exists(select*ductwherep_inventory<xquanyandp_number=xpnumber)print'該產(chǎn)品庫存不足不予以訂購'tintopoluesberxonumberxquany插入產(chǎn)品信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedure_insert_pro--插入產(chǎn)品xnumberchar32),xnamechar(32),xpriceint,xexpriceint,xinventoryintifexistsselectfromproductwherep_number=xnumber)updateproductventorypinventoryxinventoryroductlues(umberamericexpriceventory)更新供應(yīng)商的信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedure_update_suply--更新供應(yīng)商信息xsnumberchar2),xstellchar2),xsaddresschar2)ifnotexists(select*lierswhereS_number=xsnumber)print'你輸入的供應(yīng)商不存在'updateSuppliersdressxsaddressStelnubxstellwhereS_number=xsnumber;execprocedureupdatesuply','一三656478888','大連';應(yīng)商刪除供應(yīng)商的信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureproceduredeletsupply供應(yīng)商信息xnumberchar2)ifnotexists(select*lierswhereS_number=xnumber)print'你輸入的供應(yīng)商不存在'lierswhereS_number=xnumber;execproceduredeletsupply';圖一三刪除供應(yīng)商圖最多的庫存產(chǎn)品查詢同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟圖應(yīng)的產(chǎn)品查詢供應(yīng)商供應(yīng)的產(chǎn)品查詢同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedureseletpro詢商供應(yīng)的產(chǎn)品xsnumberchar32)ifnotexistsselectsnumberlierswhereS_number=xsnumber)print'該供應(yīng)商不存在'SnamepnameupplierssupproductwhereSuppliers.S_number=sup.S_numberandSuppliers.S_number=xsnumberandumberproductpnumberexecprocedureseletpro'011';更新客戶信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedure_update_coustome--更新客戶信息xnumberchar2),xtellchar2),xaddresschar32)ifnotexists(select*tomerwherec_number=xnumber)print'你輸入的客戶不存在'updatecustomerdressxaddressctelnubxtellwherec_number=xnumber;execprocedureupdatecoustome,'073一三936096','廣州'刪除客戶信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureproceduredeletcoustome客戶信息xnumberchar2)ifnotexists(select*tomerwherec_number=xnumber)print'你輸入的客戶不存在'tomerwherec_number=xnumber;execprocedure_delet_coustome'05'員信息更新雇員信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureprocedure_update_emp--更新雇員信息xenumberchar2),xetellchar2),xeaddresschar2),xerealintifnotexists(select*oyeewhereempl_number=xenumber)print'你輸入的雇員不存在'updateemployeesetempladdresxeaddressempltelnumbxetellemplrealxerealwhereempl_number=xenumber;execprocedureupdateemp','1111111111','changsha',2999;select*圖一八更新雇員信息圖刪除雇員信息同樣的動作時,可直接執(zhí)行存儲過程,簡化操作步驟createprocedureproceduredeletemp雇員信息xnumberchar2)ifnotexists(select*oyeewhereempl_number=xnumber)print'你輸入的雇員不存在'oyeewhereempl_number=xnumber;execproceduredeletemp'員信息按工資高低排序select*oyeerbyemplreal入訂單信息和訂購信息以及修改產(chǎn)品庫存等信息訂單銷售流程,使用戶能夠更簡明的執(zhí)行完整的訂單銷售流程createprocedureprocedureOrd訂單銷售流程xonumberchar2),odatedatexenumberchar2),xcnumberchar2),quantintxpnintxpnumberchar2)ists(select*erswhereo_number=xonumber)print'該訂單已經(jīng)存在,不需重復(fù)下訂單'texists(select*ductwherep_number=xpnumber)print'倉庫里沒有該產(chǎn)品,不予訂購'texists(select*tomerwherec_number=xcnumber)print'你輸入的客戶不存在'texists(select*oyeewhereempl_number=xenumber)print'你輸入的雇員不存在'ists(select*ductwherep_inventory<xquantandp_number=xpnumber)print'該產(chǎn)品庫存不足不予以訂購'begindersluesxonumberxenumberxcnumberxodate,xpn)luesberxonumberxquant)print'訂單下發(fā)成功'end;設(shè)計功能:能夠根據(jù)數(shù)據(jù)庫中數(shù)據(jù)的變化來自動進行數(shù)據(jù)更新操作。意義:為數(shù)據(jù)庫用戶提供一種簡便操作,省去了逐項更改數(shù)據(jù)的麻煩。createtriggerupdate_invert—實現(xiàn)當(dāng)插人(退)產(chǎn)品的時候庫存減少(增加)rtdeleteupdateproductventorypinventory()ntetedwhereproduct.p_number=deleted.p_numberoproductdeletedwhereproduct.p_number=deleted.p_numberupdateproductventorypinventory()ntertedwhereproduct.p_number=inserted.p_numberoproductinsertedwhereproductp_number=inserted.p_number;函數(shù)的設(shè)計無防止用戶直接操作數(shù)據(jù)庫的方法通過建立視圖來控制對數(shù)據(jù)的訪問。用戶帳號密碼的加密方法講原始數(shù)據(jù)變換為不可直接識別的格式,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。例如:execspaddloginfanyangcong123','xx'--創(chuàng)建登入名execspgrantdbaccessfanyangcong'xx'--在數(shù)據(jù)庫中創(chuàng)建新用戶execspaddsrvrolememberfanyangcongsysadminspaddrolefanyangcongdbowner-創(chuàng)建數(shù)據(jù)庫角色TCREATETABLETOfanyangcongGRANTCREATEVIEWTOfanyangcongNTSELECTONemployeeTOfanyangcongITHGRANTOPTIONOKEUPDATEoyeeOMfanyangcongVOKEDELETEoyeeOMfanyangcongCASCADE予表表與列限表表部分的控制權(quán)限yangcong表SQLServerSQLServer理--作業(yè)"下面會自動生成若干自動維護的工作條目,并且每個條目都有相應(yīng)的計劃表,這個才是正常更新系統(tǒng),刪除未銷卡記錄數(shù)據(jù)庫維護計劃非常強大,里面有各式各樣對數(shù)據(jù)庫的維護/備份操作,每樣都可以設(shè)定不同的這一切的基礎(chǔ)。系統(tǒng)每天凌晨更新后,自動備份數(shù)據(jù)庫。sql了只有自己動趣。開始我還以為很簡單,就是建幾個表,在做幾個查詢,后來才發(fā)現(xiàn)要求在么多,要畫E-R圖,要老師的安排努力的在機房完成每次老師布置的任務(wù),最終還是完成了本次課程設(shè)計的任務(wù)。讓我感覺進步了不少,也為將來進一步學(xué)習(xí)和工作打下了基礎(chǔ)。實施。createtableSuppliers(mbercharnotnullprimarykeySnamecharnotnullsscharnotnullubcharnotnullreatetablesup(ercharnotnullp_numberchar(32)notnull,primarykey(S_number,p_number),oreignkeySnumberreferencesSuppliersSnumberetecascadeatecascadeoreignkeypnumberreferencesproductpnumberetecascadetecascadecreatetableorders(onumbercharnotnullprimarykey,emplnumbercharnotnull,cnumbercharnotnull,timesdatepnint,--產(chǎn)品總數(shù)foreignkeycnumberreferencescustomercnumberdeletecascadeupdatecascadeforeignkeyemplnumberreferencesemployeeemplnumberetecascadetecascadecreateprocedureprocedureinsersuply供應(yīng)商xSnumberchar2),xSnamechar2),xSadresschar2),xStelnubchar2)ifexistsselectfromSupplierswhereS_number=xSnumber)pplierslues(numbernamexSadress,elnubprocedure_inser_suply'001','凌章','長沙','16845966345';procedure_inser_suply'002','熊富','長沙','16845966125';procedure_inser_suply'003','張山','長沙','16845123345';procedure_inser_suply'004','李四','長沙','16845486125';procedure_inser_suply'005','王五','長沙',;procedureinsersuply'
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬科版九年級地理下冊階段測試試卷含答案
- 2025年新科版必修2歷史下冊月考試卷
- 二零二五版模具維修與翻新服務(wù)合同4篇
- 二零二五年度智慧城市建設(shè)年薪制合同4篇
- 2025年度養(yǎng)老康復(fù)派遣員工康復(fù)治療合同4篇
- 2025年度面包烘焙原料綠色認證采購合同3篇
- 2025年度設(shè)施農(nóng)業(yè)專用化肥農(nóng)藥定制配送合同4篇
- 2024版離婚債務(wù)解決方案合同范例一
- 二零二五年度煤炭期貨交易居間代理合同3篇
- 2025年度農(nóng)業(yè)科技園區(qū)建設(shè)與管理合同范例4篇
- 撂荒地整改協(xié)議書范本
- 國際貿(mào)易地理 全套課件
- GB/T 20878-2024不銹鋼牌號及化學(xué)成分
- 診所負責(zé)人免責(zé)合同范本
- 2024患者十大安全目標(biāo)
- 印度與阿拉伯的數(shù)學(xué)
- 會陰切開傷口裂開的護理查房
- 實驗報告·測定雞蛋殼中碳酸鈣的質(zhì)量分數(shù)
- 部編版小學(xué)語文五年級下冊集體備課教材分析主講
- 電氣設(shè)備建筑安裝施工圖集
- 《工程結(jié)構(gòu)抗震設(shè)計》課件 第10章-地下建筑抗震設(shè)計
評論
0/150
提交評論