數(shù)據(jù)庫課程設(shè)計(jì)指導(dǎo)書_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)指導(dǎo)書_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)指導(dǎo)書_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)指導(dǎo)書_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)指導(dǎo)書_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第五章 課程設(shè)計(jì)5.1 實(shí)驗(yàn)簡介實(shí)驗(yàn)名稱:管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計(jì)建議學(xué)時(shí):一周實(shí)驗(yàn)?zāi)康模罕緦?shí)驗(yàn)的目的是為了讓學(xué)生能夠全面了解數(shù)據(jù)庫應(yīng)用系統(tǒng)的整個(gè)開發(fā)過程,逐步掌握系統(tǒng)開發(fā)的以下相關(guān)技術(shù):(一)鞏固數(shù)據(jù)庫理論知識,熟悉一種具體的數(shù)據(jù)庫管理系統(tǒng)(例如:SQL Server)的使用方法。(二)掌握針對特定應(yīng)用環(huán)境數(shù)據(jù)庫的設(shè)計(jì)。(三)綜合使用SQL Server中數(shù)據(jù)庫、表、視圖、索引、觸發(fā)器、存儲過程的創(chuàng)建使用方法。(四)體會運(yùn)用軟件工程的設(shè)計(jì)思想進(jìn)行軟件系統(tǒng)開發(fā)的過程與方法。通過本課程設(shè)計(jì),有助于學(xué)生鞏固數(shù)據(jù)庫系統(tǒng)的理論,掌握數(shù)據(jù)庫的設(shè)計(jì)方法及數(shù)據(jù)庫的運(yùn)用和開發(fā)技術(shù)。實(shí)驗(yàn)內(nèi)容及步驟:針對某部門或

2、公司的實(shí)踐調(diào)研,通過系統(tǒng)需求分析、數(shù)據(jù)庫概念設(shè)計(jì)、邏輯設(shè)計(jì), 用SQL上機(jī)編程、調(diào)試和應(yīng)用實(shí)現(xiàn)數(shù)據(jù)庫的設(shè)計(jì),最終完成某管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計(jì)。(一)系統(tǒng)需求分析和系統(tǒng)設(shè)計(jì)用軟件工程的方法進(jìn)行系統(tǒng)需求分析和系統(tǒng)設(shè)計(jì)得出系統(tǒng)的數(shù)據(jù)流圖數(shù)據(jù)字典和信息模型。(二)數(shù)據(jù)庫設(shè)計(jì)按數(shù)據(jù)庫設(shè)計(jì)方法和規(guī)范化理論得出符合3NF的邏輯模型,外模型和物理模型。(三)數(shù)據(jù)庫定義和數(shù)據(jù)安全性與完整性定義定義數(shù)據(jù)庫、基本表、視圖和安全性、完整性約束的要求。(四)應(yīng)用程序設(shè)計(jì)和程序調(diào)試設(shè)計(jì)并編寫輸入/輸出、查詢/統(tǒng)計(jì)、數(shù)據(jù)維護(hù)等功能模塊的應(yīng)用程序,要求至少使用表、視圖、索引的創(chuàng)建命令,表中數(shù)據(jù)的增、刪、改、查詢的命令,存儲

3、過程的創(chuàng)建和使用命令,觸發(fā)器的創(chuàng)建和使用命令。(五)撰寫課程設(shè)計(jì)報(bào)告對系統(tǒng)的各個(gè)功能模塊進(jìn)行集成、總調(diào)試,撰寫課程設(shè)計(jì)報(bào)告。課程設(shè)計(jì)安排:三人為一組,每組一個(gè)課題,每組設(shè)組長一名,負(fù)責(zé)該組設(shè)計(jì)工作的協(xié)調(diào)、分工等,小組成員分工需明確,確保每個(gè)成員都有一定的任務(wù)量。課程設(shè)計(jì)建議持續(xù)一周(7天),具體日程安排如表5.1所示。表5.1 課程設(shè)計(jì)安排表時(shí)間內(nèi)容安排第1天按組討論、對系統(tǒng)功能進(jìn)行需求分析并進(jìn)行明確分工第2天概念模型設(shè)計(jì):設(shè)計(jì)E-R模型,詳細(xì)描述實(shí)體的屬性和實(shí)體之間的聯(lián)系第3天邏輯結(jié)構(gòu)設(shè)計(jì):實(shí)現(xiàn)E-R圖向關(guān)系模型的轉(zhuǎn)換;物理結(jié)構(gòu)設(shè)計(jì):表的屬性設(shè)置等第4-6天實(shí)現(xiàn)表的創(chuàng)建,視圖的創(chuàng)建;建立索引

