高級數據庫設計與應用 05 - XML數據庫建模


一、實驗目的

  1. 本實驗關鍵之處在於,要求訓練並掌握書寫數據庫設計文檔的能力, 並且能利用學過的XML數據庫進行模式的創建,實現學而致用的習慣。
  2. 同時,也要求梳理實驗中所涉及到的實驗重點和難點知識,即:XML數據庫模式的設計和XML結構體系,要求在把數據存儲形式轉變為XML形式后,形成自己的關於XML數據庫模式設計和創建的相關知識體系。

 

 

 

二、實驗內容

實驗背景導入:

某公司接到一個網購系統的項目,任命你做該任務的數據庫設計師,對網購系統進行數據庫整體的設計。Webshop就是一個B2C模式的電子商城,該電子商務系統能夠實現包括前台用戶和后台管理兩大部分。

其中,前台購物系統包括會員注冊、會員登錄、商品展示、商品搜索、購物車、產生訂單和會員資料修改等等功能。后台管理系統包括管理用戶、維護商品庫、處理訂單、維護會員信息和其他管理功能。

根據系統功能描述和實際業務分析,進行電子商城的數據庫相關設計,完成如下實驗需求:

  1. 需求分析說明書。

在數據庫設計初期,首先進行系統功能需求說明書編寫。這一環節上需完成系統初步的功能需求說明文檔。

  1. XSM模型設計。

進入XML邏輯設計階段,需要進行實體關系模型的設計,將現實的系統經過抽象后運用學過的XML內容進行XSM建模。在這一環節中,需完成上述的四個實驗內容才進行。

 

 

 

 

三、實驗平台

軟件:POWER DESIGNER,WORD

   

 

 

四、實驗步驟

由於在實驗一時,已經完成了相關的需求分析說明書,此處便不再反復。在數據庫設計初期,進行系統功能需求說明書編寫。此部分詳見實驗一。

  1. XSM模型設計。

下面列舉的是整個實驗過程中,涉及到的一些操作步驟,和關於POWER DESIGNER在本實驗中的某些需求的實現方法:

①   打開powerdesigner,點擊“文件”菜單,再選擇“新建模型”;

②   在“新建模型”界面,在“類型”中選擇“信息”,在“類型項”中選擇“XML”,然后點擊“OK”;

③   在右側的工具欄中,在“XML模型圖”下點擊“元素”圖標,然后在主窗口上點擊一次,就生成一個元素;

④   雙擊某個元素,在彈出窗口中選擇“屬性”標簽,可以增加屬性,然后“預覽”標簽,可以查看元素定義的XML文本;

⑤   在右側的工具欄中,在“XML模型圖”下點擊“元素”圖標,然后在某個元素上點擊一次,即可以在該元素下增加一個子元素;

⑥   在右側的工具欄中,在“XML模型圖”下點擊“復雜類型”圖標,然后在主窗口上點擊一次,就生成一個復雜類型;

⑦   雙擊某個復雜類型,在彈出窗口中選擇“屬性”標簽,可以增加屬性,然后“預覽”標簽,可以查看復雜類型定義的XML文本。

 

 

 

 

五、運行結果

  1. 需求分析說明書。關於此部分,詳見實驗1的設計部分,略。
  2. XSM模型設計

如圖5-1所示,是本實驗的整體XSM模型。本實驗關於XSM模型設計,所采用的是復雜數據類型中組的定義方法,也就是組的參照來源可以是整個元素的對象,也可以是單個復雜類型。但和單個復雜類型不同的是,使用組的方法的時候,既可以將一個目標實例化成一個對象,也能實例化為一個復雜的類型。

 

圖5-1 整體XSM模型

 

        在上面這個整體XSM模型中,出於設計稿面的需求,而沒有列舉末梢元素的詳細數據類型。以下,是將整個XSM模型進行拆分為七個模塊,也將這七個模塊分別實例化成xml形式的文檔。

這七個模塊分別是:商品類型、員工用戶、商品信息、會員用戶、訂單詳情、訂單信息,以及支付類型,具體詳見以下內容:

 

1)      RD_COMMODITY_TYPES商品類型模型,如下:

 

<?xml version="1.0"?>

<RD_COMMODITY_TYPES>

 <ROW>

  <COMMODITY_TYPE_ID>0001</COMMODITY_TYPE_ID>

  <STATUS>推薦</STATUS>

  <COMMODITY_TYPE>01</COMMODITY_TYPE>

 </ROW>

 <ROW>

  <COMMODITY_TYPE_ID>0002</COMMODITY_TYPE_ID>

  <STATUS>熱點</STATUS>

  <COMMODITY_TYPE>02</COMMODITY_TYPE>

 </ROW>

