新聞中心
sql數(shù)據(jù)庫(kù)測(cè)試用例:提升數(shù)據(jù)穩(wěn)定性的必要措施

SQL數(shù)據(jù)庫(kù)是現(xiàn)今最被廣泛使用的數(shù)據(jù)庫(kù)管理系統(tǒng),它能夠存儲(chǔ)大量數(shù)據(jù)并能夠快速讀取、修改和刪除這些數(shù)據(jù)。SQL數(shù)據(jù)庫(kù)的可靠性對(duì)于企業(yè)的業(yè)務(wù)操作至關(guān)重要,因?yàn)槿绻麛?shù)據(jù)庫(kù)出現(xiàn)了任何錯(cuò)誤,都可能導(dǎo)致業(yè)務(wù)中斷和數(shù)據(jù)損失。為了保證SQL數(shù)據(jù)庫(kù)的穩(wěn)定性,測(cè)試用例是必不可少的工具之一。本文將介紹SQL數(shù)據(jù)庫(kù)測(cè)試用例,以及提高數(shù)據(jù)穩(wěn)定性的必要措施。
一、SQL數(shù)據(jù)庫(kù)測(cè)試用例
1. 什么是SQL數(shù)據(jù)庫(kù)測(cè)試用例
SQL數(shù)據(jù)庫(kù)測(cè)試用例是一種描述數(shù)據(jù)庫(kù)系統(tǒng)如何操作的詳細(xì)文檔。測(cè)試用例包含對(duì)SQL語(yǔ)句的測(cè)試、性能和穩(wěn)定性的測(cè)試,以及詳細(xì)的測(cè)試報(bào)告。測(cè)試用例能夠保證SQL數(shù)據(jù)庫(kù)的正確性和穩(wěn)定性,避免了由于數(shù)據(jù)庫(kù)錯(cuò)誤導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)損失。
2. SQL數(shù)據(jù)庫(kù)測(cè)試用例的設(shè)計(jì)原則
在設(shè)計(jì)SQL數(shù)據(jù)庫(kù)測(cè)試用例時(shí),應(yīng)遵循以下原則:
(1)覆蓋率:盡可能覆蓋SQL語(yǔ)句的各個(gè)方面,包括語(yǔ)法、數(shù)據(jù)類型、約束、觸發(fā)器等方面。
(2)可重復(fù)性:一個(gè)測(cè)試用例必須能夠重復(fù)執(zhí)行,并且每次的結(jié)果都應(yīng)該相同。
(3)一致性:測(cè)試用例的格式和內(nèi)容應(yīng)該是一致的,以方便管理和維護(hù)。
(4)實(shí)用性:測(cè)試用例應(yīng)該具有實(shí)用性,并且覆蓋實(shí)際應(yīng)用場(chǎng)景。
3. SQL數(shù)據(jù)庫(kù)測(cè)試用例的分類
SQL數(shù)據(jù)庫(kù)測(cè)試用例可以按照以下不同的分類方式進(jìn)行劃分:
(1)按照測(cè)試目的劃分:分為功能測(cè)試、性能測(cè)試、安全性測(cè)試等。
(2)按照測(cè)試方法劃分:分為手動(dòng)測(cè)試和自動(dòng)化測(cè)試。
(3)按照測(cè)試覆蓋率的深淺劃分:分為表級(jí)測(cè)試、字段級(jí)測(cè)試、行級(jí)測(cè)試、操作級(jí)測(cè)試等。
二、提高數(shù)據(jù)穩(wěn)定性的必要措施
為了保證SQL數(shù)據(jù)庫(kù)的穩(wěn)定性,除了應(yīng)用SQL數(shù)據(jù)庫(kù)測(cè)試用例之外,還需要采取以下措施:
1. 數(shù)據(jù)庫(kù)備份和恢復(fù)
數(shù)據(jù)庫(kù)備份是保證數(shù)據(jù)安全性的一個(gè)重要措施,它可以防止在數(shù)據(jù)損壞或丟失的情況下,進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)。數(shù)據(jù)庫(kù)恢復(fù)包括完全恢復(fù)和部分恢復(fù),完全恢復(fù)是將整個(gè)數(shù)據(jù)庫(kù)恢復(fù)到之前的狀態(tài),而部分恢復(fù)是恢復(fù)部分丟失的數(shù)據(jù)。
2. 數(shù)據(jù)庫(kù)監(jiān)控
數(shù)據(jù)庫(kù)監(jiān)控是指監(jiān)測(cè)數(shù)據(jù)庫(kù)的一系列操作過(guò)程,包括CPU利用率、內(nèi)存利用率、磁盤利用率、數(shù)據(jù)庫(kù)連接數(shù)等,以及SQL查詢語(yǔ)句的執(zhí)行效率。據(jù)此,可以及時(shí)發(fā)現(xiàn)數(shù)據(jù)庫(kù)操作過(guò)程中的錯(cuò)誤,及時(shí)解決問(wèn)題。
3. 安全控制
比如用戶權(quán)限管理、數(shù)據(jù)加密等控制手段,避免數(shù)據(jù)庫(kù)受到不合法的訪問(wèn)和攻擊。同時(shí)制定并執(zhí)行密碼策略,如強(qiáng)制要求密碼長(zhǎng)、復(fù)雜度高,對(duì)敏感數(shù)據(jù)區(qū)域加強(qiáng)安全控制,如建立雙重認(rèn)證等措施。
4. 異常處理
采取主動(dòng)異常處理措施,如集中異常監(jiān)控、異常日志記錄、實(shí)時(shí)異常提示,通過(guò)異常處理和問(wèn)題定位能夠及時(shí)掌握數(shù)據(jù)庫(kù)的狀態(tài)和變化,以更加穩(wěn)定的情況下運(yùn)行數(shù)據(jù)庫(kù)。
SQL數(shù)據(jù)庫(kù)測(cè)試用例是提高SQL數(shù)據(jù)庫(kù)穩(wěn)定性的必要措施之一。通過(guò)采取適當(dāng)?shù)拇胧┖蛯?shí)施測(cè)試用例,可以保證SQL數(shù)據(jù)庫(kù)的正確性和穩(wěn)定性,避免了由于數(shù)據(jù)庫(kù)錯(cuò)誤導(dǎo)致的業(yè)務(wù)中斷和數(shù)據(jù)損失,從而提高企業(yè)的業(yè)務(wù)效率和生產(chǎn)效益。
相關(guān)問(wèn)題拓展閱讀:
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)實(shí)例
- 如何知道自己所寫的測(cè)試用例是否覆蓋完全??
數(shù)據(jù)庫(kù)課程設(shè)計(jì)實(shí)例
數(shù)據(jù)庫(kù)課程設(shè)計(jì)
題目:小型超市管理系統(tǒng)
1、項(xiàng)目計(jì)劃
1.1系統(tǒng)開(kāi)發(fā)目的
(1)大大提高超市的運(yùn)作效率;
(2)通過(guò)全面的信息采集和處理,輔助提高超市的決策水平;
(3)使用本系統(tǒng),可以迅速提升超市的管理水平,為降低
經(jīng)營(yíng)成本
, 提高效益,增強(qiáng)超市擴(kuò)張力, 提供有效的技術(shù)保障。
1.2背景說(shuō)明
21世紀(jì),超市的競(jìng)爭(zhēng)也進(jìn)入到了一個(gè)全新的領(lǐng)域,競(jìng)爭(zhēng)已不再是規(guī)模的競(jìng)爭(zhēng),而是技術(shù)的競(jìng)爭(zhēng)、管理的競(jìng)爭(zhēng)、人才的競(jìng)爭(zhēng)。技術(shù)的提升和管理的升級(jí)是超市業(yè)的競(jìng)爭(zhēng)核心。零售領(lǐng)域目前呈多元發(fā)展趨勢(shì),多種業(yè)態(tài):超市、倉(cāng)儲(chǔ)店、便利店、特許加盟店、專賣店、貨倉(cāng)等相互并存。如何在激烈的競(jìng)爭(zhēng)中擴(kuò)大銷售額、降低經(jīng)營(yíng)成本、擴(kuò)大經(jīng)營(yíng)規(guī)模,成為超市營(yíng)業(yè)者努力追求的目標(biāo)。
1.3項(xiàng)目確立
針對(duì)超市的特點(diǎn),為了幫助超市解決現(xiàn)在面臨的問(wèn)題,提高小型超市的競(jìng)爭(zhēng)力,我們將開(kāi)發(fā)以下系統(tǒng):前臺(tái)POS銷售系統(tǒng)、后臺(tái)管理系統(tǒng),其中這兩個(gè)子系統(tǒng)又包含其它一些子功能。
1.4應(yīng)用范圍
本系統(tǒng)適應(yīng)于各種小型的超市。
1.5 定義
(1)
商品條形碼
:每種商品具有唯一的條形碼,對(duì)于某些價(jià)格一樣的商品,可以使用自定義條形碼。
(2)交易清單:包括交易的流水賬號(hào)、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時(shí)間、負(fù)責(zé)本次收銀的員工號(hào)。
(3)商品積壓:在一定時(shí)期內(nèi),遠(yuǎn)無(wú)法完成銷售計(jì)劃的商品會(huì)造成積壓。
(4)促銷:在一定時(shí)期內(nèi),某些商品會(huì)按低于原價(jià)的促銷價(jià)格銷售。
庫(kù)存告警提示:當(dāng)商品的庫(kù)存數(shù)量低于庫(kù)存報(bào)警數(shù)量時(shí)發(fā)出提示。
(5)盤點(diǎn):計(jì)算出庫(kù)存、銷售額、盈利等經(jīng)營(yíng)指標(biāo)。
1.6 參考資料
《數(shù)據(jù)庫(kù)原理及設(shè)計(jì)》
陶宏才編 清華大學(xué)出版社
《SQL Server 2023 實(shí)用教程》范立南編 清華大學(xué)出版社
《SQL Server 2023 編程員指南》李香敏編 北京希望電子出版社
《輕松搞定 SQL Server 2023 程序設(shè)計(jì)》Rebecca M.Riordan編
《軟件工程規(guī)范》
Watts S.Humphrey編 清華大學(xué)出版社
《軟件工程理論與實(shí)踐》
Shari Lawrence Pfleeger編 清華大學(xué)出版社
《軟件需求分析》 Swapna Kishore編
機(jī)械工業(yè)出版社
《軟件工程思想》
林銳編
2、邏輯分析與詳細(xì)分析
2.1系統(tǒng)功能
(1)、零售前臺(tái)(POS)管理系統(tǒng),本系統(tǒng)必須具有以下功能:
? 商品錄入:根據(jù)超巿業(yè)務(wù)特點(diǎn)制定相關(guān)功能,可以通過(guò)輸入唯一編號(hào)、掃描條形碼、商品名稱等來(lái)實(shí)現(xiàn)精確或模糊的商品掃描錄入。該掃描錄入方法可以充分保證各種電腦操作水平層次的人員均能準(zhǔn)確快速地進(jìn)行商品掃描錄入。
? 收銀業(yè)務(wù):通過(guò)掃描條形碼或者直接輸入商品名稱(對(duì)于同類多件商品采用一次錄入加數(shù)量的方式)自動(dòng)計(jì)算本次交易的總金額。在顧客付款后,自動(dòng)計(jì)算找零,同時(shí)打印交易清單(包括交易的流水賬號(hào)、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時(shí)間、負(fù)責(zé)本次收銀的員工號(hào))。如果顧客是本店會(huì)員并持有本人會(huì)員卡,則在交易前先掃描會(huì)員卡,并對(duì)所購(gòu)物品全部實(shí)行95折優(yōu)惠,并將所購(gòu)物品的總金額累計(jì)到該會(huì)員的總消費(fèi)金額中。 會(huì)員卡的有效期限為一年,滿一年未續(xù)卡者,該會(huì)員卡將被注銷。
? 安全性:OS登陸、退出、換班與操作鎖定等權(quán)限驗(yàn)證保護(hù);斷電自動(dòng)保護(hù)更大限度防止意外及惡意非法操作。
? 獨(dú)立作業(yè):有的斷網(wǎng)收銀即在網(wǎng)絡(luò)服務(wù)器斷開(kāi)或網(wǎng)絡(luò)不通的情況下,收銀機(jī)仍能正常作業(yè)
(2)、后臺(tái)管理系統(tǒng),本系統(tǒng)必須具備以下功能
? 進(jìn)貨管理: 根據(jù)銷售情況及庫(kù)存情況,自動(dòng)制定進(jìn)貨計(jì)劃(亦可手工制定修改),可以避免盲目進(jìn)貨造成商品積壓。 按計(jì)劃單有選擇性地進(jìn)行自動(dòng)入庫(kù)登記。 綜合查詢打印計(jì)劃進(jìn)貨與入庫(kù)記錄及金額。
?
銷售管理
: 商品正常銷售、促銷與、限期及禁止銷售控制。 綜合查詢各種銷售明細(xì)記錄、各地收銀員收銀記錄以及交結(jié)賬情況等。 按多種方式統(tǒng)計(jì)生成銷售排行榜,靈活察看和打印商品銷售日、月、年報(bào)表。
?
庫(kù)存管理
: 綜合查詢庫(kù)存明細(xì)記錄。 庫(kù)存狀態(tài)自動(dòng)告警提示。如庫(kù)存過(guò)剩、少貨、缺貨等。軟件為您預(yù)警,避免庫(kù)存商品積壓損失和缺貨。 庫(kù)存自動(dòng)盤點(diǎn)計(jì)算。
? 人員管理: 員工、會(huì)員、供貨商、廠商等基本信息登記管理。 員工操作權(quán)限管理。 客戶銷售權(quán)限管理。
(3)系統(tǒng)結(jié)構(gòu)
系統(tǒng)總體結(jié)構(gòu)
模塊子系統(tǒng)結(jié)構(gòu)
功能描述:商品錄入子系統(tǒng)要求能快速錄入商品,因此必須支持條形碼掃描。
功能描述:收銀業(yè)務(wù)子系統(tǒng)能計(jì)算交易總額,打印交易清單,并根據(jù)會(huì)員卡打折。
功能描述:進(jìn)貨管理子系統(tǒng)可以根據(jù)庫(kù)存自動(dòng)指定進(jìn)貨計(jì)劃,進(jìn)貨時(shí)自動(dòng)等級(jí),以及提供查詢和打印計(jì)劃進(jìn)貨與入庫(kù)記錄的功能。
功能描述:銷售管理子系統(tǒng)可以控制某商品是否允許銷售,查詢每種商品的銷售情況并產(chǎn)生年、月、日?qǐng)?bào)表,同時(shí)可以生成銷售排行榜。
功能描述:庫(kù)存管理子系統(tǒng)提供查詢庫(kù)存明細(xì)記錄的基本功能,并根據(jù)庫(kù)存的狀態(tài)報(bào)警,以及自動(dòng)盤點(diǎn)計(jì)算。
功能描述:人員管理子系統(tǒng)提供基本信息登記管理,員工操作權(quán)限管理,客戶銷售權(quán)限管理的功能。
2.2、流程圖
前臺(tái)管理系統(tǒng)
頂層DFD圖
第0層DFD圖
第1層DFD圖
2.3、戶類型與職能
(1)、員工(營(yíng)業(yè)員):
? 通過(guò)商品條形碼掃描輸入商品到購(gòu)買清單
? 操作軟件計(jì)算交易總金額
? 操作軟件輸出交易清單
? 對(duì)會(huì)員進(jìn)行會(huì)員卡掃描以便打折
(2)、:超市經(jīng)理
? 操作軟件錄入商品,供貨商,廠商
? 操作軟件制定進(jìn)貨計(jì)劃
? 查詢打印計(jì)劃進(jìn)貨與入庫(kù)記錄
? 操作軟件控制商品銷售與否
? 查詢打印銷售情況
? 操作軟件生成銷售排行榜
? 查詢庫(kù)存明細(xì)記錄
? 根據(jù)軟件發(fā)出的庫(kù)存告警進(jìn)行入貨
? 操作軟件進(jìn)行盤點(diǎn)計(jì)算
(3)、總經(jīng)理:
? 基本信息登記管理
? 員工操作權(quán)限管理
? 客戶銷售權(quán)限管理
2.4、統(tǒng)開(kāi)發(fā)步驟
? 確定參與者和相關(guān)的用況
? 為每個(gè)用況設(shè)計(jì)過(guò)程
? 建立順序圖,確定每個(gè)腳本中對(duì)象的協(xié)作
? 創(chuàng)建類,確定腳本中的對(duì)象
? 設(shè)計(jì), 編碼, 測(cè)試, 集成類
? 為過(guò)程編寫系統(tǒng)測(cè)試案例
? 運(yùn)行測(cè)試案例,檢驗(yàn)系統(tǒng)
2.5、系統(tǒng)環(huán)境需求
? 系統(tǒng)模式
本系統(tǒng)采用C/S模式作為開(kāi)發(fā)模式
? 硬件環(huán)境
服務(wù)器端:
高性能的計(jì)算機(jī)一臺(tái),
普通的
雙絞線
作為連接。
客戶端: 普通的計(jì)算機(jī)或者工作站,
普通的雙絞線作為連接。
? 軟件環(huán)境
服務(wù)器端:安裝SQL Server 2023的服務(wù)器版本,
安裝windows 2023服務(wù)器版本,
配置了
諾頓
等必須的
防毒軟件
。
客戶端: 安裝SQL Server2023的服務(wù)器版本,
安裝了VB等可視化開(kāi)發(fā)工具軟件,
安裝windows2023服務(wù)器版本。
2.6、系統(tǒng)安全問(wèn)題
信息系統(tǒng)盡管功能強(qiáng)大,技術(shù)先進(jìn),但由于受到自身體系結(jié)構(gòu),設(shè)計(jì)思路以及運(yùn)行機(jī)制等限制,也隱含許多不安全因素。常見(jiàn)因素有:數(shù)據(jù)的輸入,輸出,存取與備份,
源程序
以及應(yīng)用軟件,數(shù)據(jù)庫(kù),操作系統(tǒng)等漏洞或缺陷,硬件,通信部分的漏洞,企業(yè)內(nèi)部人員的因素,病毒,“
黑客
”等因素。因此,為使本系統(tǒng)能夠真正安全,可靠,穩(wěn)定地工作,必須考慮如下問(wèn)題:為保證安全,不致使系統(tǒng)遭到意外事故的損害,系統(tǒng)因該能防止火,盜或其他形式的人為破壞。
? 系統(tǒng)要能重建
? 系統(tǒng)應(yīng)該是可審查的
? 系統(tǒng)應(yīng)能進(jìn)行有效控制,抗干擾能力強(qiáng)
? 系統(tǒng)使用者的使用權(quán)限是可識(shí)別的
3、基于UML的建模
3.1語(yǔ)義規(guī)則
用例
模型(
use case
s view)(用例視圖)的基本組成部件是用例(use case)、角色(actor)和系統(tǒng)(system)。用例用于描述系統(tǒng)的功能,也就是從外部用戶的角度觀察,系統(tǒng)應(yīng)支持哪些功能,幫助分析人員理解系統(tǒng)的行為,它是對(duì)系統(tǒng)功能的宏觀描述,一個(gè)完整的系統(tǒng)中通常包含若干個(gè)用例,每個(gè)用例具體說(shuō)明應(yīng)完成的功能,代表系統(tǒng)的所有基本功能(集)。角色是與系統(tǒng)進(jìn)行交互的外部實(shí)體,它可以是系統(tǒng)用戶,也可以是其它系統(tǒng)或硬件設(shè)備,總之,凡是需要與系統(tǒng)交互的任何東西都可以稱作角色。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動(dòng)區(qū)域)則抽象表示系統(tǒng)能夠?qū)崿F(xiàn)的所有基本功能。在一個(gè)基本功能(集)已經(jīng)實(shí)現(xiàn)的系統(tǒng)中,系統(tǒng)運(yùn)轉(zhuǎn)的大致過(guò)程是:外部角色先初始化用例,然后用例執(zhí)行其所代表的功能,執(zhí)行完后用例便給角色返回一些值,這個(gè)值可以是角色需要的來(lái)自系統(tǒng)中的任何東西。
UML:是一種標(biāo)準(zhǔn)的圖形化建模語(yǔ)言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示;它不是一種可視化的程序設(shè)計(jì)語(yǔ)言而是一種可視化的建模語(yǔ)言;不是工具或知識(shí)庫(kù)的規(guī)格說(shuō)明而是一種建模語(yǔ)言規(guī)格說(shuō)明是一種表示的標(biāo)準(zhǔn);不是過(guò)程也不是方法但允許任何一種過(guò)程和方法使用它。
用例(use case):
參與者(actor):
3.2、UML模型
3.21、系統(tǒng)UML模型
3.22、子系統(tǒng)UML模型
(1)零售前臺(tái)(POS)管理系統(tǒng)用例視圖
(2)后臺(tái)管理系統(tǒng)用例視圖
3.3、系統(tǒng)實(shí)現(xiàn)圖
4、超市銷售系統(tǒng)概念設(shè)計(jì)文檔
(1)、系統(tǒng)ER圖
(2)、系統(tǒng)ER圖說(shuō)明
1) 商店中的所有用戶(員工)可以銷售多種商品,每種商品可由不同用戶(員工)銷售;
2) 每個(gè)顧客可以購(gòu)買多種商品,不同商品可由不同顧客購(gòu)買;
3) 每個(gè)供貨商可以供應(yīng)多種不同商品,每種商品可由多個(gè)供應(yīng)商供應(yīng)。
(3)、視圖設(shè)計(jì)
1) 交易視圖(v_Dealing)——用于查詢交易情況的視圖;
2) 計(jì)劃進(jìn)貨視圖(v_PlanStock)——用于查詢進(jìn)貨計(jì)劃的視圖;
3) 銷售視圖(v_Sale)——用于查詢銷售明細(xì)記錄的視圖;
4) 入庫(kù)視圖(v_Stock)——用于查詢?nèi)霂?kù)情況的視圖。
5、邏輯設(shè)計(jì)文檔
(1)、系統(tǒng)關(guān)系模型
a) 商品信息表(商品編號(hào),商品名稱,價(jià)格,條形碼,促銷價(jià)格,促銷起日期,促銷止日期,允許打折,庫(kù)存數(shù)量,庫(kù)存報(bào)警數(shù)量,計(jì)劃進(jìn)貨數(shù),允許銷售,廠商編號(hào),供貨商編號(hào))
b) 用戶表(用戶編號(hào),用戶名稱,用戶密碼,用戶類型)
c) 會(huì)員表(會(huì)員編號(hào),會(huì)員卡號(hào),累積消費(fèi)金額,注冊(cè)日期)
d) 銷售表(銷售編號(hào),商品編號(hào),銷售數(shù)量,銷售金額,銷售日期)
e) 交易表(交易編號(hào),用戶名稱,交易金額,會(huì)員卡號(hào),交易日期)
f) 進(jìn)貨入庫(kù)表(入庫(kù)編號(hào),入庫(kù)商品編號(hào),入庫(kù)數(shù)量,單額,總額,入庫(kù)日期,計(jì)劃進(jìn)貨日期,入庫(kù)狀態(tài))
g) 供貨商表(供貨商編號(hào),供貨商名稱,供貨商地址,供貨商)
h) 廠商表(廠商編號(hào),廠商名稱,廠商地址,廠商)
(2)、系統(tǒng)數(shù)據(jù)庫(kù)表結(jié)構(gòu)
數(shù)據(jù)庫(kù)表索引
表名 中文名
MerchInfo 商品信息表
User 用戶表
Menber 會(huì)員表
Sale 銷售表
Dealing 交易表
Stock 進(jìn)貨入庫(kù)表
Provide 供貨商表
Factory 廠商表
商品信息表(MerchInfo)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
MerchID int 4 P Not null 商品編號(hào)
MerchName Varchar 50 Not null 商品名稱
MerchPrice Money 4 Not null 價(jià)格
MerchNum Int 4 Not null 庫(kù)存數(shù)量
CautionNum Int 4 Not null 庫(kù)存報(bào)警數(shù)量
PlanNum Int 4 null 計(jì)劃進(jìn)貨數(shù)
BarCode Varchar 50 Not null 條形碼
SalesProPrice Money 4 促銷價(jià)格
SalesProDateS Datetime 8 促銷起日期
SalesProDateE Datetime 8 促銷止日期
AllowAbate Int 4 Not null 允許打折
AllowSale Int 4 Not null 允許銷售
FactoryID Varchar 10 F Not null 廠商編號(hào)
ProvideID Varchar 10 F Not null 供貨商編號(hào)
用戶表(User)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
UserID varchar 10 P Not null 用戶編號(hào)
UserName Varchar 25 Not null 用戶名稱
UserPW Varchar 50 Not null 用戶密碼
UserStyle Int 4 Not null 用戶類型
會(huì)員表(Menber)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
MemberID Varchar 10 P Not null 會(huì)員編號(hào)
MemberCard Varchar 20 Not null 會(huì)員卡號(hào)
TotalCost Money 4 Not null 累積消費(fèi)金額
RegDate Datetime 8 Not null 注冊(cè)日期
銷售表(Sale)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
SaleID Varchar 10 P Not null 銷售編號(hào)
MerChID Varchar 10 F Not null 商品編號(hào)
SaleDate Datetime 8 Not null 銷售日期
SaleNum Int 4 Not null 銷售數(shù)量
SalePrice Money 4 Not null 銷售單額
交易表(Dealing)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
DealingID Varchar 10 P Not null 交易編號(hào)
DealingPrice Money 4 Not null 交易金額
DealingDate Money 4 Not null 交易日期
MemberID Varchar 10 會(huì)員卡號(hào)
UserName Varchar 10 F Not null 用戶名稱
入庫(kù)紀(jì)錄表(Stock)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
StockID Varchar 10 P Not null 入庫(kù)編號(hào)
MerchID Varchar 10 F Not null 入庫(kù)商品編號(hào)
MerchNum Int 4 Not null 入庫(kù)數(shù)量
MerchPrice Money 4 Not null 單額
TotalPrice Money 4 Not null 總額
StockDate Datetime 8 Datetime 入庫(kù)日期
PlanDate Datetime 8 Datetime 計(jì)劃進(jìn)貨日期
StockState Int 4 Not null 入庫(kù)狀態(tài)
供貨商表(Provide)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
ProvideID varchar 10 P Not null 供貨商編號(hào)
ProvideName Varchar 50 Not null 供貨商名稱
ProvideAddress Varchar供貨商地址
ProvidePhone Varchar 25 供貨商
廠商表(Provide)
字段名 字段類型 長(zhǎng)度 主/外鍵 字段值約束 對(duì)應(yīng)中文名
FactoryID varchar 10 P Not null 廠商編號(hào)
FactoryName Varchar 50 Not null 廠商名稱
FactoryAddress Varchar廠商地址
FactoryPhone Varchar 25 廠商
6、物理設(shè)計(jì)文檔
/*創(chuàng)建數(shù)據(jù)庫(kù)*/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename=’C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf’,
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename=’C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf’,
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go
/*創(chuàng)建基本表*/
use
go
/*創(chuàng)建交易表*/
CREATE TABLE Dealing (
DealingID int identity(1,1) Primary key ,
DealingDate datetime NOT NULL ,
DealingPrice money NOT NULL ,
UserName varchar(25) NULL ,
MemberCard varchar(20) NULL
)
GO
/*創(chuàng)建廠商表*/
CREATE TABLE Factory (
FactoryID varchar(10) Primary key ,
FactoryName varchar(50) NOT NULL ,
FactoryAddress varchar(250) NULL ,
FactoryPhone varchar(50) NULL
)
GO
/*創(chuàng)建會(huì)員表*/
CREATE TABLE Member (
MemberID varchar(10) Primary key ,
MemberCard varchar(20) NOT NULL ,
TotalCost money NOT NULL ,
RegDate datetime NOT NULL
)
GO
/*創(chuàng)建商品信息表*/
CREATE TABLE MerchInfo (
MerchID int identity(1,1) Primary key ,
MerchName varchar(50) Unique NOT NULL ,
MerchPrice money NOT NULL ,
MerchNum int NOT NULL ,
CautionNum int NOT NULL ,
PlanNum int NOT NULL ,
BarCode varchar(20) Unique NOT NULL ,
SalesProPrice money NULL ,
SalesProDateS datetime NULL ,
SalesProDateE datetime NULL ,
AllowAbate int NOT NULL ,
AllowSale int NOT NULL ,
FactoryID int NOT NULL ,
ProvideID int NOT NULL
)
GO
/*創(chuàng)建供應(yīng)商表*/
CREATE TABLE Provide (
ProvideID varchar(10) Primary key ,
ProvideName varchar(50) NOT NULL ,
ProvideAddress varchar(250) NULL ,
ProvidePhone varchar(25) NULL
)
GO
/*創(chuàng)建銷售表*/
CREATE TABLE Sale (
SaleID int identity(1,1) Primary key ,
MerChID int NOT NULL ,
SaleDate datetime NOT NULL ,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/*創(chuàng)建入庫(kù)表*/
CREATE TABLE Stock (
StockID int identity(1,1) Primary key ,
MerchID int NOT NULL ,
MerchNum int NOT NULL ,
MerchPrice money NULL ,
TotalPrice money NULL ,
PlanDate datetime NULL ,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/*創(chuàng)建用戶表*/
CREATE TABLE User (
UserID varchar(10) Primary key ,
UserName varchar(25) NOT NULL ,
UserPW varchar(50) NOT NULL ,
UserStyle int NOT NULL ,
)
GO
/*創(chuàng)建表間約束*/
/*商品信息表中廠商編號(hào)、供應(yīng)商編號(hào)分別與廠商表、供應(yīng)商表之間的外鍵約束*/
ALTER TABLE MerchInfo ADD
CONSTRAINT FOREIGN KEY
(
) REFERENCES Factory (
),
CONSTRAINT FOREIGN KEY
(
) REFERENCES Provide (
)
GO
/*銷售表中商品編號(hào)與商品信息表之間的外鍵約束*/
ALTER TABLE Sale ADD
CONSTRAINT FOREIGN KEY
(
) REFERENCES MerchInfo (
) ON DELETE CASCADE
GO
/*入庫(kù)表中商品編號(hào)與商品信息表之間的外鍵約束*/
ALTER TABLE Stock ADD
CONSTRAINT FOREIGN KEY
(
) REFERENCES MerchInfo (
) ON DELETE CASCADE
GO
/*創(chuàng)建索引*/
/*在交易表上建立一個(gè)以交易編號(hào)、交易日期為索引項(xiàng)的非聚集索引*/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/*在商品信息表上建立一個(gè)以商品編號(hào)為索引項(xiàng)的非聚集索引*/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/*在銷售表上建立一個(gè)以銷售編號(hào)、銷售日期為索引項(xiàng)的非聚集索引*/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/*在入庫(kù)表上建立一個(gè)以入庫(kù)編號(hào)、入庫(kù)日期、商品編號(hào)為索引項(xiàng)的非聚集索引*/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO
/*創(chuàng)建視圖*/
/*創(chuàng)建用于查詢交易情況的視圖*/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as 交易日期,
UserName as 員工名稱,
MemberCard as 會(huì)員卡號(hào),
DealingPrice as 交易金額
FROM Dealing
GO
/*創(chuàng)建用于查詢進(jìn)貨計(jì)劃的視圖*/
CREATE VIEW v_PlanStock
AS
SELECT Stock.StockID as SID,
MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
Factory.FactoryName as 廠商,
Provide.ProvideName as 供貨商,
Stock.MerchNum as 計(jì)劃進(jìn)貨數(shù)量,
Stock.PlanDate as 計(jì)劃進(jìn)貨日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=0
GO
/*創(chuàng)建用于查詢銷售明細(xì)記錄的視圖*/
CREATE VIEW v_Sale
AS
SELECT MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
MerchInfo.MerchPrice as 商品價(jià)格,
Sale.SalePrice as 銷售價(jià)格,
Sale.SaleNum as 銷售數(shù)量,
Sale.SaleDate as 銷售日期
FROM Sale INNER JOIN
MerchInfo ON Sale.MerChID = MerchInfo.MerchID
GO
/*創(chuàng)建用于查詢?nèi)霂?kù)情況的視圖*/
CREATE VIEW v_Stock
AS
SELECT MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
Factory.FactoryName as 廠商,
Provide.ProvideName as 供貨商,
Stock.MerchPrice as 入庫(kù)價(jià)格,
Stock.MerchNum as 入庫(kù)數(shù)量,
Stock.TotalPrice as 入庫(kù)總額,
Stock.StockDate as 入庫(kù)日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=1
GO
7、小結(jié)
和傳統(tǒng)管理模式相比較,使用本系統(tǒng),毫無(wú)疑問(wèn)會(huì)大大提高超市的運(yùn)作效率,輔助提高超市的決策水平,管理水平,為降低經(jīng)營(yíng)成本, 提高效益,減少差錯(cuò),節(jié)省人力,減少顧客購(gòu)物時(shí)間,增加客流量,提高顧客滿意度,增強(qiáng)超市擴(kuò)張能力, 提供有效的技術(shù)保障。
由于開(kāi)發(fā)者能力有限,加上時(shí)間倉(cāng)促,本系統(tǒng)難免會(huì)出現(xiàn)一些不足之處,例如:
? 本系統(tǒng)只適合小型超市使用,不能適合中大型超市使用;
? 超市管理系統(tǒng)涉及范圍寬,要解決的問(wèn)題多,功能復(fù)雜,實(shí)現(xiàn)困難,但由于限于時(shí)間,本系統(tǒng)只能做出其中的一部分功能;
對(duì)于以上出現(xiàn)的問(wèn)題,我們深表歉意,如發(fā)現(xiàn)還有其它問(wèn)題,希望老師批評(píng)指正。
如何知道自己所寫的測(cè)試用例是否覆蓋完全??
測(cè)試用例是否覆蓋完全要進(jìn)行以下測(cè)試:
1、數(shù)據(jù)完整性的測(cè)試
當(dāng)某數(shù)據(jù)被其它功能引用;或當(dāng)前功能要引用其它來(lái)源的數(shù)據(jù),就會(huì)涉及到數(shù)據(jù)完整性的測(cè)試。最常見(jiàn)的如被引用的數(shù)據(jù)刪除了,或關(guān)鍵字被修改了,引用的握培數(shù)據(jù)會(huì)否出錯(cuò);
2、后臺(tái)的特殊處理
是指某功能除了表面所見(jiàn)以外的程序處理。比如訂單錄入,表面所見(jiàn)的就是訂單的保存,但后臺(tái)還會(huì)有重復(fù)數(shù)據(jù)的判斷、非法數(shù)據(jù)的處理、業(yè)務(wù)邏輯上沖突情況的處理以及其它種種根據(jù)需求設(shè)計(jì)所特有的處理
3、功能業(yè)務(wù)之間的關(guān)聯(lián)與轉(zhuǎn)換
相關(guān)聯(lián)的幾個(gè)功能之間數(shù)據(jù)的傳遞,會(huì)否產(chǎn)生影響。比如新增錄入的某種特殊字符,要查詢時(shí)會(huì)引起查詢SQL語(yǔ)句異常;又如某下載文件名中存在中文等字符,下載時(shí)由于編碼問(wèn)題導(dǎo)致亂碼的出現(xiàn);再有報(bào)表填寫時(shí)到小數(shù)點(diǎn)后四位,生成報(bào)文時(shí)會(huì)不會(huì)被忽略成兩位了等等。
4、從設(shè)計(jì)實(shí)現(xiàn)發(fā)掘測(cè)試點(diǎn)
這個(gè)就是我們測(cè)試中最難捉的BUG了,它往往是由編碼人員自己在編碼時(shí)創(chuàng)造出來(lái)的,連設(shè)計(jì)人員都不會(huì)知道。
此時(shí)若能確切知道采用的是哪種實(shí)現(xiàn)方法,就可以直接找到其漏洞所在。比如采用后一種方法,當(dāng)產(chǎn)品類別長(zhǎng)度變化時(shí),明顯系統(tǒng)會(huì)出錯(cuò)。那么即使確認(rèn)該實(shí)現(xiàn)方式不改,測(cè)試人員也應(yīng)將其作為限制寫入測(cè)試報(bào)告。
5、并發(fā)肢皮橡操作時(shí)的測(cè)試
即兩個(gè)或多個(gè)用戶同時(shí)操作同一功能時(shí),會(huì)否引起數(shù)據(jù)的混亂。通常在C/S結(jié)構(gòu)下,如果有同時(shí)操作的可能,是需要做此測(cè)試的;而在B/S結(jié)構(gòu)下由于其特殊性,此問(wèn)題通常難以解決。
6、GUI界面的測(cè)試
這類測(cè)試是測(cè)試人員的強(qiáng)項(xiàng),具體測(cè)試項(xiàng)目如限長(zhǎng)、非法輸入等等,就不必贅述了。要提醒的是在測(cè)試時(shí),一定要從實(shí)際使用者的操作習(xí)慣出發(fā)。要知道界面原型所能確定的也只是頁(yè)面的擺放顯示,而實(shí)際操作時(shí)的控制實(shí)現(xiàn)仍是編歷旁碼人員自行實(shí)現(xiàn)的。
7、數(shù)據(jù)初始化情況測(cè)試
不該為空的數(shù)據(jù)是否有校驗(yàn);該有默認(rèn)值的數(shù)據(jù)默認(rèn)值是否正確;引用其它功能生成的數(shù)據(jù),是否會(huì)實(shí)時(shí)刷新;頁(yè)面關(guān)閉或系統(tǒng)重啟后,數(shù)據(jù)的初始化設(shè)置等都是這類用例。
sql數(shù)據(jù)庫(kù)測(cè)試用例的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于sql數(shù)據(jù)庫(kù)測(cè)試用例,SQL數(shù)據(jù)庫(kù)測(cè)試用例:提高數(shù)據(jù)穩(wěn)定性的必要措施,數(shù)據(jù)庫(kù)課程設(shè)計(jì)實(shí)例,如何知道自己所寫的測(cè)試用例是否覆蓋完全??的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
文章標(biāo)題:SQL數(shù)據(jù)庫(kù)測(cè)試用例:提高數(shù)據(jù)穩(wěn)定性的必要措施(sql數(shù)據(jù)庫(kù)測(cè)試用例)
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/dpjppii.html


咨詢
建站咨詢