4、;實(shí)現(xiàn)列、行及參照完整性;向表中插入數(shù)據(jù);查詢數(shù)據(jù);設(shè)計(jì)存儲過程、觸發(fā)器第7天完成課程設(shè)計(jì)報(bào)告考核形式:通過程序?qū)崿F(xiàn)、總結(jié)報(bào)告和學(xué)習(xí)態(tài)度,并結(jié)合學(xué)生的動手能力,獨(dú)立分析解決問題的能力和創(chuàng)新精神綜合考評??己朔绞讲捎闷綍r(shí)檢查、程序檢查和課程設(shè)計(jì)報(bào)告檢查結(jié)合的辦法。成績分優(yōu)、良、中、及格和不及格五等??己藰?biāo)準(zhǔn)包括:1、程序代碼(50%)2、學(xué)生的工作態(tài)度、動手能力、創(chuàng)新精神及出勤率(30%)3、課程設(shè)計(jì)報(bào)告(20%)5.2 參考選題及功能要求1.機(jī)票預(yù)定信息系統(tǒng)系統(tǒng)功能的基本要求:航班基本信息,包括航班的編號、飛機(jī)名稱、機(jī)艙等級等;機(jī)票信息,包括票價(jià)、折扣、當(dāng)前預(yù)售狀態(tài)及經(jīng)手業(yè)務(wù)員等;客戶基本信息

5、,包括姓名、聯(lián)系方式、證件及號碼、付款情況等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除,需按照一定條件查詢、統(tǒng)計(jì)符合條件的航班、機(jī)票等信息,實(shí)現(xiàn)機(jī)票的預(yù)訂、退訂功能。2.長途汽車信息管理系統(tǒng)系統(tǒng)功能的基本要求:線路信息,包括出發(fā)地、目的地、出發(fā)時(shí)間、所需時(shí)間等;汽車信息,包括汽車的種類及相應(yīng)的票價(jià)、最大載客量等;票價(jià)信息,包括售票情況、查詢、打印相應(yīng)的信息。需實(shí)現(xiàn)基本信息的錄入、修改和刪除,需按照一定條件查詢、統(tǒng)計(jì)符合條件的汽車及車票等信息,實(shí)現(xiàn)車票的預(yù)訂、退訂功能。3.人事信息管理系統(tǒng)系統(tǒng)功能基本要求:員工各種信息,包括員工的基本信息,如編號、姓名、性別、學(xué)歷、所屬部門、畢業(yè)院校、健康情況、職稱、職

6、務(wù)、獎懲等。需實(shí)現(xiàn)員工各種信息的錄入、修改;對轉(zhuǎn)出、辭退、退休員工信息的刪除;需按照一定條件查詢、統(tǒng)計(jì)符合條件的員工信息。4.超市會員管理系統(tǒng)系統(tǒng)功能的基本要求:會員的基本信息,包括姓名、性別、年齡、工作單位、聯(lián)系方式等;加入會員的基本信息,包括成為會員的基本條件、優(yōu)惠政策、優(yōu)惠時(shí)間等;會員購物信息,包括購買物品編號、物品名稱、所屬種類,數(shù)量,價(jià)格等;會員返利信息,包括會員積分的情況,享受優(yōu)惠的等級等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;能按照一定條件查詢符合條件的會員信息;需對貨物流量及消費(fèi)人群進(jìn)行統(tǒng)計(jì)輸出。5.客房管理系統(tǒng)系統(tǒng)功能的基本要求:客房各種信息,包括客房的類別、當(dāng)前的狀態(tài)、負(fù)責(zé)人等

7、;客房信息的查詢和修改,包括按房間號查詢住宿情況、按客戶信息查詢房間狀態(tài)等。需要實(shí)現(xiàn)退房、訂房、換房等信息的修改。對查詢、統(tǒng)計(jì)結(jié)果打印輸出。6.藥品存銷信息管理系統(tǒng)系統(tǒng)功能基本要求:藥品信息,包括藥品編號、藥品名稱、生產(chǎn)廠家、生產(chǎn)日期、保質(zhì)期、用途、價(jià)格、數(shù)量、經(jīng)手人等;員工信息,包括員工編號、姓名、性別、年齡、學(xué)歷、職務(wù)等;客戶信息,包括客戶編號、姓名、聯(lián)系方式、購買時(shí)間、購買藥品編號、名稱、數(shù)量等;入庫和出庫信息,包括當(dāng)前庫存信息、藥品存放位置、入庫數(shù)量和出庫數(shù)量等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢、統(tǒng)計(jì)符合條件的藥品、客戶、入庫、出庫的信息。7.學(xué)生選課管理信息系統(tǒng)系

