程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 數據庫-DataBase設計

數據庫-DataBase設計

編輯:SyBase教程

數據庫-DataBase設計


數據庫設計概述

數據庫設計
數據庫設計是指對於一個給定的應用環境,構造(設計)優化的數據庫邏輯模式和物理結構,並據此建立數據庫及其應用系統,使之能夠有效地存儲和管理數據,滿足各種用戶的應用需求,包括信息管理要求和數據操作要求。
目標:為用戶和各種應用系統提供一個信息基礎設施和高效率的運行環境
數據庫建設的基本規律
三分技術,七分管理,十二分基礎數據
管理
數據庫建設項目管理
企業(即應用部門)的業務管理
基礎數據
收集、入庫
更新新的數據
結構(數據)設計和行為(處理)設計相結合
將數據庫結構設計和數據處理設計密切結合

數據庫設計方法

手工與經驗相結合方法
設計質量與設計人員的經驗和水平有直接關系
數據庫運行一段時間後常常不同程度地發現各種問題,增加了維護代價
規范設計法
基本思想:過程迭代和逐步求精

新奧爾良(New Orleans)方法
將數據庫設計分為若干階段和步驟
基於E-R模型的數據庫設計方法
概念設計階段廣泛采用
3NF(第三范式)的設計方法
邏輯階段可采用的有效方法
ODL(Object Definition Language)方法
面向對象的數據庫設計方法
計算機輔助設計
ORACLE Designer 2000
SYBASE PowerDesigner

數據庫設計的基本步驟

數據庫設計分6個階段
需求分析
概念結構設計
邏輯結構設計
物理結構設計
數據庫實施
數據庫運行和維護
需求分析和概念設計獨立於任何數據庫管理系統
邏輯設計和物理設計與選用的DBMS密切相關

一、數據庫設計的准備工作:選定參加設計的人
1.系統分析人員、數據庫設計人員
自始至終參與數據庫設計
2. 用戶和數據庫管理員
主要參加需求分析和數據庫的運行維護
3.應用開發人員(程序員和操作員)
在系統實施階段參與進來,負責編制程序和准備軟硬件環境
二、數據庫設計的過程(六個階段)
⒈需求分析階段
准確了解與分析用戶需求(包括數據與處理)
最困難、最耗費時間的一步

⒉概念結構設計階段
整個數據庫設計的關鍵
通過對用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型

⒊邏輯結構設計階段
將概念結構轉換為某個DBMS所支持的數據模型
對其進行優化

⒋數據庫物理設計階段
為邏輯數據模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)

⒌數據庫實施階段
運用DBMS提供的數據庫語言(如SQL)及宿主語言,根據邏輯設計和物理設計的結果
建立數據庫
編制與調試應用程序
組織數據入庫
進行試運行

⒍數據庫運行和維護階段
數據庫應用系統經過試運行後即可投入正式運行
在數據庫系統運行過程中必須不斷地對其進行評價、調整與修改

需求分析的任務

詳細調查現實世界要處理的對象(組織、部門、企業等)
充分了解原系統(手工系統或計算機系統)
明確用戶的各種需求
確定新系統的功能
充分考慮今後可能的擴充和改變
調查的重點是“數據”和“處理”,獲得用戶對數據庫要求
信息要求
處理要求
安全性與完整性要求
確定用戶最終需求
用戶缺少計算機知識
設計人員缺少用戶的專業知識
解決方法
設計人員必須不斷深入地與用戶進行交流
⑴ 調查組織機構情況
⑵ 調查各部門的業務活動情況。
⑶ 在熟悉業務活動的基礎上,協助用戶明確對新系統的各種要求。
⑷ 確定新系統的邊界

常用調查方法

(1)跟班作業
(2)開調查會
(3)請專人介紹
(4)詢問
(5)設計調查表請用戶填寫
(6)查閱記錄
結構化分析方法(Structured Analysis,簡稱SA方法)
從最上層的系統組織機構入手
自頂向下、逐層分解分析系統
2.分解處理功能和數據
(1)分解處理功能
將處理功能的具體內容分解為若干子功能
(2)分解數據
處理功能逐步分解同時,逐級分解所用數據,形成若干層次的數據流圖
(3)表達方法
處理邏輯:用判定表或判定樹來描述
數據:用數據字典來描述
3.將分析結果再次提交給用戶,征得用戶的認可

數據字典

數據字典的用途
進行詳細的數據收集和數據分析所獲得的主要結果
數據字典的內容
數據項
數據結構
數據流
數據存儲
處理過程

數據項

 數據項是不可再分的數據單位
 對數據項的描述
      數據項描述={ 數據項名,數據項含義說明,別名,
                                數據類型,長度,取值范圍,取值含義,
                與其他數據項的邏輯關系,數據項之間的          聯系 }

數據結構

數據結構反映了數據之間的組合關系。
 一個數據結構可以由若干個數據項組成,也可以由若干個數據結構組成,或由若干個數據項和數據結構混合組成。
 對數據結構的描述
      數據結構描述={數據結構名,含義說明,
                                   組成:{數據項或數據結構}}

數據流

數據流是數據結構在系統內傳輸的路徑。
 對數據流的描述
   
    數據流描述={ 數據流名,說明,數據流來源,
                               數據流去向,組成:{數據結構},
                               平均流量,高峰期流量}

數據存儲

數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。

對數據存儲的描述
  數據存儲描述={數據存儲名,說明,編號,
                輸入的數據流 ,輸出的數據流 ,
                組成:{數據結構},數據量,存取頻度,         存取方式}

處理過程

具體處理邏輯一般用判定表或判定樹來描述
處理過程說明性信息的描述
 處理過程描述={處理過程名,說明,輸入:{數據流}, 
                                 輸出:{數據流},處理:{簡要說明}}

例:學生學籍管理子系統的數據字典。

數據項,以“學號”為例:
數據項: 學號
含義說明:唯一標識每個學生

 別名:  學生編號
類型:  字符型
長度:  8
取值范圍:00000000至99999999
 取值含義:前兩位標別該學生所在年級,
後六位按順序編號
 與其他數據項的邏輯關系:
數據結構,以“學生”為例

“學生”是該系統中的一個核心數據結構:
數據結構: 學生
含義說明: 是學籍管理子系統的主體數據結構,
                      定義了一個學生的有關信息
組成:   學號,姓名,性別,年齡,所在系,年級

  
數據流,“體檢結果”可如下描述:
數據流:  體檢結果
說明:   學生參加體格檢查的最終結果
數據流來源:體檢
數據流去向:批准
組成:   ……
 平均流量: ……
 高峰期流量:……
數據存儲,“學生登記表”可如下描述:
數據存儲: 學生登記表
說明:   記錄學生的基本情況
 流入數據流:……
流出數據流:……
組成:   ……
數據量:  每年3000張
存取方式: 隨機存取
處理過程“分配宿捨”可如下描述:
 處理過程:分配宿捨
 說明:  為所有新生分配學生宿捨
 輸入:  學生,宿捨
 輸出:  宿捨安排
 處理:  在新生報到後,為所有新生分配學生宿捨。
要求同一間宿捨只能安排同一性別的學生,
同一個學生只能安排在一個宿捨中。
每個學生的居住面積不小於3平方米。
安排新生宿捨其處理時間應不超過15分鐘。
數據字典是關於數據庫中數據的描述,是元數據,而不是數據本身
數據字典在需求分析階段建立,在數據庫設計過程中不斷修改、充實、完善
設計人員應充分考慮到可能的擴充和改變,使設計易於更改,系統易於擴充
必須強調用戶的參與

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved