系統分析與設計(5)
領域建模
- 閱讀 Asg_RH 文件,按用例構建領域模型。
- 資料庫建模(E-R 模型)
E-R模型如下圖所示
資料庫匯出指令碼如下:
-- MySQL Script generated by MySQL Workbench
-- Mon Apr 29 01:45:07 2018
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected] @FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@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`.`Traveler`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Traveler` (
`TravelerID` INT NOT NULL,
`gender` INT NULL DEFAULT CURRENT_TIMESTAMP,
`Preference` VARCHAR(16) NOT NULL,
`Full Name` VARCHAR(32) NOT NULL,
`Email Address` VARCHAR(255) NULL,
PRIMARY KEY (`TravelerID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Payment Tool`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Payment Tool` (
`PaymentToolID` INT NOT NULL,
`Type` VARCHAR(16) NULL,
`TravelerID` INT NULL,
INDEX `Payment Tool` (),
INDEX `Traveler ID_idx` (`TravelerID` ASC),
PRIMARY KEY (`PaymentToolID`),
CONSTRAINT `TravelerID`
FOREIGN KEY (`TravelerID`)
REFERENCES `mydb`.`Traveler` (`TravelerID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Payment`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Payment` (
`PaymentID` INT NOT NULL,
`PaymentToolID` INT NOT NULL,
PRIMARY KEY (`PaymentID`, `PaymentToolID`),
INDEX `PaymentToolID_idx` (`PaymentToolID` ASC),
CONSTRAINT `PaymentToolID`
FOREIGN KEY (`PaymentToolID`)
REFERENCES `mydb`.`Payment Tool` (`PaymentToolID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Location`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Location` (
`LocationID` INT NOT NULL,
`Code` VARCHAR(45) NULL,
`Name` VARCHAR(45) NULL,
`Type` VARCHAR(45) NULL,
PRIMARY KEY (`LocationID`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Hotel`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Hotel` (
`HotelID` INT NOT NULL,
`Name` VARCHAR(45) NULL,
`Rating` VARCHAR(45) NULL,
`LocationID` INT NULL,
PRIMARY KEY (`HotelID`),
INDEX `LocationID_idx` (`LocationID` ASC),
CONSTRAINT `LocationID`
FOREIGN KEY (`LocationID`)
REFERENCES `mydb`.`Location` (`LocationID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Room`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Room` (
`RoomID` INT NOT NULL,
`Type` VARCHAR(45) NULL,
`Price` FLOAT NULL,
`HotelID` INT NULL,
PRIMARY KEY (`RoomID`),
INDEX `HotelID_idx` (`HotelID` ASC),
CONSTRAINT `HotelID`
FOREIGN KEY (`HotelID`)
REFERENCES `mydb`.`Hotel` (`HotelID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`RoomState`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`RoomState` (
`RoomStateID` INT NOT NULL,
`Check In Date` DATETIME NULL,
`Check Out Date` DATETIME NULL,
`isAvailable` VARCHAR(8) NULL,
`RoomID` INT NULL,
PRIMARY KEY (`RoomStateID`),
INDEX `RoomID_idx` (`RoomID` ASC),
CONSTRAINT `RoomID`
FOREIGN KEY (`RoomID`)
REFERENCES `mydb`.`Room` (`RoomID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Reservation`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Reservation` (
`ReservationID` INT NOT NULL,
`TravelerID` INT NULL,
`RoomID` INT NULL,
`Check In Date` DATETIME NULL,
`Check Out Date` DATETIME NULL,
`PaymentID` INT NULL,
`RoomState_RoomStateID` INT NOT NULL,
PRIMARY KEY (`ReservationID`, `RoomState_RoomStateID`),
INDEX `TraverlerID_idx` (`TravelerID` ASC),
INDEX `RoomID_idx` (`RoomID` ASC),
INDEX `PaymentID_idx` (`PaymentID` ASC),
INDEX `fk_Reservation_RoomState1_idx` (`RoomState_RoomStateID` ASC),
CONSTRAINT `TraverlerID`
FOREIGN KEY (`TravelerID`)
REFERENCES `mydb`.`Traveler` (`TravelerID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `RoomID`
FOREIGN KEY (`RoomID`)
REFERENCES `mydb`.`Room` (`RoomID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `PaymentID`
FOREIGN KEY (`PaymentID`)
REFERENCES `mydb`.`Payment` (`PaymentID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Reservation_RoomState1`
FOREIGN KEY (`RoomState_RoomStateID`)
REFERENCES `mydb`.`RoomState` (`RoomStateID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
- 資料庫邏輯模型與領域模型的異同
二者均是對抽象物件的視覺化表示。
領域模型是一個商業建模範疇的概念,反映的是相關業務概念以及其關係,是使用者業務描述的高度抽象。它專注於分析問題領域本身,發掘重要的業務領域概念,並建立業務領域概念之間的關係。
而資料庫邏輯模型是一個軟體開發領域的概念,雖然能在一定程度上表示業務體系,但是主要是為了表述資料庫中的結構。它是具體的DBMS所支援的資料模型,此模型既要面向使用者,又要面向系統 ,主要用於反映的是系統分析設計人員對資料儲存的觀點,是對概念資料模型進一步的分解和細化。該模型主要是面對開發人員的。例如,中介實體不會出現在資料庫邏輯模型中。
相關推薦
系統分析與設計(5)
領域建模 閱讀 Asg_RH 文件,按用例構建領域模型。 資料庫建模(E-R 模型) E-R模型如下圖所示 資料庫匯出指令碼如下: -- MySQL Script generated by MySQL Workbench -- Mon
系統分析與設計(8)
1、軟體架構與框架 軟體架構(architecture) 軟體架構就是把系統分解為一些部件,描述這些部件的職責以及它們之間的協作行為,是有關整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。 軟體架構決策涉及到軟體系統核心(主體、基礎)結構的組
系統分析與設計——作業5
閱讀 nbsp 圖片 模型 png .com AS 數據 領域建模 1、 領域建模 a. 閱讀 Asg_RH 文檔,按用例構建領域模型。 領域模型: b. 數據庫建模(E-R 模型) (1)系統的 E-R 模型(數據邏輯模型): (2)導出 Mysql 物理數據庫
演算法分析與設計(一)
一、演算法的定義 滿足五個條件:可行性、確定性、輸入、輸出、有窮性 滿足前四個條件為計算過程(OS) 二、演算法複雜性分析 時間複雜性:對該輸入需要產生的原子操作的步數(是輸入大小的函式) 空間複雜性:演算法所需要的儲存空間 三、計算複雜性函式的階 階:描述增長
演算法分析與設計(四)動態規劃(二)
動態規劃的概念複習 每次決策依賴於當前狀態,又隨即引起狀態的轉移。一個決策序列就是在變化的狀態中產生的,所以,這種多階段最優化決策解決問題的過程就稱為動態規劃。 動態規劃的思想和策略 將待求解的問題分解為若干個子問題,按順序求解子階段,前一子問題的解,為後
系統分析與設計學習筆記(一)
學習 掌握 應該 溝通 基本 最終 表示 對象 毫無 為什麽要學習這門課程? “擁有一把錘子未必能成為建築師”。 這門課程學習的是面向對象分析和設計的核心技能的重要工具。對於使用面向對象技術和語言來,創建設計良好、健壯且可維護的軟件來說,這門課程所
【軟考】——軟體工程基礎知識(Web應用系統分析與設計)
WebApp的特性 WebApp屬性???——》網路密集性、併發性、無法預知的負載量、效能、可用性、資料驅動; web應用系統分析的模型型別???——》 內容模型???——》給出由Web應
《基於UML的中小型超市管理系統分析與設計》論文筆記(二十)
一、基本資訊 標題:基於UML的中小型超市管理系統分析與設計 時間:2016 來源:湘南學院學報 關鍵詞:中小型連鎖超市; 資訊化建設; Java技術; Java EE技術; 二、研究內容 1.中小型超市管理系統的需求分析: 這個系統面向的使用者主要是超市收銀員
Service與Android系統設計(5)-- libbinder
libbinder – Binder的Native實現 出於效能和程式碼統一性的角度考慮,Binder IPC並不Java和Native環境裡各實現一次,而只是分別在不同的執行環境裡提供使用的介面。使用Binder的Java程式碼,通過一些使用Binder的Java類之後
系統分析與設計--學習筆記3(用例建模)
一.使用故事板(Storyboard)技術,建模網上訂機票、車票,或訂旅店的過程。 故事前提:你是註冊使用者,並已登陸。 故事起點:發起目標查詢 故事終點:確認訂單(不包含支付) 描述手法:參考 “建模練習” 文件 用“藝龍網”的網上訂酒店來模仿建模:(更多資訊在藝龍網
系統分析與設計--學習筆記4(建模應用)
一.按建模練習資料的 Task1 ,完成用例圖 Task1:用例建模(Use Case Modeling)是使用用例的方法來描述系統的功能需求的過程 (1)Use Case Diagram (2)Use Case Specification--Brief Level
系統分析與設計作業(8)
使用ECB實現make reservation用例的詳細設計(包含用例簡介,順序圖,類圖)1.用例簡介用例模型如下make reservation包含4個主要用例:1.查詢酒店 2.預定酒店
吳裕雄 資料探勘與分析案例實戰(5)——python資料視覺化
# 餅圖的繪製# 匯入第三方模組import matplotlibimport matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['Simhei']plt.rcParams['axes.unicode_minus']=Falseziti =
《推薦系統》基於使用者和Item的協同過濾演算法的分析與實現(Python)
開啟微信掃一掃,關注《資料與演算法聯盟》1:協同過濾演算法簡介2:協同過濾演算法的核心3:協同過濾演算法的應用方式4:基於使用者的協同過濾演算法實現5:基於物品的協同過濾演算法實現一:協同過濾演算法簡介 關於協同過濾的一個最經典的例子就是看電影,有時候不知道哪一部電影是
B2C電子商務系統研發——商品SKU分析和設計(一)
一、SKU及相關概念定義 在設計商品SKU之前,首先讓我們熟悉一下SKU和相關的一些概念。# 什麼是SKU: SKU=Stock Keeping Unit(庫存量單位) 同一型號的商品,或者說是同一個產品專案(商品條形碼是針對企業的產品 專案來進
系統分析與設計UML建模
撰寫 中一 聚合和組合 常見 log 操作 發生 -- mac UML的歷史 1997年,OMG組織(Object Management Group對象管理組織)發布了統一建模語言(Unified Modeling Language,UML)。UML的目標之一就是為開發團隊
LINUX系統服務與管理(Services)---------第六天
rsync同步? ? ?虛擬機A? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修改為permissive? 3.SELinux永久狀態修改為permissive? ? 4.清空Yum緩存,檢查Yum是否可用? ? 虛擬機B? ? 1. 將防火墻狀態設置為trusted? 2.SELi
LINUX系統服務與管理(Services)---------第二天
根下常用的命令用途 自定義yum倉庫 ln創建軟連接 源碼包編譯安裝 主要用途/boot ? ? ? ? 存放系統引導必需的文件,包括內核、啟動配置/bin、/sbin ? 存放各種命令程序/dev ? ? ? ? ?存放硬盤、鍵盤、鼠標、光驅等各種設備文件/etc ? ? ? ? ?存放Li
LINUX系統服務與管理(Services)---------第四天
dns服務器虛擬機A? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修改為permissive? 3.SELinux永久狀態修改為permissive? ? 4.清空Yum緩存,檢查Yum是否可用? ? 虛擬機B? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修
LINUX系統服務與管理(Services)---------第五天
部署dhcp服務器 pxe網絡裝機服務器 虛擬機A? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修改為permissive? 3.SELinux永久狀態修改為permissive? ? 4.清空Yum緩存,檢查Yum是否可用? ? 虛擬機B? ? 1. 將防火墻狀態設置為tr