天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

軟考高級系統分析師案例分析試題+答案!(02)

系統分析師 責任編輯:龍小林 2025-12-24

添加老師微信

備考咨詢

加我微信

摘要:本文圍繞果蔬電商平臺秒殺活動展開數據庫設計相關問題,涵蓋存儲過程補全、觸發器補全及訂單表范式分析與模式分解三大模塊,提供了對應試題答案,聚焦數據庫操作邏輯與數據規范化設計,考察數據庫實操與理論應用能力。

案例場景

某果蔬電商平臺為用戶提供果蔬購買服務。為了吸引用戶參與,準備推出產品秒殺活動,設計的部分關系模式如下所示:

商品表:PRODUCTS(p_id, p_name, witheld_stock,actual_stock);屬性分別是商品編碼,商品名稱,預扣庫存,實際庫存。

秒殺記錄表:MSRECORDS(o_id, p_id, user_id,status);屬性分別是訂單編碼,商品編碼,用戶編碼,狀態(0-預扣,1-已支付,2-取消)。

訂單表:ORDERS(o_id,p_id, user_id, pay_time, status,user_name,

product_name);屬性分別是訂單編碼,商品編碼,用戶編碼,支付時間,訂單狀態(0-未支付,1-已支付,2-取消),用戶名稱,商品名稱。

秒殺活動的業務邏輯如下所述,

1、用戶秒殺時,實際庫存減1,預扣庫存加1,秒殺記錄表增加1條記錄,狀態為0;訂單表增加1條記錄,狀態為0;

2、當用戶支付成功時,修改訂單表的狀態為1,同時相應商品的預扣庫存減1,秒殺記錄狀態修改為1;

3、用戶取消支付時,修改訂單表的狀態為2,同時相應商品的預扣庫存減1,實際庫存加1,秒殺記錄狀態修改為2。

問題內容:

[問題1] (6分)

該應用系統通過下面的存儲過程完成秒殺預扣邏輯:商品實際庫存足夠,則預扣庫存加1,實際庫存減 1,并插入秒殺記錄,否則回滾。請補全下面的存儲過程。

CREATE OR REPLACE PROCEDURE MS_PROCESS(

P_o_idININT,

p_ProductID IN INT,

p_UserID ININT,

p_ProductName IN varchar,

p_UserName IN varchar,

AS

v_ActualStock INT;

BEGIN

SELECT actual_stock INTOv_ActualStock FROM PRODUCTS

WHERE p_id=p_ProductID(1)_;

IF_(2){<}=0 THEN

RAISE_APPLICATION_ERROR(-20001,'庫存不足);

END IF;

UPDATE PRODUCTS

SET withheld_stock=withheld_stock+1, actual_stock=actual_stock - 1

WHERE(3)_;

INSERT INTO MSRECORDS (p_id, user_id, status, o_id)

VALUES (p_ProductlD,p_UserlD,0,p_o_id);

INSERT INTO ORDERS (p_id, user_id, status, o_id, pay_time, product_name,

user_name)

VALUES (p_ProductID,p_UserlD,0, p_o_id, NULL, p_ProductName,

p_UserName);

(4);

EXCEPTION WHEN(5)_THEN

(6);

RAISE;

END;

[問題2] (6分)

系統創建下面的觸發器,在訂單表的記錄支付成功后,修改商品表和秒殺記錄表中的記錄。請補全下面的觸發器代碼。

CREATE OR REPLACE(1)TRG_PAYMENT_SUCC

(2)UPDATE ON ORDERS

(3)

DECLARE

v_RecordIDINT;

BEGIN

UPDATE MSRECORDS SET(4)

WHEREp_id=:NEW.p_id AND user_id=:NEW.userid;

UPDATE PRODUCTS SET withheld stock=withheld stock -1

WHERE p_id=(5)_;

EXCEPTION WHEN(6)THEN

DBMS_OUTPUT.PUT_LINE('預扣記錄不存在');

END;

[問題3](13分)

(1)給出 ORDERS 表的函數依賴集合,并判斷該表最高滿足第幾范式

(1NF/2NF/3NF/BCNF)?(5分)

(2)通過模式分解,使得分解后的所有表均滿足BCNF,并說明分解后的表結構。(3分)

(3)該分解是否滿足函數依賴保持?請說明理由。(5分)


試題答案:

[問題1]

(1) for update

(2) v_ActualStock

(3) p_id=p_ProductID

(4) COMMIT

(5) others

(6) rollback

[問題2]

(1) TRIGGER

(2) AFTER

(3) FOR EACH ROW WHEN (NEW.status=1)

(4) status=1

(5) :NEW.p_id

(6) OTHERS

[問題 3]

完整試題及答案,點擊下方藍字獲取!

系統分析師案例分析試題+答案完整

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!