8、統(tǒng)功能基本要求:教師信息,包括教師編號、教師姓名、性別、年齡、學(xué)歷、職稱、畢業(yè)院校,健康狀況等;學(xué)生信息,包括學(xué)號、姓名、所屬院系、已選課情況等;教室信息,包括可容納人數(shù)、空閑時(shí)間等;選課信息,包括課程編號、課程名稱、任課教師、選課的學(xué)生情況等;成績信息,包括課程編號、課程名稱、學(xué)分、成績。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢,統(tǒng)計(jì)學(xué)生的選課情況、成績情況、教師情況和教室情況。8.圖書管理系統(tǒng)系統(tǒng)功能基本要求:圖書信息,包括圖書編號、圖書名稱、所屬類別等;讀者信息,包括讀者編碼、姓名、性別、專業(yè)等;借還書信息,包括圖書當(dāng)前狀態(tài)、被借還次數(shù)、借閱時(shí)間等。需實(shí)現(xiàn)基本信息的錄入、修改

9、和刪除;需按照一定條件查詢,統(tǒng)計(jì)圖書信息、讀者信息和借還書信息。能實(shí)現(xiàn)借書、還書功能。9.學(xué)生成績管理系統(tǒng)系統(tǒng)功能基本要求:學(xué)生信息,學(xué)號、姓名、性別、專業(yè)、年級等;學(xué)生成績信息,包括學(xué)號、課程編號、課程名稱、分?jǐn)?shù)等;課程信息,包括課程編號、課程名稱、任課教師等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢,統(tǒng)計(jì)學(xué)生成績,但不能任意修改成績。10.網(wǎng)上書店管理信息系統(tǒng)功能基本要求:書籍信息,包括圖書編號、圖書種類、圖書名稱、單價(jià)、內(nèi)容簡介等;購書者信息,包括購買編號、姓名、性別、年齡、聯(lián)系方式購買書的名稱等;購買方式,包括付款方式、發(fā)貨手段等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;根據(jù)讀者

10、信息查詢購書情況、書店的銷售情況。11.教室管理信息系統(tǒng)系統(tǒng)功能基本要求:教室信息,包括教室容納人數(shù)、教室空閑時(shí)間、教室設(shè)備等;教師信息,包括教師姓名、教授課程、教師職稱、安排上課時(shí)間等;教室安排信息,包括何時(shí)空閑、空閑的開始時(shí)間、結(jié)束時(shí)間等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢,統(tǒng)計(jì)教室使用情況。12論壇管理信息系統(tǒng)系統(tǒng)功能基本要求;作者信息,包括作者昵稱、性別、年齡、職業(yè)、愛好等;貼子信息,包括貼子編號、發(fā)貼日期、時(shí)間、等級等;回復(fù)信息,包括回復(fù)作者昵稱、回復(fù)時(shí)間等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢,統(tǒng)計(jì)作者信息、帖子情況和回復(fù)情況。13.職工考勤管理信

11、息系統(tǒng)系統(tǒng)功能基本要求:職工信息,包括職工編號、職工姓名、性別、年齡、職稱等;出勤記錄信息,包括上班打卡時(shí)間,下班打卡時(shí)間,缺勤記錄等;出差信息,包括出差起始時(shí)間、結(jié)束時(shí)間、統(tǒng)計(jì)總共天數(shù)等;請假信息,包括請假開始時(shí)間,結(jié)束時(shí)間,統(tǒng)計(jì)請假天數(shù)等;加班信息,包括加班開始時(shí)間、結(jié)束時(shí)間、統(tǒng)計(jì)加班總時(shí)間。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢,統(tǒng)計(jì)職工的考勤情況和加班情況。14.個(gè)人信息管理系統(tǒng)系統(tǒng)功能基本要求:通訊錄信息,包括通訊人姓名、聯(lián)系方式、工作地點(diǎn)、城市、備注等;備忘錄信息,包括什么時(shí)間、事件、地點(diǎn)等;日記信息,包括時(shí)間、地點(diǎn)、事情、人物等;個(gè)人財(cái)物管理,包括總收入,消費(fèi)項(xiàng)目、

