iT邦幫忙

0

幫助自己上班的零件數量查詢器(4) - 在寫Js、Vue之前要知道的正規化

  • 分享至 

  • xImage
  •  

在開始寫網頁的動作之前必須要先規劃資料進來長甚麼樣子、要存甚麼樣子,雖然正規化是資料庫的設計方式,但是資料庫的樣式早就被前輩寫好,因此能控制的就只有拿到資料之後應該怎麼存,而為了拉高網頁效能、減少使用容量等各式各樣的目的,需要學習正規化這樣的資料處理技術。

正規化

資料庫正規化,又稱正規化、標準化,是資料庫設計的一系列原理和技術,以減少資料庫中數據冗餘,增進數據的一致性。--維基百科

以下是我自己理解之後的簡單解說。

整理

第一正規化

  • 將重複的部分分割成獨立的一欄
  • 任一格儲存格只存一筆資料
    https://ithelp.ithome.com.tw/upload/images/20230206/20157290UCSmSE4ZTo.png
    選擇主鍵(Primary Key)
    https://ithelp.ithome.com.tw/upload/images/20230206/20157290aXFvxseeos.png
    選擇主鍵的標準基本上已唯一值、辨識度高的資料為準,但通常還是以需求與經驗做挑選,此處主鍵為學號及課程編號。

第二正規化

  • 符合第一正規化
  • 將部分相依欄位分割為單一表格 ->簡單說,跟主鍵有關但跟其他鍵沒什麼太大關係(相依性)的欄位
    https://ithelp.ithome.com.tw/upload/images/20230206/20157290ZJhLFVgFvW.png
    例如以上表格中小明學號1001沒有人會跟他一樣、但是他跟這堂課沒有這麼大的關係,因為他選不選對這堂課都沒有影響,所以以上分割。

第三正規化

  • 符合第二正規化
  • 再次檢視有沒有關係(相依性、遞移相依)
    https://ithelp.ithome.com.tw/upload/images/20230206/20157290GLZ3exxbuX.png

課程可以由不同教授上,每個教授也可以上不同的課程。


接下來還有BCNF、第四正規化、第五正規化......等等好多個正規化,但是基本上到第三正規化就夠用了,如果有興趣有需求可以google正規化就可以看到這些資料,在這邊就不贅述了。


資料參考

https://hackmd.io/@7HR_Cxb2TxKJ6jdAgtidqg/H1jvsoRgv#%E7%AC%AC%E4%B8%80%E6%AD%A3%E8%A6%8F%E5%8C%961NF

https://hackmd.io/@TSMI_E7ORNeP8YBbWm-lFA/rykcj8kmM?type=view

https://blog.build-school.com/2022/07/22/%E8%B3%87%E6%96%99%E5%BA%AB%E6%AD%A3%E8%A6%8F%E5%8C%96%E7%AD%86%E8%A8%98/

https://ithelp.ithome.com.tw/articles/10223029

https://www.796t.com/content/1543696987.html

https://progressbar.tw/posts/265

主鍵(Primary Key)https://ithelp.ithome.com.tw/questions/10143595


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言