MySQL的設計

1.多表之間的關係

  1. 分類
  • 一對一mysql

    實現方式:能夠在任意一方添加外鍵,指向另外一方的主鍵。而且讓外鍵惟一sql

    好比:人和身份證的關係數據庫

  • 一對多(多對一)數據庫設計

    實現方式:在多的一方創建外鍵,指向一的一方的主鍵函數

    好比:一個部門有多個員工,一個員工只能對應一個部門命令行

  • 多對多的關係設計

    實現方法:藉助中間表,完成多對多登錄

    好比:一個學生能夠選不少課程,一個課程也能夠被許多學生選基礎

2.數據庫設計的範式

概念:設計數據庫時須要遵循的規範。語法

分類:

  1. 第一範式:每一列都是不可分割的原子數據項

    存在問題:

    數據冗餘嚴重(重複數據太多)

    添加新的數據,數據不合法

    數據刪除,部分數據也會起刪除

  2. 第二範式:在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)碼:若是在一張表中,一個屬性或屬性組,被其餘全部屬性所徹底依賴,則稱該屬性(屬性組)爲該表的碼。

    例如:該表中碼爲:(學號,課程名稱)

    主屬性:碼屬性組中的全部屬性

    非碼屬性:除過碼屬性組的屬性

    存在問題:

    添加新的數據,數據不合法

    數據刪除,部分數據也會 起刪除

  3. 第三範式:zhushux在2NF基礎上,任何非主屬性不依賴於其餘非主屬性(在2NF基礎上消除傳遞依賴)

3.數據庫備份與還原

1.命令行的方式

語法:

備份:mysqldump -u用戶名 -p密碼 數據庫的名稱>保存路徑

還原:

1.登陸數據庫

2.建立數據庫

3.使用數據庫

4.執行文件 source 文件路徑

相關文章
相關標籤/搜索