當前位置:首頁 » 操作系統 » 系統的資料庫設計

系統的資料庫設計

發布時間: 2022-05-30 09:08:26

A. 在系統設計中,對資料庫的設計應考慮哪些設計原則

資料庫是整個軟體應用的根基,是軟體設計的起點,它起著決定性的質變作用,因此我們必須對資料庫設計高度重視起來,培養設計良好資料庫的習慣,是一個優秀的軟體設計師所必須具備的基本素質條件!
那麼我們要做到什麼程度才是對的呢?下面就說說資料庫設計的原則:
1、資料庫設計最起碼要佔用整個項目開發的40%以上的時間
資料庫是需求的直觀反應和表現,因此設計時必須要切實符合用戶的需求,要多次與用戶溝通交流來細化需求,將需求中的要求和每一次的變化都要一一體現在資料庫的設計當中。如果需求不明確,就要分析不確定的因素,設計表時就要事先預留出可變通的欄位,正所謂「有備無患」。
2、資料庫設計不僅僅停留於頁面demo的表面
頁面內容所需要的欄位,在資料庫設計中只是一部分,還有系統運轉、模塊交互、中轉數據、表之間的聯系等等所需要的欄位,因此資料庫設計絕對不是簡單的基本數據存儲,還有邏輯數據存儲。
3、資料庫設計完成後,項目80%的設計開發在你腦海中就已經完成了
每個欄位的設計都是有他必要的意義的,你在設計每一個欄位的同時,就應該已經想清楚程序中如何去運用這些欄位,多張表的聯系在程序中是如何體現的。換句話說,你完成資料庫設計後,程序中所有的實現思路和實現方式在你的腦海中就已經考慮過了。如果達不到這種程度,那當進入編碼階段後,才發現要運用的技術或實現的方式資料庫無法支持,這時再改動資料庫就會很麻煩,會造成一系列不可預測的問題。
4、資料庫設計時就要考慮到效率和優化問題
一開始就要分析哪些表會存儲較多的數據量,對於數據量較大的表的設計往往是粗粒度的,也會冗餘一些必要的欄位,已達到盡量用最少的表、最弱的表關系去存儲海量的數據。並且在設計表時,一般都會對主鍵建立聚集索引,含有大數據量的表更是要建立索引以提供查詢性能。對於含有計算、數據交互、統計這類需求時,還要考慮是否有必要採用存儲過程。
5、添加必要的(冗餘)欄位
像「創建時間」、「修改時間」、「備注」、「操作用戶IP」和一些用於其他需求(如統計)的欄位等,在每張表中必須都要有,不是說只有系統中用到的數據才會存到資料庫中,一些冗餘欄位是為了便於日後維護、分析、拓展而添加的,這點是非常重要的,比如黑客攻擊,篡改了數據,我們便就可以根據修改時間和操作用戶IP來查找定位。
6、設計合理的表關聯
若多張表之間的關系復雜,建議採用第三張映射表來關聯維護兩張表之間的關系,以降低表之間的直接耦合度。若多張表涉及到大數據量的問題,表結構盡量簡單,關聯也要盡可能避免。
7、設計表時不加主外鍵等約束性關聯,系統編碼階段完成後再添加約束性關聯
這樣做的目的是有利於團隊並行開發,減少編碼時所遇到的問題,表之間的關系靠程序來控制。編碼完成後再加關聯並進行測試。不過也有一些公司的做法是乾脆就不加表關聯。
8、選擇合適的主鍵生成策略

B. 資料庫設計是指設計資料庫管理系統嗎

不是;前者是設計應用,後者是設計軟體怎麼開發。

資料庫設計(Database Design)是指對於一個給定的應用環境,構造最優的資料庫模式,建立資料庫及其應用系統。

使之能夠有效地存儲數據,滿足各種用戶的應用需求(信息要求和處理要求)。在資料庫領域內,常常把使用資料庫的各類系統統稱為資料庫應用系統。

資料庫管理系統(Database Management System)是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱DBMS。

它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。用戶通過DBMS訪問資料庫中的數據,資料庫管理員也通過dbms進行資料庫的維護工作。

它可使多個應用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問資料庫。

大部分DBMS提供數據定義語言DDL(Data Definition Language)和數據操作語言DML(Data Manipulation Language)。

供用戶定義資料庫的模式結構與許可權約束,實現對數據的追加、刪除等操作。

(2)系統的資料庫設計擴展閱讀:

資料庫設計是建立資料庫及其應用系統的技術,是信息系統開發和建設中的核心技術。

由於資料庫應用系統的復雜性,為了支持相關程序運行,資料庫設計就變得異常復雜,因此最佳設計不可能一蹴而就。

而只能是一種「反復探尋,逐步求精」的過程,也就是規劃和結構化資料庫中的數據對象以及這些數據對象之間關系的過程。

需求分析:

調查和分析用戶的業務活動和數據的使用情況,弄清所用數據的種類、范圍、數量以及它們在業務活動中交流的情況,確定用戶對資料庫系統的使用要求和各種約束條件等,形成用戶需求規約。

需求分析是在用戶調查的基礎上,通過分析,逐步明確用戶對系統的需求,包括數據需求和圍繞這些數據的業務處理需求。