12、消費(fèi)金額、消費(fèi)時(shí)間、剩余資金等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按照一定條件查詢,統(tǒng)計(jì)個(gè)人信息。15. 辦公室日常管理信息系統(tǒng)系統(tǒng)功能基本要求:文件管理信息,包括文件編號、文件種類、文件名稱、存放位置等;考勤管理,包括姓名、年齡、職務(wù)、日期、出勤情況等;需查詢員工的出勤情況。會議記錄,包括會議時(shí)間、參會人、記錄員、會議內(nèi)容等;辦公室日常事務(wù)管理,包括時(shí)間、事務(wù)、記錄人。需按條件查詢,統(tǒng)計(jì)。16.轎車銷售信息管理系統(tǒng)系統(tǒng)功能基本要求:轎車信息,包括轎車的編號、型號、顏色、生產(chǎn)廠家、出廠日期、價(jià)格等;員工信息,包括員工編號、姓名、性別、年齡、籍貫、學(xué)歷等;客戶信息,包括客戶名稱、聯(lián)系方式、地址

13、、業(yè)務(wù)聯(lián)系記錄等;轎車銷售信息,包括銷售日期、轎車類型、顏色、數(shù)量、經(jīng)手人等。需實(shí)現(xiàn)基本信息的錄入、修改和刪除;需按條件查詢,統(tǒng)計(jì)銷售情況。17.高校學(xué)生宿舍管理系統(tǒng)系統(tǒng)功能基本要求:宿舍樓信息,包括樓號,層數(shù),寢室數(shù)等;學(xué)生信息,包括學(xué)號、姓名、性別、院系、班級、所在宿舍號等;宿舍信息,包括宿舍號,所在樓號,所在層數(shù),床位數(shù),實(shí)際人數(shù)等;宿舍事故信息,包括宿舍號,事故原因,事故時(shí)間,是否解決等。需實(shí)現(xiàn)宿舍信息的添加、修改、刪除及查詢;學(xué)生信息的添加、修改、刪除及查詢;宿舍備品及事故的查詢等功能。18. 員工工資管理系統(tǒng)系統(tǒng)功能基本要求:員工基本信息,包括員工號,員工名,性別,出生日期,職稱,

14、職務(wù)等;員工考勤信息,包括員工號,遲到,早退,曠工,請假等;員工工種信息,包括員工的工種、等級,基本工資等信息;員工津貼信息,包括員工的加班時(shí)間,加班類別、加班天數(shù)、津貼情況等; 員工月工資,包括員工號,基本工資,津貼,扣款,應(yīng)發(fā)工資,實(shí)發(fā)工資等。要求能夠設(shè)定員工每個(gè)工種的基本工資;管理加班津貼,根據(jù)加班時(shí)間和類型給予不同的加班津貼;按照不同工種的基本工資情況、員工的考勤情況產(chǎn)生員工的每月的月工資;生成員工的年終獎金,員工的年終獎金計(jì)算公式(員工本年度的工資總和津貼的總和)/12;生成企業(yè)工資報(bào)表。能夠查詢單個(gè)員工的工資情況、每個(gè)部門的工資情況、按月的工資統(tǒng)計(jì);5.3 實(shí)驗(yàn)報(bào)告要求1 封面(含

15、實(shí)驗(yàn)課程名稱、專業(yè)、班級、小組成員的學(xué)號及姓名、指導(dǎo)教師及職稱、開課學(xué)期、完成時(shí)間);2 設(shè)計(jì)題目;3 實(shí)驗(yàn)?zāi)康模? 軟硬件環(huán)境;5 實(shí)驗(yàn)設(shè)計(jì)簡述(簡要說明設(shè)計(jì)題目的基本情況);6 系統(tǒng)需求分析與功能設(shè)計(jì)(根據(jù)課題的要求進(jìn)行簡單的需求分析,設(shè)計(jì)相應(yīng)的數(shù)據(jù)流圖,得出相應(yīng)的系統(tǒng)功能需要,系統(tǒng)數(shù)據(jù)流圖);7 概念模型設(shè)計(jì)(按數(shù)據(jù)庫設(shè)計(jì)方法和規(guī)范化理論,從實(shí)踐概括抽象出ER模型);8 邏輯模型設(shè)計(jì)(按數(shù)據(jù)庫設(shè)計(jì)方法和規(guī)范化理論得出符合3NF的邏輯模型,ER圖設(shè)計(jì),ER圖轉(zhuǎn)化為相應(yīng)的關(guān)系模式,設(shè)計(jì)數(shù)據(jù)庫的邏輯模型);9 物理模型設(shè)計(jì)(存儲記錄結(jié)構(gòu)設(shè)計(jì),物理文件的安排和建立索引);10 實(shí)現(xiàn)(數(shù)據(jù)庫結(jié)構(gòu)設(shè)

16、計(jì)的程序代碼,增、刪、改、查等基本操作的程序代碼);11 實(shí)驗(yàn)總結(jié)(主要對本實(shí)驗(yàn)開發(fā)過程進(jìn)行歸納和總結(jié),還應(yīng)包括在設(shè)計(jì)過程中所遇到的技術(shù)難點(diǎn)及解決方法,尚存在的問題以及進(jìn)一步開發(fā)的見解與建議。);12 參考文獻(xiàn)。13 系統(tǒng)功能基本要求:5.4 參考實(shí)例交易中心管理系統(tǒng)(一)實(shí)驗(yàn)?zāi)康尼槍α慵灰字行牡膶?shí)踐調(diào)研,通過系統(tǒng)需求分析、數(shù)據(jù)庫概念設(shè)計(jì)、邏輯設(shè)計(jì)到上機(jī)編程、調(diào)試和應(yīng)用等全過程完成零件交易中心管理系統(tǒng)的后臺數(shù)據(jù)庫設(shè)計(jì)。(二)實(shí)驗(yàn)設(shè)計(jì)簡述零件交易中心管理系統(tǒng)主要提供顧客和供應(yīng)商之間完成零件交易的功能,其中包括供應(yīng)商信息、顧客信息以及零件信息。此系統(tǒng)可以讓供應(yīng)商增加、刪除和修改所提供的零件產(chǎn)品,

