一對一mysql
實現方式:能夠在任意一方添加外鍵,指向另外一方的主鍵。而且讓外鍵惟一sql
好比:人和身份證的關係數據庫
一對多(多對一)數據庫設計
實現方式:在多的一方創建外鍵,指向一的一方的主鍵函數
好比:一個部門有多個員工,一個員工只能對應一個部門命令行
多對多的關係設計
實現方法:藉助中間表,完成多對多登錄
好比:一個學生能夠選不少課程,一個課程也能夠被許多學生選基礎
概念:設計數據庫時須要遵循的規範。語法
分類:
第一範式:每一列都是不可分割的原子數據項
存在問題:
數據冗餘嚴重(重複數據太多)
添加新的數據,數據不合法
數據刪除,部分數據也會起刪除
第二範式:在1NF的基礎上,非碼屬性必須徹底依賴於候選碼(在1NF基礎上消除非主屬性對主碼的部分函數依賴)
(1)函數依賴:A—>B,若是經過A的屬性(屬性值)的值,能夠肯定惟一的B屬性的值。則稱B依賴於A。
例如:學號—>姓名 ,(學號,課程名稱)—>分數
(2)徹底函數依賴:A—>B,若是A是一個屬性組,則B屬性值得肯定須要依賴於A屬性中全部得屬性值。
例如:(學號,課程名稱)—>分數
(3)部分函數依賴:A—>B,若是A是一個屬性組,則B的屬性值的肯定只須要依賴於A屬性組中某一些值便可。
例如:(學號,課程名稱)—>姓名
(4)傳遞函數依賴:A—>B,B—>C,若是經過A屬性(屬性組)的值,能夠肯定惟一B屬性的值,再經過B屬性(屬性組)的值能夠肯定惟一的C屬性的值,則稱C傳遞函數依賴於A。
例如:學號—>系名,系名—>系主任
(5)碼:若是在一張表中,一個屬性或屬性組,被其餘全部屬性所徹底依賴,則稱該屬性(屬性組)爲該表的碼。
例如:該表中碼爲:(學號,課程名稱)
主屬性:碼屬性組中的全部屬性
非碼屬性:除過碼屬性組的屬性
存在問題:
添加新的數據,數據不合法
數據刪除,部分數據也會 起刪除
第三範式:zhushux在2NF基礎上,任何非主屬性不依賴於其餘非主屬性(在2NF基礎上消除傳遞依賴)
1.命令行的方式
語法:
備份:mysqldump -u用戶名 -p密碼 數據庫的名稱>保存路徑
還原:
1.登陸數據庫
2.建立數據庫
3.使用數據庫
4.執行文件 source 文件路徑