如何設計資料庫 1 ?

2021-04-21 22:17:13 字數 2021 閱讀 5557

為什麼需要設計資料庫

這裡我們思考兩個問題:

修建茅屋需要設計嗎?修建大廈需要設計嗎?

結論是:當資料庫比較複雜(如資料量大,表較多,業務關係複雜)時,我們需要先設計資料庫;

因為,良好的資料庫設計能夠:

q節省資料的儲存空間

q能夠保證資料的完整性

q方便進行資料庫應用系統的開發

糟糕的資料庫設計:

q資料冗餘、儲存空間浪費

q記憶體空間浪費

q資料更新和插入的異常

軟體專案開發周期

我們再來看看軟體專案的開發周期:

•需求分析階段:分析客戶的業務和資料處理需求

;

•概要設計階段:設計資料庫的

e-r模型圖,確認需求資訊的正確和完整

;

•詳細設計階段:將

e-r圖轉換為多張表,進行邏輯設計,並應用資料庫設計的三大正規化進行審核

;

•**編寫階段:選擇具體資料庫進行物理實現,並編寫**實現前端應用

;

•軟體測試階段:

……

•安裝部署:

……

設計資料庫

在需求分析階段,設計資料庫的一般步驟為:

–收集資訊

–標識物件

–標識每個物件的屬性

–標識物件之間的關係

•在概要設計階段和詳細設計階段,設計資料庫的步驟為:–繪製

e-r圖–將

e-r圖轉換為**

–應用三大正規化規範化**

下面我們以乙個

bbs簡易論壇的資料庫設計為例來看看設計資料庫的步驟:

•收集資訊:

與該系統有關人員進行交流、坐談,充分理解資料庫需要完成的任務

bbs論壇的基本功能:ll

使用者發貼,後台資料庫需要存放貼子相關資訊,如貼子內容、標題等;

l論壇版塊管理:後台資料庫需要存放各個版塊資訊,如版主、版塊名稱、貼子數等;

•標識物件(實體-

entity)

標識資料庫要管理的關鍵物件或實體

實體一般是名詞:

l使用者:論壇普通使用者、各版塊的版主。

l使用者發的主貼

l使用者發的跟貼(回貼)

l版塊:論壇的各個版塊資訊

•標識每個實體的屬性(

attribute)

•標識物件之間的關係(

relationship)

l跟貼和主貼有主從關係:我們需要在跟貼物件中表明它是誰的跟貼;

l版塊和使用者有關係:從使用者物件中可以根據版塊物件查出對應的版主使用者的情況;

l主貼和版塊有主從關係:需要表明發貼是屬於哪個版塊的;

l跟貼和版塊有主從關係:需要表明跟貼是屬於哪個版塊的;•繪製

e-r圖

•將e-r

圖轉化為** •

將各實體轉換為對應的表,將各屬性轉換為各表對應的列

•標識每個表的主鍵列,需要注意的是:沒有主鍵的表新增

id編號列,它沒有實際含義,用於做主鍵或外來鍵,例如使用者表中的

「uid」

列,版塊表中新增

「sid」

列,發貼表和跟貼表中的

「tid」列•

在表之間建立主外來鍵,體現實體之間的對映關係

這裡我們繪製

er圖可以使用微軟的

word

或visio

以及sybase

公司的powerdesigner

,它主要用於和客戶溝通交流意見,並反覆修改,直到客戶確認。客戶確認後,再將

e-r圖轉換為表。上面我們已經做好了這個工作。那接下來就是最後一步:應用三大正規化對設計的多張表進行審核並規範化表的結構。

如何設計資料庫

表與表之間的關係 例如下圖 假設使用者下單需要哪些表?每張表設計什麼字段,要用什麼型別 例如 建立個user表 create table t user id int 11 not null auto increment comment 使用者表id username varchar 50 not n...

如何設計資料庫 2

資料規範化 僅有好的rdbms並不足以避免資料冗餘,必須在資料庫的設計中建立好的表結構。表設計後,很可能結構不合理,出現資料重複儲存,簡稱資料的冗餘,這對資料的增刪改查帶來很多後患,所以我們需要審核是否合理,就像施工圖設計後,還需要其他機構進行審核圖紙是否設計合理一樣。如何審核呢?需要一些有關資料庫...

如何設計資料庫表?

背景 最近在準備軟體設計師的資格考試。首先表達一下我為什麼會去考這個證,主要有以下兩點 薪資待遇,求職。雖然很多人說該證書沒有用。但是有一些大廠會直接給你加薪的。我記得hk中級資格證書,每個月1000的補貼。高階資格證書是1500的補貼。並且在簡歷中,你有這個證書,hr對你的認可也會深刻。在福利面前...