17、還可以讓顧客增加、刪除和修改所需求的零件。交易員可以利用顧客提出的需求信息和供應(yīng)商提出的供應(yīng)信息來提出交易的建議,由供應(yīng)商和顧客進(jìn)行確認(rèn)后即完成這筆交易。(三)系統(tǒng)需求分析l供應(yīng)商供應(yīng)商的操作流程圖如圖5-1所示。增加供應(yīng)項(xiàng)修改供應(yīng)項(xiàng)刪除供應(yīng)項(xiàng)修改個(gè)人信息供應(yīng)項(xiàng)注冊注銷圖5-1 供應(yīng)商操作分類表 2顧客顧客的地位和供應(yīng)商幾乎是對稱的,所以功能分類上也很相似顧客的操作流程圖如圖5-2所示。增加需求項(xiàng)修改需求項(xiàng)刪除需求項(xiàng)修改個(gè)人信息顧客注冊注銷圖5-2 顧客操作分類表3交易員交易員的工作就是提出交易和完成交易。這里需要仔細(xì)考慮的問題是:一個(gè)交易如何產(chǎn)生,并如何達(dá)成,可以用圖5-3來說明這個(gè)問題。在

18、處理交易的時(shí)候可能面臨如下問題:(1)一個(gè)交易只能在交易雙方都同意的情況下才可以進(jìn)行,所以數(shù)據(jù)庫中的供求信息只能作為達(dá)成某個(gè)交易的基礎(chǔ);(2)交易的雙方可能不同時(shí)使用這個(gè)系統(tǒng),因此需要系統(tǒng)提供一個(gè)雙方交換信息的方式;(3)系統(tǒng)需要提供一種方便系統(tǒng)(交易員)向用戶提出建議來促成交易的途徑,并在保證數(shù)據(jù)庫數(shù)據(jù)完整性的情況下達(dá)成交易。交易員協(xié)議書草案供應(yīng)商以及顧客簽字正式簽字交易員簽發(fā)完成交易供應(yīng)商提出交易顧客提出交易申請交易員提出交易建議圖5-3 交易員操作圖(四)概念模型設(shè)計(jì)數(shù)據(jù)庫需要表述的信息有以下幾種:(1)零件信息(2)供應(yīng)商信息(3)顧客信息(4)供應(yīng)商集和零件集之間的供應(yīng)聯(lián)系ER模型如

19、圖5-4所示。M : N零件顏色零件號零件名重量簡介供應(yīng)商名供應(yīng)商供應(yīng)商號地址電話簡介供應(yīng)數(shù)量價(jià)格圖5-4供應(yīng)商和零件之間的聯(lián)系(供應(yīng)) ER模型(5)顧客集和零件集之間的求購聯(lián)系ER圖如圖5-5所示。M : N零件顏色零件號零件名重量簡介顧客電話顧客號顧客名地址求購數(shù)量價(jià)格圖5-5 顧客和零件之間的聯(lián)系(求購) ER模型(6)交易(三元聯(lián)系)可以用E/R模型表述該模型的設(shè)計(jì),E/R圖如圖5-6所示。價(jià)格數(shù)量nmmnnm供應(yīng)商供應(yīng)商號供應(yīng)商名地址電話簡介供應(yīng)數(shù)量價(jià)格顧客電話顧客號顧客名地址零件顏色零件號零件名重量簡介求購數(shù)量價(jià)格p交易圖5-6 全局ER模型(五)邏輯模型設(shè)計(jì)通過ER模型到關(guān)系模

