資料庫設計理論

2021-09-22 08:41:14 字數 2929 閱讀 2026

資料庫設計理論

一、           資料庫設計的幾個原則

乙個好的資料庫產品不等於就是乙個好的應用系統,如果不能設計乙個合理的資料庫模型,不僅會增加客戶端與伺服器端的程式設計和維護難度,而且會影響系統實際執行的效能。因此,要想開發出一款理想的資料庫產品應遵循以下設計準則:

(1)       命名規範化

不同的資料庫產品對物件的命名有不同的要求。資料庫中的各種物件的命名以及後台程式的**編寫應採用大小寫敏感的字母形式,各種物件命名長度不要超過30個字元,這樣便於應用系統適應不同的資料庫。

(2)       慎用游標(cursor)

對多表和大表定義的游標(大的資料集合)而言,使用游標逐行遍歷資料很容易使程式進入漫長的等待甚至宕機,因此在使用游標時,可以考慮建立乙個臨時表,將符合條件的資料行轉入臨時表中,再對臨時表定義游標進行操作,這時效能會得到明顯提高。

(3)       索引(index)的使用

索引一般用於快速訪問表中的資料。大型資料庫有兩種索引,即簇索引和非簇索引。新增任何一種索引均能提高按索引列查詢的速度,但會降低插入、更新、刪除操作的效能,尤其是當填充因子(fill factor)較大時。所以,如果要對索引較多的表進行頻繁的插入、更新、刪除操作,建立表和索引時應該設定較小的填充因子,以便在各項資料頁中留下較多的自由空間,減少頁分割及重新重新組織的工作,這樣才能夠提高效能。

(4)       資料的一致性和完整性

為了保證資料庫的一致性和完整性,設計人員往往會設計過多的表間關聯,盡可能地降低資料的冗餘。但是,表間關聯是一種強制性措施,建立後,對父表和子表的插入、更新、刪除操作均要占用系統的開銷。此外,最好不要用identify屬性字段作為主鍵與子表關聯。如果資料冗餘低,資料的完整性容易得到保證,但增加了表間連線查詢的操作,因此,為了提高系統的響應時間,合理的資料冗餘也是必要的。

(5)       事務的使用

事務是必須一次性完成的一組操作。雖然這些操作是單個的操作,但資料庫系統能夠保證這組操作要麼全部都完成,要麼一點都不做。正是大型資料庫的這一特性,使得資料的完整性得到了極大的保證。

(6)       資料庫效能調整

在計算機硬體配置和網路設計確定的情況下,影響到應用系統效能的因素主要是資料庫效能和客戶端程式設計。大多數資料庫設計員採用兩步法進行資料庫設計:首先進行邏輯設計,而後進行物理設計。資料庫邏輯設計去除了所有冗餘資料,提高了資料吞吐速度,保證了資料的完整性,清楚地表達資料元素之間的關係。而對於多表之間的關聯查詢(尤其是大資料表)時,其效能將會降低,同時也提高了客戶端程式的程式設計難度,因此,物理設計需折中考慮,根據業務規則,確定關聯表的資料量大小、資料項的訪問頻度,對此類資料表頻繁的關聯查詢應適當提高資料冗餘設計。

(7)       資料型別的選擇

資料型別的合理選擇對於資料庫的效能和操作具有很大的影響。

?         identify欄位不要作為表的主鍵與其他表關聯,這將會影響到該錶的資料遷移。

?         text和image欄位屬指標型資料,主要用來存放二進位制大型物件(blob)。這類資料的操作相比其他資料型別較慢,因此要避開使用。

?         日期型字段的優點是有眾多的日期函式支援,因此,在日期的大小比較、加減操作上非常簡單。但是,按照日期作為條件的查詢操作也要用函式,相比其他資料型別在速度上就慢許多。這是因為用函式作為查詢的條件時,伺服器無法用先進的效能策略來優化查詢,只能進行表掃瞄遍歷每行。

二、           資料庫設計的基本步驟

