系统分析与设计(作业5)

领域建模
a. 阅读 Asg_RH 文档,按用例构建领域模型
(1)用例:find location
location
(2)用例:find hotel
hotel
(3)用例:make reservation
reservation
(4)总的领域模型:
all
b. 数据库建模(E-R 模型)
(1)使用开源工具 OpenSystemArchitect建立系统的E-R模型(数据库逻辑模型)
ER
(2) Mysql 物理数据库的脚本代码

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

-- +---------------------------------------------------------
-- | CREATE
-- +---------------------------------------------------------
CREATE TABLE `Location`
(
  code INTEGER NOT NULL,
  name VARCHAR(30) NOT NULL,
  hot VARCHAR(20) NOT NULL,
  region VARCHAR(20) NOT NULL,
  city VARCHAR(20) NOT NULL,
  town VARCHAR(20) NOT NULL,
  PRIMARY KEY (code)
);

CREATE TABLE `Hotel`
(
  hotel_id INTEGER NOT NULL,
  name VARCHAR(30) NOT NULL,
  star_rating INTEGER NOT NULL,
  hot_index VARCHAR(10) NOT NULL,
  address VARCHAR(30) NOT NULL,
  code INTEGER NOT NULL,
  PRIMARY KEY (hotel_id,code)
);

CREATE TABLE `Room_description`
(
  room_id INTEGER NOT NULL,
  type VARCHAR(10) NOT NULL,
  price INTEGER NOT NULL,
  PRIMARY KEY (room_id)
);
CREATE TABLE `ShoppingBasket`
(
  basket_id INTEGER NOT NULL,
  PRIMARY KEY (basket_id)
);

CREATE TABLE `Traveller`
(
  traveller_id INTEGER NOT NULL,
  PRIMARY KEY (traveller_id)
);

CREATE TABLE `Reservation`
(
  reservation_id INTEGER NOT NULL,
  check_in_date VARCHAR(20) NOT NULL,
  check_out_date VARCHAR(20) NOT NULL,
  night_num INTEGER NOT NULL,
  total_price INTEGER NOT NULL,
  basket_id INTEGER NOT NULL,
  hotel_id INTEGER NOT NULL,
  traveller_id INTEGER NOT NULL,
  PRIMARY KEY (reservation_id,hotel_id)
);

CREATE INDEX idxReservation1 ON Reservation
(
  basket_id
);

CREATE INDEX idxReservation2 ON Reservation
(
  traveller_id
);

CREATE TABLE `Customer_info`
(
  email VARCHAR(30) NOT NULL,
  name VARCHAR(30) NOT NULL,
  gender VARCHAR(10) NOT NULL,
  isSmoke INTEGER NOT NULL,
  reservation_id INTEGER NOT NULL,
  PRIMARY KEY (email)
);

CREATE TABLE `orderItem`
(
  order_id INTEGER NOT NULL,
  child_num INTEGER NOT NULL,
  adult_num INTEGER NOT NULL,
  min_child_age INTEGER NOT NULL,
  max_child_age INTEGER NOT NULL,
  reservation_id INTEGER NOT NULL,
  PRIMARY KEY (order_id,reservation_id)
);

CREATE TABLE `Room`
(
  room_id INTEGER NOT NULL,
  number INTEGER NOT NULL,
  isAvaliable INTEGER NOT NULL,
  date VARCHAR(20) NOT NULL,
  hotel_id INTEGER NOT NULL,
  room_id INTEGER NOT NULL,
  PRIMARY KEY (room_id,hotel_id,room_id)
);

CREATE TABLE `Request`
(
  reservation_id INTEGER NOT NULL,
  check_in_date VARCHAR(30) NOT NULL,
  check_out_date VARCHAR(30) NOT NULL,
  night_num INTEGER NOT NULL,
  destination_name VARCHAR(30) NOT NULL,
  traveller_id INTEGER NOT NULL,
  PRIMARY KEY (reservation_id,traveller_id)
);

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

异: 领域模型主要面向需求分析与设计,而数据库逻辑模型更面向编程开发;数据库逻辑模型比领域模型更加明确地给出各个数据字段的具体类型,以及表与表之间的关系。

同:领域模型和数据库逻辑模型都将系统的概念类以图形化的形式表示出来,定义了各个概念类的名字、属性以及类间的关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值