系统分析与设计HW5
个人作业
领域建模
a. 阅读 Asg_RH 文档,按用例构建领域模型。
- 按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸
- 说明:请不要受 PCMEF 层次结构影响。你需要识别实体(E)和 中介实体(M,也称状态实体)
- 在单页面应用(如 vue)中,E 一般与数据库构建有关, M 一般与 store 模式 有关
- 在 java web 应用中,E 一般与数据库构建有关, M 一般与 session 有关
- 说明:请不要受 PCMEF 层次结构影响。你需要识别实体(E)和 中介实体(M,也称状态实体)

b. 数据库建模(E-R 模型)
- 按 Task 3 要求,给出系统的 E-R 模型(数据逻辑模型)
- 建模工具 PowerDesigner(简称PD) 或开源工具 OpenSystemArchitect
- 不负责的链接 http://www.cnblogs.com/mcgrady/archive/2013/05/25/3098588.html
- 导出 Mysql 物理数据库的脚本
- 简单叙说 数据库逻辑模型 与 领域模型 的异同

-- MySQL Script generated by MySQL Workbench
-- Sun Apr 29 15:44:19 2018
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS mydb DEFAULT CHARACTER SET utf8 ;
USE mydb ;
-- -----------------------------------------------------
-- Table mydb.Destination
-- -----------------------------------------------------
DROP TABLE IF EXISTS mydb.Destination ;
CREATE TABLE IF NOT EXISTS mydb.Destination (
DestinationID INT NOT NULL,
DestinationName VARCHAR(45) NULL,
DestinationType VARCHAR(45) NULL,
PRIMARY KEY (DestinationID))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.Hotel
-- -----------------------------------------------------
DROP TABLE IF EXISTS mydb.Hotel ;
CREATE TABLE IF NOT EXISTS mydb.Hotel (
HotelID INT NOT NULL,
HotelName VARCHAR(45) NULL,
star rating INT NULL,
Min. stay INT NULL,
PRIMARY KEY (HotelID),
CONSTRAINT DestinationID
FOREIGN KEY ()
REFERENCES mydb.Destination ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.Room
-- -----------------------------------------------------
DROP TABLE IF EXISTS mydb.Room ;
CREATE TABLE IF NOT EXISTS mydb.Room (
RoomID INT NOT NULL,
price FLOAT NULL,
RoomType VARCHAR(45) NULL,
RoomDate DATE NULL,
isAvailable TINYINT NULL,
No. of adults INT NULL,
No. of children INT NULL,
PRIMARY KEY (RoomID),
CONSTRAINT HotelID
FOREIGN KEY ()
REFERENCES mydb.Hotel ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.Customer
-- -----------------------------------------------------
DROP TABLE IF EXISTS mydb.Customer ;
CREATE TABLE IF NOT EXISTS mydb.Customer (
CustomerID INT NOT NULL,
CustomerName VARCHAR(45) NULL,
CustomerEmail VARCHAR(45) NULL,
PRIMARY KEY (CustomerID))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.Reservation
-- -----------------------------------------------------
DROP TABLE IF EXISTS mydb.Reservation ;
CREATE TABLE IF NOT EXISTS mydb.Reservation (
ReservationID INT NOT NULL,
check-in date DATE NULL,
check-out date DATE NULL,
payment option INT NULL,
booking details VARCHAR(45) NULL,
canSmoke TINYINT NULL,
special requirement VARCHAR(45) NULL,
PRIMARY KEY (ReservationID),
CONSTRAINT CustomerID
FOREIGN KEY ()
REFERENCES mydb.Customer ()
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT RoomID
FOREIGN KEY ()
REFERENCES mydb.Room ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.Payment
-- -----------------------------------------------------
DROP TABLE IF EXISTS mydb.Payment ;
CREATE TABLE IF NOT EXISTS mydb.Payment (
PaymentID INT NOT NULL,
isSuccessful TINYINT NULL,
PRIMARY KEY (PaymentID),
CONSTRAINT ReservationID
FOREIGN KEY ()
REFERENCES mydb.Reservation ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
数据库逻辑模型和领域模型的异同:
二者都被用于业务的分析,从中抽象出具体的逻辑和实体,从而帮助人们更好地认识业务本身。不同的地方在于领域模型更注重全面地认识问题,并不仅仅是面向开发。而数据库逻辑模型更注重在开发过程中的实际效用,针对的是数据库中实体之间的逻辑的研究。对于无必要储存于数据库中的实体,数据库逻辑模型并不研究。

浙公网安备 33010602011771号