備份及三大正規化

ℒ ℬ發表於2020-11-01

備份

使用DOS命令匯入匯出

匯出
-- 格式:mysqldump -h主機 -u使用者名稱 -p主機 資料庫 表 > 物理儲存位置/檔名
mysqldump -hlocalhost -uroot -p123456 school student >D:/a.sql

-- 匯入多條表 格式:mysqldump -h主機 -u使用者名稱 -p主機 資料庫 表1 表2 ... > 物理儲存位置/檔名

匯入
-- 登入的情況下,以切換到指定的資料庫
-- 格式:source 備份檔案
source d:/a.sql

-- 還未登入格式:mysql -u使用者名稱 -p密碼 庫名 < 備份檔案

三大正規化

第一正規化(1NF)

  • 原子性:保證每一列不可再分

舉例說明

學號姓名家庭資訊
0001張三5口人,河南
0002李四3口人,北京
0003王二2口人,上海

上表中“家庭資訊”列不滿足原子性的要求,不滿足第一正規化,調整為:

學號姓名家庭人口戶籍
0001張三5口人河南
0002李四3口人北京
0003王二2口人上海

第二正規化(2NF)

  • 在1NF的基礎上,非主碼屬性必須完全依賴於候選碼
  • 每張表只描述一件事情

第三正規化(3NF)

  • 前提:滿足1NF和2NF
  • 在2NF的基礎上,需確保資料表中的每一列資料都和主鍵直接相關,而不能間接相關

舉例描述

學號姓名家庭人口班主任教工號班主任姓名
0001張三5口人1111李麗
0002李四3口人1112南林
0003王二2口人1113南林

上表,所有屬性都完全依賴於學號,所以滿足2FN,但是“班主任姓名”直接依賴的是“班主任教工號”,而不是主鍵“學號”,所以應調整成兩個表:

學號姓名家庭人口班主任教工號
0001張三5口人1111
0002李四3口人1112
0003王二2口人1113
班主任教工號班主任姓名
1111李麗
1112南林
1113南林

相關文章