下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)設(shè)計(jì)作品題目:物流數(shù)據(jù)庫(kù)管理系統(tǒng)組員1姓名:組員1學(xué)號(hào):組員2姓名:組員2學(xué)號(hào):完成時(shí)間:目錄(供參考)1 .數(shù)據(jù)庫(kù)規(guī)劃1.1 任務(wù)陳述提高物流信息化本數(shù)據(jù)庫(kù)的設(shè)計(jì),是為了物流公司能夠快捷高效的處理快遞郵件,和方便用戶查詢快遞信水平,提高運(yùn)輸效率,同時(shí)增加企業(yè)管理者對(duì)公司運(yùn)營(yíng)情況的了解,息。1.2 任務(wù)目標(biāo)維護(hù)維護(hù)維護(hù)維護(hù)維護(hù)維護(hù)維護(hù)(錄入、更新和刪除)(錄入、更新和刪除)(錄入、更新和刪除)(錄入、更新和刪除)(錄入、更新和刪除)(錄入、更新和刪除)(錄入、更新和刪除)企業(yè)員工的數(shù)據(jù)客戶的數(shù)據(jù)收件人的數(shù)據(jù)運(yùn)單的數(shù)據(jù)快遞線路的數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)客戶評(píng)價(jià)信息數(shù)據(jù)實(shí)現(xiàn)對(duì)貨物物流信息的查詢實(shí)現(xiàn)對(duì)快
2、遞員的查詢實(shí)現(xiàn)對(duì)運(yùn)單狀態(tài)的查詢實(shí)現(xiàn)對(duì)倉(cāng)庫(kù)的查詢實(shí)現(xiàn)對(duì)收貨人的查詢實(shí)現(xiàn)對(duì)客戶的查詢跟蹤物流信息跟蹤運(yùn)單狀態(tài)信息報(bào)告公司運(yùn)營(yíng)情況報(bào)告公司員工情況報(bào)告客戶情況報(bào)告?zhèn)}庫(kù)情況報(bào)告運(yùn)單的情況1.3 定義系統(tǒng)邊界1.4 主要用戶視圖經(jīng)理:維護(hù)(錄入、更新、和刪除)公司的數(shù)據(jù)維護(hù)(錄入、更新、和刪除)員工的數(shù)據(jù)維護(hù)(錄入、更新、和刪除)用戶的數(shù)據(jù)維護(hù)(錄入、更新、和刪除)倉(cāng)庫(kù)的數(shù)據(jù)實(shí)現(xiàn)對(duì)倉(cāng)庫(kù)的情況實(shí)現(xiàn)對(duì)所有員工的檢索報(bào)告所有公司運(yùn)營(yíng)的情況報(bào)告所有客戶的情況主管:維護(hù)(錄入、更新、和刪除)配送的數(shù)據(jù)維護(hù)(錄入、更新、和刪除)轉(zhuǎn)運(yùn)的數(shù)據(jù)維護(hù)(錄入、更新、和刪除)運(yùn)單的數(shù)據(jù)維護(hù)(錄入、更新、和刪除)客戶的數(shù)據(jù)實(shí)現(xiàn)對(duì)
3、倉(cāng)庫(kù)檢索實(shí)現(xiàn)對(duì)員工的檢索報(bào)告?zhèn)}庫(kù)的情況報(bào)告所在分公司貨單的情況派送員:查看運(yùn)單信息查看配送信息查看配送信息查看收貨人信息客戶:查看快遞配送信息維護(hù)(錄入、更新、和刪除)評(píng)價(jià)信息2 .需求分析2.1 用戶需求說明(重點(diǎn)論述)2.1.1.1 需求快遞物流公司職員分為經(jīng)理、主管、派送員,經(jīng)理?yè)碛凶罡邫?quán)限,可以對(duì)任意數(shù)據(jù)進(jìn)行添加修改刪除,主管可以增加運(yùn)單信息和更改物流信息,查詢客戶資料,查看倉(cāng)庫(kù)情況,派送員只能查詢客戶資料,客戶可以根據(jù)運(yùn)單編號(hào),查詢運(yùn)單詳情客戶在提交貨物時(shí),要求填寫基本信息,包括客戶名稱、客戶電話、收貨地址、等信息,并且由系統(tǒng)在注冊(cè)用戶注冊(cè)完后自動(dòng)為其生成一個(gè)客戶編號(hào),并且嵌入到客戶
4、注冊(cè)信息內(nèi),形成完整的客戶資料,同時(shí),客戶還將填寫收件人信息,生成收貨人信息表。系統(tǒng)自動(dòng)生成運(yùn)單,運(yùn)單有唯一的編號(hào),根據(jù)貨件類型、郵寄地址,自動(dòng)生成郵寄費(fèi)用。每個(gè)倉(cāng)庫(kù)有具體負(fù)責(zé)的區(qū)域,根據(jù)收貨人地址,可以確定貨物轉(zhuǎn)運(yùn)到的倉(cāng)庫(kù),若倉(cāng)庫(kù)已經(jīng)滿了,則不能轉(zhuǎn)運(yùn)到此倉(cāng)庫(kù)。當(dāng)公司接受運(yùn)單時(shí),初始運(yùn)單狀態(tài)為“接受",若為此狀態(tài),用戶還可以取消運(yùn)單,則狀態(tài)變?yōu)椤叭∠?;?dāng)貨物被轉(zhuǎn)運(yùn)至倉(cāng)庫(kù)時(shí),訂單狀態(tài)變?yōu)椤芭渌?quot;,之后再由配送員配送至收貨人地址,由收件人接收后狀態(tài)變?yōu)椤巴瓿?quot;。當(dāng)訂單完成后,客戶才可以給予評(píng)價(jià)。運(yùn)單價(jià)格是根據(jù)貨物重量計(jì)算得出,運(yùn)單價(jià)格為貨物重量X100.同時(shí),公司記
5、錄統(tǒng)計(jì)運(yùn)營(yíng)情況,即收取快遞的件數(shù),營(yíng)業(yè)額度等信息,并查看倉(cāng)庫(kù)存儲(chǔ)貨物的信息,判斷倉(cāng)庫(kù)是否會(huì)出現(xiàn)爆滿。員工工資計(jì)算為,當(dāng)員工職位為經(jīng)理時(shí),當(dāng)月薪水為當(dāng)月接受運(yùn)單總金額的1%,當(dāng)員工職位為主管時(shí),薪水為當(dāng)月接受運(yùn)單總金額的5%,當(dāng)員工職位為其配送運(yùn)單數(shù)量乘以50。2.1.1.2 需求2.1.2.1 數(shù)據(jù)錄入1)錄入公司的新員工信息2)錄入公司倉(cāng)庫(kù)信息3)錄入新顧客信息4)錄入新運(yùn)單的詳細(xì)情況5)錄入新轉(zhuǎn)運(yùn)表信息6)錄入新配送表信息7)錄入新收件人信息8)錄入客戶的評(píng)價(jià)信息2.1.2.2 數(shù)據(jù)更新/刪除1)更新/刪除給定員工的信息2)更新刪除給定倉(cāng)庫(kù)信息3)更新刪除給定客戶信息4)更新刪除給定收貨人
6、信息5)更新/刪除給定運(yùn)單的信息6)更新刪除給定轉(zhuǎn)運(yùn)表信息7)更新刪除給定配送表信息8)更新/刪除客戶評(píng)價(jià)信息2.1.2.3 數(shù)據(jù)查詢(列出支持的查詢,需要有一定具有統(tǒng)計(jì)功能的查詢)1)按照職位、姓名順序列出員工詳細(xì)信息。2)利用存儲(chǔ)過程,根據(jù)運(yùn)單編號(hào),查詢運(yùn)單狀態(tài)以及相關(guān)信息3)根據(jù)配送表中,快速查詢員工的完成的運(yùn)單數(shù)4)根據(jù)客戶評(píng)價(jià)中serve的評(píng)分,查詢配送員工所有配送服務(wù)中的平均分5)根據(jù)客戶評(píng)價(jià)中speed的評(píng)分,查詢所有客戶對(duì)物流速度的平均評(píng)分6)查看各個(gè)倉(cāng)庫(kù)所提供的配送服務(wù)的總平均評(píng)分7)列出指定日期運(yùn)單總數(shù)量8)根據(jù)用戶姓名,查詢此人所在物流公司的運(yùn)營(yíng)記錄以及總金額9)根據(jù)用戶
7、編號(hào),查詢此人在我物流公司的交易的詳細(xì)信息10)根據(jù)收貨人編號(hào),查找其地址11)在配送表中,快速查詢員工的完成的運(yùn)單數(shù)12)查詢公司某一天的營(yíng)業(yè)額13)查詢公司某一年的營(yíng)業(yè)額14)計(jì)算員工工資2.2 系統(tǒng)需求說明2.2.2 初始數(shù)據(jù)庫(kù)大小公司擁有50名左右的員工,5個(gè)倉(cāng)庫(kù)。2.2.3 數(shù)據(jù)庫(kù)增長(zhǎng)速度大約每天能進(jìn)行1000左右筆運(yùn)單和10個(gè)新顧客每月大概有5個(gè)左右的員工加入或者離開。離開書店半年的員工記錄從數(shù)據(jù)庫(kù)刪除。每月大概刪除2條員工記錄.每年增加一個(gè)倉(cāng)庫(kù)。2.2.4 記錄查找的類型和平均數(shù)量客戶查詢快遞運(yùn)輸?shù)男畔?,每天大?00次企業(yè)經(jīng)理查詢營(yíng)業(yè)部的運(yùn)單數(shù)量,每天2次企業(yè)經(jīng)理查詢中轉(zhuǎn)部的運(yùn)
8、輸數(shù)量,每天2次2.2.5 網(wǎng)絡(luò)和共享訪問需求整個(gè)系統(tǒng)必須全天24小時(shí)開放查詢(網(wǎng)站維護(hù)升級(jí)除外)系統(tǒng)能夠支持至少多名員工同時(shí)進(jìn)行數(shù)據(jù)的增刪改。需要考慮這么大數(shù)量并發(fā)訪問的許可需求2.2.6 性能1)客戶查找運(yùn)單信息的搜索時(shí)間不超過2秒2)各種搜索的響應(yīng)時(shí)間少于3秒3)更新/保存記錄的時(shí)間不超過1秒2.2.7 安全性1)整個(gè)平臺(tái)系統(tǒng)必須有口令密碼支持2)每個(gè)不同的用戶應(yīng)該分配一個(gè)到特定用戶視圖的數(shù)據(jù)庫(kù)訪問權(quán)限,主要有系統(tǒng)管理員,數(shù)據(jù)管理員,客戶可以查詢指定的信息3)每位使用者只能在適合他們完成工作的需要的窗口中看到需要的數(shù)據(jù)2.2.8 備份和恢復(fù)數(shù)據(jù)庫(kù)在每天半夜12點(diǎn)進(jìn)行增量備份和差異備份,在
9、周日必須進(jìn)行一次完整備份。3 .邏輯設(shè)計(jì)3.1 實(shí)體歸檔3.1.2 實(shí)體定義客戶倉(cāng)庫(kù)員工收貨人評(píng)價(jià)3.1.2實(shí)體文檔EntitynameDescriptionOccurrence客戶提交貨物公司擁啟多個(gè)客戶員工管理公司或者配送貨物多名員工收件人收取貨物的人一個(gè)運(yùn)單包含一個(gè)收件人評(píng)價(jià)客戶對(duì)快遞服務(wù)的評(píng)價(jià)用戶只能評(píng)價(jià)一次倉(cāng)庫(kù)儲(chǔ)存貨物的地方擁有多個(gè)倉(cāng)庫(kù)(參考p126圖9-2)3.3 實(shí)體和關(guān)系的有關(guān)屬性(應(yīng)該給出實(shí)體和關(guān)系的所有屬性,擴(kuò)展p132圖9-8的列名為:實(shí)體/關(guān)系名、屬性、描述、鍵(主鍵/侯選鍵)、數(shù)據(jù)類型和長(zhǎng)度、是否為空、是否多值、是否復(fù)合、是否派生、默認(rèn)值、屬性域約束)客戶信息表keh
10、u列名數(shù)據(jù)類型可含為空說明主/外鍵khnovarchar(20)NOTNULL客戶編號(hào)主鍵khnamevarchar(20)NOTNULL客戶姓名khtelvarchar(20)NOTNULL客戶電話khsexvarchar(10)客戶性別khaddvarchar(20)NOTNULL客戶地址check(khsexin(男":女")員工信息表yuangong列名數(shù)據(jù)類型可含為空說明主/外鍵ygnovarchar(20)NOTNULL員工編號(hào)主鍵ygnamevarchar(20)NOTNULL員工姓名ygposvarchar(20)NOTNULL員工職務(wù)ygsexvarcha
11、r(5)NOTNULL員工性別ygageintNOTNULL員工年齡ygteivarchar(20)NOTNULL員工電話check(ygsexin(男“:女")check(ygage>18andygage<65)check(ygposin(經(jīng)理","主管","快遞員”)收貨人信息表shouhuoren列名數(shù)據(jù)類型可含為空說明主/外鍵shrnovarchar(20)NOTNULL收貨人編號(hào)主鍵shrnamevarchar(20)NOTNULL收貨人姓名shrsexvarchar(10)收貨人性別shraddvarchar(20)NO
12、TNULL收貨人地址shrtelvarchar(20)NOTNULL收貨人電話check(shrsexin(男","女")倉(cāng)庫(kù)cangku列名數(shù)據(jù)類型可含為空說明主/外鍵cknovarchar(20)rNOTNULL倉(cāng)庫(kù)編號(hào)主鍵ckaddvarchar(50)NOTNULL詳細(xì)地址ckareavarchar(50)NOTNULL負(fù)責(zé)區(qū)域cktelvarchar(20)NOTNULL倉(cāng)庫(kù)電話ckcapintNOTNULL倉(cāng)庫(kù)容量ckweightintNOTNULL以存貨物重量check(ckareain(上?!?,“北京”,“廈門“,“武漢”,“廣州”)運(yùn)單信息表yu
13、ndan列名數(shù)據(jù)類型可含為空說明主/外鍵ydnovarchar(20)NOTNULL貨單編號(hào)主鍵ydpriceint運(yùn)費(fèi)總價(jià)ydstatevarchar(20)運(yùn)單狀態(tài)shrnovarchar(20)NOTNULL收貨人編號(hào)外鍵khnovarchar(20)NOTNULL客戶編號(hào)外鍵hwweightintNOTNULL貨物重量sltimevarchar(20)NOTNULL受理時(shí)間check(ydstatein(接受",“派送完成"取消")轉(zhuǎn)運(yùn)信息zhuanyun列名數(shù)據(jù)類型可含為空說明主/外鍵zynovarchar(20)NOTNULL轉(zhuǎn)運(yùn)編號(hào)1主鍵ydnova
14、rchar(20)NOTNULL運(yùn)單編號(hào)外鍵cknovarchar(20)倉(cāng)庫(kù)編號(hào)外鍵ygnovarchar(20)NOTNULL員工編號(hào):外鍵qstimevarchar(20)起送時(shí)間rktimevarchar(20)入庫(kù)時(shí)間配送信息peisong列名數(shù)據(jù)類型可含為空說明主/外鍵psnovarchar(20)NOTNULL配送編號(hào)主鍵ydnovarchar(20)NOTNULL運(yùn)單編號(hào)外鍵ygnovarchar(20)員工編號(hào)外鍵cktimevarchar(20)出庫(kù)時(shí)間wctimevarchar(20)完成時(shí)間cknovarchar(20)NOTNULL倉(cāng)庫(kù)編號(hào)外鍵評(píng)價(jià)信息pingjia列
15、名數(shù)據(jù)類型可含為空說明主/外鍵pjnovarchar(20)NOTNULL評(píng)價(jià)編號(hào)主鍵ydnovarchar(20)NOTNULL運(yùn)單編號(hào)外鍵speedintNOTNULL運(yùn)輸速度serveintNOTNULL員工服務(wù)totalintNOTNULLP評(píng)分advicevarchar(100)評(píng)價(jià)3.4ER圖3.5 表和外鍵屬性存檔yuangong(ygno,ygname,ygpos,ygsex,ygage,ygtel)primarykeyygnokehu(khno,khname,khtel,khsex,khadd)primarykeykhnohouhuoren(shrno,shrname,shr
16、sex,shraddr,shrtel)primarykeyshrnoyundan(ydno,ydprice,shrno,khno,ygno)primarykeyydnoforeignkeyshrnoreferenceshouhuoren(shr)foreignkeykhnoreferenceshouhuoren(khno)cangku(ckno,ckadd,ckarea,cktel,ckcap,ckweight)primarykeycknozhuanyun(zyno,sno,yno,qstime,rktime)primarykeyzynoforeignkeysknoreferencecangk
17、u(ckno)foreignkeyygnoreferenceyuangong(ygno)peisong(psno,shrno,ygno,cktime,qstime)primarykeypsnoforeignkeyshrnoreferenceshouhuorenforeignkeyygnoreferenceyuangongpingjia(pjno,ydno,pf,pj)primarykeypjnoforeignkeyydnoreferenceyundan3.7 定義參照完整性約束huowuforeignkeyydnoreferenceyundanonupdatecascadeondeleteca
18、scadezhuanyunforeignkeycknoreferencecangkuonupdatecascadeondeletenoactionforeignkeyygnoreferenceyuangongonupdatecascadeondeletenoactionpeisongforeignkeyshrnoreferenceshouhuorenonupdatecascadeondeletenoactionforeignkeyygnoreferenceyuangongonupdatecascadeondeletenoactionpingjiaforeignkeyydnoreferencey
19、undanonupdatecascadeondeletecascade3.8 其他業(yè)務(wù)規(guī)則當(dāng)運(yùn)單狀態(tài)為“接受”時(shí),客戶可以取消訂單;當(dāng)運(yùn)單狀態(tài)為“配送”時(shí),訂單生效不可取消,當(dāng)狀態(tài)為“完成"時(shí),客戶才可以進(jìn)行評(píng)價(jià)。倉(cāng)庫(kù)存儲(chǔ)的貨物總量不能超過其容量;若超過,則運(yùn)單自動(dòng)取消。4 .物理設(shè)計(jì)4.1 轉(zhuǎn)換全局邏輯數(shù)據(jù)模型4.1.1 創(chuàng)建基本表(給出創(chuàng)建每個(gè)基本表的SQL語(yǔ)句,應(yīng)有如下實(shí)現(xiàn):表名、列名、主鍵/侯選鍵、外鍵、參照完整性約束,對(duì)每個(gè)列,應(yīng)有數(shù)據(jù)類型和長(zhǎng)度、默認(rèn)、是否可空等信息)(1)創(chuàng)建客戶表createtablekehu(khnovarchar(20)notnullprimary
20、key,khnamevarchar(20)notnull,khtelvarchar(20)notnull,khsexvarchar(10),khaddvarchar(20)notnull,check(khsexin('男','女')數(shù)據(jù)插入insertintokehuvalues(10001,'趙一:;男','上海號(hào)')insertintokehuvalues(10002,'錢二','男','廣州號(hào)')insertintokehuvalues(10003,'孫三',&
21、#39;女','北京號(hào)')insertintokehuvalues(10004,'李四','男','廈門號(hào)')insertintokehuvalues(10005,'周五','男','武漢號(hào)')insertintokehuvalues(10006,'吳六','男','北京號(hào)')insertintokehuvalues(10007,'關(guān)B七','女','上海號(hào)')insertinto
22、kehuvalues(10008,'王八','男','廈號(hào)')insertintokehuvalues(10009,'馮九','男','武漢號(hào)')insertintokehuvalues(10010,'陳十','男','武漢號(hào)')(2)創(chuàng)建員工表createtableyuangong(ygnovarchar(20)notnullprimarykey,ygnamevarchar(20)notnull,ygposvarchar(20)notnull,ygs
23、exvarchar(20)notnull,ygageintnotnull,ygtelvarchar(20)notnull,check(ygsexin(男','女'),check(ygage>18andygage<65),check(ygposin('經(jīng)理','主管':快遞員'),)數(shù)據(jù)插入insertintoyuangongvalues(20001,褚一','經(jīng)理','男',50,)insertintoyuangongvalues(20002,衛(wèi)二','主管
24、9;,'男',48,)insertintoyuangongvalues(20003,'蔣三','主管','男',46,)insertintoyuangongvalues(20004,'沈四','主管','女',39,)insertintoyuangongvalues(20005,'韓五'快遞員','男',30,)insertintoyuangongvalues(20006,'楊六'快遞員',男',32,)inse
25、rtintoyuangongvalues(20007,'朱七',快遞員','男',31,)insertintoyuangongvalues(20008,'秦八'快遞員','男',34,)insertintoyuangongvalues(20009,'尤九'快遞員','男',30,)insertintoyuangongvalues(20010,'許十'快遞員','男',29,)(3)創(chuàng)建收貨人表createtableshouhuoren(
26、shrnovarchar(20)notnullprimarykey,shrnamevarchar(20)notnull,shrsexvarchar(10),shraddvarchar(20)notnull,shrtelvarchar(20)notnull,check(shrsexin('男','女'),)數(shù)據(jù)插入insertintoshouhuorenvalues(30001,'何一','男','上海號(hào)',)insertintoshouhuorenvalues(30002,'何二','男
27、39;,'上海號(hào)',)insertintoshouhuorenvalues(30003,'何三;男','d匕京號(hào)',)insertintoshouhuorenvalues(30004,'何四','男','d匕京號(hào)',)insertintoshouhuorenvalues(30005,'何五','女','廣州號(hào)',)insertintoshouhuorenvalues(30006,'何六','男','廣州號(hào)'
28、;,)insertintoshouhuorenvalues(30007,'何七','男','武漢號(hào)',)insertintoshouhuorenvalues(30008,'何八','女','武漢號(hào)',)insertintoshouhuorenvalues(30009,'何九;男','廈號(hào)',)insertintoshouhuorenvalues(30010,'何十','男','廈號(hào)',)(4)創(chuàng)建倉(cāng)庫(kù)表createtab
29、lecangku(cknovarchar(20)notnullprimarykey,ckaddvarchar(20)notnull,ckareavarchar(20)notnull,cktelvarchar(20)notnull,ckcapintnotnull,ckweightintnotnulldefault0,check(ckareain('上海','北京','廣力W','武漢','廈門'),)數(shù)據(jù)插入insertintocangkuvalues。,'上海號(hào)','上海',1000
30、0,0)insertintocangkuvalues(2,'北京號(hào)','北京',10000,0)insertintocangkuvalues(3,'廣州號(hào)','廣州',10000,0)insertintocangkuvalues(4,'武漢號(hào),'武漢',10000,0)insertintocangkuvalues(5,'廈門號(hào)','廈門',10000,0)(5)創(chuàng)建運(yùn)單表createtableyundan(ydnovarchar(20)notnullprimarykey,yd
31、pricevarchar(10)notnull,ydstatevarchar(20)notnulldefault接受',shrnovarchar(20)notnull,khnovarchar(20)notnull,sltimevarchar(20)notnull,hwweightintnotnull,check(ydstatein('接受','派送','完成','取消'),foreignkey(shrno)referencesshouhuoren(shrno)onupdatecascade,)運(yùn)單數(shù)據(jù)插入insertint
32、oyundanvalues(50001,10000,'接受',30001,10001,2014-05-08,100)insertintoyundanvalues(50002,10000,'接受',30002,10002,2014-05-08,100)insertintoyundanvalues(50003,10000,'接受',30003,10003,2014-05-09,100)insertintoyundanvalues(50004,10000,'接受',30004,10004,2014-05-09,100)insertint
33、oyundanvalues(50005,10000,'接受',30005,10005,2014-05-10,100)insertintoyundanvalues(50006,20000,'接受',30006,10006,2014-05-10,200)insertintoyundanvalues(50007,20000,'接受',30007,10007,2014-05-11,200)insertintoyundanvalues(50008,20000,'接受',30008,10008,2014-05-11,200)insertint
34、oyundanvalues(50009,20000,'接受',30009,10009,2014-05-12,200)insertintoyundanvalues(50010,20000,'接受',30010,10010,2014-05-12,200)(6)創(chuàng)建轉(zhuǎn)運(yùn)表createtablezhuanyun(zynovarchar(20)notnullprimarykey,ydnovarchar(20)notnull,cknovarchar(20)notnull,ygnovarchar(20)notnull,qstimevarchar(20),rktimevarch
35、ar(20),foreignkey(ckno)referencescangku(ckno),foreignkey(ygno)referencesyuangong(ygno),foreignkey(ydno)referencesyundan(ydno)onupdatecascade)轉(zhuǎn)運(yùn)數(shù)據(jù)輸入insertintozhuanyunvalues(60001,50001,1,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60002,50002,2,20001,2014-05-09,2014-5-10)insertintozhuanyunval
36、ues(60003,50003,3,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60004,50004,4,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60005,50005,5,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60006,50006,1,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60007,50007,1,20001,2014-05-09,2
37、014-5-10)insertintozhuanyunvalues(60008,50008,1,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60009,50009,1,20001,2014-05-09,2014-5-10)insertintozhuanyunvalues(60010,50010,1,20001,2014-05-09,2014-5-10)(7)創(chuàng)建配送表createtablepeisong(psnovarchar(20)notnullprimarykey,ydnovarchar(20)notnull,ygnovarcha
38、r(20),cktimevarchar(20),wctimevarchar(20),foreignkey(ygno)referencesyuangong(ygno),foreignkey(ydno)referencesyundan(ydno)onupdatecascade)配送表數(shù)據(jù)輸入insertintopeisongvalues(70001,50001,20008,2014-05-11,2014-05-12)insertintopeisongvalues(70002,50002,20008,2014-05-11,2014-05-12)insertintopeisongvalues(7000
39、3,50003,20008,2014-05-11,2014-05-12)insertintopeisongvalues(70004,50004,20009,2014-05-11,2014-05-12)insertintopeisongvalues(70005,50005,20009,2014-05-11,2014-05-12)insertintopeisongvalues(70006,50006,20009,2014-05-11,2014-05-12)insertintopeisongvalues(70007,50007,20010,2014-05-11,2014-05-12)(8)創(chuàng)建評(píng)價(jià)表
40、createtablepingjia(pjnovarchar(20)notnull,ydnovarchar(20)notnull,speedintnotnulldefault10,serveintnotnulldefault10,totalintnotnulldefault10,pjvarchar(100),foreignkey(ydno)referencesyundan(ydno),)insertintopingjiavalues(80001,50001,10,10,10,'好')insertintopingjiavalues(80002,50002,8,10,9,不錯(cuò)
41、9;)insertintopingjiavalues(80003,50003,10,6,8,不錯(cuò)')insertintopingjiavalues(80004,50004,10,8,9,不錯(cuò)')insertintopingjiavalues(80005,50005,10,10,10,'好')insertintopingjiavalues(80006,50006,6,6,6,'有待力口強(qiáng)')insertintopingjiavalues(80007,50007,10,8,9,不錯(cuò)')4.1.2 派生數(shù)據(jù)說明yundan表中的運(yùn)費(fèi)總價(jià)ydpr
42、ice,根據(jù)貨物重量乘以100pingjia表中的總評(píng)total,是根據(jù)speed/2+serve/24.1.3 業(yè)務(wù)規(guī)則存檔(給出使用約束、觸發(fā)器等來實(shí)現(xiàn)業(yè)務(wù)規(guī)則的情況)在運(yùn)單表yundan上創(chuàng)建觸發(fā)器,若price為null,則其值設(shè)為貨物重量hwweightx100createtriggeryd_priceonyundanforinsertasdeclarepriceint,hwweightint,ydnovarchar(20)selectprice=inserted.ydprice,hwweight=inserted.hwweight,ydno=inserted.ydnofromins
43、ertedif(priceisnull)beginupdateyundansetydprice=hwweight*100whereydno=ydnoend(2)轉(zhuǎn)運(yùn)表zhuanyun上創(chuàng)建觸發(fā)器,若zhuanyun表中的cangku為null,則由倉(cāng)庫(kù)負(fù)責(zé)區(qū)域和收件人地址決定轉(zhuǎn)運(yùn)到哪個(gè)倉(cāng)庫(kù)createtriggerdecide_ckonzhuanyunforinsertasdeclarezynovarchar(20),cknovarchar(20),ydnovarchar(20),shraddvarchar(20)selectckno=inserted.ckno,ydno=inserted.y
44、dno,zyno=inserted.zynofrominsertedif(cknoisnull)beginselectshradd=shr.shraddfrominserted,yundanyd,shouhuorenshrwhereinserted.ydno=yd.ydnoandyd.shrno=shr.shrnoprintshraddif(shraddlike'上海')setckno=1elseif(shraddlike'北京')setckno=2elseif(shraddlike'廣州%')setckno=3elseif(shraddlike
45、'武漢%')setckno=4elsesetckno=5updatezhuanyunsetckno=cknowherezhuanyun.zyno=zynoendgo(3)當(dāng)運(yùn)單狀態(tài)為完成時(shí),將不能修改運(yùn)單createtriggeryundan_nofixonyundanforupdateasdeclarestatevarchar(20)selectstate=deleted.ydstatefromdeletedif(state='完成')rollbacktransaction(4)當(dāng)運(yùn)單狀態(tài)為完成時(shí),不能在此運(yùn)單上新建配送createtriggerpeisong
46、_nofixonyundanforinsertasdeclarestatevarchar(20)selectstate=inserted.ydnofrominsertedif(state='完成')rollbacktransaction(4)當(dāng)運(yùn)單狀態(tài)為完成時(shí),不能再在此運(yùn)單上新建轉(zhuǎn)運(yùn)createtriggerzhuanyun_nofixonzhuanyunforinsertasdeclarestatevarchar(20)selectstate=inserted.ydnofrominsertedif(state='完成')rollbacktransaction
47、(5)當(dāng)貨物開始轉(zhuǎn)運(yùn),新建轉(zhuǎn)運(yùn)項(xiàng)時(shí),把訂單狀態(tài)設(shè)置為派送createtriggeradd_zyonzhuanyunforinsertasdeclareydnovarchar(20)selectydno=inserted.ydnofrominsertedupdateyundansetyundan.ydstate='派送'whereyundan.ydno=ydno(6)在zhuanyun表中設(shè)置觸發(fā)器,計(jì)算倉(cāng)庫(kù)儲(chǔ)存量ckweight的值,每當(dāng)貨物運(yùn)進(jìn)該倉(cāng)庫(kù),ckweight加上該貨物重量。當(dāng)倉(cāng)庫(kù)貨物達(dá)到或超過倉(cāng)庫(kù)容量時(shí),則給予預(yù)警,createtriggerckweight_upo
48、nzhuanyunforupdate,insertasdeclarehwweightbigint,cknovarchar(20),ckweightbigint,ckcapbigintselecthwweight=yd.hwweight,ckno=inserted.cknofromyundanyd,insertedwhereyd.ydno=inserted.ydnoupdatecangkusetcangku.ckweight=cangku.ckweight+hwweightwherecangku.ckno=cknoselectckweight=ck.ckweight,ckcap=ck.ckcap
49、,ckno=inserted.cknofrominserted,cangkuckwhereinserted.ckno=ck.cknoif(ckweight>=ckcap)beginrollbacktransactionprint倉(cāng)請(qǐng)注意'+ckno+'倉(cāng)庫(kù)以滿'endgo(8)在zhuanyun表中設(shè)置觸發(fā)器,當(dāng)新建配送項(xiàng)時(shí),表示運(yùn)單已經(jīng)完成,運(yùn)單狀態(tài)ydstate變?yōu)橥瓿蒫reatetriggeradd_psonpeisongforinsertasdeclareydnovarchar(20)selectydno=inserted.ydnofrominserted
50、updateyundansetyundan.ydstate='完成'whereyundan.ydno=ydno(9)在運(yùn)單表中設(shè)置一個(gè)觸發(fā)器,當(dāng)運(yùn)單狀態(tài)為“接受”時(shí),可以取消訂單,為其他狀態(tài)時(shí),無法取消訂單createtriggerkehu_droponyundanfordeleteasdeclarestatevarchar(20),ydnovarchar(20)selectstate=ydstate,ydno=ydnofromdeletedif(state='接受')beginprint運(yùn)單已取消,updateyundansetyundan.ydstate=&
51、#39;取消whereyundan.ydno=ydnoendelsebeginprint'對(duì)不起,運(yùn)單已經(jīng)在派送路上,不能取消rollbacktransactionend(10)在peisong表中設(shè)置觸發(fā)器,計(jì)算倉(cāng)庫(kù)儲(chǔ)存量ckweight的值,當(dāng)貨物開始配送時(shí),倉(cāng)庫(kù)中的ckweight減去該貨物的重量createtriggerckweight_down1onpeisongforupdate,insertasdeclarehwweightint,cknovarchar(20),ydnovarchar(20),mycangkuintselecthwweight=yd.hwweight,y
52、dno=inserted.ydno,ckno=zy.cknofromyundanyd,inserted,zhuanyunzywhereyd.ydno=inserted.ydnoandzy.ydno=inserted.ydnoupdatecangkusetcangku.ckweight=cangku.ckweight-hwweightwherecangku.ckno=cknoselectmycangku=cangku.ckweightfromcangkuwherecangku.ckno=cknoprintcknoprinthwweightprintmycangkugo(11)在pingjia表中
53、設(shè)置一個(gè)觸發(fā)器,當(dāng)用戶修改pingjia表中的speed或者serve評(píng)分時(shí),total自動(dòng)修改createtriggerupdate_pingjiaonpingjiaforupdateasifupdate(speed)orupdate(serve)declarespeedint,serveint,pjnovarchar(20)beginselectspeed=inserted.speed,serve=inserted.serve,pjno=inserted.pjnofrominsertedupdatepingjiasettotal=speec/2+serve/2wherepjno=pjnoe
54、nd(12)當(dāng)運(yùn)單狀態(tài)不為完成時(shí),則不能評(píng)價(jià)createtriggernew_pjonpingjiaforinsertasdeclarestatevarchar(20)selectstate=yd.ydstatefrominserted,yundanydwhereinserted.ydno=yd.ydnoif(state<>'完成')rollbacktransaction4.2 設(shè)計(jì)物理表示法4.2.1 事務(wù)需求的實(shí)現(xiàn)(針對(duì)2.1.2節(jié)的每一個(gè)事務(wù)需求,給出SQL源代碼的實(shí)現(xiàn);可以把其中復(fù)雜的事務(wù)需求封裝成為存儲(chǔ)過程,對(duì)于這些存儲(chǔ)過程1、給出SQL源代碼2、給出對(duì)存
55、儲(chǔ)過程功能的說明3、對(duì)每個(gè)存儲(chǔ)過程給出一個(gè)測(cè)試用例)4.2.1.1 數(shù)據(jù)錄入利用存儲(chǔ)過程,給yuangong表添加信息createprocinsert_ygygnovarchar(20),ygnamevarchar(20),ygposvarchar(20),ygsexvarchar(20),ygageint,ygtelvarchar(20)asinsertintoyuangongvalues(ygno,ygname,ygpos,ygsex,ygage,ygtel)goexecinsert_yg20022,'許十?快遞員','男',29,(2)利用存儲(chǔ)過程,給ca
56、ngku表添加信息createprocinsert_ckcknovarchar(20),ckaddvarchar(20),ckareavarchar(20),cktelvarchar(20),ckcapvarchar(20),ckweightvarchar(20)asinsertintocangkuvalues(ckno,ckadd,ckarea,cktel,ckcap,ckweight)goexecinsert_ck5,'廈門號(hào),廈門,10000,0利用存儲(chǔ)過程,給kehu表添加信息createprocinsert_khkhnovarchar(20),khnamevarchar(20
57、),khtelvarchar(20),khsexvarchar(10),khaddvarchar(20)asinsertintokehuvalues(khno,khname,khtel,khsex,khadd)execinsert_kh10025,'王九',男','武漢號(hào)'(4)利用存儲(chǔ)過程,給shouhuoren表添加信息createprocinsert_shrshrnovarchar(20),shrnamevarchar(20),shrsexvarchar(10),shraddvarchar(20),shrtelvarchar(20)asinsert
58、intoshouhuorenvalues(shrno,shrname,shrsex,shradd,shrtel)goexecinsert_shr30013,何十','男','北京號(hào)',利用存儲(chǔ)過程,給yundan表添加信息createprocinsert_ydydnovarchar(20),ydpriceint,ydstatevarchar(20),shrnovarchar(20),khnovarchar(20),sltimevarchar(20),heweightintasinsertintoyundanvalues(ydno,ydprice,ydstate,shrno,khno,sltime,heweight)go(6)利用存儲(chǔ)過程,給zhuanyun表添加信息createpr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 循環(huán)泵產(chǎn)品供應(yīng)鏈分析
- 保險(xiǎn)承保行業(yè)經(jīng)營(yíng)分析報(bào)告
- 印制的日程表產(chǎn)品供應(yīng)鏈分析
- 電動(dòng)指甲銼細(xì)分市場(chǎng)深度研究報(bào)告
- 制塑料桶罐設(shè)備產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 電報(bào)線產(chǎn)品供應(yīng)鏈分析
- 與企業(yè)并購(gòu)相關(guān)的法律研究行業(yè)經(jīng)營(yíng)分析報(bào)告
- 提高學(xué)生拼音學(xué)習(xí)效果的教學(xué)策略-探索多種形式的練習(xí)和鞏固
- 測(cè)振儀產(chǎn)品供應(yīng)鏈分析
- 導(dǎo)演廣告片行業(yè)營(yíng)銷策略方案
- 《復(fù)活(節(jié)選)》課件+2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修上冊(cè)
- 成人有創(chuàng)機(jī)械通氣氣道內(nèi)吸引技術(shù)操作標(biāo)準(zhǔn)解讀
- DB11T 583-2022 扣件式和碗扣式鋼管腳手架安全選用技術(shù)規(guī)程
- 地基土淺層平板載荷試驗(yàn)方案
- 2024-2025學(xué)年初中信息技術(shù)(信息科技)七年級(jí)上冊(cè)贛科版教學(xué)設(shè)計(jì)合集
- 第四單元檢測(cè)卷(單元測(cè)試)-2024-2025學(xué)年三年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 2024年公司股權(quán)轉(zhuǎn)讓中介的協(xié)議范本
- 蘇教版六年級(jí)上冊(cè)數(shù)學(xué)期中考試試題帶答案
- 北京市海淀區(qū)九年級(jí)(上)期中數(shù)學(xué)試卷-
- 中圖版2024-2025學(xué)年七年級(jí)地理上學(xué)期期中練習(xí)卷含答案
- 神東煤炭集團(tuán)招聘筆試題庫(kù)2024
評(píng)論
0/150
提交評(píng)論