在需求分析中,通過自頂向下,逐步分解的方法分析系統,分析的結果採用數據流程圖(DFD)進行圖形化的描述。

概念設計:

對用戶要求描述的現實世界(可能是一個工廠、一個商場或者一個學校等),通過對其中諸處的分類、聚集和概括,建立抽象的概念數據模型。

這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。

所建立的模型應避開資料庫在計算機上的具體實現細節,用一種抽象的形式表示出來。

以擴充的實體—(E-R模型)聯系模型方法為例,第一步先明確現實世界各部門所含的各種實體及其屬性、實體間的聯系以及對信息的制約條件等。

從而給出各部門內所用信息的局部描述(在資料庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現實世界的概念數據模型。

資料庫管理系統是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,簡稱 DBMS。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。

資料庫管理系統是一個能夠提供數據錄入、修改、查詢的數據操作軟體,具有數據定義、數據操作、數據存儲與管理、數據維護、通信等功能,且能夠允許多用戶使用。

另外,資料庫管理系統的發展與計算機技術發展密切相關。而且近年來,計算機網路逐漸成為人們生活的重要組成部分。

為此,若要進一步完善計算機資料庫管理系統,技術人員就應當不斷創新、改革計算機技術,並不斷拓寬計算機資料庫管理系統的應用范圍,從而真正促進計算機資料庫管理系統技術的革新。

技術特點:

(1)採用復雜的數據模型表示數據結構,數據冗餘小,易擴充,實現了數據共享。

(2)具有較高的數據和程序獨立性,資料庫的獨立性有物理獨立性和邏輯獨立性。

(3)資料庫系統為用戶提供了方便的用戶介面。

(4)資料庫系統提供4個方面的數據控制功能,分別是並發控制、恢復、完整性和安全性。

資料庫中各個應用程序所使用的數據由資料庫系統統一規定,按照一定的數據模型組織和建立,由系統統一管理和集中控制。

(5)增加了系統的靈活性。

參考資料來源:網路-資料庫設計

網路-資料庫管理系統

C. 系統資料庫和模型庫設計

(一)系統資料庫類型

資料庫是整個農用地分等信息系統的基礎,是系統開發設計要考慮的重中之重。在數據形式上,系統資料庫包括兩大塊:一是空間資料庫,二是屬性資料庫。目前的空間數據技術已從以MapInfo為代表的混合型資料庫(空間資料庫+關系型資料庫)發展到以ArcInfo的Coverage為代表的拓展型資料庫。鑒於農用地分等屬性數據量龐大,為減少數據冗餘,提高數據檢索的速度,本研究採用空間數據和屬性數據分開管理的模式,依據關鍵欄位進行綁定,進行科學索引,從而實現空間數據和屬性動態鏈接和高效整合。

1.空間資料庫

江蘇省農用地分等信息系統空間資料庫內容包括以下方面:

(1)土地利用現狀圖層:全省13個省轄市以1996年土地利用現狀圖為基礎,經變更調繪形成以2000年為基準年的土地利用現狀圖,以現行的土地分類標准按八大類分類進行信息提取並分層存儲,系統分別存儲為耕地、林地、水域、未利用地、建設用地等圖層。

(2)全省土壤類型圖層:以土屬為分類單位,比例尺為1:20萬。

(3)1996年和2000年全省行政區劃圖層:在行政區劃中精確到鄉鎮級別,分別提取存儲了市名圖層、縣(區)名圖層、鄉(鎮)名圖層、全省行政界線圖層、市級行政界線圖層、縣(區)級行政界線圖層、鄉(鎮)級行政界線圖層。

(4)評價單元圖層:通過GIS空間疊加功能,利用土地利用現狀圖、行政區劃圖和土壤類型圖疊加產生的評價單元圖層,建立分等評價單元資料庫。

2.屬性資料庫

江蘇省農用地分等信息系統屬性資料庫內容包括以下方面:

(1)土壤屬性數據:以全國第二次土壤普查為基礎,結合全省土壤監測樣點數據,建立土壤質量狀況資料庫,最小單位為土種,包括pH值、有機質含量、表層土壤質地、耕層厚度、障礙層深度、水土侵蝕程度、鹽漬化程度數據。

(2)農田水利環境數據:建立了1996~2000年間各鄉鎮農田水利環境基礎資料庫,包括灌溉保證率、排水條件數據。

(3)土地利用現狀數據:建立了全省13個省轄市的以1996年土地利用現狀圖為基礎,經變更調繪形成的以2000年為基準年的土地利用現狀資料庫,區分耕地中的詳細用地類型差異,標示水田、旱地、荒草地等納入本次評價范圍的用地內容。

(4)全省地形地貌資料庫。

(5)農業區劃數據:輸入了江蘇省農業區劃數據,把江蘇全省劃分為6大區劃,以鄉鎮為最小級別,建立全省鄉鎮的區劃歸屬資料庫。

(6)農業耕作制度數據:建立了全省各市、縣、鄉鎮的農業耕作制度資料庫,包括指定作物水稻和小麥的播種空間分布狀況資料庫。

(7)光溫生產潛力數據:建立了全省各市、縣指定作物水稻和小麥的光溫生產潛力和氣候生產潛力資料庫。

(8)農業投入-產出數據:全省13個省轄市以鄉鎮為單位,建立了1996~2000年農業生產投入-產出資料庫。

(9)作物產量數據:全省13個省轄市以鄉鎮為單位,建立了1996~2000年的指定作物水稻和小麥的產量資料庫。

(10)土地利用詳查分類面積數據:全省13個省轄市以鄉鎮為單位,建立了2000年土地利用詳查分類面積資料庫。

從數據格式上分,資料庫又可分為:①圖件資料庫:指空間數據以及綁定在空間數據上的相關屬性數據,本次江蘇省農用地分等建立了以分等單元為記錄的屬性資料庫,並通過關鍵欄位與空間數據關聯;②分類統計資料庫:包括全省13個省轄市以鄉鎮為單位的1996~2000年指定作物產量統計數據和全省13個省轄市以鄉鎮為單位的2000年土地利用詳查分類面積統計數據。

(二)系統資料庫管理模式

為減少數據存儲冗餘,同時提高索引速度,江蘇省農用地分等信息系統數據文件採用普遍的目錄樹形式進行管理,按省-市-縣行政體系分別存儲相關數據。全省建立13個省轄市分目錄,分目錄下按照各自所含的縣(區)建立子目錄。根據目前行政管理體系現狀,基礎資料大多來源於縣級行政單位,因此採用縣(區)為基本行政單位較為合理,在保證資料來源的同時,也利於資料的分類歸檔存儲。其相對應的空間圖件數據也按精度要求分割到縣級行政單位,既能減少系統調用數據的吞吐量,同時也滿足了系統的精度需求。空間數據、屬性數據、文本數據按照各自所屬的行政級別歸類存儲,同時設立數據文件管理器進行目錄文件的索引管理,見圖3-86。

圖3-86 江蘇省農用地分等信息系統數據文件管理模式圖

(三)系統資料庫結構

資料庫的結構設計決定了數據之間的調用及介面關系,清晰的邏輯調用關系和統一的數據介面格式有利於數據的組織、管理、調用。

1.空間資料庫

江蘇省農用地分等信息系統空間資料庫以矢量圖件的形式存在,以分圖層的方式管理,包括了全省行政界線、土壤類型、按八大類分別提取的土地利用現狀、分等單元等圖層。其中,分等單元圖層作為農用地分等的基礎,考慮到圖層本身信息量大,可能影響到系統運行效率,因此所在圖層的屬性表中只保留了ID欄位,通過ID欄位與外部屬性庫綁定,實現分等單元與外部屬性庫一一對應關系。ID欄位是本圖層的特徵代碼,表徵了單元的唯一性,能體現出單元的圖上位置和行政歸屬。《農用地分等定級規程》(國土資源大調查專用)和《中華人民共和國行政區劃代碼》(GB/T 2260-1999)為本研究分等單元代碼的編碼依據;本研究有1996年和2000年兩套行政區劃工作底圖,為此分等單元特徵代碼共設14位,依次為江蘇省代碼(2位)-市代碼(2位)-2000年縣或區代碼(2位)-2000年鄉鎮代碼(2位)-1996年縣或區代碼(2位)-1996年鄉鎮代碼(2位)-分等單元號(2位)。其中,省、市、縣(區)的行政代碼按國家統一代碼,鄉鎮級代碼在縣(區)范圍內根據劃分分等單元的需要依次編碼;分等單元編號的原則是不破鄉鎮界,即單元號是在同一鄉鎮內部自行編碼。示例:32011501210101,指1996年江蘇(32)南京(01)市江寧縣(21)由於2000年行政調整變更為南京(01)的江寧區(15)。按行政體系分級編碼的優點是有利於空間查詢和國土資源管理部門根據工作需求按行政級別分類匯總統計數據。

2.屬性資料庫

江蘇省農用地分等信息系統採用關系型資料庫來存儲數據,優點是結構清晰明了,數據的更新維護方便,通過索引能優化資料庫,建立快速的查詢瀏覽(表3-26~表3-30)。

表3-26 行政代碼數據結構表

表3-27 土壤屬性數據結構表

表3-28 農田水利設施數據結構表

表3.29 指定農作物投入-產出數據結構表

表3-30 農業耕作制度及農業區劃表

(四)系統模型庫

系統以《農用地分等定級規程》(國土資源大調查專用)中的相關技術方法和計算模型為基礎,在模型庫中預先內置了分等計算模型。模型庫是動態,它允許專家根據情況動態調整計算模型形式及其參數。系統主要模型的數學計算公式如下:

(1)農用地自然質量分值(Clij)計算公式見式(3-11)。

(2)樣點土地利用系數計算公式:

中國耕地質量等級調查與評定(江蘇卷)

式中:

Klj´——樣點的第j種指定作物土地利用系數;

Yj——樣點的第j種指定作物實際單產;

Yj,max——第j種指定作物最大標准糧單產。

(3)等值區土地利用系數計算公式:

中國耕地質量等級調查與評定(江蘇卷)

式中:

Klj——等值區內第j種指定作物土地利用系數;

Klj´——參與計算的同一等值區內合格樣點第j種指定作物土地利用系數;

n——排除異常數據後參與計算的樣點的個數。

(4)樣點土地經濟系數計算公式:

中國耕地質量等級調查與評定(江蘇卷)

式中:

Kcj′——樣點的第j種指定作物土地經濟系數;

Yj——樣點第j種指定作物實際單產;

Cj——樣點第j種指定作物實際成本;

Aj——第j種指定作物最高「產量-成本」指數。

(5)等值區土地經濟系數計算公式:

中國耕地質量等級調查與評定(江蘇卷)

式中:

Kcj——等值區內土地經濟系數;

Kcj´——參與計算的同一等值區內合格樣點第j種指定作物土地經濟系數;

n——排除異常數據後參與計算的樣點的個數。

(6)農用地自然質量等指數(Ri)計算公式見式(3-12)和式(3-13)。

(7)農用地利用等指數(Yi)計算公式見式(3-14)和式(3-15)。

(8)農用地經濟等指數(Gi)計算公式見式(3-16)和式(3-17)。

D. 簡述資料庫應用系統的設計步驟

資料庫設計的基本步驟:

1、系統需求分析與設計。

2、概念結構分析與設計。

3、邏輯結構分析與設計。

4、物理結構分析與設計。

5、系統實施。

6、系統維護。

(4)系統的資料庫設計擴展閱讀:

資料庫設計技巧:

1、原始文件與實體的關系

它可以是一對一,一對多,多對多的關系。一般來說,它們是一對一的關系:一個原始文檔只對應於一個實體。在特殊情況下,它們可以是一對多或多對一關系,即一個原始文檔對應於多個實體,或者多個原始文檔對應於一個實體。

這里的實體可以理解為基本表。在對應關系明確後,對輸入介面的設計非常有利。

2、主鍵和外鍵

一般來說,實體不能既沒有主鍵也沒有外鍵。在E-R圖中,葉中的實體可以定義主鍵或不定義主鍵(因為它沒有子代),但它必須有外鍵(因為它有父項)。

主鍵和外鍵的設計在全局資料庫的設計中起著重要的作用。當全球資料庫的設計完成後,一位美國資料庫設計專家說:「鑰匙無處不在,只有鑰匙。」。這是他資料庫設計的經驗,也體現了他對信息系統核心(數據模型)高度抽象的理念。

因為:主鍵是一個高度抽象的實體。主鍵和外鍵的配對表示實體之間的連接。

3、基本表的屬性

基本表不同於中間表和臨時表,因為它具有以下四個特點:

原子性。基本表中的欄位不可分解。

原始主義。基本表中的記錄是原始數據(基本數據)的記錄。

演繹的。所有輸出數據都可以從基本表和代碼表中的數據導出。

穩定。基本表的結構比較穩定,表中的記錄要長期保存。

在了解基本表的性質之後,在設計資料庫時,可以將基本表與中間表和臨時表區分開來。

E. 簡述資料庫設計過程

資料庫設計過程分為以下六個階段:

1、需求分析階段

准確理解和分析用戶需求(包括數據和處理),它是整個設計過程的基礎,也是最困難、最耗時的一步。

2、概念結構設計階段

是整個資料庫設計的關鍵,通過對用戶需求的集成、歸納和抽象,形成了一個獨立於特定資料庫管理系統的概念模型。

3、邏輯結構設計階段

將概念結構轉換為DBMS支持的數據模型,對其進行優化。

4、資料庫物理設計階段

為邏輯數據模型選擇最適合應用程序環境的物理結構(包括存儲結構和存取方法)。

5、資料庫實現階段

根據邏輯設計和物理設計的結果,使用資料庫管理系統提供的數據語言、工具和主機語言,建立資料庫,編寫調試應用程序,組織數據倉庫,並進行試運行。

6、資料庫運行維護階段

資料庫應用系統經試運行後可投入正式運行,在資料庫系統運行過程中,需要不斷地對其進行評估、調整和修改。

註:在設計過程中,將資料庫的設計與資料庫中數據處理的設計緊密結合起來,在每個階段同時對這兩個方面的要求進行分析、抽象、設計和實現,相互借鑒和補充,從而完善這兩個方面的設計。

(5)系統的資料庫設計擴展閱讀:

資料庫設計技術

1、清晰的用戶需求:作為計算機軟體開發的重要基礎,資料庫設計直接反映了用戶的需求。資料庫必須與用戶緊密溝通,緊密結合用戶需求。在定義了用戶開發需求之後,設計人員還需要反映具體的業務關系和流程。

2、注意數據維護:設計面積過大、數據過於復雜是資料庫設計中常見的問題,設計人員應注意數據維護。

3、增加命名規范化:命名資料庫程序和文件非常重要,不僅要避免重復的名稱,還要確保數據處於平衡狀態。為了降低檢索信息和資源的復雜度和難度,設計人員應了解資料庫程序與文件之間的關系,並靈活使用大小寫字母命名。

4、充分考慮資料庫的優化和效率:考慮到資料庫的優化和效率,設計人員需要對不同表的存儲數據採用不同的設計方法。在設計中,還應該使用最少的表和最弱的關系來實現海量數據的存儲。

5、不斷調整數據之間的關系:不斷調整和簡化數據之間的關系,可以有效減少設計與數據之間的聯系,進而為維護數據之間的平衡和提高數據讀取效率提供保障。

6、合理使用索引:資料庫索引通常分為聚集索引和非聚集索引,這樣可以提高數據搜索的效率。

參考資料來源:網路-資料庫設計

F. 資料庫設計的基本步驟

資料庫設計的基本步驟如下:

1、安裝並打開Mysql WorkBench軟體以後,在軟體的左側邊欄有三個選項,分別是對應「連接資料庫」、「設計資料庫」、「遷移資料庫」的功能。這類選擇第二項,設計資料庫,點擊右邊的「+」號,創建models。

G. 管理信息系統的資料庫設計包括哪些步驟

按照規范的設計方法,一個完整的資料庫設計一般分為以下六個階段:
⑴需求分析:分析用戶的需求,包括數據、功能和性能需求;
⑵概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;
⑶邏輯結構設計:通過將E-R圖轉換成表,實現從E-R模型到關系模型的轉換;
⑷資料庫物理設計:主要是為所設計的資料庫選擇合適的存儲結構和存取路徑;
⑸資料庫的實施:包括編程、測試和試運行;
⑹資料庫運行與維護:系統的運行與資料庫的日常維護。

H. 資料庫設計主要包括哪幾部分,分別包括哪些內容

資料庫設計主要包括需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫的實施和資料庫的運行和維護,具體內容如下:

1、需求分析

內容:調查和分析用戶的業務活動和數據的使用情況,弄清所用數據的種類、范圍、數量以及它們在業務活動中交流的情況,確定用戶對資料庫系統的使用要求和各種約束條件等,形成用戶需求規約。

2、概念設計

內容:對用戶要求描述的現實世界,通過對其中諸處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關系以及各部門對信息儲存、查詢和加工的要求等。

3、邏輯設計

內容:主要工作是將現實世界的概念數據模型設計成資料庫的一種邏輯模式,即適應於某種特定資料庫管理系統所支持的邏輯數據模式。與此同時,可能還需為各種數據處理應用領域產生相應的邏輯子模式。這一步設計的結果就是所謂「邏輯資料庫」。

4、物理設計

內容:根據特定資料庫管理系統所提供的多種存儲結構和存取方法等依賴於具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(包括文件類型、索引結構和數據的存放次序與位邏輯等)、存取方法和存取路徑等。

5、驗證設計

內容:收集數據並具體建立一個資料庫,運行一些典型的應用任務來驗證資料庫設計的正確性和合理性。一般,一個大型資料庫的設計過程往往需要經過多次循環反復。當設計的某步發現問題時,可能就需要返回到前面去進行修改。

6、運行與維護設計

內容:在資料庫系統正式投入運行的過程中,必須不斷地對其進行調整與修改。除了關系型資料庫已有一套較完整的數據範式理論可用來部分地指導資料庫設計之外,尚缺乏一套完善的資料庫設計理論、方法和工具,以實現資料庫設計的自動化或互動式的半自動化設計。

(8)系統的資料庫設計擴展閱讀:

重要性

1、有利於資源節約

對計算機軟體資料庫設計加以重視不僅可減少軟體後期的維修,達到節約人力與物力的目的,同時還有利於軟體功能的高效發揮。

2、有利於軟體運行速度的提高

高水平的資料庫設計可滿足不同計算機軟體系統對於運行速度的需求,而且還可充分發揮並實現系統功能。計算機軟體性能提高後,系統發出的運行指令在為用戶提供信息時也將更加快速有效,軟體運行速度自然得以提高。

3、有利於軟體故障的減少

加強資料庫設計可有效減少軟體故障的發生幾率,推動計算機軟體功能的實現。

I. 資料庫如何設計

資料庫設計的基本步驟

按照規范設計的方法,考慮資料庫及其應用系統開發全過程,將資料庫設計分為以下6個階段

1.需求分析

2.概念結構設計

3.邏輯結構設計

4.物理結構設計

5.資料庫實施

6.資料庫的運行和維護


資料庫設計通常分為6個階段1分析用戶的需求,包括數據、功能和性能需求;2概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;3邏輯結構設計:通過將轉換成表,實現從E-R模型到關系模型的轉換;4:主要是為所設計的資料庫選擇合適的和存取路徑;5資料庫的實施:包括編程、測試和試運行;6資料庫運行與維護:系統的運行與資料庫的日常維護。),主要討論其中的第3個階段,即邏輯設計。