20、型的轉(zhuǎn)化,可以得到如下關(guān)系模式:(1)零件實(shí)體集轉(zhuǎn)換為 關(guān)系:Part(ID,Color,Name,Weight,Intro)(2)供應(yīng)商實(shí)體集轉(zhuǎn)換為 關(guān)系Provider(ID,Name,Addtess,Tel,Intro)(3)顧客實(shí)體集轉(zhuǎn)換為 關(guān)系Customer(ID,Name,Addtess,Tel)(4)供應(yīng)聯(lián)系轉(zhuǎn)換為 關(guān)系Supply(PartlD,ProviderlD,Price,Quantity)(5)求購聯(lián)系轉(zhuǎn)換為 關(guān)系OfferToBuy(CustomerlD,PartID,Price,Quantity)(6)交易聯(lián)系轉(zhuǎn)換為 關(guān)系Business(CustomerlD,P

21、roviderlD,PartID,Price,Quantity) 每個(gè)關(guān)系模式的主鍵碼都用下劃線標(biāo)出。同時(shí),對于從聯(lián)系導(dǎo)出的關(guān)系Supply(供應(yīng)),OfferToBuy(求購)和Business(交易),使用與之相聯(lián)系的實(shí)體集的主鍵碼作為自己的鍵碼,必須符合外鍵碼約束。對于Customer(顧客),Provider(供應(yīng)商)和Part(零件)之間,不存在直接的約束,所以可以存在沒有供應(yīng)商供應(yīng)同時(shí)也沒有顧客求購的零件。(六)物理模型設(shè)計(jì)1存儲記錄結(jié)構(gòu)設(shè)計(jì)表5.2 Part表列名類型長度約束IDsmallintPRIMARY KEYColorvarchar20Namevarchar20NOT N

