• 高级数据库设计与应用 05


    一、实验目的

    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. 数据库德逻辑结构设计的结果不是唯一的,为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。
  • 相关阅读:
    【docker】命令学习
    docker 安装mysql
    Docker DockerFile案例 自定义的tomcat9
    尚硅谷 Docker DockerFile案例 ONBUILD命令案例
    dockerfile 案例2 CMD ENTRYPOINT命令案例
    Dockerfile案例
    Dockerfile解析
    数据卷容器
    Dockfile添加数据卷
    容器数据卷
  • 原文地址:https://www.cnblogs.com/Raodi/p/12155659.html
Copyright © 2020-2023  润新知