在資料庫設計過程中,需求分析和概念設計可以獨立於任何資料庫管理系統進行,邏輯設計和物理設計與選用的DAMS密切相關。

1.需求分析階段(常用自頂向下)

進行資料庫設計首先必須准確了解和分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,也是最困難,最耗時的一步。需求分析是否做得充分和准確,決定了在其上構建資料庫大廈的速度與質量。需求分析做的不好,會導致整個資料庫設計返工重做。

需求分析的任務,是通過詳細調查現實世界要處理的對象,充分了解原系統工作概況,明確用戶的各種需求,然後在此基礎上確定新的系統功能,新系統還得充分考慮今後可能的擴充與改變,不僅僅能夠按當前應用需求來設計。

調查的重點是,數據與處理。達到信息要求,處理要求,安全性和完整性要求。

分析方法常用SA(Structured Analysis) 結構化分析方法,SA方法從最上層的系統組織結構入手,採用自頂向下,逐層分解的方式分析系統。

數據流圖表達了數據和處理過程的關系,在SA方法中,處理過程的處理邏輯常常藉助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的數據也逐級分解,形成若干層次的數據流圖。系統中的數據則藉助數據字典(data dictionary,DD)來描述。數據字典是系統中各類數據描述的集合,數據字典通常包括數據項,數據結構,數據流,數據存儲,和處理過程5個階段。

