慕課網視頻課程地址https://www.imooc.com/learn/117數據庫
數據庫的設計,就是根據業務系統的具體需求,結合咱們所選用的DBMS,爲這個業務系統構造出最有的數據存儲模型。並創建好數據庫中的表結構及表與表之間的關聯關係的過程。使之能有效的對應系統中的數據進行存儲,並能夠高效的對已經存儲的數據進行訪問。編程
需求分析----->邏輯設計----->物理設計----->維護優化併發
數據庫需求分析的做用點:數據庫設計
使用ER圖對數據庫進行邏輯建模編程語言
數據管理系統的選擇,根據數據庫自身的特色把邏輯設計轉換爲物理設計函數
後期維護高併發
爲何要進行需求分析?工具
爲了設計最優化的數據庫,便於後期的擴展和維護,數據愈來愈多,愈來愈大會浪費空間,愈來愈雜亂,是很難處理和維護的優化
要搞清楚的一些問題spa
實例分析
邏輯設計要作什麼?ER圖就是數據庫模型關係的展現圖
名詞解釋
注:有的屬性下面有下劃線,就表示主鍵
什麼是數據庫設計範式?
也就是提供了一種準則,幫助咱們創建簡介高效且結構清晰的數據庫設計,避免數據庫插入,跟新,刪除,修改中的異常,而且爲最大限度的避免數據庫的冗餘。
常見的數據庫範式包括:第一範式、第二範式、第三範式及BC範式
固然還有第四及第五範式,不過這裏咱們會把重點放到前三個範式上,
這也是目前咱們大多數數據庫設計索要遵循的範式
數據庫異常以及數據冗餘
二維表就是由行和列組成的表,圖中的第二種表通常是沒法建立出來的也是不符合第一範式的,因此,通常狀況下,咱們建立的表都是符合第一範式的
供應商電話和組合關鍵字存在着部分函數依賴,因此上邊的表時不符合第二範式
存在的問題:
如何解決
因此這是不符合第三範式要求的
修改以下
這樣,就不會有傳遞性的依賴關係了
拆分以下
物理設計要作什麼?
如何選擇數據庫系統
考慮功能上的因素
操做系統上的因素
編程語言
應用場景
爲了方便,打眼一看就知道是什麼,而不用去查詢文檔字典手冊。浪費時間和精力
錯誤的
正確的
只是存儲,不多用來查詢,就使用int類型吧,由於不用轉換了(好比生日不多使用,訂單的時間類型常用,就可使用datetime)
粒度能夠根據須要來選擇,好比可能只須要年,只須要年月
使用觸發器後,若是業務變動會變的複雜和麻煩,影響業務邏輯
咱們的數據庫在使用中讀寫比例大概在3:1。讀是遠遠高於寫的。雖然在寫的時候增長了冗餘,可是在讀的時候咱們大大的提升了效率
一、要記錄清楚數據庫的每個列是什麼意思
二、索引可能會應爲數據量的增大和業務的改變而變得不適用
三、致使查詢緩慢等問題
使用自定義函數致使列中的索引失效
不要使用全文索引,可使用搜素引擎工具