</RD_COMMODITY_TYPES>

 

 

2)      RD_EMPLOYEES員工用戶模型,如下:

 

<?xml version="1.0"?>

<RD_EMPLOYEES>

 <ROW>

  <EMPLOYEE_ID>0001</EMPLOYEE_ID>

  <EMPLOYEE_PASSWORD>123456</EMPLOYEE_PASSWORD>

  <EMPLOYEE_NAME>張三</EMPLOYEE_NAME>

  <BIRTH>03-3月 -19</BIRTH>

  <ADDRESS>北京八達嶺</ADDRESS>

  <MOBILE>1109635</MOBILE>

  <WECHAT>53425223</WECHAT>

  <REPUTATION>98</REPUTATION>

  <DEPARTMENT>銷售部門</DEPARTMENT>

  <SEX>男</SEX>

  <COMPANY>北京嶺科技有限公司</COMPANY>

 </ROW>

 <ROW>

  <EMPLOYEE_ID>0002</EMPLOYEE_ID>

  <EMPLOYEE_PASSWORD>123456</EMPLOYEE_PASSWORD>

  <EMPLOYEE_NAME>李四</EMPLOYEE_NAME>

  <BIRTH>03-3月 -19</BIRTH>

  <ADDRESS>杭州西湖邊</ADDRESS>

  <MOBILE>1109635</MOBILE>

  <WECHAT>53425223</WECHAT>

  <REPUTATION>98</REPUTATION>

  <DEPARTMENT>作坊</DEPARTMENT>

  <SEX>男</SEX>

  <COMPANY>西湖臭豆腐西施作坊</COMPANY>

 </ROW>

</RD_EMPLOYEES>

 


  

3)      RD_GOODS商品信息模型,如下:

 

  

<?xml version="1.0"?>

<RD_GOODS>

 <ROW>

  <GOOD_ID>0001</GOOD_ID>

  <DISCOUNT>0.8</DISCOUNT>

  <GOODS>豆漿</GOODS>

  <UNIT_PRICE>23.5</UNIT_PRICE>

  <PURCHASE_DATE>2017-32-23</PURCHASE_DATE>

<GOOD_TYPE>0000220208257F4C4F5E8846809E167003A33DE7567903A3E017164E92B6AEB24EFC68ACB0</GOOD_TYPE>

 </ROW>

 <ROW>

  <GOOD_ID>0002</GOOD_ID>

  <DISCOUNT>0.8</DISCOUNT>

  <GOODS>無人機</GOODS>

  <UNIT_PRICE>23.5</UNIT_PRICE>

  <PURCHASE_DATE>2017-32-23</PURCHASE_DATE>

<GOOD_TYPE>0000220208257F4C4F5E8846809E167003A33DE7567903A3E017164E92B6AEB24EFC68ACB0</GOOD_TYPE>

 </ROW>

</RD_GOODS>

 

 

 

4)      RD_MEMBERS會員用戶信息模型,如下:

 

  

<?xml version="1.0"?>

<RD_MEMBERS>

 <ROW>

  <MEMBER_ID>0001</MEMBER_ID>

  <MEMBER_PASSWORD>123456</MEMBER_PASSWORD>

  <MEMBER_NAME>昊哥</MEMBER_NAME>

  <BIRTH>18-11月-19</BIRTH>

  <ADDRESS>廣西南寧</ADDRESS>

  <MOBILE>1008611</MOBILE>

  <WECHAT>10010</WECHAT>

  <REPUTATION>100</REPUTATION>

  <HOBBY>喜歡電子產品</HOBBY>

  <SEX>男</SEX>

  <JOBE>教師</JOBE>

 </ROW>

 <ROW>

  <MEMBER_ID>0002</MEMBER_ID>

  <MEMBER_PASSWORD>123456</MEMBER_PASSWORD>

  <MEMBER_NAME>小弟</MEMBER_NAME>

  <BIRTH>18-11月-19</BIRTH>

  <ADDRESS>廣西藤縣</ADDRESS>

  <MOBILE>10010</MOBILE>

  <WECHAT>1008611</WECHAT>

  <REPUTATION>100</REPUTATION>

  <HOBBY>喜歡麻婆豆腐</HOBBY>

  <SEX>男</SEX>

  <JOBE>學生</JOBE>

 </ROW>

</RD_MEMBERS>

 

 

5)      RD_ORDER_DETAILSS訂單詳情信息模型,如下:

 

<?xml version="1.0"?>

