系统分析与设计 第五次作业

领域建模

  • a. 阅读 Asg_RH 文档,按用例构建领域模型。

    • 按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸
    • 说明:请不要受 PCMEF 层次结构影响。你需要识别实体(E)和 中介实体(M,也称状态实体)
      摘自Asg_RH 文档:

      …name your entity classes starting with letter E, and the mediator classes starting with letter M. A related way of distinguishing between entity and mediator classes is to assume that all entity classes will persist in the database, whereas most, or even all, mediator classes are transient. Hence, for example, MShoppingBasket but ECreditCard.

      • 在单页面应用(如 vue)中,E 一般与数据库构建有关, M 一般与 store 模式 有关
      • 在 java web 应用中,E 一般与数据库构建有关, M 一般与 session 有关
  • b. 数据库建模(E-R 模型)
    • 按 Task 3 要求,给出系统的 E-R 模型(数据逻辑模型)
    • 建模工具 PowerDesigner(简称PD) 或开源工具 OpenSystemArchitect
    • 导出 Mysql 物理数据库的脚本
    • 简单叙说 数据库逻辑模型 与 领域模型 的异同

a. 领域模型如下图:
这里写图片描述

b.
E-R模型:
这里写图片描述

Mysql物理数据库脚本:

-- | MODEL       : HotelReservation
-- | AUTHOR      : 
-- | GENERATED BY: Open System Architect
-- +---------------------------------------------------------
-- | WARNING     : Review before execution
-- +---------------------------------------------------------

-- +---------------------------------------------------------
-- | CREATE
-- +---------------------------------------------------------
CREATE TABLE `User`
(
  user_id INTEGER NOT NULL,
  username VARCHAR(20) NOT NULL,
  password VARCHAR(20) NOT NULL,
  PRIMARY KEY (user_id)
);

CREATE TABLE `Room`
(
  room_id INTEGER NOT NULL,
  room_type CHAR(20) NOT NULL,
  price INTEGER NOT NULL,
  availiable_dates INTEGER,
  PRIMARY KEY (room_id)
);

CREATE TABLE `Hotel`
(
  hotel_id INTEGER NOT NULL,
  hotel_name VARCHAR(30) NOT NULL,
  star_rating INTEGER NOT NULL,
  PRIMARY KEY (hotel_id)
);

CREATE TABLE `Reservation`
(
  reservation_id INTEGER NOT NULL,
  dates INTEGER NOT NULL,
  is_payed BIT NOT NULL,
  user_id INTEGER NOT NULL,
  hotel_id INTEGER NOT NULL,
  PRIMARY KEY (reservation_id)
);

CREATE INDEX idxReservation1 ON Reservation
(
  user_id
);

CREATE TABLE `Location`
(
  location_id INTEGER NOT NULL,
  country_name VARCHAR(30) NOT NULL,
  region_name VARCHAR(30) NOT NULL,
  city_name VARCHAR(30) NOT NULL,
  PRIMARY KEY (location_id)
);

数据库逻辑模型 与 领域模型 的异同:

  • 相同点:都反映了系统拥有的主要功能模块和主要数据,同时反映出了各个模块之间的关系,有利于简洁明了地展示出系统的整体结构。
  • 不同点:领域模型更加偏重业务逻辑,有利于需求分析;而数据库逻辑模型更偏重数据的存储结构的设计,在领域模型的基础上添加了数据类型、主键外键等信息,有利于开发人员的编码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值