1. 程式人生 > >系統分析與設計(5)

系統分析與設計(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.中小型超市管理系統的需求分析:   這個系統面向的使用者主要是超市收銀員

ServiceAndroid系統設計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