<RD_ORDER_DETAILSS>

 <ROW>

  <ORDER_DETAILS_ID>0001</ORDER_DETAILS_ID>

  <ORDER_DETAILS>OK</ORDER_DETAILS>

<GOOD_INFO>0000220208A9FA6DA5A45442C389A2FE43D4FEC10A4592F3AFBA0847778C2C3007B8E9CC54</GOOD_INFO>

<PAYMENT_TYPE_INFO>000022020805638F9B0CAE4903AB0741146B880F2A9C2E9B64584D420E92F38A5D0ABC39DA</PAYMENT_TYPE_INFO>

<EMPLOYEE_INFO>0000220208764E2860152D4F70B3A869DD82361E5379225ACE0AC44544B0230F4854E6C588</EMPLOYEE_INFO>

<MEMBER_INFO>0000220208CEDFD42D87E34731BA8D5CA01813BD16C3C3FD52C4354F53825B30F61E7C3015</MEMBER_INFO>

 </ROW>

 <ROW>

  <ORDER_DETAILS_ID>0002</ORDER_DETAILS_ID>

  <ORDER_DETAILS>OK</ORDER_DETAILS>

<GOOD_INFO>000022020838B293D236AE443AA95C6B45B00D22954592F3AFBA0847778C2C3007B8E9CC54</GOOD_INFO>

<PAYMENT_TYPE_INFO>000022020806D23EC66465455182841041FA8756779C2E9B64584D420E92F38A5D0ABC39DA</PAYMENT_TYPE_INFO>

<EMPLOYEE_INFO>00002202084786E2C886A0498E844CFF540F88CC9879225ACE0AC44544B0230F4854E6C588</EMPLOYEE_INFO>

<MEMBER_INFO>000022020830F85A99C86E4F41AC84767197DE1B6AC3C3FD52C4354F53825B30F61E7C3015</MEMBER_INFO>

 </ROW>

</RD_ORDER_DETAILSS>

 


  

 

6)      RD_ORDERS訂單信息模型,如下:

 

<?xml version="1.0"?>

<RD_ORDERS>

 <ROW>

  <ORDER_ID>0001</ORDER_ID>

  <GOODS_NUMBER>4</GOODS_NUMBER>

  <TOTAL_PRICE>23</TOTAL_PRICE>

  <SETUP_TIME>2017-23-07</SETUP_TIME>

<ORDER_DETAILS>0000220208E611B44D00F44C299E8E37AE78D4CC04DED32AE083314F0DA4AF683A627A2E58</ORDER_DETAILS>

 </ROW>

 <ROW>

  <ORDER_ID>0002</ORDER_ID>

  <GOODS_NUMBER>4</GOODS_NUMBER>

  <TOTAL_PRICE>23</TOTAL_PRICE>

  <SETUP_TIME>2017-23-07</SETUP_TIME>

<ORDER_DETAILS>00002202084ED2795A47C8479B8C9D1010A2641A2CDED32AE083314F0DA4AF683A627A2E58</ORDER_DETAILS>

 </ROW>

</RD_ORDERS>

 


  

 

7)      RD_PAYMENT_TYPES支付類型信息模型,如下:

 

<?xml version="1.0"?>

<RD_PAYMENT_TYPES>

 <ROW>

  <PAYMENT_TYPE_ID>0001</PAYMENT_TYPE_ID>

  <PAYMENT_TYPE>支付寶</PAYMENT_TYPE>

 </ROW>

 <ROW>

  <PAYMENT_TYPE_ID>0002</PAYMENT_TYPE_ID>

  <PAYMENT_TYPE>微信</PAYMENT_TYPE>

 </ROW>

</RD_PAYMENT_TYPES>

 

  

 

 

 

 

六、實驗總結

通過本實驗,相關總結和經驗收獲,可分點總結如下:

  1. 本實驗在XML邏輯設計階段中,主要是利用PowerDesigner進行實體關系模型的設計,將實現的系統經過抽象后得到XSM模型;
  2. 在正式開始實驗前,由於自身對XSM模型的繪制有所短缺,需得經過學習https://wenku.baidu.com/view/e104602652d380eb62946da7.html,即:XML模型及PowerDesigner實現的知識點后,形成了一定的認識,以及關於XSM模型如何繪制的相關知識體系;
  3. powerdesigner 繪制物理模型 關系箭頭方向是子類指向父類;繪制概念模型的箭頭方向與物理模型相反;
  4. 數據庫德邏輯結構設計的結果不是唯一的,為了提高數據庫應用系統的性能,還應該根據應用需要適當的修改,調整關系模式,這就是數據模型的優化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM