MySQL資料庫設計步驟

2021-10-23 18:17:41 字數 2124 閱讀 4032

一,需求分析(可拓展性設計)包括:資料儲存需求,資料處理需求,安全性設計,完整性設計,資料生命週期等等...

二,資料庫邏輯設計

1,資料庫設計正規化(解決資料冗餘和資料維護異常問題)

第一正規化:所有框架都只具有單一屬性,每一列都不可拆分

單一屬性的列是由基本的資料型別所構成的

設計出來的表都是簡單的二維表

第二正規化:要求乙個表中只具有乙個業務主鍵

第三正規化:每乙個非主屬性既不部分依賴於也不傳遞於業務主鍵,在第二正規化的基礎上消除了非主屬性對主屬性的依賴傳遞

2,反正規化化設計:首先關聯的表越多效能越差,其次由於正規化化設計避免了資料冗餘,考慮一種情況:如果存在使用者下單,那麼商品資訊與使用者資訊都要關聯去查的話,如果使用者資訊改變了,那麼訂單資訊也就改變了。所以反正規化化設計允許存在少量的資料冗餘,空間換時間。

3,正規化化設計和反正規化化設計優缺點

正規化化設計優點:1,減少資料冗餘,資料表更新快體積小 2,正規化化更新操作比反正規化化更新快 3,資料庫表通常比反正規化化小

正規化化設計缺點:1,對於查詢需要對多個表進行關聯 2,更難進行索引優化

反正規化化設計優點:1,減少表關聯 2,更好的進行索引優化

三,資料庫物理設計

1.資料庫物理設計涉及的內容:1,定義資料庫,表及字段的命名規範 2,選擇合適的儲存引擎 3,為表中的字段選擇合適的資料型別 4,建立資料庫結構

定義資料庫,表及字段的命名規範:1,資料庫表及字段的命名要遵守可讀性原則,表意性原則,長名原則

選擇合適的儲存引擎:

2.資料型別的選擇

如何選擇正確的整數型別:

如何正確的選擇實數型別:

如何選擇varchar和char型別

varchar型別的儲存特點:

varchar用於儲存變長字串,只占用必要的儲存空間。列的最大長度小於255則只占用乙個額外位元組用於記錄字串長度,列的最大長度大於255則要占用兩個額外位元組用於記錄字串長度。

varchar長度選擇問題:

使用最小的符合需求的長度(需要根據業務需求來定),varchar(5)和varchar(200)儲存mysql字串效能不同

varchar的適用場景:字串列的最大長度比平均長度大很多,字串列很少被更新(列被更新就會改變字串的長度,會造成很多儲存碎片),使用了多位元組字符集儲存字串(utf8)

char型別的適用場景:適合儲存長度近似的值,短字串以及經常更新的字串列

3.如何儲存日期資料

datetime型別:

與時區無關,占用8個位元組的儲存空間,時間範圍1000-01-01 00:00:00 到 9999-12-31 23:59:59

timestamp型別:

儲存了由格林尼治時間2023年1月1日到當前時間的秒數,以yyyy-mm-dd hh:mm:ss.[.fraction]的格式顯示,占用4個位元組。時間範圍1970-01-01 到 2038-01-19。timestamp型別依賴於所指定的地區,在行的資料修改時自動修改timestamp列的值。

date型別和time型別:

把日期部分儲存為字串(至少要8個位元組),使用int型別來儲存(4個位元組),使用datetime型別來儲存(8個位元組)

date型別優點:占用的位元組數比使用字串,datetime,int儲存要少,使用date型別只需要3個位元組;使用date型別還可以利用日期時間函式進行日期之間的計算,date型別用於儲存1000-01-01到9999-12-31之間的日期;time型別儲存時間資料格式為hh:mm:ss

儲存日期時間資料的注意事項:

不要使用字串型別來儲存日期時間資料(日期時間型別通常比字串占用的儲存空間小,日期時間型別在進行查詢過濾時可以利用日期來進行對比)不要使用字串型別來儲存日期時間資料,使用int儲存日期時間不如使用timestamp

資料庫設計步驟

目錄 資料庫設計步驟 1.需求分析階段 2.概要設計階段 繪製e r圖 3.詳細設計階段 1.需求分析階段 分析客戶業務需求,特別是資料處理方面的需求。2.概要設計階段 繪製資料庫的e r模型圖。確認需求文件的正確定和完整性 3.詳細設計階段 將e r圖轉換為多張資料庫表。進行邏輯設計,確定各張表的...

mysql 資料庫設計 MySQL 資料庫設計總結

本文由雲 社群發表 規則 1 一般情況可以選擇 myisam 儲存引擎,如果需要事務支援必須使用 innodb 儲存引擎。注意 myisam 儲存引擎 b tree 索引有乙個很大的限制 參與乙個索引的所有欄位的長度之和不能超過 1000 位元組。另外 myisam 資料和索引是分開,而 innod...

刪除mysql資料庫步驟

一.停止mysql服務 二.進入控制面板,選擇mysql程式解除安裝 三.進入mysql安裝目錄,將mysql目錄直接刪除 四.刪除登錄檔 cmd regist.exe 選擇 heky local machine system currentcontrolset service的mysql連資料夾一...