對於資料庫設計來說,比較統一的看法是分為5個步驟:需求分析,概念結構設計,邏輯結構設計,物理設計,資料實施和維護。

1.     需求分析

要設計乙個良好的資料庫系統,首先要明確應用環境對系統的要求。因此,對應用環境的需求收集和分析就是資料庫設計的第一步。需求階段收集到的基礎資料和一組資料流程圖是進行下一步概念設計的基礎。需求分析包括以下幾個方面:

(1)       收集資料

收集資料是資料庫設計人員和使用者共同完成的任務。強調各級使用者的參與是資料庫應用系統設計的特點之一。

(2)       分析整理

在大量資料收集完成以後,就要對資料進行分析和整理。分析的過程是對所收集到的資料進行抽象的過程。

(3)       資料流程圖

在系統分析中通常採用資料流程圖(data flow diagram)來描述系統的資料流向和對資料的處理功能。

(4)       資料字典(data dictionary)

除了一套資料流程圖外,還要從原始的資料資料中分析整理出下述資料資訊:資料元素的名稱、同義詞、性質、取值範圍、提供者、使用者、控制許可權、保密要求、使用頻率、資料量、資料之間聯絡的語義說明、各個部門對資料的要求以及資料處理要求。

(5)       使用者確認

資料流程圖集和資料字典的內容必須返回給使用者,並且用非專業術語與使用者交流。

需求分析階段的成果要形成文件資料,至少包括各項業務的資料流程圖及有關說明和對各類資料描述的集合,即資料字典。

2.     概念結構設計

將需求分析得到的使用者需求抽象為資訊結構設計及概念模型的過程就是概念結構設計,它是整個資料庫設計的關鍵。概念建模的過程包括定義實體集、定義聯絡和定義屬性。當這3種成分確定之後,就可以用e-r方法來進行資料庫的概念設計。在設計完全局的e-r圖之後,要盡量消除冗餘。

3.     邏輯結構設計

資料庫邏輯設計的任務是將概念結構設計階段設計好的基本e-r圖,轉換成特定dbms所支援的資料模型的過程。這樣開始進入「實現設計」,需要考慮具體dbms的效能,具體的資料模型特點。邏輯設計可分為e-r圖向關係模型的轉化、資料模型的優化和設計使用者子模式3個過程。

4.     物理設計

對於給定的邏輯資料模型選取乙個最適合應用環境的物理結構的過程,稱為資料庫物理設計。資料庫的物理設計通常分為兩步:確定資料庫的物理結構,在關聯式資料庫中主要指訪問方法與儲存結構:對物理結構進行評價,評價的重點的時間和空間效率。

5.     資料庫的實施和維護

資料庫的實施和維護過程可分資料的載入和應用程式的除錯、資料庫的試執行和資料庫的維護與執行。

資料庫設計理論

資料庫規範化理論正是用來改造關係模式,通過分解關係模式來消除其中不合適的資料依賴,以解決插入異常 刪除異常 更新異常和資料冗餘問題。在討論關聯式資料庫設計之前我們需要了解一些基本的術語和概念 由五部分組成,即它是乙個五元組 r u,d,dom,f r 關係名 u 組成該關係的屬性名集合 d 屬性組u...

關聯式資料庫設計理論

關聯式資料庫的模式設計 本章的理論性較強,學習時有無從下手的感覺,在學習時應多加思考,從概念出發去理解理論,前後的理論有較強的聯絡,因此要逐個理解,但對於理論的證明等內容則不必深究,本章重點是函式依賴,無損聯接 保持依賴和正規化的概念。一 關係模式的設計問題 識記 關聯式資料庫 是以關係模型為基礎的...

資料庫設計理論之軟體

資料庫的設計在系統設計當中是乙個非常重要的環節,目前很多開發商忽略了它的重要性,把資料庫設計基本等同於建立業務所需要的所有物件,這樣系統就存在很多隱患。對於資料庫的設計,除了一些必要的物件建立之外,還有更多需要考慮在系統執行的整個生命週期中,按照實際的情況及以後可能發生的變化做一些前瞻性的設計,以滿...