22、ULLWeightintDEFAULT 0Introtext其他表類似。2為了提高在表中搜索元組的速度,在實(shí)際實(shí)現(xiàn)的時(shí)候應(yīng)該基于鍵碼建立索引是各表中建立索引的表項(xiàng):(1)part(ID)(2)Provider(ID)(3)Customer(ID)(4)Supply(PartID,ProviderID(5)OfferTOBuy(CustomerID,PartID)(6)Business(CustomerlD,ProviderID,PartID)(七)實(shí)現(xiàn)1建立Part表 CREATE TABLE Part(ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTER

23、ED,Color varchar(20),Name varchar(20) NOT NULL,Weight int DEFAULT 0,Intro text)2建立Provider表CREATE TABLE Provider(ID smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL,password varchar(8) NOT NULL,Address varchar(30),Tel varchar(20),Intro text)3建立Customer表CREATE TABLE Customer(ID

24、Smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED,Name varchar(20) NOT NULL, Address varchar(30),TeL Varchar(20) )4建立Supply表CREATE TABLE Supply(PartID Smallint,ProviderID smallint,Price int,QUantity int,CONSTRAINT PK_SUPPLY PRIMARY KEY CLUSTERED(PartID,ProviderID),CONSTRAINT FK_SUPPLY_PARTID FOREIGN KEY(

25、PartID) REFERENCES Part(ID),CONSTRAINT FK_SUPPLY_PROVIDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID)5建立OfferToBuy表CREATE TABLE OfferToBuy(CustomerID smallint,PartID Smallint,Price int,Quantity int,CONSTRAINT PK_OFFERTOBUY PRIMARY KEY CLUSTERED(CustomerID,PartID),CONSTRAINT FK_OFFERTOBUY_CUSTO

26、MERID FOREIGN KEY(CustomerID) REFERENCES Customer(ID),CONSTRAINT FK_OFFERTOBUY FOREIGN KEY(PartID) REFERENCES Part(ID)6建立Business表CREATE TABLE Business(CustomerID smallint,ProviderID smallint,PartID Smallint,Price int,Quantity int,CONSTRAINT PK_BUSINEss PRIMARY KEY ClUSTERED(CuscomerID,ProviderID,Pa

27、rtID),CONSTRAINT FK_BUSINESS_CUSTOMERID FOREIGN KEY(CustomerID)REFERENCES Customer(ID),CONSTRAINT FK_BUSINESS_PROVIDERlD FOREIGN KEY(ProviderID) REFERENCES Provider(ID),CONSTRAINT FK_BUSINESS_PARTID FOREIGN KEY(PartID)REFERENCES Part(ID)7供應(yīng)商操作(1)注冊(register)INSERT INTO Provider(Name,password,Address

28、,TeI,Intro)VALUES(#Name,#password,#Address,#Tel,#Intro)在登記操作后,供應(yīng)商得到一個(gè)唯一的ID,可以根據(jù)這個(gè)ID采查詢和修改供應(yīng)商的數(shù)據(jù)。(2)注銷(unregister)DELETE Provider WHERE(ID=#ID);(3)修改個(gè)人館息(update)UPdate Provider Set(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro)WHERE(ID#ID);(4)增加供應(yīng)項(xiàng)(add_supply_item)INSERT INTO Supply(PartID,Provid

29、erid,Price,Quantity)VALUES(#PartID,#ProvderlD,#Price;#Quantily);(5)刪除供應(yīng)項(xiàng)(delete_supply_item) DELETE SupPlyWHERE(PartlD=#PartID AND ProvideID=#ProviderlD);(6)修改供應(yīng)項(xiàng)(update_supply_item)UPDATESupplySET(Price=#Price,Quantity=#Quantity)WHERE(PartlD=#PartID AND ProviderID=#ProviderID)很明顯,系統(tǒng)并沒有提供面向供應(yīng)商修改零件信息

30、的接口,所以供應(yīng)商提供的零件必須已經(jīng)在零件表中存在;可以這祥假設(shè),交易所的管理員負(fù)責(zé)更新零件信息,而供應(yīng)商可以向交易所申請?jiān)黾幽撤N零件的信息事實(shí)上顧客也可以提出這樣的要求。8顧客操作(1)注冊(register)INSERT INTO Customer(Name,Address,Tel)VALUES(#Name,#Address,#Tel);在登記操作后,顧客得到一個(gè)唯一的ID,可以根據(jù)這個(gè)ID來查詢和修改顧客的數(shù)據(jù)(2)注銷(unregister)DELETE CustomerWHEREID=#ID);(3)修改個(gè)人信息(update)UPDATE Customer Set(Name=#Na

31、me,Address=#Address,Tel=#Tel)WHERE(1D=#ID);(4)增加需求項(xiàng)(add_OfferToBuy_item)INSERT INTO OfferToBuy(PartID,CustomeriD,Price,Quantity)VALUES(#PartID,#CustomerID,#Price,#Quantity)(5)刪除需求項(xiàng)(delete_OfferToBuy_iterm)DELETE OfferToBuyWHERE(PartlD=#PartlD AND CustomerlD=#CustomerID);(6)修改需求項(xiàng)(叩date_OfferToBuy_ite

32、m)UPDATE OfferToBuy SET(Price=#Price,Quantity=#QuantityWHERE(PartlD=#PartID AND CustomeriD=#CustomerID)9交易員 針對需求分析中提出的問題,我們提出了“協(xié)議書”的解決方案,方案的說明如下:(1)每個(gè)交易在達(dá)成以前都作為協(xié)議書保存在數(shù)據(jù)庫中,協(xié)議書具有和交易一樣的完備信息,可以在條件成熟的情況下轉(zhuǎn)為一個(gè)達(dá)成的交易;(2)協(xié)議書只有在供應(yīng)商和顧客都簽字的情況下才有效;有效的協(xié)議書由交易員簽發(fā),協(xié)議書一經(jīng)簽發(fā),就生效,表明一個(gè)交易的達(dá)成,數(shù)據(jù)庫中的數(shù)據(jù)將同時(shí)予以修改;(3)協(xié)議書可以由供應(yīng)商、顧客或

33、者交易員中的任意一個(gè)人提出申請。當(dāng)協(xié)議書在雙方?jīng)]有都簽字前,協(xié)議的雙方或者交易員都可以刪除這個(gè)協(xié)議書;但是,當(dāng)協(xié)議書簽字完畢后,協(xié)議書就不得刪除(修改),只能由交易員進(jìn)行處理;(4)協(xié)議書有可能在轉(zhuǎn)成交易的過程中失敗,因?yàn)樵诮灰走_(dá)成以前,數(shù)據(jù)庫中的數(shù)據(jù)有可能因?yàn)槠渌灰锥兓?,一個(gè)協(xié)議書可能失效,這是允許的。根據(jù)以上分析,對數(shù)據(jù)庫的模型作一些修改,增加協(xié)議書表,其關(guān)系模式如下:Agreement(CustomerlD,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign)對應(yīng)的SQL描述為:CREATE TABLE Agreeme

