高级数据库设计与应用 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. 数据库德逻辑结构设计的结果不是唯一的,为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。

原文地址:https://www.cnblogs.com/Raodi/p/12155659.html

时间: 2024-10-03 22:54:21

高级数据库设计与应用 05 - XML数据库建模的相关文章

数据库设计 Step by Step (2)——数据库生命周期

引言:数据库设计 Step by Step (1)得到这么多朋友的关注着实出乎了我的意外.这也坚定了我把这一系列的博文写好的决心.近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统.完整,需要花很多时间整理.思考数据库设计的各种资料,所以文章的更新速度可能会慢一些,也希望大家能够谅解. 系列的第二讲我们将站在高处俯瞰一下数据库的生命周期,了解数据库设计的整体流程 数据库生命周期 大家对软件生命周期较为熟悉,数据库也有其生命周期,如下图所示. 图(1)数据库生命周期 数据库的生命周期

数据库设计——11 个重要的数据库设计规则

简介 在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师.以下列出的 11 点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解.我个人认为它们对我的数据库设计提供了很大的帮助.实属一家之言,欢迎拍砖 : ) 我之所以写下这篇这么完整的文章是因为,很多开发者一参与到数据库设计,就会很自然地把 “三范式” 当作银弹一样来使用.他们往往认为遵循这个规范就是数据库设计的唯一标准.由于这种心态,他们往往尽管一路碰壁也会坚持把项目做下去. 如果你对 “三范式” 不清楚

数据库设计:用户登录系统数据库表设计

用户登录系统数据库表设计 最近看了看公司后台用户登录系统的设计, 比较混乱, 主要还是因为URS和Oauth以及URS第三方这三个登录形式各不相同导致的. 下面着重介绍一下涉及到第三方登录中需要注意的问题 在一个新项目中, 如果是要建立自己的登录体系的话, 那么直接创建一个Users表,包含username和password两列,这样,就可以实现登录了: id | username | password | name等其他字段 ----+----------+----------+-------

机房收费系统——数据库设计说明书

GB8567--88 数据库设计说明书 1      引言 优质数据库在处理大数据的程序或系统中是有非常重要的作用的,所以对于数据库的设计有很多的要求和规定.首先数据库要有很好的可维护性.灵活性,并且数据库的算法逻辑性也要有一定的优化性,这样可以对资源进行有效利用,并且处理数据的时间也会缩短. 1.1   编写目的 由于上机的人越来越多,产生的上机数据越来越多,原始的保存方式已经不能满足数据存储的需要,所以使用数据库对各种记录进行存储.并且数据库可以节省很多的资源,如人力.时间.空间等. 数据库

数据库设计中的一些原则

1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体. 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体. 这里的实体可以理解为基本表.明确这种对应关系后,对我们设计录入界面大有好处. [例1]:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表.社会关系表.工作简历表.   这就是"一张原始单证对应多个实体"的典型例子. 2.

数据库设计原则(摘抄)

注:     设计数据库是实现实际业务的重要一步,合理设计表结构,规划表字段,建立合理关系为后期减少了开发,运营,维护成本.认真了解和学习设计知识是必要的,如下摘抄了部分经验总结. 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体. 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体. 这里的实体可以理解为基本表.明确这种对应关系后,对我们设计录入界面大有好处

(zz)数据库设计中的14个技巧

1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实 体,或多张原始单证对应一个实体.这里的实体可以理解为基本表.明确这种对应关系后,对我们设计 录入界面大有好处. [例1]:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表.社会 关系表.工作简历表.这就是“一张原始单证对应多个实体”的典型例子. 2. 主键与外键

[转]数据库设计中的常用技巧

本文介绍了数据库设计中的14个技巧,这是许多人在大量的数据库分析与设计实践中,逐步总结出来的-- 下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的.对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握.并逐步做到:在应用中发展,在发展中应用. 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个

数据库设计(理解篇)

1. 原始单据与实体之间的关系(原始单据可以理解为整个录入界面的数据,这里的实体可以理解为基本表) 可以是一对一.一对多.多对多的关系. 在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体(基本表). 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体. 明确这种对应关系后,对我们设计录入界面大有好处. [例1]:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表.社会关系表.工作简历表.这就是“一张原始单