資料庫結構的設計步驟,具體例項

2021-09-22 22:41:52 字數 2227 閱讀 4317

資料庫結構設計的步驟

1.需求分析,全面了解產品設計的儲存需求,要儲存什麼資料,這些資料有什麼特點,資料處理的響應時間,是否是批量處理,資料的完整性確定要儲存的真正資料,因為要和非開發的人員進行溝通

2.邏輯設計階段,在這個階段不用考慮資料庫使用的儲存引擎什麼資料庫,邏輯設計階段要弄清楚資料實體之間的邏輯關係,這個階段是解決資料冗餘和資料維護異常(插入增加刪除問題)的階段,這個階段的工作直接影響了之後的資料處理和資料儲存方式,要解決資料冗餘和資料維護異常,按照資料庫的設計正規化可以最大限度的進行解決

3.物理設計階段,根據所使用的資料庫的特點進行表結構的設計,選擇合適的儲存引擎和表中的列使用什麼樣子的資料型別

4.優化和維護:根據實際的情況對索引,儲存結構等進行優化

例項

1.進行需求分析:

首先使用者必須

什麼是反正規化化設計,反正規化化是為了效能和查詢效率進行違反資料庫設計正規化的行為 ,允許適當的資料冗餘,反正規化化是使用空間來換取時間,比如訂單總量等等

2.物理設計

根據選擇的關係型資料庫的特點對邏輯模型繼續儲存結構設計

物理設計所設計的內容:

首先定義資料庫,表,欄位的命名規範,在對資料庫,表和字段進行命名的時候要遵守可讀性原則,盡量便於理解不使用簡寫,之後選擇合適的儲存引擎,最後為表中的字段選擇合適的資料型別,浪費更多的記憶體和磁碟io,乙個列可以選擇多個資料型別的時候,應該優先考慮數字型別,其次是日期或者是二進位制型別,最後是字元型別,相同級別的資料型別,應該優先選擇占用空間小的資料型別,

整數型別:

n是儲存空間的位數,2^(n-1),tinyint的n就是8,所以tinyint的範圍就是-128~127,可以儲存這之間的數字,不允許在無符號的整數之中賦值,無符號整數值儲存的值增加了一倍

實數型別

實數型別可以儲存數值中的小數部分,但是並不是只為小數部分而使用的,

可以使用decimal儲存更大的整數,mysql中有三種實數型別

double和float是非精確的資料型別,這種資料型別中兩個數值相加可能會出現不精確的情況,decimial是保證精度的,但是儲存空間

decimial(18,9)表示需要9個位元組來儲存數字

如果財務型別就是decimal

varchar的儲存特點,1.varchar用於 儲存變長字串,可能很長也可能很短,只會占用必要的儲存空間,儲存了10個字元就是占用10個寬度,varchar和char中的單位是以字元為單位的,而不是位元組 2 .varchar列的最大寬度小於255的時候,則只占用乙個額外位元組用於記錄字串的長度,如果列的最大寬度大於255,則要占用兩個額外的位元組用於記錄字串長度。

如何對varchar和char進行選擇

varchar型別的長度選擇問題:使用最小的符合需求的長度,了解業務,中國人和外國人的姓名,但是也不能做得最小,因為要進行該錶。

varchar的適用場景:

字串的最大列長度,比平均長度大很多的,2字串列很少更新的,

char型別

char型別是定常的,字串儲存在char型別的列會刪除末尾中的空格,cahr型別的最大寬度是255,char型別的場景,適合儲存定常的,或者是長度近似的值,儲存短字串,儲存經常被更新的字串

datatime型別

datatime型別是與時區無關的,占用8個位元組的儲存空間

timestamp型別,儲存的時間是時間戳

date型別,只需要儲存一部分內容的時候,主要是日期部分

time型別,主要儲存的是時間型別

儲存日期資料的注意事項

盡量不要使用字串型別來儲存日期時間資料,日期時間型別通常比字串占用的記憶體小,日期時間型別在進行查詢的時候來進行對比,對時間進行對比,日期型別還有很多日期函式,可以方便進行日期計算,

不要使用int型別儲存時間,因為如果要儲存時間戳的話,可以使用timestamp型別

mysql物理設計的額時候,主要是選擇儲存空間 儲存引擎,資料型別,如果沒有特殊需求,使用innodb進行選擇,為表中的每個列選擇合適的型別,為innodb選擇合適的主鍵,主鍵應當盡可能小,主鍵應該是順序增長的(增加資料的插入效率),innodb的主鍵和業務主鍵可以是不同的。

資料庫設計步驟

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

Java訪問資料庫的具體步驟

1.載入 註冊 資料庫 驅動載入就是把各個資料庫提供的訪問資料庫的api載入到我們程式進來,載入jdbc驅動,並將其註冊到drivermanager中,每一種資料庫提供的資料庫驅動不一樣,載入驅動時要把jar包新增到lib資料夾下,下面看一下一些主流資料庫的jdbc驅動加裁註冊的 oracle8 8...

具體解釋NoSQL資料庫使用例項

一 nosql基礎知識 1 關於nosql 在 nosql 一詞。實際上是乙個叫racker的同事創造的,當約翰埃文斯埃里克要組織一次活動來討論開源的分布式資料庫。這個名稱和概念都由此而來。有些人反對nosql術語,由於它聽起來像我們定義自己是什麼 在一定程度,但長期仍然是有價值的。由於當乙個關聯式...