2.概念結構設計階段(常用自底向上)

概念結構設計是整個資料庫設計的關鍵,它通過對用戶需求進行綜合,歸納與抽象,形成了一個獨立於具體DBMS的概念模型。

設計概念結構通常有四類方法:

  • 自頂向下。即首先定義全局概念結構的框架,再逐步細化。

  • 自底向上。即首先定義各局部應用的概念結構,然後再將他們集成起來,得到全局概念結構。

  • 逐步擴張。首先定義最重要的核心概念結構,然後向外擴張,以滾雪球的方式逐步生成其他的概念結構,直至總體概念結構。

  • 混合策略。即自頂向下和自底向上相結合。

  • 3.邏輯結構設計階段(E-R圖)

    邏輯結構設計是將概念結構轉換為某個DBMS所支持的數據模型,並將進行優化。

    在這階段,E-R圖顯得異常重要。大家要學會各個實體定義的屬性來畫出總體的E-R圖。

    各分E-R圖之間的沖突主要有三類:屬性沖突,命名沖突,和結構沖突。

    E-R圖向關系模型的轉換,要解決的問題是如何將實體性和實體間的聯系轉換為關系模式,如何確定這些關系模式的屬性和碼。

    4.物理設計階段

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

    首先要對運行的事務詳細分析,獲得選擇物理資料庫設計所需要的參數,其次,要充分了解所用的RDBMS的內部特徵,特別是系統提供的存取方法和存儲結構。

    常用的存取方法有三類:1.索引方法,目前主要是B+樹索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法。

    5.資料庫實施階段

    資料庫實施階段,設計人員運營DBMS提供的資料庫語言(如sql)及其宿主語言,根據邏輯設計和物理設計的結果建立資料庫,編制和調試應用程序,組織數據入庫,並進行試運行。

    6.資料庫運行和維護階段

    資料庫應用系統經過試運行後,即可投入正式運行,在資料庫系統運行過程中必須不斷地對其進行評價,調整,修改。

    資料庫設計5步驟
    Five Steps to design the Database

    1.確定entities及relationships

    a)明確宏觀行為。資料庫是用來做什麼的?比如,管理雇員的信息。

    b)確定entities。對於一系列的行為,確定所管理信息所涉及到的主題范圍。這將變成table。比如,僱用員工,指定具體部門,確定技能等級。

    c)確定relationships。分析行為,確定tables之間有何種關系。比如,部門與雇員之間存在一種關系。給這種關系命名。

    d)細化行為。從宏觀行為開始,現在仔細檢查這些行為,看有哪些行為能轉為微觀行為。比如,管理雇員的信息可細化為:

    · 增加新員工

    · 修改存在員工信息

    · 刪除調走的員工

    e)確定業務規則。分析業務規則,確定你要採取哪種。比如,可能有這樣一種規則,一個部門有且只能有一個部門領導。這些規則將被設計到資料庫的結構中。

    ====================================================================
    範例:
    ACME是一個小公司,在5個地方都設有辦事處。當前,有75名員工。公司准備快速擴大規模,劃分了9個部門,每個部門都有其領導。
    為有助於尋求新的員工,人事部門規劃了68種技能,為將來人事管理作好准備。員工被招進時,每一種技能的專業等級都被確定。


    定義宏觀行為
    一些ACME公司的宏觀行為包括:
    ● 招聘員工
    ● 解僱員工
    ● 管理員工個人信息
    ● 管理公司所需的技能信息
    ● 管理哪位員工有哪些技能
    ● 管理部門信息
    ● 管理辦事處信息
    確定entities及relationships
    我們可以確定要存放信息的主題領域(表)及其關系,並創建一個基於宏觀行為及描述的圖表。
    我們用方框來代表table,用菱形代表relationship。我們可以確定哪些relationship是一對多,一對一,及多對多。
    這是一個E-R草圖,以後會細化。


    細化宏觀行為
    以下微觀行為基於上面宏觀行為而形成:
    ● 增加或刪除一個員工
    ● 增加或刪除一個辦事處
    ● 列出一個部門中的所有員工
    ● 增加一項技能
    ● 增加一個員工的一項技能
    ● 確定一個員工的技能
    ● 確定一個員工每項技能的等級
    ● 確定所有擁有相同等級的某項技能的員工
    ● 修改員工的技能等級

    這些微觀行為可用來確定需要哪些table或relationship。

    確定業務規則
    業務規則常用於確定一對多,一對一,及多對多關系。
    相關的業務規則可能有:
    ● 現在有5個辦事處;最多允許擴展到10個。
    ● 員工可以改變部門或辦事處
    ● 每個部門有一個部門領導
    ● 每個辦事處至多有3個電話號碼
    ● 每個電話號碼有一個或多個擴展
    ● 員工被招進時,每一種技能的專業等級都被確定。
    ● 每位員工擁有3到20個技能
    ● 某位員工可能被安排在一個辦事處,也可能不安排辦事處。

    2.確定所需數據

    要確定所需數據:

    a)確定支持數據

    b)列出所要跟蹤的所有數據。描述table(主題)的數據回答這些問題:誰,什麼,哪裡,何時,以及為什麼

    c)為每個table建立數據

    d)列出每個table目前看起來合適的可用數據

    e)為每個relationship設置數據

    f)如果有,為每個relationship列出適用的數據

    確定支持數據

    你所確定的支持數據將會成為table中的欄位名。比如,下列數據將適用於表Employee,表Skill,表Expert In。

    Employee

  • Skill

  • Expert In

  • ID

  • ID

  • Level

  • Last Name

  • Name

  • Date acquired

  • First Name

  • Description

  • Department

  • Office

  • Address


  • 如果將這些數據畫成圖表,就像:


  • 需要注意:

  • ● 在確定支持數據時,請一定要參考你之前所確定的宏觀行為,以清楚如何利用這些數據。

  • ● 比如,如果你知道你需要所有員工的按姓氏排序的列表,確保你將支持數據分解為名字與姓氏,這比簡單地提供一個名字會更好。

  • ● 你所選擇的名稱最好保持一致性。這將更易於維護資料庫,也更易於閱讀所輸出的報表。

  • ● 比如,如果你在某些地方用了一個縮寫名稱Emp_status,你就不應該在另外一個地方使用全名(Empolyee_ID)。相反,這些名稱應當是Emp_status及Emp_id。

  • ● 數據是否與正確的table相對應無關緊要,你可以根據自己的喜好來定。在下節中,你會通過測試對此作出判斷。
  • 3.標准化數據

    標准化是你用以消除數據冗餘及確保數據與正確的table或relationship相關聯的一系列測試。共有5個測試。本節中,我們將討論經常使用的3個。
    關於標准化測試的更多信息,請參考有關資料庫設計的書籍。

    標准化格式
    標准化格式是標准化數據的常用測試方式。你的數據通過第一遍測試後,就被認為是達到第一標准化格式;通過第二遍測試,達到第二標准化格式;通過第三遍測試,達到第三標准化格式。

    如何標准格式:
    1. 列出數據
    2. 為每個表確定至少一個鍵。每個表必須有一個主鍵。
    3. 確定relationships的鍵。relationships的鍵是連接兩個表的鍵。
    4. 檢查支持數據列表中的計算數據。計算數據通常不保存在資料庫中。
    5. 將數據放在第一遍的標准化格式中:
    6. 從tables及relationships除去重復的數據。
    7. 以你所除去數據創建一個或更多的tables及relationships。
    8. 將數據放在第二遍的標准化格式中:
    9. 用多於一個以上的鍵確定tables及relationships。
    10. 除去只依賴於鍵一部分的數據。
    11. 以你所除去數據創建一個或更多的tables及relationships。
    12. 將數據放在第三遍的標准化格式中:
    13. 除去那些依賴於tables或relationships中其他數據,並且不是鍵的數據。
    14. 以你所除去數據創建一個或更多的tables及relationships。

    數據與鍵
    在你開始標准化(測試數據)前,簡單地列出數據,並為每張表確定一個唯一的主鍵。這個鍵可以由一個欄位或幾個欄位(連鎖鍵)組成。

    主鍵是一張表中唯一區分各行的一組欄位。Employee表的主鍵是Employee ID欄位。Works In relationship中的主鍵包括Office Code及Employee ID欄位。給資料庫中每一relationship給出一個鍵,從其所連接的每一個table中抽取其鍵產生。

    RelationShip

  • Key

  • Office

  • *Office code

  • Office address

  • Phone number

  • Works in

  • *Office code

  • *Employee ID

  • Department

  • *Department ID

  • Department name

  • Heads

  • *Department ID

  • *Employee ID

  • Assoc with

  • *Department ID

  • *EmployeeID

  • Skill

  • *Skill ID

  • Skill name

  • Skill description

  • Expert In

  • *Skill ID

  • *Employee ID

  • Skill level

  • Date acquired

  • Employee

  • *Employee ID

  • Last Name

  • First Name

  • Social security number

  • Employee street

  • Employee city

  • Employee state

  • Employee phone

  • Date of birth


  • 將數據放在第一遍的標准化格式中
    ● 除去重復的組
    ● 要測試第一遍標准化格式,除去重復的組,並將它們放進他們各自的一張表中。
    ● 在下面的例子中,Phone Number可以重復。(一個工作人員可以有多於一個的電話號碼。)將重復的組除去,創建一個名為Telephone的新表。在Telephone與Office創建一個名為Associated With的relationship。

    將數據放在第二遍的標准化格式中
    ● 除去那些不依賴於整個鍵的數據。
    ● 只看那些有一個以上鍵的tables及relationships。要測試第二遍標准化格式,除去那些不依賴於整個鍵的任何數據(組成鍵的所有欄位)。
    ● 在此例中,原Employee表有一個由兩個欄位組成的鍵。一些數據不依賴於整個鍵;例如,department name只依賴於其中一個鍵(Department ID)。因此,Department ID,其他Employee數據並不依賴於它,應移至一個名為Department的新表中,並為Employee及Department建立一個名為Assigned To的relationship。


    將數據放在第三遍的標准化格式中
    ● 除去那些不直接依賴於鍵的數據。
    ● 要測試第三遍標准化格式,除去那些不是直接依賴於鍵,而是依賴於其他數據的數據。
    ● 在此例中,原Employee表有依賴於其鍵(Employee ID)的數據。然而,office location及office phone依賴於其他欄位,即Office Code。它們不直接依賴於Employee ID鍵。將這組數據,包括Office Code,移至一個名為Office的新表中,並為Employee及Office建立一個名為Works In的relationship。

    4.考量關系

    當你完成標准化進程後,你的設計已經差不多完成了。你所需要做的,就是考量關系。

    考量帶有數據的關系
    你的一些relationship可能集含有數據。這經常發生在多對多的關系中。

    遇到這種情況,將relationship轉化為一個table。relationship的鍵依舊成為table中的鍵。

    考量沒有數據的關系
    要實現沒有數據的關系,你需要定義外部鍵。外部鍵是含有另外一個表中主鍵的一個或多個欄位。外部鍵使你能同時連接多表數據。

    有一些基本原則能幫助你決定將這些鍵放在哪裡:

    一對多在一對多關系中,「一」中的主鍵放在「多」中。此例中,外部鍵放在Employee表中。

    一對一在一對一關系中,外部鍵可以放進任一表中。如果必須要放在某一邊,而不能放在另一邊,應該放在必須的一邊。此例中,外部鍵(Head ID)在Department表中,因為這是必需的。

    多對多在多對多關系中,用兩個外部鍵來創建一個新表。已存的舊表通過這個新表來發生聯系。

    5.檢驗設計

    在你完成設計之前,你需要確保它滿足你的需要。檢查你在一開始時所定義的行為,確認你可以獲取行為所需要的所有數據:
    ● 你能找到一個路徑來等到你所需要的所有信息嗎?
    ● 設計是否滿足了你的需要?
    ● 所有需要的數據都可用嗎?
    如果你對以上的問題都回答是,你已經差不多完成設計了。

    最終設計
    最終設計看起來就像這樣:

    設計資料庫的表屬性
    資料庫設計需要確定有什麼表,每張表有什麼欄位。此節討論如何指定各欄位的屬性。

    對於每一欄位,你必須決定欄位名,數據類型及大小,是否允許NULL值,以及你是否希望資料庫限制欄位中所允許的值。

    選擇欄位名
    欄位名可以是字母、數字或符號的任意組合。然而,如果欄位名包括了字母、數字或下劃線、或並不以字母打頭,或者它是個關鍵字(詳見關鍵字表),那麼當使用欄位名稱時,必須用雙引號括起來。

    為欄位選擇數據類型
    SQL Anywhere支持的數據類型包括:
    整數(int, integer, smallint)
    小數(decimal, numeric)
    浮點數(float, double)
    字元型(char, varchar, long varchar)
    二進制數據類型(binary, long binary)
    日期/時間類型(date, time, timestamp)
    用戶自定義類型

    關於數據類型的內容,請參見「SQL Anywhere數據類型」一節。欄位的數據類型影響欄位的最大尺寸。例如,如果你指定SMALLINT,此欄位可以容納32,767的整數。INTEGER可以容納2,147,483,647的整數。對CHAR來講,欄位的最大值必須指定。

    長二進制的數據類型可用來在資料庫中保存例如圖像(如點陣圖)或者文字編輯文檔。這些類型的信息通常被稱為二進制大型對象,或者BLOBS。

    關於每一數據類型的完整描述,見「SQL Anywhere數據類型」。

