Homework_lesson7

作业要求:域建模

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

  • 按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸
  • 说明:请不要受 PCMEF 层次结构影响。你需要识别实体(E)和 中介实体(M,也称状态实体)
    • 在单页面应用(如 vue)中,E 一般与数据库构建有关, M 一般与 store 模式 有关
    • 在 java web 应用中,E 一般与数据库构建有关, M 一般与 session 有关
      domain_model

      b. 数据库建模(E-R 模型)

  • 按 Task 3 要求,给出系统的 E-R 模型(数据逻辑模型)
  • 建模工具 PowerDesigner(简称PD) 或开源工具 OpenSystemArchitect
  • 不负责的链接 http://www.cnblogs.com/mcgrady/archive/2013/05/25/3098588.html
  • 导出 Mysql 物理数据库的脚本
  • 简单叙说 数据库逻辑模型 与 领域模型 的异同
    er_model
    导出MySQL脚本:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    -- +---------------------------------------------------------
    -- | MODEL : RH
    -- | AUTHOR :
    -- | GENERATED BY: Open System Architect
    -- +---------------------------------------------------------
    -- | WARNING : Review before execution
    -- +---------------------------------------------------------

    -- +---------------------------------------------------------
    -- | CREATE
    -- +---------------------------------------------------------
    CREATE TABLE `Elocation`
    (
    code INTEGER NOT NULL,
    name VARCHAR(20) NOT NULL,
    hot VARCHAR NOT NULL,
    PRIMARY KEY (code)
    );

    CREATE TABLE `EHotel`
    (
    hotel_id INTEGER NOT NULL,
    name VARCHAR(20) NOT NULL,
    intro LONGTEXT NOT NULL,
    star_rating INTEGER NOT NULL,
    hot_index VARCHAR(20) NOT NULL,
    address VARCHAR(20) NOT NULL,
    PRIMARY KEY (hotel_id)
    );

    CREATE TABLE `Eroom_desc`
    (
    desc_id INTEGER NOT NULL,
    type VARCHAR(10) NOT NULL,
    list_price FLOAT NOT NULL,
    PRIMARY KEY (desc_id)
    );

    CREATE TABLE `Eroom`
    (
    room_id INTEGER NOT NULL,
    num INTEGER NOT NULL,
    isavaliable BIT NOT NULL,
    date DATE NOT NULL,
    PRIMARY KEY (room_id)
    );

    CREATE TABLE `EReservation`
    (
    reservation_id INTEGER NOT NULL,
    check_in_date DATE NOT NULL,
    check_out_date DATE NOT NULL,
    nights_num INTEGER NOT NULL,
    total_price FLOAT NOT NULL,
    PRIMARY KEY (reservation_id)
    );

    CREATE TABLE `customerInfo`
    (
    customer_id INTEGER NOT NULL,
    full_name VARCHAR(20) NOT NULL,
    email_address VARCHAR(20) NOT NULL,
    Dr_Miss BIT NOT NULL,
    isSmoke BIT NOT NULL,
    PRIMARY KEY (customer_id)
    );

    CREATE TABLE `Eorder_item`
    (
    item_id INTEGER NOT NULL,
    adult_num INTEGER NOT NULL,
    children_num INTEGER NOT NULL,
    min_child_num INTEGER NOT NULL,
    max_child_num INTEGER NOT NULL,
    PRIMARY KEY (item_id)
    );
两者区别:
  • 同:领域模型和数据库逻辑模型都将系统的概念类以图形化的形式表示出来,定义了各个概念类的名字、属性以及类间的关系。
  • 异:领域模型包含状态实体而ER模型只包含持久性实体,领域模型主要面向需求分析与设计,而数据库逻辑模型更面向编程开发。