關聯式資料庫一般設計流程

2021-06-01 09:20:36 字數 1725 閱讀 3453

做程式設計師的或多或少都設計過一些資料庫。我想,在沒有很好的理論基礎下,設計資料庫時,最多遇到的問題恐怕是:是這樣好呢,還是那樣好。原因是資料庫設計本身是一件靈活多變的事,雖說各種不同的設計條條大路通羅馬。但資料庫設計又不僅僅如此,我相信,同一需求前提下,兩個優秀的設計師設計出來的資料庫應該是非常相似,甚至幾乎一樣的。那麼,今天先總體上來談談資料庫的一般設計過程。

需求分析除外,資料庫的實現分為以下幾個主要過程:

概念結構設計,該階段的主要產物是實體聯絡圖,簡稱為e-r圖;

關係模型的設計跟優化,該階段的主要目的是把概念模型轉化為關係模型,並主要從理論上來優化資料庫;這部分將是體現乙個資料庫設計師能力的主要依據之一。

物理模型設計,該階段主要內容是把關係模型真正用到具體的dbms系統上去,如:mysql、oracle,再跟據需求的特點,及dbms本身的特點,調整設計。

訪問介面設計,包括:使用者子模式設計,主要內容為設計檢視,儲存過程設計(理論上,這部份內容其實不用單獨組成乙個階段;但這部分內容也有相當的重要性,所以這裡,把它也單獨提取出來)。

第一點、概念結構設計,也就是e-r圖的設計。這部分沒多少難點,我在這裡只重新強調下幾個概念:

第二點、關係模型的設計、優化。

前一點的重點主要是在對關係模型概念的理解,。前一點往往被人忽略,最簡單的乙個測試方法是:在我眼中,關係就是指聯絡麼?答案是否定的。關於關係嚴格的定義我會在《第二篇:嚴格的概念認識——關係、關係模型》裡說明。在這個階段一定要時刻考虛到資料庫的完整性,包括:實體完整性、參照完整性及使用者定義的完整性。前兩個完整性限定一般由dbms本身來保證,而使用者完整性是我們設計資料模型時必須仔細考慮的。這是一件比較煩鎖的事,但對於以後在資料庫上開發上層應用是非常有保障的。下面稍微詳細地描述下各種完整性約束具體指什麼:

另外一塊是優化,其主要依據是函式依賴理論,這一塊優化不包含針對具體dbms的優化,及物理模型的優化。這一部分引入了多層正規化,包括:1nf~5nf,以及間於3nf及4nf之間的bc`nf。個人覺得,如果不是非常專業的資料庫設計師的話,以bc`nf正規化來做來自己設計的參考標準是比較合適的,因為要證明符合這個正規化非常容易:

bcnf定義:關係模式r符合1nf,若x->y且y不屬於x時x必含有碼,則r符合bcnf

附1nf定義:每乙個分量必須是不可分的資料項。其中,分量你可以看做表中乙個屬性的具體的值,不可分的意思其實就是能實實在在用明確的數字表示出來,需不是「利潤率=x/x」這種沒法用資料庫直接儲存的抽象公式。

r:關係模式的名稱

u:屬性集,相當於列名

f:屬性集上的函式依賴,可以把它理解的一套「哪些屬性決定了哪些屬性」的集合

第三點、物理模型的設計、優化

這一點的主要工作包括:跟據訪問及資料量的需求選擇合適的dbms產品、建立索引、選擇合適的分布式方案等。所有這些內容,具體的dbms提供商都會有詳細的文件提供,這裡不多累述。

第四點、檢視、儲存過程的設計。

先講儲存過程的設計,這部分主要需要熟悉sql語言的操作,包括:資料查詢、資料更新的語法,以及如何優化sql語句,還有就是dbms本身對sql語句的優化策略。所有這些都是扎扎實實下硬工夫的地方。檢視部分關關鍵要知道檢視是個虛表,在做更新操作時要非常小心。

資料庫設計的一般步驟

經過幾天給韶關某個高校進行資料庫設計的實訓,對資料庫設計的過程有了更加深刻的理解。2 定義實體 了解系統功能需求之後,設計人員通過分析系統功能定義出系統有哪些實體。比如 到酒店開房。這裡應該至少包含兩個實體 客人和房間。在定義出實體以後,我們還要定義實體的屬性。例如 客人 姓名 性別 手機號碼 證件...

關聯式資料庫設計正規化

簡介 設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴德斯科正規化 bcnf 第四正規化 4nf 和第...

關聯式資料庫與非關聯式資料庫

關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個...