J. 資料庫的系統設計包括哪些內容

資料庫設計包括六個主要步驟: 1、需求分析:了解用戶的數據需求、處理需求、安全性及完整性要求; 2、概念設計:通過數據抽象,設計系統概念模型,一般為E-R模型; 3、邏輯結構設計:設計系統的模式和外模式,對於關系模型主要是基本表和視圖; 4、物理結構設計:設計數據的存儲結構和存取方法,如索引的設計; 5、系統實施:組織數據入庫、編制應用程序、試運行; 6、運行維護:系統投入運行,長期的維護工作。

熱點內容
終端配置賬號該如何改密碼 發布:2024-05-05 11:24:37 瀏覽:823
成都存儲研發招聘 發布:2024-05-05 11:24:29 瀏覽:283
電腦伺服器名稱怎麼查找 發布:2024-05-05 10:49:37 瀏覽:470
電腦連到代理伺服器 發布:2024-05-05 10:40:02 瀏覽:249
華為安卓手機如何投屏到雷克薩斯 發布:2024-05-05 10:37:50 瀏覽:210
微博上傳原圖 發布:2024-05-05 10:20:05 瀏覽:749
伺服器換電腦需要什麼東西 發布:2024-05-05 09:52:28 瀏覽:754
老算盤演算法 發布:2024-05-05 09:43:10 瀏覽:841
ps存儲顯示不含通道 發布:2024-05-05 09:32:35 瀏覽:103
如何用安卓做一個識物界面表 發布:2024-05-05 09:29:28 瀏覽:99