一,需求分析(可拓展性設計)包括:資料儲存需求,資料處理需求,安全性設計,完整性設計,資料生命週期等等...
二,資料庫邏輯設計
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連資料夾一...