领域建模

lesson7

Posted by Hanxu on April 29, 2018

第七周

本周学习了领域建模相关的知识,以下是lesson7的作业内容。


领域建模-lesson7

领域建模

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

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

HotelDomainModel

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

  • 按 Task 3 要求,给出系统的 E-R 模型(数据逻辑模型)
  • 建模工具 PowerDesigner(简称PD)或开源工具 OpenSystemArchitect
  • 不负责的链接
  • 导出 Mysql 物理数据库的脚本
  • 简单叙说数据库逻辑模型与领域模型的异同

E-R模型

er

转物理模型MySQL

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
-- +---------------------------------------------------------
-- | MODEL       : Task3
-- | AUTHOR      : 
-- | GENERATED BY: Open System Architect
-- +---------------------------------------------------------
-- | WARNING     : Review before execution
-- +---------------------------------------------------------

-- +---------------------------------------------------------
-- | DROP
-- +---------------------------------------------------------
DROP TABLE CreditCard;
DROP TABLE Traveler;
DROP TABLE Reservation;
DROP TABLE Hotel;
DROP TABLE Room;
-- +---------------------------------------------------------
-- | CREATE
-- +---------------------------------------------------------
CREATE TABLE `Room`
(
  Room_Id INTEGER NOT NULL,
  RoomType CHAR NOT NULL,
  Price INTEGER,
   ,
  PRIMARY KEY (Room_Id)
);

CREATE TABLE `Hotel`
(
  Hotel_Id INTEGER NOT NULL,
  Location CHAR NOT NULL,
  HotelName CHAR NOT NULL,
  PRIMARY KEY (Hotel_Id,HotelName)
);

CREATE TABLE `Reservation`
(
  Reservation_Id INTEGER NOT NULL,
  Hotel_Id INTEGER NOT NULL,
  InData CHAR,
  OutData CHAR,
  TotalPrice INTEGER,
  PRIMARY KEY (Reservation_Id)
);

CREATE TABLE `Traveler`
(
  Traveler_Id INTEGER NOT NULL,
  TravelerName CHAR NOT NULL,
  EmailAdress CHAR,
  PRIMARY KEY (Traveler_Id)
);

CREATE TABLE `CreditCard`
(
  Card_Id INTEGER NOT NULL,
  CardType CHAR NOT NULL,
  Traveler_Id INTEGER NOT NULL,
  PRIMARY KEY (Card_Id)
);

CREATE INDEX idxCreditCard1 ON CreditCard
(
  Traveler_Id
);

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

相同

  • 都是图形化的展现方式,描述了类的基本结构和类间关系。

不同

  • 领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。

  • 数据库逻辑模型有效组织来源多样的各种业务数据,使用统一的逻辑语言描述业务。 逻辑模型是将概念模型转化为具体的数据模型的过程,即按照概念结构设计阶段建立的基本E-R图,按选定的管理系统软件支持的数据模型(层次、网状、关系、面向对象),转换成相应的逻辑模型。