精心設計的表的屬性
真正的關聯式資料庫必須超越將資料拋入幾個表並編寫一些 SQL 語句以將資料拉出來。
充其量只是設計糟糕的表結構會減慢查詢的執行速度,並使資料庫無法按預期執行。
不應將資料庫表視為另一個表; 它必須遵循一套規則才能被視為真正的關係。在學術上,它被稱為關係以進行區分。
關係表的五個規則是:
- 每個值都是原子的 ; 每行中每個欄位的值必須是單個值。
- 每個欄位包含具有相同資料型別的值。
- 每個欄位標題都有一個唯一的名稱。
- 表中的每一行必須至少有一個值,使其在表中的其他記錄中唯一。
- 行和列的順序沒有意義。
符合五條規則的表格:
ID |
名稱 | DOB | 經理 |
---|---|---|---|
1 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
2 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
3 |
起訴 | 1975 年 8 月 7 日 | 2 |
- 規則 1:每個值都是原子的。
Id
,Name
,DOB
和Manager
只包含一個值。 - 規則 2:
Id
只包含整數,Name
包含文字(我們可以新增它的四個字元或更少的文字),DOB
包含有效型別的日期,Manager
包含整數(我們可以新增對應於管理器中的主鍵欄位)表)。 - 規則 3:
Id
,Name
,DOB
和Manager
是表中唯一的標題名稱。 - 規則 4:包含
Id
欄位可確保每條記錄與表格中的任何其他記錄不同。
設計糟糕的桌子:
ID |
名稱 | DOB | 名稱 |
---|---|---|---|
1 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
1 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
3 |
起訴 | 1975 年 7 月 18 日星期五 | 2,1 |
- 規則 1:第二個名稱欄位包含兩個值 - 2 和 1。
- 規則 2:DOB 欄位包含日期和文字。
- 規則 3:有兩個名為’name’的欄位。
- 規則 4:第一和第二條記錄完全相同。
- 規則 5:此規則未被破壞。