34、nt(Customerm smallint,ProviderlD smallint,PartlD smallint,Price int,Quantity int,CustomerSign int,ProviderSign int,CONSTRAINT PK_AGREEMENT PRIMARY KEY CLUSTERED(CustomerID,ProviderID,PartID),CONSTRAINT FK_AGREEMENT_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCES Customer(ID),CONSTRAINT FK_ AGREEMENT_P

35、ROVlDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID),CONSTRAINT FK_AGREEMENT_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID)與上述其他操作相比,對交易的操作對數(shù)據(jù)完整性要求比較高,其中需要注意的地方是:(1) 要防止同一用戶(供應(yīng)商,顧客)的數(shù)據(jù)因兩個(gè)交易而同時(shí)修改;(2) 需要同時(shí)對供應(yīng)數(shù)據(jù)庫(Supply)、需求數(shù)據(jù)庫(OfferToBuy)、交易數(shù)據(jù)庫(Business)(3) 和協(xié)議數(shù)據(jù)庫(Agreement)作出修改,而且需要保持這些修改的原子性;很顯然

36、,這些要求正是對于一個(gè)事務(wù)(transaction)的要求,所以可以用一個(gè)事務(wù)來完成簽發(fā)一個(gè)協(xié)議的操作。事務(wù)的描述如下:CREATE PROC PASS_AGREEMENTproviderID int,customerid int,partlD intASDECLARE TransName VARCHAR(20)SELECT TransName=Pass_AgreementBEGIN TRANSACTION TransNameDEClARE price INT,qUANTITY intSELECT price=price,quantity=quantity FROM AgreementWHER

37、E prIVIderID=providerID AND customerID=customerID AND PanID=partIDINSERT INTO Business(ProviderID,CustomerID,PartID,Price,Quantity) VALues(providerid,customerID,PartID,price,quantity)UPDATE Supply SET quantity=quantity-quantity WHERE ProviderID=prividerID AND partID=partIDIF (SELECT quantity FROM Su

38、pply WHERE Proiderid=provider AND partID=PartID)0ROLLBACK TRANSACTlON TranSNameDELETE FROM Supply WHERE quantity=0UPDATE OfferToBuy SET quantity=quanttity-quantity WHERE CustomerID=customerid AND partlD=partIDIF(SELECT quandtity FROM OfferToBuyWHERE CustomerID=CustomerID AND partID=partlD)0ROLLBACK

39、TRANSACTION TransNameDELETE FROM OfferToBuy WHERE quantity=0COMMIT TRANSACTION TransName為了使用方便,這里定義了一個(gè)存儲過程;功能是完成從Agreementt的一個(gè)元組到Business的一個(gè)元組的轉(zhuǎn)化工作。這里考慮到了刪除空的Suppiy和OfferTOBUY項(xiàng),更加重要的是,這里考慮到了非法的Agreement的情況,在一段時(shí)間后,由于供應(yīng)商或者顧客修改數(shù)據(jù),Agreement可能就非法,這時(shí)就需要把這個(gè)事務(wù)廢除,所以,這里檢查了Supply表和OfferToBuy表中的數(shù)據(jù),確保數(shù)據(jù)仍然正確。另外交易員,或者說交易所必須承擔(dān)的一項(xiàng)任務(wù)是更新零件列表。這里在考慮顧客和供應(yīng)商的時(shí)候,并沒有給予他們修改零件列表的權(quán)利,所以他們必須根據(jù)數(shù)據(jù)庫中已有的項(xiàng)更新自己的供求信息。由于這個(gè)數(shù)據(jù)庫實(shí)際上更加偏重于模型化,而不是一個(gè)實(shí)際環(huán)境中的數(shù)據(jù)庫,所以在實(shí)現(xiàn)應(yīng)用模型的時(shí)候我們還需要對這個(gè)數(shù)據(jù)庫的模型作一些修改。由于本實(shí)驗(yàn)在模型設(shè)計(jì)上使用了Microsoft Transact-SQL的語法,因此以上的數(shù)據(jù)庫操作都是在SQLSERVER2012上測試通過的。(八)實(shí)驗(yàn)數(shù)據(jù)示例:測試階段1實(shí)驗(yàn)方案設(shè)計(jì)(1)輸入數(shù)據(jù)設(shè)計(jì):1)插入零件信息;insert in

溫馨提示

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

最新文檔

評論

0/150

提交評論